Skemalægning med genetiske algoritmer Datalogisk speciale, RUC 2/6/2009 Skrevet af: Flemming R.P. Rasch Vejleder: Henning Christiansen



Relaterede dokumenter
Ideer til datalogiprojekter. Keld Helsgaun

En lægningsstrategi. Med autopilot og et lille sats til sidst

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer Oversigt over VisiRegn ideer 1-7 3

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

VisiRegn: En e-bro mellem regning og algebra

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Michael Jokil

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Gentofte Skole elevers alsidige udvikling

Nyhedsbrev nr august 2015

Statistik II 1. Lektion. Analyse af kontingenstabeller

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Rolf Fagerberg. Forår 2013

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Dynamisk programmering

Kønsproportion og familiemønstre.

Sortering. Eksempel: De n tal i sorteret orden

Lars Andersen: Anvendelse af statistik. Notat om deskriptiv statistik, χ 2 -test og Goodness of Fit test.

TANKERNE BAG DE NYE VEJLEDENDE SÆT I MATEMATIK

Grundlæggende køretidsanalyse af algoritmer

Rolf Fagerberg. Forår 2012

DEFF Projekt evaluering

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

QUICK GUIDE. Skab operationel effektivisering med Microsoft CRM Online

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller

Rolf Fagerberg. Forår 2015

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Manual til administration af online booking

Danmarks Tekniske Universitet

Langtved Data A/S Nyhedsbrev

LEKTION 4 MODSPILSREGLER

Hvordan søger du i LARM.fm?

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Effektiv søgning på web-steder

Sortering. Eksempel: De n tal i sorteret orden

APPENDIX A INTRODUKTION TIL DERIVE

Programmering C RTG

ViKoSys. Virksomheds Kontakt System

Sortering af information er en fundamental og central opgave.

Emneopgave: Lineær- og kvadratisk programmering:

STYR TIDSRØVERNE. 1 Styr tidsrøverne

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Dig og din puls Lærervejleding

Supplement til manualen, Kalender-Semesterskema

Elevskema. Med modulet Elevskema kan du fordele eleverne på kurser og danne individuelle elevskemaer.

AT-forløb Jordskælv i Chile 1.u

Supplement til manualen, Kalender-Semesterskema

Det Rene Videnregnskab

DANSK SKOLEDATA APS. Tlf DSA-Ventelisten

KORTLÆGNING AF SKOLEDAGENS LÆNGDE

4. Snittets kædebrøksfremstilling og dets konvergenter

Grundlæggende Algoritmer og Datastrukturer

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

Sortering af information er en fundamental og central opgave.

Appendiks 1: Om baggrund og teori bag valg af skala

Vejledning Aktiviteter. Opdateret 20. februar 2012

Dette er et uddrag fra: Lis og Torben Pøhler: "Hu Hej - Vild med dyr" - en læsevejledning Maaholms Forlag 2000.

Ugeseddel 12( )

Evolutionsteorien set i et historisk lys med fokus på nåturvidenskåbelige årbejdsformer på Dårwins tid.

Bilag 7 Analyse af alternative statistiske modeller til DEA Dette bilag er en kort beskrivelse af Forsyningssekretariatets valg af DEAmodellen.

Løsning af simple Ligninger

Indholdsfortegnelse. Side 1 af 7

Fagrækkefølge mv. 1. Fagrækkefølger for fag og undervisninger

Introduktion til DM507

Danmarks Tekniske Universitet

Dynamisk programmering

How to do in rows and columns 8

Dynamisk programmering

ViTre ver. 91 Opdatering fra ScanDis A/S. Instruktion og nyheder i TAL. Automatisk ro Ny forbedret udtalebog. Automatisk ro

Vejledning til Eksamensplanlægning

Matematik og samfundsfag Gini-koefficienten

Guide til lektielæsning

Adjunktpædagogikum & KNUD. Camilla Rump

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Fagdage/fordybelsesdage

7. Indstilling af den trådløse forbindelse i Windows XP

DM507 Algoritmer og datastrukturer

Matematik A og Informationsteknologi B

Danmarks Tekniske Universitet

Lagervisning. Dina Friis, og Niels Boldt,

Elementær Matematik. Mængder og udsagn

Rolf Fagerberg. Forår 2015

Opsætning af 60 dags regel

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Noter til Perspektiver i Matematikken

Guide til din computer

REDIGERING AF REGNEARK

Allan C. Malmberg. Terningkast

Andengradsligninger. Frank Nasser. 12. april 2011

Hvad kan jeg i WebUntis?

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Transkript:

Skemalægning med genetiske algoritmer Datalogisk speciale, RUC 2/6/2009 Skrevet af: Flemming R.P. Rasch Vejleder: Henning Christiansen

2 Resume: I dette speciale præsenteres skemalægning som et datalogisk problem. Der gennemgås forskellige løsningsmetoder fra litteraturen, med speciel fokus på genetiske algoritmer. Det demonstreres herefter med et problem taget fra praksis samt til lejligheden fremstillet programmel hvordan skemalægningsproblemer kan løses ved hjælp af genetiske algoritmer. Løsningen diskuteres og sammenlignes med andre løsninger. Building timetables with genetic algorithms Abstract: In this thesis automated timetabling as a computer science field of study is presented. Various methods for solving timetabling problems are shown, with special focus on genetic algorithms. A real timetabling problem is then solved with genetic algorithm software made for this thesis and the solution is evaluated and compared to other solutions.

3 Indhold 1 Indledning...4 1.1 Skemalægning...4 1.2 Genetiske algoritmer...4 1.3 Målet med dette speciale...4 2 Skemalægning...5 2.1 Typer af skemalægningsproblemer...5 2.1.1 Skoleskemaer...5 2.1.2 Lektionsplaner...6 2.1.3 Eksamensplaner...6 2.1.4 Andre...7 2.2 Skemalægning i folkeskoler/gymnasier...7 2.2.1 Skemaets parametre...7 2.3 Karakteristik af skemalægning som datalogisk problem...8 2.3.1 Finde løsninger...8 2.3.2 Optimering...8 2.3.3 Kompleksitet og eksistens af løsning...8 3 Metoder til automatisk skemalægning...10 3.1 Simple heurestikker...10 3.2 Tabu search...10 3.3 Simulated annealing...10 3.4 Constraint logic programming...11 3.5 Genetiske algortimer...11 3.5.1 Hollands skemateorem og byggeklodshypotesen...12 3.6 Memetiske algoritmer...12 3.7 Andre metoder...13 4 GenetiskSkema - en genetisk algoritme til skemalægning...14 4.1 Designovervejelser...14 4.1.1 Genomer og gener...14 4.1.2 Hard constraints...14 4.1.3 Fitness...15 4.2 Implementerede hard constraints...15 4.3 Implementerede soft constraints...15 4.4 Beskrivelse af programmel...16 4.4.1 Java klasser...16 4.5 Kalibrering...17 4.6 En praktisk test...18 4.6.1 Præsentation af test-problem...18 4.6.2 Vurdering af programmellets praktiske anvendelighed...18 4.6.3 Analyse af testdata...19 4.6.4 Sammenligning med et færdigudviklet skemalægningsprogram...21 4.7 Test af den genetiske algoritme...25 4.8 Konklusion på test...26 5 Konklusion...27 5.1 Forskningsfeltet skemalægning nu og i fremtiden...27 6 Litteratur...28 Appendiks A: Programkode... 30 Appendiks B: Beskrivelse af parametre og inddata... 46 Appendiks C: Inddata og uddata for praktisk test... 48 Appendiks D: Inddata og uddata for test af den genetiske algoritme... 58

4 1 Indledning Datalogiske problemer er ofte ganske praktiske problemer, som lader sig løse til en hvis grad uden brug af maskiner, men hvor computere vil muliggøre en hurtigere og/eller bedre løsning. Et eksempel på dette er hvordan man lægger et skema for undervisningen på en skole. Indenfor området kunstig intelligens, et område af datalogien der udsprang af ønsket om at lave en computer der efterlignede en menneskehjerne, findes der nu en lang række teknologier, som er inspireret af studier af naturen, men som i stedet for at bruges i forsøg på at eftergøre naturen, anvendes som praktiske løsninger på veldefinerede problemer. En af disse teknologier er genetiske algoritmer og et af de praktiske problemer, der ofte søges løst ved hjælp af genetiske algoritmer, er netop skemalægning. 1.2 Skemalægning Ved skemalægning forstås tidsplanlægning af aktiviteter for en større mængde personer over et længere tidsrum. Det forudsættes at aktiviteternes tidsforbrug og fordeling på personer er bestemt på forhånd, så problemet består i at fordele personernes aktiviteter indenfor nogle givne rammer. 1.2 Genetiske algoritmer Genetiske algoritmer er algoritmer som er baseret på principper fra genetikken, nærmere bestemt hvordan en population af individer udvikler sig over tid. Begreberne tilpasning, rekombination af DNA og mutation bruges til at lade en række løsninger til et problem udvikle sig frem mod en stigende grad af anvendelighed, på samme måde som individer i en population i naturen bliver tilpasset deres omgivelser. 1.3 Målet med dette speciale I det følgende vil problemet skemalægning blive kortlagt og forskellige måder det er løst på i litteraturen bliver gennemgået, med særlig fokus på genetiske algoritmer og relaterede metoder. Dernæst vil en konkret implementering af en genetisk algoritme til løsning af problemet blive præsenteret og vurderet.

5 2 Skemalægning Givet et antal personer der skal deltage, som oftest elever, E, et antal hold eller klasser de er delt op i, K, et antal aktiviteter eller fag de skal deltage i / undervises i, F, og et antal personer der skal stå for disse aktiviteter, som oftest lærere der skal undervise, U. Med notation fra relationsdatabaser har vi da følgende funktionelle afhængigheder: E K K F U KF Problemet består da i at der er givet en række tidsintervaller, T, og et antal lokaler, L, der er til rådighed indenfor hvert tidsinterval. Aktiviteterne, hvert bestående af et hold(klasse) K og en aktivitet (fag) F, skal da fordeles på tidsintervallerne og lokalerne: KF TL Fordelingen skal dels ske under overholdelse af nogle regler for hvad der skal lade sig gøre, i det følgende kaldet hard constraints (da de er ufravigelige begrænsninger), dels skal der ske en optimering af fordelingen i forhold til en lang række ønsker som skemalæggeren har til skemaet, der ofte præsenteres som soft constraints (ønskelige, men ikke ufravigelige krav). En typisk hard constraint er at en underviser ikke kan være to steder på en gang. En typisk soft constraint er at der ikke må være utildelte tidsintervaller tilhørende den samme klasse den samme dag, som er omkranset af tildelte tidsintervaller (også kaldet mellemtimer). 2.1 Typer af skemalægningsproblemer Skemalægningsproblemer er i virkeligheden en række forskelligartede problemer, som dog har så meget til fælles at metoderne til at løse dem i høj grad er de samme. Men programmellet til løsning af problemerne vil have meget forskellige krav til f.eks. konkret udformning af algoritmer og brugerinterface, så det er ofte kun på det teoretiske plan der kan udveksles viden. 2.1.1 Skoleskemaer I en skole folkeskole, gymnasium og lignende - har man typisk et identisk skema uge for en uge gennem et helt skoleår eller en længere periode. Tidsintervallerne lader sig derfor nemt sætte op på skemaform: Mandag Tirsdag Kl. 8-9 T ii T ji Kl. 9-10 T ij T jj Kl. 11-12 T ik T kk... Som regel er det sådan med skoleskemaer at der er lokaler nok til at samtlige klasser kan undervises samtidig. Det vil derfor kun være specielle lokaler som fysiklokaler, IT-lokaler og gymnastiksale, som der skal tages hensyn til ved skemalægningen. Problemet bliver da reduceret til:

6 KF T Undervisere på en skole bruger tid på andet end undervisning forberedelse til undervisning, møder, kurser m.m. så set fra en undervisers side vil der generelt være meget færre tidsintervaller at udfylde med undervisning i løbet af en uge end set fra en elevs side. En anden karakteristisk egenskab, i forhold til nogle af de andre skemalægningsproblemer, er at det sjældent forekommer at elever følger flere hold/klasser. Der forekommer dog hold på tværs af de faste klasser, men som regel vil det kun være et mindre antal af fagene det forekommer i, og ske på en af disse måder: 1. Elever i samme klasse splittes op og undervises hver for sig i to eller flere hold. 2. Elever fra to eller flere klasser slås sammen og undervises samtidigt. 3. En kombination af ovenstående. Det første tilfælde kan f.eks. repræsenteres ved at indføre to nye klasser, med den hard constraint at disse klasser ikke kan undervises samtidigt med den klasse de stammer fra. I det andet tilfælde kan man f.eks. slække på hard constraints om at en lærer ikke kan være to steder på en gang og sørge for at klasse/fag-kombinationen bliver tildelt de samme tidsintervaller for alle klasserne. 2.1.2 Lektionsplaner På universiteter er elever (studerende) ikke delt op i grupper i nær samme grad. I princippet er alle fag åbne for alle studerende, når forudsætninger opfyldes. Hvis der laves en lektionsplan, hvori alle fag på det pågældende universitet optræder, er man derfor interesseret i at optimere mængden af mulige studieforløb for de enkelte studerende, så visse anbefalede studieforløb altid er mulige, mens muligheden for andre kombinationer af fag der kan passe sammen er størst mulig. Det vil sige det er E K T hvor E er eksempler på elever der følger forskellige anbefalede studieforløb som skal være mulige. Det er således ikke er krav, som med f.eks. skoleskemaer, at alle studerende skal have et skema hvor det er muligt at følge alle fag på alle tidspunkter, da det er muligt at vælge andre end de anbefalede forløb. Når tilmeldingerne er sket, skal der så lægges et nye skema for lokalefordelingen, da man først på dette tidspunkt kender antal studerende pr. hold. 2.1.3 Eksamensplaner At planlægge eksamen minder en del om at lave et skoleskema, men der er her ikke tale om et skema for en uge som genbruges. Der skal tages hensyn til andre ting end ved skoleskemaet, så som at der skal være et vist mellemrum mellem at de samme elever skal til eksamen og at mundtlige eksameners tidsforbrug afhænger af antal elver der skal til eksamen. Tidsperioderne vil ofte være meget forskellige fra fag til fag, og med hensyn til optimering (soft constraints) gælder det om at få fordelt eksamenerne jævnt ud over hele eksamenstiden for hver klasse og elev, hvilket er det omvendte af optimering af skoleskemaet, hvor det som regel gælder om at undgå for lange pauser mellem fagene.

7 2.1.4 Andre Planlægning af større arrangementer, koordinering af kalendere og planlægning af større sportsbegivenheder har problemstillinger der minder om skemalægning. 2.2 Skemalægning i folkeskoler/gymnasier En gang eller et par gange om året skal der på de fleste skoler lægges et skema. Det sker efter det er klart hvilke klasser der bliver i den kommende periode, hvilke fag de skal have samt hvordan lærerne skal fordeles på fag og klasser. Som regel afleverer lærerne nogle ønsker til den del af skemaet der vedrører dem, som skemalæggeren kan tage hensyn til. Herefter lægges et skema en gang for alle, der sjældent laves om i løbet af den periode det gælder for. 2.2.1 Skemaets parametre Næsten al undervisning på traditionelle skoler er opdelt i et antal lektioner pr. dag der falder på ganske bestemte tidsintervaller og har en varighed af 45 minutter, og der er næsten altid fem ugedages undervisning. Den uge gentages da gennem hele perioden. Det forekommer at der er undervisning som ikke følger disse regler, men det er som regel et langt mindre problem at håndtere dette end at lægge selve det store skema, så det bliver normalt lavet manuelt. Typisk er der op til 8-10 lektioner på en dag og skemaet gælder for et halvt år eller et helt skoleår. En klasse har i størrelsesorden 10 forskellige fag, hvert fag med typisk 2-4 lektioner pr. uge. Antal klasser på en skole varier fra nede omkring 6-8 klasser for et lille gymnasium eller en lille handelsskole, op til måske 40-50 klasser for en stor folkeskole. Antal fag en skole udbyder vil være noget større end antallet af fag en enkelt klasse har, da fagene veksler med årgang og for eksempel studieretning for klassen. Størrelsesorden 20-30 fag. Antal lærere vil naturligvis afhænge af antallet af elever, da antal elever pr. klasse er nogenlunde det samme for store og små skoler. Da lærere generelt har færre timer undervisning pr. uge end elever på grund af forberedelse, mødeaktivitet m.m., vil antallet at lærere være i størrelsesorden det dobbelte af antal klasser. De fleste steder har klasserne et klasseværelse hvor det meste af undervisningen foregår. Derfor er det ikke nødvendigt at lave lokalefordeling, på nær for speciallokaler.

8 2.3 Karakteristik af skemalægning som datalogisk problem Skemalægning handler grundlæggende om at finde en løsning på et problem med at få nogle ressourcer - tid og lærere - fordelt på nogle ressource-forbrugere - klasser og elever - kombineret med et problem med at finde frem til den af disse løsninger der er mest optimal ud fra nogle andre kriterier. 2.3.1 Finde løsninger Blot at finde en løsning der overholder et antal hard constraints er et problem der kan løses rent logisk: Der kan være ingen, mange eller eventuelt en enkelt løsning på problemet. I praksis vil der næsten altid være mange løsninger på problemet, da man inden skemaet skal lægges sørger for at for eksempel ingen lærere har flere timer end der er plads til i et skema. Men det kunne være relevant at lave en undersøgelse af eksistens af en løsning inden selve skemalægningen går i gang. 2.3.2 Optimering Ved optimering er der et antal ønsker fra brugerne af skemaet som på en eller anden måde skal kvantificeres. Dernæst skal programmellet sørge for at disse ønsker bliver opvejet mod hinanden i den løsning der findes. Problemet med at kvantificere et ønske lader sig ikke løse entydigt. I økonomisk teori har man begreber som nytteværdi og paretooptimale løsninger. Her antager man ved hjælp af markedsmekanismer kan omsætte ønsker i målbare mængder nytte og at man kan finde frem til en løsning der er mest optimal for alle parter. Det er muligt, om end måske ikke særligt praktisk, at indføre markedsmekanismer i skemalægning, men i praksis foregår det på en måde der i forhold til økonomisk teori minder mere om planøkonomi: Optimeringen sker på baggrund af ønsker, men hvordan ønskerne vurderes i forhold til hinanden er kalibreret ind i skemalægningen afhænger af en kombination af tilfældigheder, skemalæggerens intuition, programmellets særheder m.m. Men så længe ønskerne er udmøntet i soft constraints og der er foretaget en passsende kalibrering af programmellet, er det datalogiske problem blot at finde en optimal løsning baseret på de data der er givet. Det vil ofte ske ved at opstille en funktion som giver en værdi for hvor god løsningen er (ud fra hvor mange constraints der er overholdt) og finde den løsning med højest værdi. I praksis er skemalægning et alt for komplekst problem til at man kan finde frem til præcis den løsning der har den højeste værdi, så der anvendes i stedet mere eller mindre avancerede heurestikker. 2.3.3 Kompleksitet og eksistens af løsning Kompleksitet af datalogiske problemer klassificeres ofte efter hvor hurtigt man kan finde en løsning på dem, dvs. hvor hurtigt den bedste algoritme der kan løse problemet kan fuldføres. En speciel klasse af særligt svære problemer er NP-komplette problemer. Her vil tiden det kræver at finde en løsning på problemet som funktion af problem-størrelsen ikke kunne beskrives som et polynominum (dvs. f.eks. som kvadratet på problem-størrelsen), men værre end det. (Se f.eks. Russel og Norvig s. 978). Skemalægning vil ofte være et NP-komplet problem. Cooper og Kingston demonstrerer dette ved konstruere et sprog der beskriver skemalægning (C og S s. 284), og herefter vise at forskellige delproblemer, der opstår ved skemalægning, er ækvivalente med kendte NP-komplette problemer. Helt generelt kan man dog

ikke sige at skemalægning er NP-komplet, men i praksis er det næppe muligt at udnytte at der kan forekomme mindre komplekse skemalægningsproblemer. 9 Da soft constraints ikke nødvendigvis skal overholdes, vil et skemalægningsproblem have en løsning, såfremt alle hard constraints kan overholdes.

10 3 Metoder til automatisk skemalægning Maskinel skemalægning anvendtes allerede for over 30 år siden, men især indenfor de seneste 10-15 år er der sket meget forskning på området. Blandt andet afholdes der ca. hvert andet år en International Conference on the Practice and Theory of Automated Timetabling, senest i 2008. Der er grundlæggende to typer heurestikker som bruges til at søge løsninger på et problem som skemalægning: 1. Global søgning, hvor man søger bredt blandt alle mulige løsninger. 2. Lokal søgning, hvor man søger stadig bedre løsninger nær en allerede fundet løsning. Ulempen ved lokal søgning er at man risikerer at ende med et lokalt maksimum, som er en løsning der er god blandt de løsninger der er undersøgt, men globalt set er dårlig. Ulempen ved global søgning er den ofte er ret usystematisk og tidskrævende. En af årsagerne til at man ofte ser kombinationer af de to typer heurestikker er et ønske om at begrænse disse ulemper. 3.1 Simple heurestikker De første forsøg på at lave automatisk skemalægning anvendte heurestikker man kendte fra de manuelle metoder. (Schaerf s. 7). Som for eksempel at man fandt frem til de fag, lærere eller klasser der var sværest at placere, og lagde dem i skemaet først, dernæst de næstsværeste o.s.v. 3.2 Tabu search Tabu søgning er en udvidet form af simpel lokal søgning efter maksimum. (Boufflet og Nègre s. 335). Udvidelsen består i at tilføje en tabu-liste over løsninger der allerede har været prøvet og som er tabu for søgningen indtil nogle andre løsninger har været prøvet. Algoritmen kører således: 1. Find en løsnings-kandidat 2. Find en nabo-løsning, der ikke er på tabu-listen, til den bedste løsning der haves. 3. Beregn (ved hjælp af en funktion) hvor god den nye løsning er. 4. Hvis den nye løsning er dårligere end den gamle, hoppes tilbage til 2. 5. Hvis den nye løsning er bedre end den gamle, vælges denne løsning som den nye bedste og den gamle bedste løsning smides på tabu-listen. Såfremt kriteriet for at stoppe (konvergens eller antal gennemløb) ikke er opnået, hoppes tilbage til 2. Ved at have en tabu-liste udgås det hele tiden at støde på de samme løsninger og derved kan algoritmen springe væk fra et eventuelt lokalt maksimum. 3.3 Simulated annealing Simulated annealing ( simuleret udglødning ) er en metode baseret på hvordan stoffer køler af i naturen (Thompson og Dowsland s. 346). Hvis man køler stof ned meget hurtigt, kan der opstå spændinger og uhensigtsmæssige strukturer i det, mens en langsom nedkøling kan udjævne spændinger og give et mere homogent materiale. Som analogi for søgningsalgoritmer, svarer en høj temperatur til store spring for hver søgning, mens lave temperaturer svarer til små spring. Ideen er da at man starter med at søge efter løsninger der ligger i et bredt område og efterhånden sænker temperaturen og koncentrerer sig om at forbedre de lokale løsnin-

ger der er fundet. Ved at man starter med en høj temperatur og søger løsninger bredt, mindskes chancen for at havne i et lokalt maksimum. 11 3.4 Constraint logic programming Denne metode (Cheng m.fl. s. 116) går ud på at fylde skemaet op, en lektion ad gangen, indtil der haves et færdigt skema. For hver lektion der søges placeret, gennemgås samtlige contraints. Hvis det ikke er muligt at opfylde alle constraints, fjernes de i en bestemt rækkefølge, indtil det er muligt at placere lektionen. Hvis det ikke er muligt at placere lektionen uden at overtræde en hard constraint, aktiveres en anden algoritme, som forsøger at omplacere de lektioner der allerede er placeret. Resultatet, såfremt algoritmerne kan finde en løsning, er et skema hvor alle hard constraints er opfyldt, mens soft constraints er opfyldt i større eller mindre grad. Fordelen ved denne metode er at nye constraints blot skal formuleres og ikke kræver en større mængde ekstra programmering. Den tilsvarende ulempe er at det kræver et meget komplekst logisk sprog at formulere alle tænkelige constraints, så arbejdet i stedet består i at implementere et sådant sprog. 3.5 Genetiske algoritmer Genetiske algoritmer er heurestikker der bruger global søgning. Ligesom f.eks. kunstige neurale netværk er genetiske algoritmer grundlæggede en statistisk metode til at få et system af tal og beregninger til at konvergere mod en løsning på et givet problem. Inspirationen til genetiske algoritmer kommer fra Charles Darwins teori om evolution: De forskellige biologiske arter udvikler sig over tid, fordi de tilpasser sig deres omgivelserne og bliver bedre til at leve i dem. Det sker ved et ganske enkelt princip: Der opstår små ændringer i individerne, og de ting som fører til bedre tilpasning overlever på lang sigt, ved at disse individer bedre er i stand til at overleve og forplante sig. Mange små ændringer bliver over tid til store ændringer. Det på Darwins tid meget kontroversielle var at det var tilfældigt opståede ændringer som var basis for evolutionen. Med genetiske algoritmer som datalogisk metode er der ikke den slags problemer, da det er ganske meget nemmere at demonstrere en algoritme end en biologisk evolution der forløber over lange tidsrum. En genetisk algoritme består af følgende dele: Genomer, som er en løsnings-kandidater til det problem man ønsker at løse. Fitness, som er en egenskab ved genomet, udregnet efter hvor god en løsning det er. Gener, som er dele af genomer et genom består af et antal gener. En population af genomer. Algoritmen forløber således: 1. Populationen ældes. Nogle genomer overlever, nogle genomer parres med andre, således at deres gener flettes sammen (rekombineres) med andre, resten dør ud. Fitness styrer chancen for at et genom overlever eller formerer sig. 2. Populationen udsættes for mutation, tilfældige ændringer i genomerne, der indtræffer med en vis sandsynlighed. 3. Ny fitness beregnes. 4. Algoritmen kører videre et bestemt antal gange (generationer) eller til et andet kriterium for at stoppe er opfyldt.

Når algoritmen er færdig, kan en passende løsning udvælges ud fra den overlevende population, som regel løsningen med højest fitness. Genetiske algoritmer afsøger meget store søgerum, da de opererer med store grader af tilfældighed i udvælgelsen af løsnings-kandidater. Af samme årsag er de ikke særligt effektive med hensyn til tidsforbrug, men da skemalægning er en aktivitet der foregår ret sjældent, er det ikke af afgørende betydning. 3.5.1 Hollands skemateorem og byggeklodshypotesen J.H. Holland, der opfandt genetiske algoritmer, fandt på begrebet skema til at forklare genetiske algoritmers virkemåde. Ideen er at ethvert gen er repræsenteret binært som en streng, hvor * angiver at både 0 og 1 er mulige værdier. For eksempel: 0 1 * * 0* * 1 1 Til ethvert skema hører der da en gennemsnitlig fitness for alle løsninger som dette skema indgår i. Ovenstående eksempel har for eksempel 16 forskellige mulige værdier. I en given population er det usandsynligt at alle disse er repræsenteret, så der er tale om et estimeret gennemsnit. Men givet at skemaet er repræsenteret, kan det beregnes hvordan antallet af instanser af skemaet i populationen vokser (eller falder) ud fra dette gennemsnit og den gennemsnitlige fitness i hele populationen. Når effekten af rekombination og mutation tages i betragtning, fås der en formel på denne form (efter M. Mitchell s. 29): Hvor I er antal instanser af skemaet, E(I) estimeret antal instanser, f estimeret gennemsnitlig fitness, og de to P er hhv. chancen for at instanser af skemaet kan overleve rekombination og mutation. Formlen (Skemateoremet) siger noget om at skemaer med høj estimeret gennemsnitlig fitness vil have et ekspotentielt stigende antal instanser i populationen. I Hollands skemateorem optræder rekombination kun som noget der ødelægger overlevelseschancen. Men rekombination er formentlig også det der gør genetiske algoritmer så velegnede til at finde løsninger. Byggeklodshypotesen forsøger at beskrive dette teoretisk, som at gode løsninger til dele af et problem kombineres og skaber en god løsning til hele problemet. Men det teoretiske fundament for denne hypotese er meget omdiskuteret. Der findes en lang række andre forsøg på at beskrive genetiske algoritmers virkemåde teoretisk. (Se f.eks. M. Mitchell s. 117-152). 3.6 Memetiske algoritmer E ( I ) ( skema) f f ( population ) ( 1 P )( P ) t + 1 It r 1 Indenfor evolutionære algoritmer, en betegnelse der omfatter både genetiske algoritmer og andre beslægtede teknologier, har flere forskellige biologiske evolutionsprincipper været forsøgt omsat til datalogiske metoder. Her er man ikke så bundet af om en given teori kan forklare observationer i naturen. Det gælder følgende (T.Mitchell, s. 266): Darwin. Naturlig udvælgelse. Individer i en ny generation varierer en smule. De bedst tilpassede overlever. Lamarck. Videreførsel af et individs personlige udvikling til næste generation. Den i fiktion ofte sete (men i biologien for længst forkastede) ide om at gener kan videre- m 12

bringe erfaring. De bedste overlever og er biologisk tilpassede til at nyde godt af hvad en tidligere generation har lært. Baldwin. De individer som bedst er i stand til at lære at tilpasse sig omgivelserne overlever. Det er ikke selve tilpasningen men evnen til at tilpasse sig der forbedres. Det er naturligvis et princip som er mest velegnet til der hvor omgivelserne forandrer sig ofte. Man kan se mennesket som den art der bedst efterlever Baldwins evolutionsprincip. De mere avancerede algoritmer baseret på evolutionsprincippet kaldes som nævnt ofte memetiske algoritmer. Det kan være algoritmer baseret på Lamarcksk evolution eller Baldwinprincippet. Udtrykket stammer fra bologen Richard Dawkins (W.E. Hart s. 13), som forslog en udvidelse af Darwins princip, hvor højerestående arter (mennesker) ikke så meget udvikler deres hardware (gener) som deres software (tanker, ideer) ved hjælp af naturlig udvælgelse. De bedste ideer, eller bedste metoder til at løse et problem på, overlever. Memetiske algortimer bruges også som generel betegnelse for metoder der kombinerer genetiske algoritmer med andre metoder. Ideen er at den genetiske algoritme står for at lave en global søgning, mens den eller de andre metoder man kombinerer med laver en lokal søgning. Man udnytter her at den genetiske algoritme har lavet en hel population at mulige løsninger, der kan forbedres på, hvilket kan hindre at man blot finder et lokalt maksimum. Andre betegnelser for det der nu kaldes memetiske algoritmer er blandt andet hybride genetiske algoritmer, genetiske lokal søgnings algoritmer eller Lamarckske eller Baldwinske evolutionære algoritmer. (Se Burke og Landa Silva for en oversigt over brug af memetiske algoritmer til skemalægning). 3.7 Andre metoder Andre metoder, der ofte er set brugt, er at transformere skemalægningsproblemer til andre problemer der allerede er udviklet mange løsningsmetoder og heurestikker til. Det gælder for eksempel graffarvning. Desuden ses andre metoder fra kunstig intelligens-forskningen, som for eksempel fuzzy logik og sværmintelligens, anvendt i nyere artikler om skemalægning. (Se f.eks. SATATs hjemmeside for oversigter over præsentationer ved konferencerne). 13

14 4 GenetiskSkema - en genetisk algoritme til skemalægning GenetiskSkema er en simpel genetisk algoritme der ved hjælp af nogle generelle constraints kan finde brugbare løsninger på skemalægningsproblemer i skoler. Det valgte programmeringssprog er java, da et objektorienteret programmeringssprog skønnes at være nemmere at læse for mennesker og java er stort set platformsuafhængigt. 4.1 Designovervejelser Der er lagt væk på enkelhed og overskuelighed og knap så meget på effektivitet. 4.1.1 Genom og gener Der er mange mulige repræsentationer af skemaer. Et gen kan for eksempel sættes til at være en enkelt aktivitet på et bestemt tidspunkt. Genomet består da af alle de aktiviteter der skal afholdes (lektioner i klasser), hvor de enkelte gener adskiller sig ved at have valgt forskellige tidspunkter at afholde aktiviteten på. Her er valgt en repræsentation, som lader et gen være en større enhed, nemlig skemaet for en enkelt klasse. Genomer er da samlingen af skemaerne for alle klasser. Gener adskiller sig her fra hinanden ved en række aktiviteter, som er anbragt forskelligt. Der er således mere information i hvert gen end hvis genet blot var en enkelt aktivitet. Det gør det sværere at frembringe nye brugbare gener ved mutation, men giver muligvis bedre muligheder på at bevare information om gode skemaer for enkeltklasser. Et vigtigt design-problem for genetiske algoritmer er hvordan man sørger for at algoritmen konvergerer frem mod stadigt bedre løsninger, i stedet for blot at levere en endeløs række af mere eller mindre brugbare løsninger. Her er det vigtigt at vælge generne således at man ved rekombination af to gode genomer vil nå frem til et nyt godt genom. Ved at vælge genet som et skema for en klasse opnås det at skemaer der er gode for klasserne også vil være gode for klasserne ved en rekombination. Men samtidig risikerer man at miste andre gode egenskaber, som gode skemaer for lærere og overholdelse af hard constraints. Det er dog normalt sådan at skemaet for elever er langt mere udfyldt end skemaet for lærere, så chancen for at en tilfældig rekombination af skemaer for klasser giver overtrædelser af hard constraints er langt mindre end hvis noget tilsvarende blev gjort med lærernes skemaer. Det at genet er et skema for en klasse, gør at hard constraints mht. at en klasse ikke kan have aktiviteter i samme tidsrum automatisk bliver overholdt, såfremt generne initialiseres således og mutationer ikke kan ændre på det (hvilket er tilfældet med GenetiskSkema). Ved rekombination kan der vælges mellem flere forskellige strategier (T. Mitchell s. 253). For eksempel kan hvert genom deles i to stykker som hver indeholder et antal gener. Disse stykker svarende til kromosomer i biologien, kombineres da. (Metoden kaldes singlepoint crossover). Her er i stedet valgt at foretage tilfældig udvælgelse af enten fader eller moder for hvert enkelt gen, svarende til at biologiske individer havde kromosomer som hver bestod af kun et gen. Et tredje alternativ er at skære genomet i et antal stykker udvalgt således at vigtige egenskaber som overholdelse af hard constraints bevares ved en rekombination. (Se for eksempel Erben og Keppler s. 204 for en måde dette kan gøres på). 4.1.2. Hard constraints Håndtering af hard constraints i genetiske algoritmer kan ske enten ved helt at udelukke genomer der ikke overholder hard constraints eller ved at give den en meget lav fitness-værdi som sørger for at sortere dem fra efterhånden. Her er valgt sidstnævnte metode. Det giver et

problem med at kalibrere soft constraints i forhold til hard constraints. Hvis vægten af hard constraints sættes for lavt, vil der måske ikke opstå brugbare løsninger i populationen (dvs. løsninger som overholder alle hard constraints), men ved for høj vægtning kan man risikere at der kun optimeres i forhold til hard constraints, så soft constraints ignoreres. Ulempen ved automatisk at sortere alle genomer der overtræder hard constraints fra er imidlertid at man begrænser søgerummet, og kan risikere aldrig at finde de gode løsninger der ligger i et område hvor hard constraints ofte overtrædes. For at minimere ovennævnte risiko for at man ved rekombination laver løsninger med mange overtrædelser af hard constraints er følgende mekaniske blevet implementeret i GenetiskSkema: Ved rekombination undersøges det gen for gen hvor godt genet fra det ene genom passer sammen med det andet genom. Hvis antallet af hard constraints ville øges ved at dette gen (og kun det) indsættes, reduceres chancen for at genet kommer med i det rekombinerede genom. Eller med fader/moder-analogien: Som udgangspunkt overtager barnet moderens gener, mens chancen for at et givet af faderens gener tages med i stedet afhænger af hvor godt det passer sammen med moderens gener (mht. hard constraints). 4.1.3 Fitness Fitness som en sum af fitness for hver constraint har den ulempe at enkelte bidrag kan forsvinde i mængden : Chancen for at et gen med x + y fitness, x >> y, udvælges er kun en anelse større end chancen for at et gen med fitness x udvælges, hvilket gør at udvælgelsesmekanismen stort set ikke skelner mellem de to. Der er dog måder at løse det problem på. Udvælgelsen kan foregå på forskellige måder, for eksempel (T.Mitchell s. 255): 1. Roulette -metoden. Chancen for at blive udvalgt er direkte proportional med fitness. 2. Turnerings -metoden. Der udvælges to helt tilfældige genomer, dvs. uafhængigt af deres fitness. Der trækkes lod mellem de to. Således at genomet med højest fitness har størst chance for at vinde, men ikke proportionalt med den relative fitness. For eksempel at genomet med højest fitness har en fast 75% chance for at vinde. 3. Rang -metoden: Genomerne ordnes efter rang i forhold til deres fitness. Chancen fro at blive udvalgt er da proportional med rangen, ikke fitness. Her er valgt metode roulette -metoden, men for at undgå ovennævnte problem, er fitness et produkt af fitness for hvert enkelt constraint, i stedet for en sum. Det kan give nogle meget høje værdier for fitness og muligvis sortere gener fra for hurtigt, så antallet af forskellige gener bliver for lille til at rekombinationen fungerer effektivt. Dvs. det tidligere nævnte problem kaldet crowding. Men det gør også at dårlige gener hurtigt forsvinder. 4.2 Implementerede hard constraints Den eneste hard constraint der testes eksplicit for er om en lærer er to steder på en gang. Implicit testes der for om en klasse er tildelt flere aktiviteter i samme tidsrum ved at initialisering, rekombination og mutation ikke overtræder denne constraint. 4.3 Implementerede Soft constraints I stedet for individuelle skemaønsker er der indsat en række generelle regler: 1. Elever skal have så få mellemtimer som muligt. 2. Fag på samme dag skal helst ligge i rækkefølge. 3. Forskellige tidspunkter på ugeskemaet vægtes forskelligt, f.eks. kan en meget sen lektion 15

sættes til ikke at være særlig ønskeværdig og en tidlig lektion til at være ønskværdig. 4. Antal lektioner en lærer kan have på en dag kan vægtes forskelligt, f.eks, kan det vægtes højt ikke at have timer, dvs. have en fridag. 4.4 Beskrivelse af programmel Kodet i java kompileret med javac 1.5.0_01 til Windows. Den komplette programkode findes i appendiks A. Vigtige globale variable: fitnessintervaller: Intervallet [0:1] delt op så størrelsen på del n er proportional med fitness af genom n i forhold til summen af alle genomers fitness. StartHCTest: Variabel til styring af hvornår rekombination af genomer skal tage hensyn til overholdelse af hard constraints. main Et antal inddatafiler indlæses: Parameterfil (se parameterbeskrivelse i appendiks B) En population oprettes. Den genetiske algoritme forløber herefter således: 1. Beregn fitness for genomerne i populationen 2. Foretag formering og udvælg overlevende genomer 3. Muter populationen 4. Såfremt max antal generationer ikke er nået: gå til 1. Udskriv resultatet 4.4.1 java klasser Population Array genom: Et antal instanser af Genom svarende til populationsstørrelsen. Metode beregnfitness: Beregn fitness for alle genomer og summer dem. Metode formering: Lav nye genomer til en ny generation, bestående af overlevere og rekombinationer af de gamle genomer, udvalgt på baggrund af fitness. Metode mutation: Udfør mutation på parameterbestemt procentdel af genomer. Metode printskema: Udskriv populationen på læsbar form (som skoleskemaer). Metode printfagfordeling: Udskriv liste over hvilke fag og klasser lærerne har Metode dumpgenom: Gem genomerne i populationen på kompakt form i outputfil. Genom Array gen: Et antal instanser af Gen svarende til størrelsen af genomet (dvs. antal skoleklasser) Variabel fitness: Genomets fitness (fra senest det blev beregnet). Variabel antalhc: Antal overtrædelser af hard constraints genomet har (som kan være 0). Variabel antalmellemtimer: Totalt antal mellemtimer for et genom. 16

Metode rekombiner: Sammensæt et nyt genom af to gamle ved rekombination af gener. Metode muter: Lav mutation i tilfældigt udvalgt gen. Metode beregnfitness: Beregn fitness af genomet og om det overtræder hard constraints. Metode mellemtimer: Beregn antal mellemtimer for genomet. Metode samletimer: Beregn antal nabolektioner med samme fag. Metode arbejdsdag: Beregn fitness-bidrag fra længden på lærernes arbejdsdage. Metode printlaererskema: Udskriv skemaer for lærere. Metode hardconstraints: Beregn antal overtrædelser af hard constraints. Metode printskema: Udskriv genomet på læsbar form (som skoleskemaer). Metode genstreng: Dan genomet som en streng af bogstaver. 17 Gen Array skema: Skema for en skoleklasse. Metode muterskema: Byt om på aktiviteten for to tilfældige tidspunkter i skemaet. Metode startskema: Initialiser skema ved først at lægge aktiviteterne på de tidligst mulige tidspunkter og dernæst lave mutation (med ovenstående metode) på alle tidspunkter. Metode printskema: Print skemaet for en enkelt skoleklasse. Metode gentilstreng: Lav genet som en streng af bogstaver (og evt. andre tegn). 4.5 Kalibrering Det krævede en del kalibrering at få algoritmen til at konvergere tilfredsstillende. For eksempel viste vægtning af hard constraints i forhold til soft constraints sig at fungere bedst hvis hard constraints kun vægtes ganske lidt mere end soft constraints.

18 4.6 En praktisk test Som en test af programmellet er valgt et praktisk skemalægningsproblem fra en virkelig skole, således at løsningerne kan sammenlignes med det skema der faktisk blev anvendt. Der er dog et par ting som ikke er implementeret i GenetiskSkema, således at det ikke kunne lade sig gøre at lave et skema eksakt som ønsket. Der vil blive redegjort for dette i konklusionen. 4.6.1 Præsentation af test-problem Skemalægningsproblemet er et skema for en skole med 8 klasser der tilsammen har 20 forskellige fag og 19 lærere. Det skal gælde for et halvt år. (Baseret på skemaet for Kalundborg Handelsgymnasium og HG, forår 2009). 4.6.2 Vurdering af programmellets praktiske anvendelighed Her ses skemaet for en klasse, til venstre lavet med GenetiskSkema, til højre det anvendte. multimed. dansk afsaetn. fransk engelsk afsaetn. psykologi engelsk virk.oek. matematik multimed. virk.oek. dansk samtidsh. psykologi afsaetn. psykologi engelsk virk.oek. matematik afsaetn. virk.oek. lektiecaf samtidsh. matematik int.oek psykologi int.oek engelsk fransk afsaetn. matematik afsaetn. int.oek. matematik dansk tysk int.oek engelsk fransk psykologi fransk engelsk int.oek. int.oek. samtidsh. dansk afsaetn. virk.oek. lektiecaf psykologi virk.oek. engelsk fransk matematik samtidsh. dansk afsaetn. multimed. engelsk fransk matematik virk.oek. matematik fransk matematik matematik multimed. multimed. dansk tysk virk.oek. matematik virk.oek. matematik fransk multimed. virk.oek. Begge ses at have en rimelig spredning af fag mht. fordeling over ugen og lektioner i rækkefølge. Der var naturligvis ingen overtrædelser af hard constraints i nogen af skemaerne. Virkelighedens skema har knap så stor spredning i antal lektioner pr. dag og har ingen mellemtime, men det kan skyldes at der var en begrænsning på 8 lektioner pr. dag der. Klassen (dvs. genet) var tilfældigt udvalgt. I andre af klasserne var der større forskel, specielt for de klasser som havde relativt få lektioner pr. uge. Det ekstreme tilfælde var nok dette: salg og s laeringk. erhv.oek. laeringk. inf.tekn. erhv.oek. engelsk inf.tekn. laeringk. samfundsf salg og s erhv.oek. laeringk. dansk inf.tekn. engelsk inf.tekn. livsstil laeringk. dansk salg og s lektiecaf laeringk. dansk inf.tekn. salg og s laeringk. dansk dansk dansk lektiecaf laeringk. inf.tekn. erhv.oek. lektiecaf erhv.oek. livsstil engelsk laeringk. samfundsf livsstil erhv.oek. inf.tekn. livsstil engelsk laeringk. laeringk. lektiecaf inf.tekn. laeringk. Her er der både meget større spredning i antal timer pr. uge flere mellemtimer i Genetisk- Skemas version. Så her er en forbedring ønskelig.

19 6.6.3 Analyse af testdata Der blev kørt en række test med forskelligt valg af parametre. De føromtalte skemaer svarer til denne kørsel med en population på 100 og 2000 generationer: 140 120 100 80 60 40 20 0-20 -40 0 300 600 900 1200 1500 1800 2100 Generationer Hard constraints Mellemtimer LOG ( FITNESS ) De tre serier af tal er hhv. et mål for fitness, antal overtrædelser af hard constraints og antal mellemtimer som et eksempel på overtrædelse af soft constraints. Det ses at antal overtrædelser af hard constraints meget hurtigt daler, overtrædelse af soft constraints udviser en faldende tendens over det meste af forløbet, mens fitness af løsningerne (som følge heraf) er stigende helt frem til generation 2000. At fortsætte til efter generation ca. 1500-2000, så imidlertidig ikke ud til at have nogen entydig effekt. Mutationer er en vigtig forudsætning for at algoritmen fungerer, som det ses her af en kørsel med samme parametre som ovenfor, men med mutationer koblet fra: 140 120 100 80 60 40 20 0-20 0 300 600 900 1200 1500 1800 2100 Generationer Hard constraints LOG (FITNESS) Mellemtimer

Uden mutationer bliver antallet af gener hurtigt reduceret, mens der ikke vil komme nye til. Det vil sige, at når først den optimale kombination af gener er fundet, kan der ikke ske yderligere forbedringer af fitness. 20 160 140 120 100 80 60 40 20 0-20 -40 0 300 600 900 1200 1500 1800 2100 Hard constraints Mellemtimer LOG (FITNESS) For ikke at risikere en for hurtig udtynding i generne, tilkobles den mekanisme der favoriserer gener som skaber få overtrædelser af hard constraints først omkring midtvejs i forløbet. Men som det ses i ovenstående diagram, har det i denne test ikke den store betydning hvornår det sker. Parametre her er igen som i den første kørsel, på nær at ovennævnte mekanisme er koblet ind fra start. Reduceres størrelsen af populationen, fungerer algoritmen stadig, om end det går betydeligt langsommere. Igen er det samme parametre, men med en population på kun 10: 140 120 100 80 60 40 20 0-20 0 5000 10000 15000 20000 Hard constraints M ellem tim er LOG (FITNE SS)

4.6.4 Sammenligning med færdigudviklet skemalægningsprogram: Lantiv Timetabler Lantiv Timetabler er et program til skemalægning der kan hentes gratis på internettet. Det har både mulighed for at lægge et skema manuelt og for at få programmet til at gøre det. Data til Lantiv tastes ind i en database via et brugerinterface. Der er følgende tabeller: Days: De ugedage der er undervisning. Lessons: De tidsintervaller en dag er delt op i. Subjects: Fag. Groups: Klasser Students: De enkelte studerende* Teachers: Lærere Rooms: De lokaler der er til rådighed* Equipment: De begrænsede ressourcer der er til rådighed* Activities: Sammenknytning af group, subject, teacher, room og equipment. Programmet kan køre uden man bruger felterne mærket *. Skærmbillederne ser således ud: 21 Når data er tastes ind, går man videre til et selve skemalægningsdelen af programmet. Her skal man først indlægge constraints. Det foregår ved at man for de fleste tabeller i databasen kan indsætte forskellige minimum og maksimum værdier svarende til hard constraints og nogle desirable værdier svarende til soft constraints:

22 Programmet holder da øje med om constraints bliver overholdt, hvad enten man lægger skemaet manuelt eller automatisk. Ved automatisk skemalægning søges efter en løsning der overholder alle constrants, og hvis ikke dette er muligt, overholder alle hard constraints og så mange som muligt af soft constraints. Herefter kan skemaet kigges igennem og evt. rettes til og man kan bruge forskellige rapporterings-funktioner.

I forhold til GenetiskSkema er der ingen generelle constraints for hvad der er et godt skema, så alt skal tastes ind som constraints på specifikke data. For eksempel at en bestemt klasse skal have et vist minimum antal lektioner pr dag og højest må have et bestemt antal mellemtimer eller at en bestemt lærer foretrækker et bestemt antal lektioner pr. dag. I modsat fald fyldes de enkelte klassers skemaer blot ud med fagene i tilfældig orden fra første lektion mandag til alt er fordelt. Det er af denne årsag ikke nemt at sammenligne Lantiv og GenetiskSkema direkte. Ved indtastning af nogle værdier for antal timer pr. dag pr. klasse samt et fortrukket antal timer for lærere, opnås følgende (virkelighedens skema til højre, samme eksempel som før): 23 matematik matematik virk.oek. dansk engelsk afsaetn. psykologi engelsk virk.oek. matematik virk.oek. afsaetn. multimed. psykologi matematik afsaetn. psykologi engelsk virk.oek. matematik matematik fransk matematik multimed. int.oek. int.oek psykologi int.oek engelsk fransk engelsk fransk afsaetn. fransk virk.oek. dansk tysk int.oek engelsk fransk virk.oek. engelsk int.oek. dansk psykologi samtidsh. dansk afsaetn. virk.oek. lektiecaf afsaetn. dansk samtidsh. virk.oek. lektiecaf samtidsh. dansk afsaetn. matematik multimed. samtidsh. multimed. psykologi afsaetn. fransk virk.oek. matematik fransk matematik multimed. engelsk matematik tysk int.oek. virk.oek. matematik fransk multimed. Som det fremgår er der ingen problemer med at få et kompakt skema, men fagene er spredt ud ret tilfældigt. Det er muligt at undgå dette på forskellig vis med Lantiv, ved at taste fag ind som dækkende mere end en lektion i træk. Fordeling af timer over en uge for lærere er også svær at styre. I forhold til med GenetiskSkema er de meget tilfældigt fordelt ud over ugen, selv efter forsøg på at samle dem med soft constraints. Det er dog muligt at disse problemer kan løses, men det vil kræve meget individuel tilpasning. Ved en kombination af GenetiskSkema og Lantiv, kunne det tænkes at der kunne opnås et bedre resultat end med hvert enkelt program. Det blev afprøvet med samme eksempel som før, ved først at indtaste GenetiskSkemas skema i Lantiv og dernæst køre Lantivs automatiske skemalægning. Det gav som forventet nogle mere kompakte skemaer, men der var igen problemer med lærernes skemaer. Det samlede resultat blev: GenetiskSkema Lantiv GS + Lantiv Virkelighedens skema mellemtimer 2,1 (0,5) 0,1 1,5 0 fridage/lærer 1,8 (0,7) 0,3 0,8 1,6 Tallene er hhv. gennemsnitlige antal mellemtimer i klassernes skemaer og gennemsnitlige antal dage uden undervisning lærerne har. Tallene i parentes for GenetiskSkema er for en kørsel hvor soft constraint for lærernes arbejdsdage var fjernet ved at stille på vægtene. Det ses at virkelighedens skema (lagt med et kommercielt skemalægningsprogram) er klar bedre på de her målte egenskaber, mens valget mellem GenetiskSkema og Lantis (med de her valgte constraints og parametre) afhænger af om man foretrækker nogle færre mellemtimer for eleverne eller nogle flere undervisningsfrie dage for lærerne. Der er dog det forbehold at ikke alt i virkelighedens skema kunne implementeres i testen, herunder nogle fag som samlæses mellem flere klasser, så resultaterne betyder ikke nødvendigvis at det anvendte skemalægningsprogram (Untis) er så klart bedre end det umiddelbart ser ud her.

Af faciliteter som Lantiv har, som ikke findes i GenetiskSkema er først og fremmest muligheder for at lægge constraints ind for f.eks. hver enkelt lærer eller hver enkelt klasse. Også muligheden for at arbejde skiftevis manuelt og automatisk gør formentlig Lantiv til et bedre skemalægningsprogram end GenetiskSkema i sin nuværende form. Af funktioner der ikke er brug for til løsning af det konkrete problem er blandt andet at Lantiv kan håndtere lokalefordeling, fordeling af knappe ressourcer og fordeling af elever på klasser. Klasser kaldet groups er desuden lavet således at en klasse kan deles op i undergrupper og man kan sætte aktiviteter op der involverer flere klasser. At rette manuelt i skemaet er ganske nemt i Lantiv, som det ses herunder. Man tager blot fat i et fag på skemaet og flytter det med musen. Lantiv viser endda hvor læreren har ledige timer, så man kan holde øje med hvordan lærernes skemaer forandres. 24

25 4.7 Test af den genetiske algoritme Til at teste programmellet yderligere, blev følgende skemalægningsproblem præsenteret for GenetiskSkema: 6 klasser skal have totalt 6 fag (men en bestemt lærer pr. fag) fordelt med et forskelligt antal timer af hvert fag i hver klasse og sådan at alle 12 tidspunkter, der er på en uge, er fyldt op for alle klasser og alle lærere. (Se også appendiks D). Af soft constraints vil det kun være samling af fagene som vil kunne komme i spil, ellers vil problemet bestå i at få opfyldt hard constraints, i et skema hvor det er (urealistisk) svært at få opfyldt dem alle. Ligesom i den første test blev der kørt med en population på 100. Det viste sig at tage mange generationer at finde en løsning (dvs. skema hvor alle hard constraints er opfyldt), typisk op mod et par hundrede, men i nogle tilfælde lykkedes det efter for eksempel 26 generationer. Dette tilfælde bruges i det følgende. En given population indeholder et antal genomer, som hver især indeholder nogle gener. Uden mutationer øges det samlede udvalg af forskellige gener ikke, da de blot kombineres på forskellige måder i nye generationer. Der vil derimod ske en udtynding i generne efterhånden, så nogle gener forsvinder og ikke kommer igen. Men ved hjælp af mutation skabes der nye gener. Det skulle derfor være muligt at følge et bestemt genoms historie mht. hvornår de gener, det består af, opstod. Resultatet af det ses herunder. Da gener svarer til de enkelte skoleklasser, har de fået betegnelser som 1A og 1B: Slut-geners andel af samlet population 100 % 80 60 40 20 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Generation 1A 1B 2A 2B 3A 3B Diagrammet følger historien for det genom der opstår efter 26 generationer. (Genomet, som viser sig at være en løsning til hele skemalægningsproblemet, opstår samtidig med dets sidste gen, men det behøvede ikke at have været tilfældet). Genomet består af en række gener, som enten var med fra starten (1A og 1B) eller opstod senere som mutationer. Som det fremgår, udkonkurrerer de nye gener i løbet af et par generationer resten af generne i populationen, uden dog helt at fjerne dem. Det må formodes at det skyldes at stort set kun hard constraints bidrager til forskel i fitness. Så snart et gen der muliggør overholdelse af endnu en hard constraint opstår, udkonkurrerer dette gen hurtigt de øvrige. Dette bekræftes ved nærstudier af output. Man kan måske også ane på diagrammet at der faktisk opstod et af generne i generation 9, men det døde ud før det kunne formeres, hvorefter det opstod igen ved en mutation i generation 11.