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

Størrelse: px
Starte visningen fra side:

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

Transkript

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

2 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 3 Indhold 1 Indledning Skemalægning Genetiske algoritmer Målet med dette speciale Skemalægning Typer af skemalægningsproblemer Skoleskemaer Lektionsplaner Eksamensplaner Andre Skemalægning i folkeskoler/gymnasier Skemaets parametre Karakteristik af skemalægning som datalogisk problem Finde løsninger Optimering Kompleksitet og eksistens af løsning Metoder til automatisk skemalægning Simple heurestikker Tabu search Simulated annealing Constraint logic programming Genetiske algortimer Hollands skemateorem og byggeklodshypotesen Memetiske algoritmer Andre metoder GenetiskSkema - en genetisk algoritme til skemalægning Designovervejelser Genomer og gener Hard constraints Fitness Implementerede hard constraints Implementerede soft constraints Beskrivelse af programmel Java klasser Kalibrering En praktisk test Præsentation af test-problem Vurdering af programmellets praktiske anvendelighed Analyse af testdata Sammenligning med et færdigudviklet skemalægningsprogram Test af den genetiske algoritme Konklusion på test Konklusion Forskningsfeltet skemalægning nu og i fremtiden Litteratur...28 Appendiks A: Programkode Appendiks B: Beskrivelse af parametre og inddata Appendiks C: Inddata og uddata for praktisk test Appendiks D: Inddata og uddata for test af den genetiske algoritme... 58

4 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 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 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 T ij T jj Kl 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 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 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 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 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 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 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 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 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 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 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 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

9 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 10 3 Metoder til automatisk skemalægning Maskinel skemalægning anvendtes allerede for over 30 år siden, men især indenfor de seneste å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 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 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-

11 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 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.

12 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 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 ). 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

13 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 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 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å) 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

15 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) 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

16 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 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

17 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 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 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) 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 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: 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 At fortsætte til efter generation ca , 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: Generationer Hard constraints LOG (FITNESS) Mellemtimer

20 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 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: Hard constraints M ellem tim er LOG (FITNE SS)

21 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 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.

23 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.

24 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 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 % 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.

Ideer til datalogiprojekter. Keld Helsgaun

Ideer til datalogiprojekter. Keld Helsgaun Ideer til datalogiprojekter Keld Helsgaun 1 Keld Helsgaun Forskning: kombinatorisk optimering heuristisk søgning (kunstig intelligens) programmeringsværktøjer Undervisning: programmering, datastrukturer

Læs mere

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

En lægningsstrategi. Med autopilot og et lille sats til sidst En lægningsstrategi Med autopilot og et lille sats til sidst Lægningsstrategi Prioritetsstyring Der findes forskellige filosofiske indgangsvinkler til prioritetsindstillinger af skydebarrerne ved den automatiske

Læs mere

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

Talregning. Aktivitet Emne Klassetrin Side. Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 VisiRegn ideer 1 Talregning Inge B. Larsen ibl@dpu.dk INFA juli 2001 Indhold: Aktivitet Emne Klassetrin Side Indledning til VisiRegn ideer 1-7 2 Oversigt over VisiRegn ideer 1-7 3 Vejledning til Talregning

Læs mere

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

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE Udfordring INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Overordnet beskrivelse tre sammenhængende forløb... 3 1.2 Resume... 5 1.3 Rammer

Læs mere

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER

Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER Matematikken i kunstig intelligens Opgaver om koordinerende robotter LØSNINGER Thomas Bolander 25. april 2018 Vejledning til opgaver Opgave 1 kan eventuelt springes over, hvis man har mindre tid. De resterende

Læs mere

VisiRegn: En e-bro mellem regning og algebra

VisiRegn: En e-bro mellem regning og algebra Artikel i Matematik nr. 2 marts 2001 VisiRegn: En e-bro mellem regning og algebra Inge B. Larsen Siden midten af 80 erne har vi i INFA-projektet arbejdet med at udvikle regne(arks)programmer til skolens

Læs mere

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard Mandags Chancen En optimal spilstrategi Erik Vestergaard Spilleregler denne note skal vi studere en optimal spilstrategi i det spil, som i fjernsynet går under navnet Mandags Chancen. Spillets regler er

Læs mere

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

Læs mere

Matematikken i kunstig intelligens Opgaver om koordinerende robotter

Matematikken i kunstig intelligens Opgaver om koordinerende robotter Matematikken i kunstig intelligens Opgaver om koordinerende robotter Thomas Bolander 2. juni 2018 Vejledning til opgaver Opgave 1 kan eventuelt springes over, hvis man har mindre tid. De resterende opgaver

Læs mere

Gentofte Skole elevers alsidige udvikling

Gentofte Skole elevers alsidige udvikling Et udviklingsprojekt på Gentofte Skole ser på, hvordan man på forskellige måder kan fremme elevers alsidige udvikling, blandt andet gennem styrkelse af elevers samarbejde i projektarbejde og gennem undervisning,

Læs mere

Nyhedsbrev nr. 11-31. august 2015

Nyhedsbrev nr. 11-31. august 2015 Nyhedsbrev nr. 11-31. august 2015 I uge 45 vil Frey Software præsentere Untis version 2016. Møderne vil blive afholdt henholdsvis i Aarhus tirsdag den 3. november og København onsdag den 4. november 2015.

Læs mere

Statistik II 1. Lektion. Analyse af kontingenstabeller

Statistik II 1. Lektion. Analyse af kontingenstabeller Statistik II 1. Lektion Analyse af kontingenstabeller Kursusbeskrivelse Omfang 5 kursusgange (forelæsning + opgaveregning) 5 kursusgange (mini-projekt) Emner Analyse af kontingenstabeller Logistisk regression

Læs mere

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX

Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX IT -Eksamen Andreas Lauge V. Hansen klasse 3.3t Roskilde HTX [Vælg en dato] Indhold Indledning... 2 Teori... 3 Hvorfor dette design... 4 Produktet... 4 Test og afprøvning... 9 Konklusion... 10 Indledning

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

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

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

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

Kønsproportion og familiemønstre.

Kønsproportion og familiemønstre. Københavns Universitet Afdeling for Anvendt Matematik og Statistik Projektopgave forår 2005 Kønsproportion og familiemønstre. Matematik 2SS Inge Henningsen februar 2005 Indledning I denne opgave undersøges,

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

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

Lars Andersen: Anvendelse af statistik. Notat om deskriptiv statistik, χ 2 -test og Goodness of Fit test. Lars Andersen: Anvendelse af statistik. Notat om deskriptiv statistik, χ -test og Goodness of Fit test. Anvendelser af statistik Statistik er et levende og fascinerende emne, men at læse om det er alt

Læs mere

TANKERNE BAG DE NYE VEJLEDENDE SÆT I MATEMATIK

TANKERNE BAG DE NYE VEJLEDENDE SÆT I MATEMATIK TANKERNE BAG DE NYE VEJLEDENDE SÆT I MATEMATIK De foreliggende vejledende sæt i matematik er gældende fra sommeren 2012 på matematik B og sommeren 2013 på matematik A. Der er en del ændringer i forhold

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

DEFF Projekt evaluering

DEFF Projekt evaluering DEFF Projekt evaluering I projektet stilles kvalitetssikrede, internationale biblioteksressourcer til rådighed for gymnasieelever, så de kan benyttes i den daglige undervisning og især i forbindelse med

Læs mere

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

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

Læs mere

QUICK GUIDE. Skab operationel effektivisering med Microsoft CRM Online

QUICK GUIDE. Skab operationel effektivisering med Microsoft CRM Online QUICK GUIDE Skab operationel effektivisering med Microsoft CRM Online Som erhvervsdrivende ved vi, hvor vigtigt det er at differentiere sig. For at overleve har vi i de seneste årtier set eksempler på,

Læs mere

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

Vi har valgt at analysere vores gruppe ud fra belbins 9 grupperoller, vi har følgende roller Forside Indledning Vi har fået tildelt et skema over nogle observationer af gærceller, ideen ligger i at gærceller på bestemt tidspunkt vokser eksponentielt. Der skal nu laves en model over som bevise

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software

Læs mere

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN MODELSÆT ; MATEMATIK TIL LÆREREKSAMEN Forberedende materiale Den individuelle skriftlige røve i matematik vil tage udgangsunkt i følgende materiale:. En diskette med to regnearks-filer og en MathCad-fil..

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Manual til administration af online booking

Manual til administration af online booking 2016 Manual til administration af online booking ShopBook Online Med forklaring og eksempler på hvordan man konfigurerer og overvåger online booking. www.obels.dk 1 Introduktion... 4 1.1 Formål... 4 1.2

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 3 sider anmarks Tekniske Universitet Skriftlig prøve, den 29. maj 203. ursusnavn: lgoritmer og datastrukturer ursus nr. 02326. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

Læs mere

Langtved Data A/S Nyhedsbrev

Langtved Data A/S Nyhedsbrev Langtved Data A/S Nyhedsbrev Nr. 2 Indledning I denne udgave af nyhedsbrevet har vi valgt at sætte fokus på interessante faciliteter som allerede benyttes af nogle af vores kunder og som kunne være interessante

Læs mere

LEKTION 4 MODSPILSREGLER

LEKTION 4 MODSPILSREGLER LEKTION 4 MODSPILSREGLER Udover at have visse fastsatte regler med hensyn til udspil, må man også se på andre forhold, når man skal præstere et fornuftigt modspil. Netop modspillet bliver af de fleste

Læs mere

Hvordan søger du i LARM.fm?

Hvordan søger du i LARM.fm? Hvordan søger du i LARM.fm? Før vi beskriver, hvordan du søger og arbejder i LARM.fm, vil vi først introducere, hvordan LARM.fm brugerinterfacet ser ud. I øverste venstre hjørne findes søgefeltet og nedenunder

Læs mere

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

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

Læs mere

Effektiv søgning på web-steder

Effektiv søgning på web-steder Effektiv søgning på web-steder 7. maj 1998 Udarbejdet af DialogDesign ved Rolf Molich, Skovkrogen 3, 3660 Stenløse Indhold 1. Indledning 3 1.1. Model for søgning 3 2. Forskellige former for søgning 4 2.1.

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

APPENDIX A INTRODUKTION TIL DERIVE

APPENDIX A INTRODUKTION TIL DERIVE APPENDIX A INTRODUKTION TIL DERIVE z x y z=exp( x^2 0.5y^2) CAS er en fællesbetegnelse for matematikprogrammer, som foruden numeriske beregninger også kan regne med symboler og formler. Det betyder: Computer

Læs mere

Programmering C RTG - 3.3 09-02-2015

Programmering C RTG - 3.3 09-02-2015 Indholdsfortegnelse Formål... 2 Opgave formulering... 2 Krav til dokumentation af programmer... 3 ASCII tabel... 4 Værktøjer... 5 Versioner af ASCII tabel... 6 v1.9... 6 Problemer og mangler... 6 v2.1...

Læs mere

ViKoSys. Virksomheds Kontakt System

ViKoSys. Virksomheds Kontakt System ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

Emneopgave: Lineær- og kvadratisk programmering: Emneopgave: Lineær- og kvadratisk programmering: LINEÆR PROGRAMMERING I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en maksimering eller en minimering

Læs mere

STYR TIDSRØVERNE. 1 Styr tidsrøverne

STYR TIDSRØVERNE. 1 Styr tidsrøverne 1 Styr tidsrøverne 9 1 Styr tidsrøverne Hverdag i kontormiljøet Fred og ro! Det er nu du tager en større sag frem som vil kræve et par timers koncentreret arbejdsindsats. Måske en sag hvor du skal sætte

Læs mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,

Læs mere

Dig og din puls Lærervejleding

Dig og din puls Lærervejleding Dig og din puls Lærervejleding Indledning I det efterfølgende materiale beskrives et forløb til matematik C, hvori eleverne skal måle hvilepuls og arbejdspuls og beskrive observationerne matematisk. Materialet

Læs mere

Supplement til manualen, Kalender-Semesterskema

Supplement til manualen, Kalender-Semesterskema Supplement til manualen, Kalender-Semesterskema Untis er et skemalægningsprogram, der anvendes i mange lande. I Gruber og Petters manual Kalender-Semesterskema (som du finder på vores hjemmeside under

Læs mere

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

Elevskema. Med modulet Elevskema kan du fordele eleverne på kurser og danne individuelle elevskemaer. Elevskema Med modulet Elevskema kan du fordele eleverne på kurser og danne individuelle elevskemaer. Forudsætningen for at arbejde med modulet Elevskema er, at der i Untis er oprettet elever, som er tilknyttet

Læs mere

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

AT-forløb Jordskælv i Chile 1.u Kapitel 1 AT-forløb Jordskælv i Chile 1.u 1.1 Indgående fag I forløbet indgår fagene naturgeografi v. Mikkel Røjle Bruun (BR), samfundsfag v. Ann Britt Wolsing (AW) og matematik v. Flemming Pedersen (FP).

Læs mere

Supplement til manualen, Kalender-Semesterskema

Supplement til manualen, Kalender-Semesterskema Supplement til manualen, Kalender-Semesterskema Untis er et skemalægningsprogram, der anvendes i mange lande. I Gruber og Petters manual Kalender-Semesterskema (som du finder på vores hjemmeside under

Læs mere

Det Rene Videnregnskab

Det Rene Videnregnskab Det Rene Videnregnskab Visualize your knowledge Det rene videnregnskab er et værktøj der gør det muligt at redegøre for virksomheders viden. Modellen gør det muligt at illustrere hvordan viden bliver skabt,

Læs mere

DANSK SKOLEDATA APS. Tlf. 86 44 80 99 E-mail DSD@skoledata.dk DSA-Ventelisten

DANSK SKOLEDATA APS. Tlf. 86 44 80 99 E-mail DSD@skoledata.dk DSA-Ventelisten Indholdsfortegnelse Overordnet beskrivelse af programmets funktioner... 2 Log på... 2 Manuel oprettelse af elev.... 3 Optagelse af elever... 3 1 Gruppering og sortering af elever... 3 2 Udvælg aspiranter...

Læs mere

KORTLÆGNING AF SKOLEDAGENS LÆNGDE

KORTLÆGNING AF SKOLEDAGENS LÆNGDE KORTLÆGNING AF SKOLEDAGENS LÆNGDE UNDERVISNINGS- MINISTERIET RAPPORT SEPTEMBER 2017 INDHOLDSFORTEGNELSE 1 INDLEDNING OG RESUMÉ 6 SKOLEBESTYRELSENS INVOLVERING I SKEMAER Side 3 Side 35 2 INDSKOLINGEN Side

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

Grundlæggende Algoritmer og Datastrukturer

Grundlæggende Algoritmer og Datastrukturer Grundlæggende Algoritmer og Datastrukturer Om kurset Grundlæggende Algoritmer og Datastrukturer Undervisningsformer Forelæsninger: 4 timer/uge (2+2). Øvelser: 3 timer/uge. Café. Obligatorisk program 13

Læs mere

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

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum Jørgen Erichsen Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum I artikelserien Studier på grundlag af programmet SKALAGENERATOREN kommer jeg bl.a. ind på begrebet

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering 1 / 36 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 6, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

Appendiks 1: Om baggrund og teori bag valg af skala

Appendiks 1: Om baggrund og teori bag valg af skala Appendiks 1: Om baggrund og teori bag valg af skala De nationale test gav i 2010 for første gang danske lærere mulighed for at foretage en egentlig måling på en skala af deres elevers præstationer på grundlag

Læs mere

Vejledning Aktiviteter. Opdateret 20. februar 2012

Vejledning Aktiviteter. Opdateret 20. februar 2012 Vejledning Aktiviteter Opdateret 20. februar 2012 Indhold Indledning... 3 Automatisk dannelse af aktiviteter... 4 Årskalender... 4 Dan aktiviteter... 5 Vælg lærere... 6 Opret aktiviteter... 7 Godkend aktiviteter...

Læs mere

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

Dette er et uddrag fra: Lis og Torben Pøhler: Hu Hej - Vild med dyr - en læsevejledning Maaholms Forlag 2000. LET-tallet Dette er et uddrag fra: Lis og Torben Pøhler: "Hu Hej - Vild med dyr" - en læsevejledning Maaholms Forlag 2000. Langt de fleste letlæsningsbøger i Danmark er i dag»lix'et«, det vil sige, at

Læs mere

Ugeseddel 12(10.12 14.12)

Ugeseddel 12(10.12 14.12) Ugeseddel (..) Matematisk Programmering Niels Lauritzen..7 FORELÆSNINGER I ugen. 7. gennemgik vi algoritmer til løsning af heltalsprogrammer ved hjælp af simplex algoritmen. Dette er heltalsprogrammeringsugesedlen

Læs mere

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

Evolutionsteorien set i et historisk lys med fokus på nåturvidenskåbelige årbejdsformer på Dårwins tid. Evolutionsteorien set i et historisk lys med fokus på nåturvidenskåbelige årbejdsformer på Dårwins tid. Skole Deltagende lærer(e) og klasse(r) Emne Indgående fag Niveau Læringsmål Omfang - herunder konkret

Læs mere

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

Bilag 7 Analyse af alternative statistiske modeller til DEA Dette bilag er en kort beskrivelse af Forsyningssekretariatets valg af DEAmodellen. Bilag 7 Analyse af alternative statistiske modeller til DEA Dette bilag er en kort beskrivelse af Forsyningssekretariatets valg af DEAmodellen. FORSYNINGSSEKRETARIATET OKTOBER 2011 INDLEDNING... 3 SDEA...

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Indholdsfortegnelse. Side 1 af 7

Indholdsfortegnelse. Side 1 af 7 Den uddannelsesspecifikke del af studieordningen for bacheloruddannelsen i machine learning og datavidenskab ved Det Natur- og Biovidenskabelige Fakultet, Københavns Universitet 2019 Indholdsfortegnelse

Læs mere

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

Fagrækkefølge mv. 1. Fagrækkefølger for fag og undervisninger Fagrækkefølge mv. Når du optimerer dit grundskema (ugelektioner), kan du på forskellige måder styre, hvordan Untis skemalægger fagene. I denne FAQ er der vist 3 forskellige måder: 1. Fagrækkefølge for

Læs mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

How to do in rows and columns 8

How to do in rows and columns 8 INTRODUKTION TIL REGNEARK Denne artikel handler generelt om, hvad regneark egentlig er, og hvordan det bruges på et principielt plan. Indholdet bør derfor kunne anvendes uden hensyn til, hvilken version

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

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

ViTre ver. 91 Opdatering fra ScanDis A/S. Instruktion og nyheder i TAL. Automatisk ro Ny forbedret udtalebog. Automatisk ro ViTre ver. 91 Opdatering fra ScanDis A/S Instruktion og nyheder i TAL Automatisk ro Ny forbedret udtalebog Automatisk ro ScanDis A/S ViTre version 91 opdatering Side 1 Ny indstilling af oplæsning med funktionen

Læs mere

Vejledning til Eksamensplanlægning

Vejledning til Eksamensplanlægning Vejledning til Eksamensplanlægning Indhold Opret termin... 2 Opret prøvehold manuelt... 8 Censorkartotek... 9 Lærerfriholdelse... 10 XPRS indberetninger og udmeldinger... 11 Udgående censorat... 12 Udskrivning

Læs mere

Matematik og samfundsfag Gini-koefficienten

Matematik og samfundsfag Gini-koefficienten Erik Vestergaard www.matematikfysik.dk Matematik og samfundsfag Gini-koefficienten Den såkaldte Gini-koefficient, introduceret i 92 i en artikel af den italienske statistiker, demograf og sociolog Corrado

Læs mere

Guide til lektielæsning

Guide til lektielæsning Guide til lektielæsning Gefions lærere har udarbejdet denne guide om lektielæsning. Den henvender sig til alle Gefions elever og er relevant for alle fag. Faglig læsning (=lektielæsning) 5- trinsmodellen

Læs mere

Adjunktpædagogikum & KNUD. Camilla Rump

Adjunktpædagogikum & KNUD. Camilla Rump Adjunktpædagogikum & KNUD Camilla Rump God undervisning? Nævn et kriterium I finder afgørende for hvornår undervisning er god undervisning. Sum med din sidemand i 2 minutter. God undervisning mit bud Undervisning

Læs mere

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

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer

Læs mere

Fagdage/fordybelsesdage

Fagdage/fordybelsesdage Fagdage/fordybelsesdage På nogle folkeskoler ønsker man, at en bestemt dag i ugen anvendes som fagdag/fordybelsesdag. Forstået således, at en klasse én dag om ugen KUN har ét fag. I de næste eksempler

Læs mere

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

7. Indstilling af den trådløse forbindelse i Windows XP 7. Indstilling af den trådløse forbindelse i Windows XP Gør klar til indstilling Når du skal i gang med at konfigurere den computer, der skal væres trådløs, er det en god idé at bevare kabelforbindelsen

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Matematik A og Informationsteknologi B

Matematik A og Informationsteknologi B Matematik A og Informationsteknologi B Projektopgave 2 Eksponentielle modeller Benjamin Andreas Olander Christiansen Jens Werner Nielsen Klasse 2.4 6. december 2010 Vejledere: Jørn Christian Bendtsen og

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning

Læs mere

Lagervisning. Dina Friis, og Niels Boldt,

Lagervisning. Dina Friis, og Niels Boldt, Lagervisning Dina Friis, dina@diku.dk og Niels Boldt, boldt@diku.dk 6. april 2001 Kapitel 1 Sammenfatning Dette dokument er et eksempel på en delvis besvarelse af G-opgaven stillet på Datalogi 0 2000-2001.

Læs mere

Elementær Matematik. Mængder og udsagn

Elementær Matematik. Mængder og udsagn Elementær Matematik Mængder og udsagn Ole Witt-Hansen 2011 Indhold 1. Mængder...1 1.1 Intervaller...4 2. Matematisk Logik. Udsagnslogik...5 3. Åbne udsagn...9 Mængder og Udsagn 1 1. Mængder En mængde er

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA

Læs mere

Opsætning af 60 dags regel

Opsætning af 60 dags regel 2015 Opsætning af 60 dags regel Indhold... 0 Guide til opsætning af 60-dags regel i Autolog Klienten... 1 Hvad er forskellen mellem den Automatiske og Manuelle opsætning af 60-dags reglen?... 2 Hvordan

Læs mere

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

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Noter til Perspektiver i Matematikken

Noter til Perspektiver i Matematikken Noter til Perspektiver i Matematikken Henrik Stetkær 25. august 2003 1 Indledning I dette kursus (Perspektiver i Matematikken) skal vi studere de hele tal og deres egenskaber. Vi lader Z betegne mængden

Læs mere

Guide til din computer

Guide til din computer Guide til din computer Computerens anatomi forklaret på et nemt niveau Produkt fremstillet af Nicolas Corydon Petersen, & fra Roskilde Tekniske Gymnasium, kommunikation & IT, år 2014 klasse 1.2 12-03-2014.

Læs mere

REDIGERING AF REGNEARK

REDIGERING AF REGNEARK REDIGERING AF REGNEARK De to første artikler af dette lille "grundkursus" i Excel, nemlig "How to do it" 8 og 9 har været forholdsvis versionsuafhængige, idet de har handlet om ting, som er helt ens i

Læs mere

Allan C. Malmberg. Terningkast

Allan C. Malmberg. Terningkast Allan C. Malmberg Terningkast INFA 2008 Programmet Terning Terning er et INFA-program tilrettelagt med henblik på elever i 8. - 10. klasse som har særlig interesse i at arbejde med situationer af chancemæssig

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Hvad kan jeg i WebUntis?

Hvad kan jeg i WebUntis? Hvad kan jeg i WebUntis? Hvad kan jeg i WebUntis? 1 1. Login 1.1 Login og rettigheder på WebUntis 4 2 2. Skemaer 2.1 Skemaer i WebUntis 7 3 3. Undervisning 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Undervisning i WebUntis

Læs mere

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

IT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4 IT opgave Informationsteknologi B Vejleder: Karl Navn: Devran Kücükyildiz Klasse: 2,4 Dato:03-03-2009 1 Indholdsfortegnelse 1. Indledning... 3 2. Planlægning... 3 Kommunikationsplanlægning... 3 Problemstillingen...

Læs mere

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

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere