1 VIGROPT: Visual Group Optimization

Relevanta dokument
Laborationsinformation

Laborationsinformation

Laborationsinformation TAOP88 Optimering för ingenjörer, VT17

Lathund import Ladoklista i Ping Pong

Bruksanvisning för SeSAm GENETICA : Mendels Lagar

UT51 Utdata,utresande utbytesstudenter

Studentcentrum, Ladok Version 1.0, REGISTRERING I LADOK. Avser utbildning på grund- och avancerad nivå

Ladok. Registrering. RG01 Registrering en person 2. RG02 Registrering flera personer 4. RG10 Avbrott på kurs 9

Funktionsbeskrivning

Ladok utbildning 1 (6) Skapa Datafil

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Ladok. Resultatrapportering på prov RS01. Resultatrapportering på prov RS01 1. Personliga inställningar 2. Arbetsgång vid rapportering i RS01 2

Ladok. Resultatrapportering på hel kurs RS10. Personliga inställningar 2. Arbetsgång vid resultatrapportering i RS10 2

Utdata för grupper av studenter i Ladok Nouveau

Projektinformation TAOP61 Optimering av realistiska sammansatta system Projekt 4: Lösning av snöröjningsproblemet

STOCKHOLMS UNIVERSITET. Handbok 2. Funktionaliteter moveon 4

Kom igång med TIS-Office

Instruktion till rapporter för uppföljning av standardiserade vårdförlopp

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

DI-Plot. Instruktionsmanual

Grupper i Studentportalen

Utbildningsmaterial Personec Förhandling

1 Syfte med formuläret för utsökning av personer med särskilt tillstånd till forskarstudier

Funktionsbeskrivning

RS01 Resultat på prov

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

SCB Räkenskapssammandrag

Rev 2. Manual för handterminal

Instruktion till rapporter för uppföljning av standardiserade vårdförlopp

E-posthantering med Novell Groupwise WebAccess

Resultatrapportering via Studentportalen

ALEPH ver. 16 Introduktion

Inloggning i Ladokportalen för personal

Kravspecifikation SA42 Val av programinriktning

Lärarhögskolan i Stockholm Högskoleförvaltningen Högskoleledningens kansli Magnus Mörck/Katharina Soffronow Katharina.Soffronow@lhs.

Läsårsvis uppföljning av studenter registrerade en viss termin på ett visst program (uppföljning av kullen ByggH97)

Skapa förväntat deltagande på kurstillfälle eller kurspaketeringstillfälle (Manuell antagning i Ladok)

Grupper. SA10 Grupphantering

Flexibel meny i Studentportalen

Communicator Telefonist

TDP Regler

Introduktionsguide för

TAOP61 Projekt 2. Kaj Holmberg (LiU) TAOP61 Optimering 28 oktober / 14

Forskarstuderande. 1. Inloggning

INTRODUKTION TILL LADOK

Forskare & Handledare. 1. Inloggning

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

RG90 - Registrering, Aktivitet och Försörjning

Kom igång med Adela Barnomsorg

Lathund- Skapa objekt i TimeEdit 3 på Stockholms universitet

Laboration 1 Introduktion till Visual Basic 6.0

Primus Vägledning för massimport av bilder. Primus 5.6.4

REGISTRERING LADOK NOUVEAU

Vid fel och frågor Ta kontakt med förbundet. Logga in. Menyn

5HVLVWHQVWDEHOO 'DWD3DUWQHU. Er partner inom data

Kapitel 4 Arkivmenyn Innehåll

Extramaterial till Matematik Y

Utdata för personer i Ladok Nouveau

Guide Autodesk Account

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Grupphantering i Blackboard

Användarhandbok OE/OSSpeaker V.10.3

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Rullningslisten. Klicka på rullningslistpilar (pil upp eller pil ner) 1 för att förflytta dig i önskad riktning, en liten bit i taget.

Funktionsbeskrivning

Logga in. Elevöversikt. Kolumner. Godkänna. Urval. Hantera inflytt och byte. Sök. Familjebild. Utskriftsrutin Om pengen

Grupper; Gruppindelningar; Vanliga inställningar för modul

ENTRÉ DOKUMENTHANTERING...

Bokningslista Kurssekreterare/Kursansvarig

Aktivitetsstöd Importfunktion

Kravsamordnare Datum Sida. Lou Lagusson (11)

Blackboard Studentmanual - Att arbeta med Wikis

Diskussionsforum - Lärarmanual

Infobric Ease Snabbguide

Funktionsbeskrivning

Manual att registrera i

LOTTA MANUAL

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten.

Guide för behörighetssystemet i Matilda

Malmö stad Fritidsförvaltningen. Ledare

Lathund Slutattestant. Agresso Self Service

CdsComXL. Excel-tillägg för hantering och analys av CDS-data. ComXL-020/S, Stråk Stråk Stråk Stråk

Installationsguide Junos Pulse för MAC OS X

Omregistrerade studenter i Studentportalen

Kom igång med Adela Gymnasium

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Manual för slutattestering av leverantörsfakturor

Gör så här för att rapportera:

Kom igång med Adela Grundskola

Introduktion till Winbas. excel till Winbas

Arrangera - Resultat Export och Import

Juni 2003 PlanCon Viewer Handledning PlanCon PROJEKT

Allmänt. Välkommen till SVENSKA VÅGs datorprogram för receptvägning på PC.

Funktionsbeskrivning

Användarmeddelande (Maj 2012) Ny programversion. Version 12.2a

Skapa och godkänna mål och delmål för din kurs

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Manual att registrera i

Ladok. Funktionsbeskrivning. för KA11 Kurser och prov - utdata. (ny funktion 2005) Beteckning:

Transkript:

Linköpings Tekniska Högskola 2016 06 20 Matematiska institutionen/optimeringslära Kaj Holmberg 1 VIGROPT: Visual Group Optimization 1.1 Introduktion Vigropt är ett program som hjälper till att skapa en bra uppdelning av personer i grupper. Ett visst antal personer skall delas in i ett visst antal grupper. Målet är att grupperna ska vara så lika som möjligt enligt vissa aspekter och att gruppsammansättningarna ska variera så mycket som möjligt över tid, dvs. att två personer som varit i samma grupp tidigare helst inte ska vara i samma grupp nu. Aspekter som ska vara lika mellan grupperna kan vara antal personer i en grupp, totalt antal studiepoäng för medlemmarna i en grupp, antal personer av samma kön i en grupp, summan av åldern på deltagarna i en grupp, osv. Med lika menas här att skillnaden mellan ytterligheterna minimeras, dvs. att skillnaden mellan t.ex. maximalt och minimalt antal personer i en grupp ska vara så liten som möjligt. När det gäller tidigare grupper, införs en kostnad för att placera två personer i samma grupp om de tidigare varit i samma grupp. Denna kostnad diskonteras, dvs. kostnaden blir lägre om det var länge sedan de var i samma grupp. 1.2 Grundfönster När Vigropt startas, visas följande fönster. I ljusrött syns menyraden, vars innehåll beskrivs nedan. Därefter följer information om lösningen, speciellt totalkostnaden för aktuell lösning i grönt. Under detta finns vissa inställningar för optimeringen, bl.a. hur många grupper det ska bli, samt vikter på de olika aspekterna. När man läst in en indatafil, dyker följande fönster upp med personer som ännu inte är allokerade till någon grupp. Man kan sortera listan efter olika nycklar. 1

Vid varje person finns en knapp Use, som gör att den personen kan tilldelas en grupp, en knapp Ed (edit), som gör att data för den personen kan ändras, och en knapp Del (delete), som gör att personen tas bort helt. Huvudfönstret ändras till följande. Nu vet man hur många grupper det ska vara, och vilka aspekter som finns. I detta fall ska 16 personer delas in i 4 grupper. Max och min antal personer i en grupp blir då 4. Den första personen på listan återfinnes i blått, med möjlighet att manuellt placera personen i någon grupp. Under varje grupp står nuvarande värde av de olika aspekterna. När man har tilldelat alla personer till grupper ser fönstret ut som följer. Nu ser man personerna i varje grupp, och alla kostnader är uppdaterade. Vid varje namn finns en knapp Rem (remove) för att ta bort personen ur gruppen, en knapp Fix för att fixera personen i den gruppen inför fortsatt optimering, samt en knapp Unfix, vilket förbjuder den personen att tilldelas den gruppen vid fortsatt optimering. (Vigropt är i 2

nuläget inte anpassat till små skärmar och många grupper.) 1.3 Menyer Menyerna innehåller följande möjligheter. 1.3.1 Läsa/spara data (File) Man kan läsa in indatafil, spara indatafil (när data har ändrats), läsa in en tidigare gjord allokering samt spara erhållen allokering. Man kan också se alla data, samt avsluta programmet. 1.3.2 Ändringar (Changes) Här kan man skapa ett nytt problem genom att läsa in en ny persongrupp (från en Ladok-fil) och importera information om tidigare grupptillhörighet. Man kan skapa en ny grupplista, för att manuellt införa information om tidigare grupper. Man kan även uppdatera poäng, dvs. läsa in en ny Ladok-lista men bara ändra poängen för personerna. Slutligen kan man temporärt ta bort pojkar eller flickor från problemet. Detta ger möjligheten att först göra en allokering för ena könet, och därefter lägga till det andra. Detta kan vara bra om ena könet är kraftigt underrepresenterat och man har speciella önskemål om denna allokering. 1.3.3 Aspekter (Aspects) Man kan ha valfritt antal aspekter. Vanligtvis är aspekt 1 antal erhållna studiepoäng, aspekt 2 kön (hämtat från personnumret) och aspekt 3 ålder (representerat av födelseår från personnumret). Om man t.ex. vill att två specifika personer inte ska hamna i samma grupp, kan man skapa en ny aspekt, där man sätter värde 1 för de två personerna och noll för övriga. Man ska välja olika vikter för aspekterna, dels för att göra dem jämförbara och dels för att man tycker att vissa saker är viktigare än andra. Exempelvis kan antal studiepoäng vara i storleksordningen 100 medan antal flickor i en grupp vara i storleksordningen 1-2. Om man inte vill att poängen ska vara 100 gånger viktigare än antal flickor, bör man öka vikten på antal flickor till 50-100. Det finns även möjlighet att sätta en negativ vikt på en aspekt. Optimeringen försöker då maximera skillnaden mellan bästa och sämsta grupp. I denna meny kan man spara en lista med aspekter, läsa in en lista med aspekter, editera aspekternas värden, samt lägga till ytterligare en aspekt (som initieras med värdet noll för alla personer). 3

1.3.4 Optimering (Optimize) Optimering av gruppsammansättningen kan ske i olika steg. Först skapas en initial allokering, och därefter kan den förbättras på olika sätt. Bland annat används en operator för att ändra lösningen, som kan vara Move : flytta en person från en grupp till en annan grupp, eller Swap : byt grupp mellan två personer. Swap ger en större omgivning, vilket kan ge bättre lösningar, men tar längre tid. Move ändrar antal personer i grupperna, vilket begränsar möjligheterna. Run init heur: Gör en första allokering. Add init heur: Addera några nya personer till en existerande allokering. Run imp heur rep: Försök förbättra lösningen med Move eller Swap. Run sim ann: Kör simulated annealing. Run tabu: Kör tabusökning. Unallocated all: Ta bort alla personer från grupperna. 1.3.5 Parameters (Parameters) Man kan ställa in ett antal parametrar för vilka knappar som visas i huvudfönstret. Ett skäl är att fönstret kan bli för stort om man har många grupper. Man kan välja att tillåta negativa värden på vikterna, samt att använda simple interface, vilket döljer vissa inställningar. 1.3.6 Sortering (Sort) Listan på oallokerade personer kan sorteras på olika sätt, nämligen i alfabetisk namnordning, i poängordning (mest först), i könsordning (flickor först) eller i åldersordning (äldst först). När manuell allokering görs, eller då den initiala allokeringen görs, tas nämligen personerna i den ordning de står i listan, så olika ordningar kan ge olika lösningar. 1.4 Arbetsgång Programmet körs i ett terminalfönster. Det startas med python vigropt.pyc 1.4.1 Skapa ny probleminstans För att skapa indata krävs en Ladok-lista med namn, personnummer och studiepoäng. Se nästa avsnitt för instruktioner om hur man tar fram en sådan. Man behöver även en lista över vilka grupper personerna har varit i tidigare. Vigropt ger en sådan lista, så har man använt Vigropt tidigare, finns den redan. Annars får man göra en för hand. I Vigropt görs sedan följande. 4

1. "Changes/Import Ladok file" 2. "Changes/Import prev groups" 3. Om man vill: File/See all data" 4. File/Save indatafile" 1.4.2 Skapa Ladok-lista Exempel för att söka ut studenterna som gick IT termin 4 under VT16, inför termin 5 HT16. Sök ut studenterna (de som är registrerade på terminen före den aktuella) via Ladokfunktion UT46 Uppföljning på program (finns under "Utdata program") * <Utsökning> * Registrering, <Program> * fyll i Program: 6CITE * fyll i Termin: V16 t.o.m. V16, Programtermin 4-4 (termin fylls i automatiskt, klicka i t.o.m.-rutan för att fylla i programtermin) * <Sök> * <OK> * <Klar> Ny bild: * Fyll i resultatperiod: t.ex. 2010-01-01 t.o.m dagens datum"(fylls i automatiskt) * klicka i Program som anges" * ta bort markering i "Utöver program ta med fristående kurser" * fyll i Program: 6CITE (tab) * klicka på grönt V till höger * <Utskrifter> * klicka i Detaljlista * <Skapa datafil> * välj katalog att spara filen i och ge den ett unikt namn (xxx.txt) 1.4.3 Göra en gruppallokering Här förutsetts att man har en indatafil. 1. File/Read indatafile" 2. Öptimize/Run init heur"(gör startallokering) 3. Öptmize/Run imp heur rep"(förbättra allokeringen) 4. Öptmize/Run sim ann"(kör simulated annealing för att ytterligare förbättra lösningen) 5. Öptmize/Run tabu"(använd tabusökning för att ytterligare förbättra lösningen) 6. File/Save alloc and quit/continue" Man kan hoppa över något av stegen 3, 4 och 5 om man vill. Dessa steg använder den omgivning (Move eller Swap) som valts. 5

Tabu med Swap brukar ge bäst lösning, men tar längst tid. Max antal iterationer är satt till 100. Jag brukar börja med Move, följt av Swap. Man kan ändra vikterna på de olika aspekterna och köra om. Efter varje ändring av parametrar, måste man klicka på knappen Update innan man påbörjar optimering. Observera att optimeringsmetoderna använder slump, så två körningar med samma indata ger inte alltid samma resultat. 1.4.4 Manuella ändringar En viktig funktion hos Vigropt är möjligheten att manuellt ändra allokeringen. Man kan göra följande: Den person som visas i blått kan tilldelas valfri grupp genom att klicka på gruppnumret. Om man vill en annan person än den som visas, kan man klicka på Use i fönstret med ej allokerade personer. När personerna i grupperna visas: Klicka på Rem-knappen för att ta bort personen från gruppen. Klicka på Fix-knappen för att fixera personen till den gruppen. Klicka på Unfix-knappen för att förbjuda allokering av personen till den gruppen. Man kan göra dessa ändringar för att därefter göra manuell tilldelning, eller köra Optimize/Add init heur och därefter fortsätta med optimeringen. 1.5 Filer Indatafiler har extension dat. Vigropt skapar även en fil med namn på personerna med extension nam. Utdata är en fil med extension grp, som innehåller en lista med namn och tilldelade gruppnummer. Därefter innehåller filen varje grupp och de namn som ingår i gruppen. (Vigropt använder kodningen iso-8859-1 för svenska bokstäver.) Man får även en fil med extension nlg som innehåller en lista med samtliga grupper för varje person, dvs. de tidigare grupperna (som var indata) plus den nya gruppen. (Denna fil kan användas som indata till Vigropt nästa termin.) Man anger själv namn på filerna, och får själv hålla reda på vad som är vad, om man gör flera körningar. Jag fann det även användbart att ta en skärmbild av huvudfönstret med den slutgiltiga gruppindelningen, eftersom det ger en bra överblick. 6

1.6 Till sist Vigropt uppdateras ofta, så denna information kan vara aningen föråldrad. Alla kommentarer, funna felaktigheter och önskemål gällande både programmet och manualen skickas till kaj.holmberg@liu.se. Tack till Ingegerd Skoglund för hjälpen med Ladok. Mer matematisk beskrivning av problemet och metoderna återfinnes i rapporten Kaj Holmberg: Formation of Student Groups with the Help of Optimization. LiTH-MAT-R 2014/14 SE. 7