Programmering og Problemløsning. Bedre Eksamensplanlægning

Størrelse: px
Starte visningen fra side:

Download "Programmering og Problemløsning. Bedre Eksamensplanlægning"

Transkript

1 Programmering og Problemløsning Bedre Eksamensplanlægning Eva Fajstrup Graversen, Jens Emil Gydesen Mathias Ormstrup Bjerregaard, Mikkel Alexander Madsen Nichlas Bo Nielsen, Sander Jespersen & Ulf Gaarde Simonsen 24. oktober 2012

2

3 Titel: Tema: Bedre eksamensplanlægning Programmering og problemløsning Projektperiode: P2, forårssemesteret februar til 24. maj Projektgruppe: B131 Deltagere: Eva Fajstrup Graversen Jens Emil Gydesen Mathias Ormstrup Bjerregaard Mikkel Alexander Madsen Nichlas Bo Nielsen Sander Jespersen Ulf Gaarde Simonsen Vejleder: Hovedvejleder: Hans Hüttel Oplagstal: 10 Sidetal: 102 Bilagsantal: 5 Afsluttet den 24. maj Abstract: Det Teknisk-Naturvidenskabelige Basisår Datalogi Strandvejen Telefon Fax In this report we have developed a method for planning exams for first year at Aalborg University. We learned about the way to exams are currently planned through communications with the administration. After analysing the current procedure for planning exams, we used graph theory to develop a method for planning the exams, since the translation from the current procedure to graph theory was relatively easy. With this knowledge we developed several possible solutions. We analysed the solutions based on their time complexity to pick the one which would give the best output for the implementation. The solution was then implemented in a C# program which gave a tolerable result, and with this we conclude that it is possible through graph theory to plan the exams. Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne. i

4 ii

5 Forord Dette P2 projekt er udarbejdet af 7 datalogistuderende, på andet semester, fra Aalborg Universitet. Projektet startede den 7. februar 2012, og sluttede d. 24. maj samme år. Projektet er udarbejdet ud fra temaet: Programmering og problemløsning med det formål, at vi, som studerende, opnår færdigheder i problemløsning ved at benytte programmering og dertilhørende modeldannelse. Et krav til P2 var, at der udover en rapport skulle udvikles et program, samt laves en procesanalyse. Kildekoden til programmet kan ses i bilaget. Programmet er udviklet i C#, som var et andet krav til projektet. Ud fra et projektkatalog, udgivet af vejledere, valgte vi emnet Bedre eksamensplanlægning. Vores rapport er opdelt i kapitler med dertilhørende underafsnit. Der vil undervejs være kildehenvisninger til brugte kilder. Kilderne er markeret med tal som henviser til litteraturlisten. Alle kilders webadresser fungerede ved projektaflevering d. 24. maj Bilaget vil kunne findes bagerst i rapporten. Rapporten er udviklet i L A TEX. Der vil i denne rapport blive taget lidt hensyn til en mulig tilbagevending af gruppeeksamen, da det på nuværende tidspunkt ikke er en aktiv del af eksamensplanen på Aalborg Universitet. Vi vil gerne takke vores vejleder Hans Hüttel for vejledning, studiesekretæren for datalogi og software, Maria Lundgaard Andersen, samt tidligere studiesekretær, Anne Thomsen, for deres hjælp med projektet. iii

6 Underskrifter Eva Fajstrup Graversen Jens Emil Gydesen Mathias Ormstrup Bjerregaard Mikkel Alexander Madsen Nichlas Bo Nielsen Sander Jespersen Ulf Gaarde Simonsen iv

7 Indhold 1 Indledning Initierende problem Eksamensplanlægningsprocessen Ressourcer og krav Problemformulering Løsningsmetode Algoritmers tidskompleksitet Tidskompleksitet O-notation Beslutningsproblemer og Optimeringsproblemer Kompleksitetsklasserne P og NP Polynomiel reducibilitet NP-fuldstændighed Pardannelse af grafer Introduktion til grafer Maksimal pardannelse Forøgende stier Hopcroft-Karp algoritmen Flere dage til samme eksamen Knudefarvning Knudefarvning Løsningsmodeller Pardannelse af hver ressource Knudefarvning og pardannelse Introduktion til n-delte grafer Pardannelse ud fra n-delt graf Stifarvning Valg af løsningsmodel Dokumentation Repræsentation af grafer Overordnet programstruktur Brugergrænseflade Vigtige metoder Test Opsummering Konklusion 56 v

8 INDHOLD 7.1 Projektets resultater Vurdering af løsningen Perspektivering Litteratur 57 A Referat 59 B Skema 62 C Programkode 64 D Testparametre 80 E Programoutput 83 vi

9 Figurer 1.1 Problemtræ over vores antagelser for dårlig eksamensplanlægningen Flowchart over sekretærenes eksamensplanlægningsproces Problemtræ over den reelle eksamensplanlægning Eksempel på en todelt graf En grådig pardannelse af Figur Forøgende stier og deres udvælgelse af nye pardannelser BFS og DFS, startende i u 0, på en graf G Fremstilling af hjælpegraf Første gennemløb af Hopcroft-Karps Algoritme De resterende gennemløb af Hopcroft Karps Algoritme for Figur Todelt graf med kurser og lokaler Sortering og udvælgelse af kanter af Figur Ny udvælgelse af kanter af Figur Eksempel på graf til knudefarvning Gennemgang af farvningsalgoritmen på Figur Eksempel på ikke optimal(a), og optimal farvning(b) Opdeling af studieindividuelle kurser Planlæggelse af en eksamen igennem flere pardannelser En 5-delt graf over eksamensplanlægningsressourcer Eksempel på en 5-delt graf, som viser sammenhæng imellem de forskellige ressourcer G G θ Graf repræsenteret som naboliste og som matrix Diagram over knudeklassen, og de klasser der arver fra den Billede af programmets grafiske brugergrænseflade Billede af programmets dropdownmenuer, henholdsvis studie og kursus.. 48 vii

10 Tabeller 2.1 Tabel over funktioners O-notation Tidskompleksitet af Edmonds Algoritme Tidskompleksitet for Algoritme Eksempel på færdigplanlagt eksamen med flere dage Eksempel på en eksamensplan med farvede eksaminer Tidskompleksitet for knudefarvningsalgoritme Tidskompleksitet for pardannelsesmetoden Fordele og ulemper ved pardannelse af hver ressource Tidskompleksitet for knudefarvning og pardannelsesmetoden, hvor n er antal knuder Fordele og ulemper ved knudefarvning og pardannelse Tidskompleksitet for n-delt kombination Fordele og ulemper ved n-delt pardannelse Tidskompleksitet for stireduktion Tidskompleksitet for Knudereduktion Tidskompleksitet for Stifarvningsmetoden Fordele og ulemper ved stifarvning viii

11 Kapitel 1 Indledning I denne rapport vil vi komme med et løsningsforslag til en fremsat problemstilling, der er baseret på Bedre eksamensplanlægning. For at kunne lave et løsningsforslag skal problemet først undersøges, hvilket er formålet med dette kapitel. Først kommer der nogle antagelser om problemet, udarbejdet af gruppen i Afsnit 1.1. Herefter undersøges planlægningsprocessen af eksamen, som den er i dag i Afsnit 1.2, og den sammenlignes med vores antagelser for at få opstillet det reelle problem i Afsnit Før problemformuleringen kan fremstilles, skal de involverede ressourcer i Afsnit og de krav, der stilles til eksamensplanen i Afsnit 1.3.2, gennemgås. Denne viden bruges til at fremstille problemformuleringen i Afsnit 1.4 og en metode til at løse problemet i Afsnit Initierende problem Eksamensplanlægning på Aalborg Universitet (AAU) er en svær opgave at udføre. Der er mange faktorer, der kan gøre at det bliver uoverskueligt, bl.a. mængden af studerende og eksaminer. Derudover er det ikke sikkert at kommunikationen mellem sekretærerne, eksaminatorerne og censorerne er særlig god. Vi har lavet nogle antagelser om hvilke årsager, der gør planlægningen besværlig, og hvilke virkninger en dårlig planlægning har. Dette gennemgår vi kort og stiller op i Figur 1.1, der viser hvilken indflydelse, som vi antager, de har på hinanden. Årsager En af årsagerne, til at eksamensplanlægningen kan være uoverskueligt, er, at der er mange studerende at holde styr på. I 2011 havde AAU 17,731 tilmeldte studerende [4]. De har mange forskellige kurser, som de skal eksamineres i, og der skal anvendes lokaler til disse eksaminer. Derudover er der også interne eller eksterne censorer, som skal inddrages. Kommunikationen mellem sekretærerne, eksaminatorerne og censorerne er ikke nødvendigvis særlig god. Eksaminatorerne kan f.eks. ikke altid svare på sekretærernes anmodninger om tilgængelige tidspunkter i ordentlig tid. Eksaminerne skal planlægges således, at den studerende har tid til at forberede sig til dem. Når der er så mange studerende, eksaminer og lokaler, kan det være svært at holde styr på det uden et system. Hvis der er dårlige eller ingen værktøjer, kræver det meget manuelt arbejde af sekretærerne. Det er også vigtigt, at planlægningsopgaven bliver givet til de rigtige personer dvs. de administrative ansatte. Virkninger En af virkningerne af en dårlig eksamensplan kan være, at tidsperioden mellem eksaminerne bliver for kort, så de studerende ikke har tid nok til at forberede sig, eller 1

12 KAPITEL 1. INDLEDNING kommer til at vente flere uger mellem eksaminer. Et eksempel på dette kan være at en studerende har 4 eksaminer, hvoraf tre af dem ligger i den første uge, og den sidste ligger tre uger senere. Dette kan medføre at de studerende kan blive utilfredse eller stressede. Derudover kan der være et ressourcespild hvis planlægningen er dårlig; med ressourcespild menes der primært tid. Hvis der er en dårlig planlægningsproces kan sekretærerne komme til at bruge unødvendigt tid på planlægningen, hvilket medfører mindsket effektivitet og eventuelt utilfreds personale. Dette er vores antagelser, sat op i Figur 1.1, om hvilke årsager og virkninger der kan findes i forbindelse med dårlig eksamensplanlægning. Dette bruges som udgangspunkt til problemanalysen. Mange studerende Mange rum, censorer osv. Ikke administrative ansatte udfører opgaven Dårlige/ingen værktøjer Dårlig kommunikation Uoverskueligt Dårlig eksamensplanlægning Ikke optimal tid mellem hver eksamen Utilfredse interessenter Spild af Ressourcer Mindre effektivitet Figur 1.1: Problemtræ over vores antagelser for dårlig eksamensplanlægningen 1.2 Eksamensplanlægningsprocessen I dette afsnit vil vi forklare den nuværende planlægningsproces for eksaminer på Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet og Det Sundhedsvidenskabelige Fakultet (TNB) på AAU. Der skelnes mellem tre forskellige eksaminer: Mundtlig, skriftlig og projekteksamen. Al viden i dette afsnit er baseret på kommunikation med studiesekretærerne, som står for planlægningen. Dette foregik ved brug af s og et interview. Ved undersøgelse af planlægningen fandt vi ud af, at der ikke er et konkret regelsæt, som skal overholdes, og at meget af planlægningen foregår manuelt. Et referat af dette interview kan ses i Bilag A. Projekteksaminer og andre mundtlige eksaminer planlægges af studiesekretærerne. Hver studiesekretær sørger for at planlægge alle eksaminer inden for de studier, som de er ansvarlige for, med undtagelse af skriftlige eksaminer, som planlægges af fællessekretæren. Eksamensplanlægningen begynder med at perioden, hvor eksaminerne skal afholdes, væl- 2

13 1.2. EKSAMENSPLANLÆGNINGSPROCESSEN ges af en person højt oppe i ledelsen på AAU. Når eksamensperioden er bestemt, og sekretærerne er underrettet, sender de s med skemaer ud til eksaminatorerne. Sådan et skema kan ses i Bilag B. Dette gøres dog kun for mundtlige og projekteksaminer, da den skriftlige eksamination ikke kræver tilstedeværende eksaminator og censor. Eksaminatorer kan i skemaet afkrydse hvilke dage, de har tid til at eksaminere. Hver sekretær får også et bestemt antal lokaler, de skal råde over, hvilket sker nogle uger efter eksamensperioden er fastlagt. Eksaminatorerne står for at lave en liste af mulige censorer til de mundtlige eksaminer, hvorefter sekretærerne kontakter disse, og finder en censor der kan på pågældende tidspunkt. Ved projekteksaminerne gøres det samme, her laves listen med censorer dog i et samarbejde med eksaminator og semesterkoordinator. Lokaler bliver booket ved hjælp af Webbook. Webbook er et online værktøj til reservering af lokaler [3]. Når eksaminatorerne sender skemaerne tilbage, og lokalerne er fastlagte, kan planlægningen af eksaminerne begynde. Dette gøres manuelt, primært med papir og blyant, samt telefonopkald og s. Udover dette bruges der også TYPO3 [2], som er et administrativt værktøj, hvor eksaminerne bliver skematiseret og herefter bliver gjort klar til offentliggørelse. Under planlæggelsen af eksaminerne har sekretærerne ikke nogle konkrete regler de skal følge. Der er dog nogle forholdsregler, som de følger, hvis muligt. Reglerne sekretærerne stræber efter at overholde er som følgende: En studerende skal ikke have to eksaminer på samme dag Som udgangspunkt undgås at to eksaminer for en enkelt studerende planlægges to dage i træk Hvis en mundtlig eksamenstid skal ændres, stræbes der efter at gøre det så lang tid før eksamenen som muligt At planlægge eksamen er altså en opgave, som sekretærerne foretager stort set manuelt. Hver enkelt eksamen skal tilrettelægges af sekretæren. Dette kan medføre konflikter, som skal løses. En konflikt kan være at flere eksaminer bliver planlagt til at bruge det samme lokale på samme tid, eller en studerende har to eksaminer på samme dag. Udover at meget af planlægningen er manuel, er den også meget afhængig af svar fra de indblandede personer, som skal eksaminere, da disse personer skal svare tilbage til den pågældende sekretær med datoer, som de har til rådighed for eksamineringen. Det hænder at eksaminatorer og censorer ikke kan svare i tide, og dette skaber problemer for sekretæren, da de ikke kan fortsætte med planlægningen, uden at vide hvornår eksaminator og censor har tid. Det hænder også at eksaminatorerne er nødt til at ændre en eksamensdato, eller bytte/forhandle med en anden eksaminator. Sekretærerne mener selv at det største problem ved eksamensplanlægningen ligger i at vente på svar fra eksaminatorer. Dette problem er dog svært at ændre, da det ville kræve en adfærdsændring hos eksaminator. Det er altså et kommunikationsproblem, og ikke noget vi vil beskæftige os med. Et andet stort problem med den manuelle tilgang til eksamensplanlægningen er, at der bliver brugt rigtig meget tid på at tjekke gentagende gange for konflikter og manglende data. Vi har altså fundet ud af at eksamensplanlægningen er en træg proces, som tager lang tid på grund af faktorer som ventetid på svar, gennemtjek og ændringer. For at skabe et overblik opstiller vi denne proces som et flowchart, vist på Figur

14 KAPITEL 1. INDLEDNING Eksamens uger bestemmes oppefra Mundtlig Eksamen Skriftlig Eksamen Sedler sendes mellem sekretærer og eksaminatorer Dato forslag til skriftlige eksamener Lokaler bookes via Webbook Lokaler bliver tildelt Er forslag godkendt af administrationen? Nej Datoer findes med eksaminatorer og censorer Ja AKKC og andre haller bookes Et sæt data indtastes Eksamensvagter findes Nej Er det uden konflikter? Ja Godkendelse og offentliggørelse af eksamensplanen Figur 1.2: Flowchart over sekretærenes eksamensplanlægningsproces 4

15 1.3. RESSOURCER OG KRAV Det reelle problem Efter at have gennemgået vores antagelser om det initierende problem, kan vi nu, efter en undersøgelse af sekretærernes konkrete eksamensplanlægning, opstille det reelle problem, med udgangspunkt i Figur 1.1. Vi kan derfor opstille et egentlig problemtræ, som er bygget ud fra vores information fra sekretærerne, i stedet for vores egne antagelser. Censor kan være langsom til at svare Dårlige/ingen værktøjer Dårlig kommunikation Dobbelttjek af data Dårlig eksamensplanlægning Ikke optimal tid mellem hver eksamen Utilfredse interessenter Spild af ressourcer Meget manuelt arbejde Mindre effektivitet Figur 1.3: Problemtræ over den reelle eksamensplanlægning Som det ses på Figur 1.3 er det reelle problem opstillet. Det viste sig, at sekretærerne ikke var helt enige i vores antagelser af problemet. Vi erfarede at det, som sekretærerne mente var det største problem, var at de skulle bruge tid på at gennemtjekke data, samt at kommunikationen med eksaminatorer og censorer kunne forsinke planlægningen. Uoverskuelighed viste sig ikke at være en årsag til dårlig planlægning, da vi fandt ud af at studier var delt op til studiesekretærer og de planlagde en brøkdel hver, som formindskede uoverskueligheden markant. Vi har nu beskrevet hvordan planlægningen foregår, og vil nu gennemgå de forskellige ressourcer, samt de krav der stilles til disse, som bruges under planlægningen af eksamen. 1.3 Ressourcer og krav I dette afsnit vil vi komme ind på hvilke ressourcer og krav, der indgår i eksamensplanlægningen. Først vil vi i Afsnit komme ind på de involverede ressourcer, dvs. de ressourcer der skal tages højde for når der planlægges. Derefter vil vi i Afsnit komme ind på hvilke krav, der stilles af os inklusiv de forholdsregler, som sekretærerne allerede går efter at overholde. 5

16 KAPITEL 1. INDLEDNING Ressourcer Til planlægningen af eksaminerne skal der tages højde for de involverede ressourcer. Det er de ressourcer, som har direkte indflydelse på eksamensplanen, der vil blive taget højde for. Ressourcerne er: Studerende Censorer Eksaminatorer Lokaler Tid Vi forklarer kort de forskellige ressourcer for at give en bedre idé om, hvad deres betydning er i forhold til problemet, samt hvordan de påvirker hinanden. Studerende Den studerende er en vigtig ressource, da der ikke vil være en eksamen at planlægge uden. Udover at der skal være en studerende til stede, skal der ikke nødvendigvis tages højde for denne ressource, da de studerende ikke yderligere er indblandet i planlægningen af eksaminerne. Den studerende får kun oplyst et eksamenstidspunkt, og derefter er der ikke nogen yderligere kommunikation. For at den studerende skal kunne forberede sig til sine eksaminer, er det dog en god idé at tage højde for at der skal være tid til dette mellem eksaminerne. Censorer Censoren er, ligesom den studerende, en person der skal være til stede ved eksaminerne. Bemærk, at det kun er ved mundtlige- og projekteksaminer at der skal være en censor til stede. Ved den skriftlige eksamen er det ikke en ressource der skal tages højde for. Censor får de skriftlige besvarelser, samt en deadline for hvornår de skal være rettet, som derefter kan rettes når det passer censor bedst. I modsætning til den studerende som får et tidspunkt at møde op på, kan censoren selv vælge hvornår censoren har tid. Eksaminatorer Eksaminatoren har meget tilfælles med censoren. Eksaminatoren får muligheden for at afkrydse hvornår han eller hun har tid. Derudover er der kun eksaminatorer til stede ved projekt- og mundtlige eksaminer. Eksaminatoren er kursusholderen for det pågældende kursus der er eksamen i. Ved eksamen i projekter, er eksaminatoren hovedvejlederen for den pågældende gruppe, derudover er der på første semester en bivejleder til stede ved eksamen. Lokaler De fleste eksaminer kræver mindst ét lokale. Et eksempel på en eksamen der ikke kræver et lokale er Problembaseret Læring i Videnskab, Teknologi og Samfund, som er en skriftlig hjemmeopgave; den studerende kan altså befinde sig hvor som helst under denne eksamen. Mange mundtlige eksaminer skal bruge ét lokale som ikke behøver nogle specielle forhold, da det ofte bare er en samtale mellem den studerende, eksaminator og censor. Nogle eksaminer kræver dog specifikke lokaler hvis der er brug for redskaber til eksaminerne. Et eksempel på dette kan være en eksamen i et fysik- eller kemikursus, der 6

17 1.3. RESSOURCER OG KRAV kan kræve henholdsvis et værksted eller et laboratorium. Derudover er der eksaminer som kræver flere lokaler. Igen kan eksemplet med fysik eller kemi tages i brug, da det måske kun er en del af den mundtlige eksamen som finder sted i et værksted eller laboratorium, og den anden del i et andet lokale, der er bedre indrettet til en samtale. Projekteksaminer er et konkret eksempel på en eksamen der foregår i flere lokaler. Der bruges et lokale med projektor, hvor projektafslutningen finder sted. Herefter finder den mundtlige samtale sted i gruppens grupperum, som ikke skal tages højde for, da det ikke bruges til andet end projekteksaminerne. Udover disse mundtlige eksaminer er der også de skriftlige. Ved de skriftlige eksaminer skal der sørges for at lokalerne er store nok til at rumme mængden af studerende, således at der kan være plads mellem de studerende. Tid Tid er en ressource som tages højde for på en lidt anden måde end de forrige, da denne spiller sammen med alle de andre ressourcer. For den studerende er tid, tiden mellem eksaminerne. Så vidt muligt skal der helst være mindst én dag mellem eksaminer for at undgå at lægge for meget pres på den studerende. For eksaminator og censor har tiden flere betydninger, og disse to ressourcer, eksaminator og censor, vil blive taget sammen da det gælder det samme for begge. Den første er at eksaminator og censor skal finde tidspunkter hvor de begge er ledige. Det andet er tiden mellem de enkelte eksaminationer samme dag. Eksaminator og censor skal have pauser i løbet af dagen for ikke at overbelaste dem. For lokaler betyder tid hvornår man kan bruge de tildelte lokaler. Ikke alle lokaler er ledige på alle dage i løbet af eksamensperioden. Et eksempel på dette er en lejet hal, der også bruges til andre formål end eksamen. Enkelte lokaler er altså kun ledige på bestemte tidspunkter. Vi har nu gennemgået de ressourcer som indgår i planlægningen. Vi har set at det ikke er alle ressourcer, som skal tages lige meget højde for, f.eks. den studerende, som bare skal møde op og hvor at tiden indgår flere steder. Derudover har vi også forklaret forholdet imellem de forskellige ressourcer Krav Som tidligere nævnt i Afsnit 1.2, har sekretærerne ikke nogle bestemte regler de skal følge, men der er dog visse krav, der skal overholdes for at en eksamensplan skal kunne fungere, disse vil blive kaldt hårde krav. Udover disse vil vi opstille andre krav som, så vidt muligt, skal overholdes. Disse vil blive kaldt bløde krav. Alle hårde krav skal altid overholdes, ellers er der ikke en godkendt eksamensplan. En eksamensplan kan godt godkendes hvis enkelte bløde krav ikke overholdes, dog skal så mange bløde krav som muligt overholdes. Kravene vil blive opstillet i to lister, én for de hårde krav, og én for de bløde krav, hvorefter de enkelte krav vil blive kort forklaret. Kravene tager udgangspunkt i de forholdsregler som sekretærerne har. Hårde krav Ingen ressource må blive brugt mere end én gang på samme tid Eksamen skal ske inden for den afsatte eksamensperiode Alle eksaminer skal planlægges Ved skriftlig eksamen skal der være plads til alle i lokalet Hvis der er ekstraordinære krav til en eksamen skal disse overholdes 7

18 KAPITEL 1. INDLEDNING Eksamen skal foregå på arbejdsdage. Helligdage må ikke bruges. Som udgangspunkt til en eksamen skal der være én studerende, én eksaminator og én censor tilstede i ét lokale, og disse ressourcer må ikke bruges til flere forskellige eksaminer på samme tid. Ved skriftlige eksaminer er det anderledes, her er ingen eksaminator eller censor tilstede, og hvis eksamenen afholdes i en stor hal, kan der godt afholdes flere skriftlige eksaminer i samme lokale på samme tid. For at eksamen kan finde sted skal den først planlægges og alle eksaminer skal planlægges inden for den afsatte tidsperiode. Derudover skal alle eksaminer planlægges for at planlægningen kan betragtes som godkendt. Ved de skriftlige eksaminer skal der være plads til alle de studerende, så de kan sidde og lave eksamensopgaven. Hvis der er nogle ekstraordinære krav til nogle eksaminer skal disse opfyldes, det kunne f.eks. betyde, at der skal bruges nogle bestemte redskaber, eksempelvis laboratorieudstyr eller en projekter. Eksaminer skal så vidt muligt foregå på hverdage, da det er en del af eksaminator og censors overenskomst. Bløde krav Mindst én fridag for studerende mellem hver eksamen Eksaminerne skal, for hver studerende, ligge så spredt som muligt, så der er lige lang tid mellem hver eksamen Eksamen skal ske på et fornuftigt tidspunkt i løbet af dagen Til skriftlig eksamen skal lokalet passe til antallet af studerende således at der er afstand imellem dem For at undgå at de studerende bliver stressede af for mange eksaminer på for kort tid, skal der placeres mindst én dag mellem hver eksamen. Dette er også for at sørge for at de studerende har tid til at forberede sig. Af samme årsag skal eksaminerne også fordeles ud over eksamensperioden, således at der ikke er tre eksaminer på én uge, og én eksamen tre uger senere. Eksaminerne skal helst ligge i et fornuftigt tidsinterval i løbet af dagen. En eksamen skal ikke ligge sent om aftenen eller for tidligt om morgenen. Her kunne der tænkes at gå efter tidspunkter inden for normal arbejdstid. Til skriftlige eksaminer skal der være afstand mellem de studerende, for at undgå snyd, og skabe arbejdsro. Vi har nu opstillet de krav der skal overholdes, hvor de hårde krav altid skal overholdes, og de bløde krav er nogen der skal stræbes for at blive overholdt. Der er blevet taget udgangspunkt i de forholdsregler sekretærerne sætter, og dem eksaminatorerne og censorerne har gennem deres overenskomst. Efter at have gennemgået de involverede ressourcer og krav, vil vi nu samle vores viden og opstille en problemformulering. 1.4 Problemformulering Efter at have undersøgt det eksisterende problems omfang, samt hvilke metoder der bruges til at løse dette, skal det afgrænses til én konkret problemstilling. Interviewet med sekretærerne viste, at en meget stor del af arbejdet blev gjort manuelt, og at nogle processer kan automatiseres, som kan gøre planlægningen mere ressourceeffektivt. Efter at have analyseret planlægningsprocessen, kan vi konkludere at det sted hvor der bliver brugt mest arbejde, som mest effektivt ville kunne automatiseres, er hvor sekretærende får ressourcerne til at passe sammen, samt gennemtjekker om alt de har planlagt passer med hinanden. Dette vil blive unødvendigt, hvis der udvikles en ny fremgangsmetode til løsningen af planlægningsproblemet, som kan garantere for at 8

19 1.5. LØSNINGSMETODE der ingen konflikter laves. På baggrund af dette kan vi opstille det følgende datalogiske problemstilling for dette projekt: Hvordan udvikles og implementeres der en model, som kan hjælpe sekretærerne, på første studieår på AAU, i deres planlægning af eksamensperioden? Krav til produkt For at kunne implementere produktet, er der nogle krav, som skal overholdes: Programmet skal optimeres i det omfang det er muligt De benyttede algoritmer skal være effektive Programmet skal have en grafisk brugergrænseflade For at have et program der kører effektivt, skal det optimeres, med henblik på at mindske udregninger og forbruget af computerressourcer i det omfang tid og kunnen tillader. De algoritmer vi benytter os af skal være effektive. Dette betyder at de skal lave så få udregninger som muligt, som derved gør algoritmen hurtigere at gennemløbe. Programmet skal have en grafisk brugergrænseflade, så det kan bruges af sekretærerne. 1.5 Løsningsmetode Nu da problemet er blevet undersøgt, og en problemstilling fremstillet, vil vi fremsætte en metode til at løse dette problem. Antallet af ressourcer, samt deres interne påvirkning og afhængighed af hinanden, gør at vi i starten simplificerer problemet. Som vores viden udvides, bliver efterfølgende modeller udviklet og mere detaljeret. For at kunne vurdere modellerne og deres opstillede algoritmers tidskompleksitet kræver det viden derom. Dette vil blive undersøgt nærmere i Kapitel 2. Vi vil herefter forsøge at finde nogle teoretiske modeller der kan løse problemet, til dette formål vil vi i de følgende kapitler anvende grafteori. Først vil vi, i Kapitel 3, undersøge og bruge grafteori og forsøge at benytte pardannelse af de forskellige ressourcer i henhold til deres forhold med hinanden. I Kapitel 4 vil vi forsøge det samme med graffarvning, nærmere bestemt knudefarvning i en graf, til at bestemme om forholdene mellem ressourcerne vil skabe konflikt. Til sidst i Kapitel 5 vil den opnåede viden blive brugt til at fremstille forskellige løsningsmetoder, der kan bruges til at planlægge en eksamen. Her vil de blive sammenlignet på baggrund af deres tidskompleksitet samt fordele og ulemper. Hver løsningsmodel indeholder samme komponenter: Ressourceafhængigheder beskrives ved en bestemt type graf Til et gyldigt skema svarer en bestemt størrelse i grafen Et optimeringsproblem, der går ud på at finde en optimal værdi for denne størrelse En algoritme, der løser optimeringsproblemet Når de forskellige løsningsforslag er fundet, vil vi vælge en løsningsmetode, og implementere denne. Der vil blive fremstillet et program som efterfølgende vil blive testet, for optimering og eliminering af eventuelle fejl, og dokumentere dette i Kapitel 6. Til sidst vil vi lave en konklusion på projektet i Kapitel 7. 9

20 Kapitel 2 Algoritmers tidskompleksitet I denne rapport vil forskellige løsningsmetoder blive sammenlignet på baggrund af deres tidskompleksitet, og derfor vil vi i dette kapitel forklare hvad tidskompleksitet er, samt hvordan vi vil udregne og sammenligne den. Afsnit 2.1 handler generelt om algoritmers tidskompleksitet. I Afsnit 2.2 beskriver vi et måde hvorpå man nemt kan sammenligne algoritmer. Vi kommer derefter ind på beslutnings- og optimeringsproblemer i Afsnit 2.3. Afsnit 2.4 beskriver to kompleksitetsklasser, henholdsvis P og NP. Vi vi i Afsnit 2.5 beskrive hvordan man kan polynomielt reducere problemer. Til sidste vil vi i Afsnit 2.6 beskrive hvad et NP-fuldstændigt problem er. 2.1 Tidskompleksitet Tidskompleksiteten af en algoritme, er i datalogiens verden, et udtryk for den tid det tager for en algoritme at køre, som funktion af inputtets størrelse. Et eksempel på hvorfor det er vigtigt at vide dette, er sorteringsalgoritmerne mergesort og insertsort. Insertsort er hurtigere end mergesort ved små input, men bliver meget langsommere samtidig med at inputstørrelsen vokser. Typisk angives størrelsen af inputtet som n, en konvention som vi også vil følge i denne rapport. Grunden til, at man kun måler tiden som funktion af inputtets størrelse, er at de individuelle kommandoer tager forskellig tid, alt efter hvordan og i hvilket sprog algoritmen implementeres. Inden for tidskompleksitet kan man tale om forskellige scenarier: T (w) er antal skridt en algoritme bruger på input w. Best-case kompleksiteten: f(n) = min T (w) for w, hvor w = n Worst-case kompleksiteten: f(n) = max T (w) for w, hvor w = n Average-case kompleksiteten: f(n) = 1 I n T (w) w =n Hvor I n er antallet af input, der har størrelse n, dvs. I n = {w w = n}. Worst-case scenarier er gode at bruge, fordi worst-case køretiden for en algoritme giver os en øvre grænse for køretiden på et hvilken som helst input, som giver os en garanti for at algoritmen aldrig vil tage længere tid. Det er desuden sådan at for nogle algoritmer indtræffer worst case scenariet ofte [13, s.27]. Derfor vil vi i resten af rapporten tage udgangspunkt i worst-case-scenario, når vi beskriver algoritmers tidskompleksitet. 2.2 O-notation Tidskompleksiteten af forskellige algoritmer er svære at sammenligne, da forskrifterne for tidskompleksitetsfunktionerne kan bestå af et stort antal led, og derfor bruges O- 10

21 2.3. BESLUTNINGSPROBLEMER OG OPTIMERINGSPROBLEMER notation når forskellige algoritmers tidskompleksitet sammenlignes. O-notation er blot en af mange forskellige asymptotisk notationer, og er meget anvendt. Definition (O-notation). Lad f og g være funktioner hvor f, g : N R. Vi siger at f(x) = O(g(x)) hvis der eksisterer konstanter C og k således at: f(x) C g(x) for x > k. Læses som f(x) er store-o af g(x) [11, s. 180]. Tabel 2.1 viser funktioners O-notation, sorteret efter vækstrate, med laveste vækstrate først. Dette bruges som grundlag for sammenligning af algoritmer. Betegnelse Vækstrate Konstant O(1) Logaritmisk O(log n) Fraktionel potens O(n k ) hvor k < 1 Lineær O(n) Lineær aritmetisk O(n log n) Polynomiel O(n k ) hvor k > 1 Eksponentiel O(k n ) Faktoriel O(n!) Tabel 2.1: Tabel over funktioners O-notation [9] 2.3 Beslutningsproblemer og Optimeringsproblemer I Beslutningsproblemer er svaret enten ja eller nej. Optimeringsproblemer har derimod flere løsninger, men man ønsker den mest optimale løsning - ofte den løsning med enten maksimal eller minimal værdi. Til ethvert beslutningsproblem svarer en mængde, f.eks. delmængde sum problemet(ssp), som er defineret ved følgende: Givet en mængde af hele tal M og en grænse k, findes der da en M M så x = k? x M Hertil svarer mængden: { SUBSET-SUM = (M, k) M M, } x = k x M Hvor mængden indeholder bekræftende instanser af problemet. Optimeringsproblemer kan ofte beskrives som beslutningsproblemer. F.eks. kan optimeringsproblemet hvor mange bolde kan der være i kassen? beskrives som beslutningsproblemet kan der være k bolde i kassen? med forskellige k. I disse tilfælde er det altid mindst lige så hurtigt at løse beslutningsproblemet som optimeringsproblemet [13, s ]. 2.4 Kompleksitetsklasserne P og NP Indenfor tidskompleksitet er P og NP, to meget fundamentale kompleksitetsklasser. Vi definerer disse klasser som følgende: Definition (Kompleksitetsklassen P). P er en beslutningsproblemklasse, som består af de problemer som er løselige i polynomiel tid (se tabel 2.1) [13, s. 1049]. 11

22 KAPITEL 2. ALGORITMERS TIDSKOMPLEKSITET Definition (Kompleksitetsklassen NP). NP står for Non-deterministisk Polynomiel tid, og er en kompleksitetsklasse, som indeholder de beslutningsproblemer som er verificerbare med et certifikat i polynomiel tid [13, s. 1064]. Hvor et certifikatet er et bud på en løsning til problemet. Vi gennemgår nu et eksempel på hvordan man kan vise at et problem er i NP. Dette gøres ved SUBSET-SUM problemet: Vi har en mængde af heltal: {7, 3, 1, 6, 4} og vi ønsker at finde ud af om der eksisterer en delmængde hvor summen af tallene giver 0. Svaret i denne instans af problemet er ja, da f.eks ( 4) = 0. Opgaven af at finde ud af om en sådan delmængde eksisterer. Når mængden af tal bliver større, vil antallet af delmængder eksponentielt blive større. Pointen her er at vi nemt kan verificere en bestemt undermængde (et certifikat) om delmængdens sum kan give 0 ved blot at summerer tallene, hvilket kan gøres indenfor polynomiel tid. Hvis summen er 0 så er certifikatet sandt og dette certifikat er et vidne på at denne instans er medlem af SUBSET-SUM- DECISION. Hvis verifikationen (en algoritme som tjekker om løsningen er korrekt) af certifikatet kan udføres i polynomiel tid er dette problem i NP. SUBSET-SUM er i NP da denne verifikation kan foretages i polynomiel tid i O(n) hvor n er antallet af elementer i delmængden. Dette gøres ved at lægge tallene i certifikatet sammen og sammenligne med den ønskede sum [1]. Selvom NP problemer er beslutningsproblemer, findes der også mange optimeringsproblemer, som kan betragtes som beslutningsproblemer ved at betragte beslutningsvarianten af det. F.eks. kan optimeringsdelen af SSP: Givet en mængde, M og en grænse k. Find et min M M så x M x = k? oversættes til problemet SUBSET-SUM. De optimeringsproblemer, som kan opstilles på denne måde, vil vi i resten af rapporten kalde NP. 2.5 Polynomiel reducibilitet Polynomiel reducibilitet betyder, at et problem, A, kan reduceres til et andet problem, B, i polynomiel tid. Definitionen ses i Definition Definition (Polynomiel reducibilitet). Lad A og B være beslutningsproblemer repræsenteret som mængder. Vi siger at A kan reduceres i polynomiel tid til B hvis der findes en funktion f A B som er trofast, dvs. opfylder at α A hvis og kun hvis f A B (α) B og er polynomielt beregnbar, dvs. at der findes en algoritme M A B som kan beregne f A B i polynomiel tid, dvs. at der findes et k, så at for ethvert input x, hvor x = n, vil M A B returnere f(x) efter O(n k ) skridt. En reduktion er en transformation af enhver instans α af problem A til en instans β af problem B og det skal gælde, at α A β B, hvor transformationen kan foretages i polynomiel tid. Dette er vigtigt, da man, hvis problem B kan løses i polynomiel tid, også ved at problem A kan løses i polynomiel tid ved at reducere det til B og derefter løse B. Dette betyder også at B er et mindst lige så svært et problem at løse som A. Notationen for en reduktion af problem A til B: A p B og den anden vej B p A [13, s. 1067]. 12

23 2.6. NP-FULDSTÆNDIGHED 2.6 NP-fuldstændighed Nogle problemer i NP er sværere at løse end andre, de letteste at løse er i P, og de sværeste kaldes NP-fuldstændige, og defineres i Definition [13, s. 968]. Definition (NP-fuldstændighed). Et problem, B, er NP-fuldstændigt hvis: B NP For alle problemer A NP, A p B Der kendes ikke nogen algoritme, til at løse et NP-fuldstændig problem i polynomiel tid, men der findes heller intet bevis for, at det er umuligt, og derfor vides det ikke om P = NP. Da vi ikke kender en metode til at løse et NP-fuldstændigt problem i polynomiel tid, vil vi i dette projekt bruge approksimative algoritmer, når vi løser NP-fuldstændige problemer. Approksimative algoritmer vil oftest tage kortere tid, men finder til gengæld ikke nødvendigvis det optimale resultat, men finder i stedet et resultat, som er tæt på det optimale. Approksimative algoritmer er især gode hvis algoritmen skal bruges på meget store mængder data, da det vil tage meget lang tid at finde det optimale resultat. 13

24 Kapitel 3 Pardannelse af grafer I dette kapitel vil vi beskæftige os med at danne forbindelser mellem to forskellige ressourcer, der har en given eksamen tilfælles. Der vil også blive sørget for, at der er afsat tid nok til denne eksamen. Der er flere ressourcer involveret i en eksamen, og opgaven her er at finde en kombination af alle de nødvendige ressourcer, der muliggør, at eksamen kan afholdes. Dette kan forstås som et problem om pardannelse i grafer. Først introducerer vi grafer i Afsnit 3.1, hvor vi definerer forskellige begreber indenfor grafteori. I Afsnit 3.2 beskriver vi hvad en maksimal pardannelse er, og i Afsnit 3.3 beskriver vi en metode til at finde en maksimal pardannelse. Herefter kommer vi med en effektiv algoritme der benytter denne metode i Afsnit 3.4. Til sidst i Afsnit 3.5 vil vi beskæftige os med at afsætte flere dage til hver eksamen. 3.1 Introduktion til grafer Problemstillingen, med at fordele to ressourcer man har til rådighed, kan opstilles som en todelt graf. Definitionen på en graf, en orienteret graf, og en to-delt graf er som givet i hhv. Definition 3.1.1, Definition og Definition Definition (Graf). En graf G = (V, E) består af V, en ikke tom mængde af knuder, og E, en mængde af kanter. Hver kant har en eller to knuder associeret med den, kaldet endepunkter. En kant siges at forbinde endepunkterne [11, s. 589]. Definition (Orienteret graf). En orienteret graf (V, E) består af en ikke tom mængde af knuder V og en mængde af orienteret kanter E. Hver orienteret kant er associeret med et ordnet par af knuder. Den orienteret kant associeret med det ordnede par (u, v) siger at start i u og ende i v [11, s. 591]. Definition (Todelt graf). En todelt graf G er en tripel (V 1, V 2, E), så (V 1 V 2, E) er en graf hvor alle {u, v} E har u V 1, v V 2. Lad G = (V 1, V 2, E) være en todelt graf, vist i Figur 3.1. Da repræsenterer vi, i følgende eksempel, tildelingsproblemet således, at hver knude i V 1 svarer til en eksamen, der skal tildeles et lokale, og hver knude i V 2 svarer til et lokale. Der er en kant (u, v), hvis eksamen u kan anvende lokale v. For at finde den bedste mulige kombination af eksaminer og lokaler, skal det maksimale antal par i grafen G findes, og et par er defineret 14

25 3.2. MAKSIMAL PARDANNELSE ved Definition Definition (Pardannelse). Lad G = (V, E) være en ikke-orienteret graf. En pardannelse i G er en delmængde af kanter, M E, således at maksimalt én kant er forbundet til hver knude i V. Kanter der ikke er med i pardannelsen, tilhører en mængde, N, der findes ved N = E M. Vi siger at en knude er parret, hvis den er forbundet til en kant i M.Hvis dette ikke er tilfældet siger vi at den er fri. Til pardannelser kan Hopcroft-Karp algoritmen benyttes. Før vi gennemgår denne algoritme vil vi, for at danne en generel forståelse af den, gennemgå de principper som algoritmen benytter og derefter vende tilbage til Hopcroft-Karp algoritmen i Afsnit Maksimal pardannelse Vi siger at en pardannelse er maksimal, hvis og kun hvis der ikke findes en anden mængde af par hvor kardinaliten af denne er større, hvilket betyder at der ikke findes en pardannelse M hvor M < M. Når der skal findes et maksimalt antal par i en todelt graf, er der flere fremgangsmetoder som kan benyttes. Et maksimalt antal par kaldes en maksimal pardannelse. Alle eksempler vil som udgangspunkt benytte grafen som ses på Figur 3.1. V1 V2 u0 v0 u1 v1 u2 v2 u3 v3 u4 Figur 3.1: Eksempel på en todelt graf En metode man kan bruge til at danne par, er at bruge en grådig udvælgelsesmetode, der tager en kant, e, hvor e E \ M og tilføjer den til M hvis dette ikke skaber konflikt. En konflikt er en udvælgelse af en kant, der er forbundet med en knude, som allerede parret. En grådig udvælgelsesmetode danner det første par den kan, og går videre til den næste knude. Resultatet af sådan en fremgangsmetode er illustreret på Figur 3.2. Der findes her kun tre par, men der findes et M > M, og dermed en bedre pardannelse, se Figur 3.3(f). Der konkluderes derfor, at en grådig pardannelse ikke nødvendigvis finder et maksimalt antal par, og derved ikke vil fungere optimalt til formålet. 15

26 KAPITEL 3. PARDANNELSE AF GRAFER u 0 v 0 u 1 v 1 u 2 v 2 u 3 v 3 u Forøgende stier Figur 3.2: En grådig pardannelse af Figur 3.1 Vi konkluderede at en grådig pardannelse ikke altid ville finde en maksimal pardannelse. Forøgende stier kan i stedet benyttes til at finde maksimale pardannelser. En forøgende sti er defineret ved Definition Definition (Forøgende sti). En forøgende sti i en todelt graf, G = (V 1, V 2, E), er en følge, P, af knuder {p 0, p 1,..., p k } sådan at: p 0 V 1 og p k V 2 er frie knuder i M (p 0, p 1 ), (p 2, p 3 ),..., (p k 1, p k ) N, går fremad, dvs. fra V 1 V 2. (p 1, p 2 ), (p 3, p 4 ),..., (p k 2, p k 1 ) M, går baglæns, dvs. fra V 1 V 2. Stien P er derved alternerende i mellem V 1 og V 2, startende i en fri knude i V 1, sluttende i en fri knude i V 2, uden at bevæge sig af samme kanter der allerede er benyttet i stien [10, 16:28-20:02]. Om en todelt graf ved vi følgende: Sætning (Antal par i en todelt graf). I en todelt graf G = (V 1, V 2, E), og hvor M er en maksimal pardannelse, er følgende gældende: V 1 > V 2 M V 2 V 1 = V 2 M V 1 = V 2 V 1 < V 2 M V 1 Bevis for Sætning Antag det modsatte er gældende, M > min( V 1, V 2 ). Vi ved fra definitionen af en pardannelse, at der maksimalt må være én kant tilknyttet til en knude. Hvis M > min( V 1, V 2 ), må der være flere kanter, end den mindste af V 1 og V 2, da M er antallet af kanter i en maksimal pardannelse. Der må derfor være mindst en knude med mere end én kant, i den mindste af V 1 og V 2, og da er der ikke længere tale om en pardannelse. Derved er en modstrid fundet. 16

27 3.3. FORØGENDE STIER Betragt grafen, G = (V 1, V 2, E), som vist på Figur 3.2. Her kan vi observere at V 1 > V 2, og ud fra sætning 3.3.1, kan vi antage at M V 2. Med denne antagelse kan vi udlede at der findes endnu et par, som vi vil forsøge at finde. Til dette bruger vi en forøgende sti, som starter i en fri knude. I dette tilfælde starter stien i V 1, og her er to frie knuder; u 1 og u 3. Vi vælger her at starte vores forøgende sti i u 3, som deler en kant med v 1. Vi farver denne kant gul, som det ses på Figur 3.3(a). Da v 1 allerede er parret med u 2, skaber dette en konflikt, da der ikke må gå mere end én kant til en knude i en pardannelse. Derfor skal kanten (u 2, v 1 ) fjernes, og vi farver kanten grøn, som det ses på Figur 3.3(b). Vi fortsætter vores forøgende sti fra u 2, som kan benytte kanten (u 2, v 3 ), der farves gul. Da v 3 ikke er en fri knude, fortsætter stien, ved at gå ad en blå kant, (v 3, u 4 ). Denne kant farves grøn, som vist på Figur 3.3(d). Vi kan nu gå fra u 4 til v 2. Her har vi ramt den frie knude i V 2, og vores forøgende sti er derved lavet. Vi har nu en forøgende sti P = {u 3, v 1, u 2, v 3, u 4, v 2 }. Vi fjerner nu de grønne kanter, og tilføjer de gule kanter til pardannelsen, og får nu en pardannelse med ét par mere end før, da vi fjernede to grønne, og tilføjede tre gule. Resultatet af dette ses på Figur 3.3(f). u0 u0 u0 v0 v0 v0 u1 u1 u1 v1 v1 v1 u2 u2 u2 v2 v2 v2 u3 u3 u3 v3 v3 v3 u4 u4 u4 (a) (b) (c) u0 u0 u0 v0 v0 v0 u1 u1 u1 v1 v1 v1 u2 u2 u2 v2 v2 v2 u3 u3 u3 v3 v3 v3 u4 u4 u4 (d) (e) (f) Figur 3.3: Forøgende stier og deres udvælgelse af nye pardannelser At fjerne de grønne kanter, og tilføje de gule, kan beskrives som den symmetriske differens mellem vores pardannelse M, og vores forøgende sti P. Dette skrives som M P. Definition (Q R). Den symmetriske differens mellem Q og R er givet ved: Q R = (Q R) (Q R). Det første M bestod af tre pardannelser, de blå kanter på Figur 3.2. En forøgende sti er P = {u 3, v 1, u 2, v 3, u 4, v 2 }. Hvis vi benytter vores definition af M P ses det, at resultatet netop vil være det som opnås ved hjælp af metoden brugt i eksemplet på Figur

28 KAPITEL 3. PARDANNELSE AF GRAFER Dette leder os frem til Edmonds Algoritme, som netop benytter dette princip til at finde en maksimalt antal af par i en graf. Algoritmen kan ses i Algoritme 1. Algorithm 1 Edmonds Algoritme [10] 1: Input: Todelt graf 2: Output: Todelt graf med en maksimal pardannelse 3: M = 4: while der eksisterer en forøgende sti P til M do 5: M = M P 6: end while 7: return M Denne algoritmes metode er den samme som blev vist i eksemplet før. Vi finder en forøgende sti i vores graf, samt finder den symmetriske differens mellem M og P, og herefter sætter vi dette som vores nye M. Dette gøres, indtil der ikke længere kan findes en forøgende sti i vores graf, og da vil M være en mængde af par, som er maksimal. For at bevise at denne metode, i modsætning til den grådige algoritme, ikke kan overse en bedre kombination, kan Sætning bruges. I dette bevis bliver følgende begreber brugt: graden af en knude, kreds og længden af en sti, de defineres derfor som det ses i Definition 3.3.1, og Definition (Graden af en knude i en graf). Graden af en knude i en ikke-orienteret graf er antallet af kanter, der er forbundet til den, med undtagelse af en løkke, som bidrager to gange til graden af knuden. Graden af en knude skrives deg(v) [11, s. 598]. Definition (Kreds). En kreds K n hvor n 3, består af n knuder v 1, v 2,..., v n og kanterne {v 1, v 2 }, {v 2, v 3 },..., {v n 1, v n } samt {v n, v 1 } [11, s. 601]. Definition (Længden af en sti). Længden af en sti, P, er svarende til antallet af kanter i stien. Sætning (Berges Sætning). En pardannelse M i en todelt graf er maksimal hvis og kun hvis der ikke findes en forøgende sti for M. Bevis for Sætning Vi beviser først, at hvis M er maksimal, så eksisterer der ingen forøgende sti. Hvis M har en forøgende sti, P, så kan vi benytte M P og forøge antallet af par med en, og M kan derfor ikke have været maksimal. Bevis ved modstrid. Hvis der ikke findes en forøgende sti, så er M maksimal. Ved kontraposition er det, det samme som hvis M ikke er maksimal, så er der en forøgende sti. Lad M være en pardannelse sådan at M > M. Antag nu at delgrafen til G, er givet ved M M, hvor kanterne i M M er til stede to gange. Vi kalder denne graf for H. Alle knuderne i H vil have en grad på to, eller mindre, da hver knude maksimalt kan have en kant fra M og en fra M. Derfor må hvert forbundet komponent i H enten være en sti eller en kreds. Kredsene i grafen må have en lige længde, for ellers vil to kanter fra det samme komponent M eller M vil være til hinanden og dette vil være imod den 18

29 3.3. FORØGENDE STIER oprindelige antagelse at M eller M var en pardannelse. Der findes derfor 6 forskellige mulige komponenter i H, og de er listet herunder: 1. En isoleret knude 2. En 2-kreds, som er en kreds med to knuder 3. En større alternerende kreds med en lige længde 4. En sti med en lige længde 5. En sti med ulige længde, startende og sluttende i en knude i M 6. En sti med ulige længde, startende og sluttende i en knude i M Vi ved at M > M, og der må derfor være flere kanter i H fra M, end fra M. Fra listen ovenfor, ser vi at kun 5 og 6 har et antal kanter, hvor der kan være forskel i antallet fra M og M, og kun 5 har flere kanter fra M end M. Derfor, for at M > M, skal der være et komponent af typen 5 til stede. Hvis sådan et komponent, nummer 5 i listen, eksisterer har vi en forøgende sti mht. M. Derved har vi vist at hvis M ikke er en maksimal pardannelse, så er der en forøgende sti mht. M [5]. Det fremgår nu af Berges Sætning (Sætning 3.3.2), at Edmonds algoritme (Algoritme 1) vil finde en maksimal pardannelse. Der skal nu findes en metode til nemt at finde forøgende stier. For at gøre dette nemmere, opsummerer vi det vi ved omkring forøgende stier: En forøgende sti starter og slutter i en fri knude og har alternerende kanter fra M og N, dertil, uden tab af generalitet, kan vi sige at den har et startpunkt V 1. Hvis vi kendte startpunktet, kunne vi gro vores sti derfra, og derved finde vores forøgende sti. Dette kunne gøres ved en søgning som f.eks Bredde-Først Søgning(BFS) eller Dybde-Først Søgning(DFS). BFS Givet en graf G = (V, E) og en startknude s. BFS udforsker systematisk kanterne i G for at finde hver knude som er opnåelig fra s. Den finder herefter den mindste afstand fra s til hver opnåelig knude. Den producerer også et bredde-først-træ med rod, se [11, kap. 10], i s, som indeholder alle de opnåelige knuder. BFS bærer navnet på grund af den egenskab at den udvider grænsen, mellem udforskede og ikke-udforskede, på bredden. Det vil sige, at algoritmen udforsker først alle knuder på afstand k før den udforsker afstanden til k + 1, hvor afstanden er antallet kanter [13, s. 594]. På Figur 3.4(a), ses en todelt graf, og på Figur 3.3 ses resultatet af BFS på grafen som et træ. DFS Strategien ved DFS er, som navnet antyder, at søge dybere i grafen når det er muligt. DFS udforsker kanter ud fra den seneste udforskede knude v, som stadig har uudforskede kanter. Når alle v s kanter er udforsket, vil søgningen backtracke for at udforske de resterende kanter, som udspringer fra den knude, v blev udforsket fra. Denne proces fortsætter indtil vi har udforsket alle de knuder som er opnåelige fra den oprindelig s knude, som er startpunktet [13, s. 603]. Det er her værd at bemærke, at der er større chance for at få flere del-træer ved brug af DFS end BFS. På Figur 3.3 ses en DFS søgning på grafen. De forøgende stier kan nu gro fremad med kanter i N og baglæns med kanter i M, dvs. alternerende mellem N og M, der er derfor tilføjet orientering på kanterne som vist i Figur 3.5(b). Hvis stien rammer en fri knude i V 2 er stien færdig. Dette kan beskrives som en BFS på hjælpegrafen, der defineres ved definition 3.3.3, for M, G. 19

30 KAPITEL 3. PARDANNELSE AF GRAFER u 0 v 0 u 3 u 0 v 0 v 2 u 1 v 1 u 0 u 2 v 0 v 1 v 1 u 2 v 2 u 3 u 1 u 2 u 1 u 3 v 3 v 2 v 3 v 3 (a) G (b) BFS på G (c) DFS på G Figur 3.4: BFS og DFS, startende i u 0, på en graf G Definition (Hjælpegraf for G, M). Lad G = (V 1, V 2, E) være en todelt graf, og M være dens pardannelse. Lad hjælpegrafen G = (V, E ), hvor V = V 1 V 2 {s, t}, og hvor E = E s E f E b E t. Hertil følger at: E s = Orienteret er en kant fra s til alle frie knuder i V 1 E f = {(u, v) u V 1, v V 2, (u, v) N} E b = {(v, u) u V 1, v V 2, (u, v) M} E t = Orienteret er en kant fra elle frie knuder i V 2 til t [10, 37:18-39:32] Til et eksempel på denne metode benytter vi Figur 3.2, hvor vi ønsker at starte søgningen i en fri knude i V 1. For at kunne starte i alle frie knuder placere vi en ny knude s, som er forbundet, med orientering fra s, til de frie knuder i V 1, som vist på Figur 3.5(a). I dette tilfælde er de frie knuder u 1 og u 3. Vi ønsker også at stien ender i V 2 og derfor tilføjes der en knude t der er forbundet, med orientering mod t, fra frie knuder i V 2, der bliver vist på Figur 3.5(b). Der kan nu laves en BFS på denne graf da denne søgning fungerer på både orienterede og ikke-orienterede grafer. Resultatet af denne søgning kan ses på Figur 3.5(c). Vores påstand er derfor følgende: Sætning G har en forøgende sti for M hvis og kun hvis G har en orienteret sti fra s til t 20

31 3.3. FORØGENDE STIER u0 u0 v0 v0 u1 u1 v1 v1 s0 u2 s0 u2 t0 v2 v2 u3 u3 v3 v3 u4 u4 (a) (b) u0 v0 u1 v1 s0 u2 t0 v2 u3 v3 u4 (c) Figur 3.5: Fremstilling af hjælpegraf Bevis for Sætning Kun hvis: Lad P = v 0,..., v k være en forøgende sti for G, M. Vi viser at s, v 0,..., v k, t må være en orienteret sti i G. En forøgende sti i G starter i en fri knude i V 1, går fremad og baglæns gentagne gange, og slutter i en fri knude i V 2. I en fremadrettet retning må stien bruge kanter i N. Disse er tilstede i G og er orienteret fremad, E f. I en bagudrettet retning benytter stien kanter i M. Disse er tilstede i G og er orienteret bagud, E b. Slutligt har s en orienteret kant til hver fri knude i V 1, og hver fri knude i V 2 har en orienteret kant til t. Derved har vi en sti i G [10, 40:30-45:12]. Hvis: Antag nu at vi har en orienteret sti s, v 0,..., v k, t i G. Vi kan vise en forøgende sti ved, at følge den omvendte begrundelse af den ovenfor [10, 45:15-45:42]. Vi kan nu vende tilbage til Edmonds Algoritme (Algoritme 1) for vi ved nu hvordan forøgende stier kan fremstilles, og vi opstiller det i Algoritme 2. Algorithm 2 Forøgende sti(g, M) [10] 1: Input: Graf G og en pardannelse M 2: Output: Forøgende sti i G 3: G = Hjælpegraf for G, M 4: P = Sti fra s til t (benyt BFS) 5: if P null then 6: Fjern s og t 7: return P 8: else 9: return False 10: end if 21

32 KAPITEL 3. PARDANNELSE AF GRAFER Algoritme 2(Forøgende stier) Linjer Antal operationer 3 O(n 2 + n) 4 O(n 2 + n) 5 12 O(1) I alt O(n 2 + n) Algoritme 1(Edmonds Algoritme) 4 6 O(n(n 2 + n)) I alt O(n 3 ) Tabel 3.1: Tidskompleksitet af Edmonds Algoritme [10, 47:20-49:20] Edmonds algoritme analyseres nu. Følgende defineres: n = V 1 + V 2 &m = E n repræsenterer nu det samlede antal knuder, og m repræsenterer det samlede antal kanter. Da vi arbejder med worst-case, vil antallet af kanter i en graf være m = n(n 1) 2 O(n 2 ). Dette er en konvention vi vil benytte til at beregne tidskompleksiteten af algoritmer, i resten af rapporten. Tidsforbruget for de forskellige dele ses på Tabel 3.1: Da principperne som Hopcroft-Karp algoritmen benytter er blevet gennemgået, vil vi nu gennemgå Hopcroft-Karp algoritmen. 3.4 Hopcroft-Karp algoritmen Hopcroft-Karp algoritmen benytter sig af princippet med forøgende stier, på samme måde som Edmonds algoritme(algoritme 1). Dog arbejder denne algoritme hurtigere, da den, i stedet for at finde en enkelt forøgende sti ad gangen, finder flere forøgende stier per iteration. Algorithm 3 Hopcroft-Karp Algoritmen [6] Input: Todelt graf Output: Todelt graf med maksimal pardannelse Trin 0. M Trin 1. Lad l(m) være længden af en kortest forøgende sti relativ til M. Find en maksimal mængde af stier P 1, P 2,..., P t med de egenskaber at (a) for hver i, P i er en forøgende sti relativ til M, og P i = l(m); (b) P i er knude-disjunkt (de deler ikke nogen knude). Stop når der ikke findes flere stier Trin 2. M M P 1 P 2 P t, gå til trin 1. Som det ses af Algoritme 3, så har algoritmen tre trin. Trin 0 sætter M til at være en tom mængde. Trin 1 konstruerer de forøgende stier der findes, indtil der ikke findes flere stier. Trin 2 finder den symmetriske differens mellem M og alle de stier der er lavet i Trin 1. Dette gentages, indtil der ikke længere kan findes flere forøgende stier, og en maksimal pardannelse er derved fundet. Vi gennemgår nu et eksempel på denne algoritme. Betragt den todelte graf G = (V 1, V 2, E), som er vist på Figur 3.6(a). Først laves der en grådig pardannelse, og resultatet af dette ses på Figur 3.6(b). 22

33 3.4. HOPCROFT-KARP ALGORITMEN u0 v0 u0 v0 u1 v1 u1 v1 u2 v2 u2 v2 u3 v3 u3 v3 u4 v4 u4 v4 u5 v5 u5 v5 u6 v6 u6 v6 u7 v7 u7 v7 (a) (b) Figur 3.6: Første gennemløb af Hopcroft-Karps Algoritme Vi bruger Sætning Da V 1 = V 2, antager vi at kardinaliteten af en maksimal pardannelse, vil være mindre end eller lig med V 1 eller V 2. Vi observerer, at der her er 5 par, og V 1 = V 2 = 8, og da må der være en bedre pardannelse. Vi benytter Hopcroft- Karp algoritmen på grafen, og hele processen kan ses på Figur 3.7. Før vi gennemgår eksemplet, bruger vi en sætning, som fortæller os noget om længden på den korteste forøgende sti. Sætning Lad M være en pardannelse. Antag at M = r, og antag at kardinaliteten af en maksimal pardannelse er s, hvor s > r. Så eksisterer der en forøgende sti, relativ til M, med længden 2 r (s r) + 1 [6]. Bevis for Sætning Lad N være en maksimal pardannelse. Så indeholder M N, s r knude-disjunkte ( og hermed kant-disjunkte) forøgende stier relative til M. Tilsammen indeholder disse højst r kanter fra M, og dermed højst 2 r (s r) + 1 kanter i alt [6]. Vi benytter nu denne sætning, vi ser at en kortest forøgende sti er 2 5 (8 5) +1 = 3, da M = r = 5, og V 1 = V 2 = s = 8. Dette betyder at når vi leder efter en forøgende sti i grafen, så skal denne sti have længden 3. Figur 3.7(a) viser det første trin i algoritmen, som laver forøgende stier. Bemærk at der her findes to forøgende stier med længden 3, den første sti P 1 = {u 2, v 0, u 1, v 1 } og den anden sti P 2 = {u 6, v 3, u 4, v 6 }. Der bliver ikke lavet en tredje forøgende sti, da denne sti har en længde > 3, dette kan ses ved en BFS eller en DFS. Figur 3.7(b) viser det andet trin i algoritmen, som laver en ny pardannelse, fundet ved den symmetriske differens mellem M, og de forøgende stier, P 1, P 2, og vi har at M = M P 1 P 2. Vi ved at hver forøgende sti øger pardannelsen med 1, og har nu at M = 7. Længden på den korteste forøgende sti er nu 2 7 (8 7) + 1 = 15. Figur 3.7(c) viser den tredje forøgende sti, P 3 = {u 3, v 2, u 0, v 5, u 5, v 7, u 7, v 4 }, som har længden 7, der er < 15. Derved øger vi pardannelsen med 1, og har nu at M = V 1 = V 2, og vi har en 23

34 KAPITEL 3. PARDANNELSE AF GRAFER maksimal pardannelse, som vist på Figur 3.7(d). u0 v0 u0 v0 u1 v1 u1 v1 u2 v2 u2 v2 u3 v3 u3 v3 s0 t0 u4 v4 u4 v4 u5 v5 u5 v5 u6 v6 u6 v6 u7 v7 u7 v7 (a) Trin 1 (b) Trin 2 u0 v0 u0 v0 u1 v1 u1 v1 u2 v2 u2 v2 u3 v3 u3 v3 s0 t0 u4 v4 u4 v4 u5 v5 u5 v5 u6 v6 u6 v6 u7 v7 u7 v7 (c) Trin 1 (d) Trin 2 Figur 3.7: De resterende gennemløb af Hopcroft Karps Algoritme for Figur

35 3.5. FLERE DAGE TIL SAMME EKSAMEN Sætning Hvis kardinaliteten af en maksimal pardannelse er s, så konstruerer Algoritme 3 en maksimal pardannelse på mindre end 2 s + 2 udførelser af trin 1. Fra Sætning ser vi at algoritmen har tidskompleksiteten O( nm) da den udfører Trin 1, med tidskompleksiteten O(m), n gange, hvor n er antal knuder. Det fulde bevis for dette kan findes i [6]. Tidskompleksiteten for algoritmen kan ses i Tabel 3.2. Algoritme 3(Hopcroft-Karps Algoritme) Trin 1 O(n 2 ) Antal operationer 2 O( n) Sammenlagt O(n 2 n) I alt O(n 5 2 ) Tabel 3.2: Tidskompleksitet for Algoritme 3 Nu, da der er fundet en metode til at løse ressource problemet, kan der tilføjes en ekstra detalje, der muliggør afholdelse af de eksaminer, hvor antallet af studerende gør det umuligt at få eksamineret alle de studerende i løbet af en enkelt dag. 3.5 Flere dage til samme eksamen Der vil i dette afsnit blive lavet en udvidelse af Figur 3.8. Der bygges videre på samme princip fra hele kapitlet om pardannelse af ressourcer. Udvidelsen vil bestå af to grafer G = (K g, L g, E g ) og H = (K h, L h, E h ), hvor E h =, dvs. der ikke er nogen kanter i H. Alle kanter der udspringer fra den samme knude i K g, som kan ses på Figur 3.8, vil få en vægt. Denne vægt svarer til antallet af dage, der er nødvendige for at alle de studerende har været til eksamen, og kravet om at eksaminator, samt censor, får pauser i løbet af dagen. Vægten findes ved at multiplicere antallet af studerende, s, med den tid hver eksamen tager, t, plus de nødvendige pauser for censor og eksaminator, p, og derefter dividere med den tid der er tilgængelig på en dag, d, og hvor e vægt er vægten kanterne får. s t + p e vægt = d Herefter bruges der en algoritme til at lave pardannelserne. Denne algoritme har følgende input: Todelt graf G der svarer til Figur 3.8, og en tom graf H, der har samme knuder som G, men ingen af kanterne. Algoritme 4 starter med at sortere G for at få de knuder, der har kanter med største vægt, øverst. Dette gøres for at parringen kan gøres grådigt. Grunden til at en grådig parring er ønskværdig i dette tilfælde, er for at få de eksaminer, der tager mange dage, placeret hurtigst muligt, da de kan være svære at planlægge senere. Der laves en grådig pardannelse, som bliver flyttet over i H. Disse kanter repræsenterer den første planlagte dag, og samtlige vægte i H vil få subtraheret 1, hver gang en dag bliver planlagt. Dette gentages indtil en af kantens vægte rammer 0. Herefter vil vægten for de resterende parringer, som ikke har ramt 0, blive flyttet tilbage i G, med parringerne. Herefter vil der blive lavet nye parringer, indtil der ikke er flere frie knuder i L, eller K, og parringerne 25

36 KAPITEL 3. PARDANNELSE AF GRAFER k0 k1 k2 k3 l0 k4 l1 k5 l2 k6 l3 k7 k8 k9 k10 Figur 3.8: Todelt graf med kurser og lokaler Algorithm 4 Flere dage til hver eksamen 1: Input: Todelt graf G 2: Output: Planlagt dag i en eksamensplan 3: S Kanterne fra G 4: H V 1, V 2 fra G 5: H Pardannelse(H, S) 6: Planlæg M fra H 7: Vægten af hver kant i H formindskes med 1 8: if vægten af en kant, e, i H 0 then 9: H H e 10: H Pardannelse(H, S) 11: end if Algorithm 5 Pardannelse(H, S) 1: Input: Todelt graf H, mængde af kanter S 2: Output: Todelt graf H med en grådig pardannelse 3: while der er frie knuder i V 2 i H do 4: for all kanter, k, i S do 5: if k kan parres i H then 6: H H + k 7: end if 8: end for 9: end while 10: return H 26

37 3.5. FLERE DAGE TIL SAMME EKSAMEN flyttes over i H på ny. Dette gentages indtil der ikke er flere kanter tilbage i G, hvorefter der kan konkluderes at alle kurser er blevet planlagt. k0 k0 k1 4 k1 4 4 k2 k k3 k3 3 l0 l0 k4 3 k l1 l1 k5 2 k5 2 k l2 k6 l2 1 1 l3 l3 1 k7 k k8 k8 k9 k9 k10 k10 (a) Grafen G (b) H med udvalgte kanter fra G Figur 3.9: Sortering og udvælgelse af kanter af Figur 3.8 Der vil i dette eksempel blive gennemgået de første skridt af algoritmen, og et resultat der svarer til informationer vi starter ud med i eksemplet. Figur 3.9 viser hvilke kanter der bliver flyttet fra G, til H ved en grådig pardannelse. Disse parringer sættes nu over i Tabel 3.3 og alle kanternes vægt subtraheres med 1. Dette gentages indtil en af vægtene rammer 0, og denne eksamen er planlagt. Der skal derfor findes en ny parring til den frie knude i L hvilket gøres grådig. Dette kan ses på Figur 3.10(a), samt de nye parringer på Figur 3.10(b). Dette gentages indtil der ikke er flere kanter tilbage i G og alle eksaminerne dermed er planlagt. Resultatet af eksemplet kan ses i Tabel 3.3. Mandag Tirsdag Onsdag Torsdag Fredag Mandag Tirsdag l 0 k 0 k 0 k 0 k 0 k 2 k 2 k 2 l 1 k 5 k 5 k 6 k 7 k 9 l 2 k 1 k 1 k 1 k 1 k 8 l 3 k 3 k 3 k 3 k 4 k 4 k 4 Tabel 3.3: Eksempel på færdigplanlagt eksamen med flere dage 27

38 KAPITEL 3. PARDANNELSE AF GRAFER k0 k0 k1 2 k1 2 2 k2 k k3 k3 1 l0 l0 k4 1 k l1 l1 k5 k5 k6 1 1 l2 k6 1 l l3 l3 1 k7 k k8 k8 k9 k9 k10 k10 (a) Grafen G (b) Ny graf H Figur 3.10: Ny udvælgelse af kanter af Figur

39 Kapitel 4 Knudefarvning I dette kapitel vil vi beskrive knudefarvning, som bruges til at finde mængder af knuder, hvori knuderne ikke er forbundet af kanter. Dette vil vi senere bruge til at finde eksaminer, som ikke deler ressourcer. Vi vil derudover se på en metode til at sikre studerende mindst en hviledag mellem hver eksamen. 4.1 Knudefarvning For at kunne løse problemstillingen med at finde elementer som intet har tilfælles med hinanden, kan man bruge knudefarvning. Dette princip introduceres herefter, og vi starter med at definere en farvning i Definition Definition (Knudefarvning). Lad G = (V, E) være en graf. En knudefarvning er en tildeling af farver til knuderne i V således at for hver v i og v j, hvis der er en kant mellem v i og v j, da har v i og v j ikke samme farve [11, s. 667]. Hvis man opstiller problemet som en graf, kan man lade knuderne repræsentere et element, der indeholder en mængde ressourcer, og en kant mellem to knuder repræsenterer et forhold i form af en fælles ressource. Hvis man f.eks. lader knuderne være eksaminer, ville en kant betyde, at de forbundne eksaminer skal afholdes på forskellige dage, da de har mindst én fælles ressource og derfor ville blive tildelt hver sin farve i knudefarvningen. Målet med en knudefarvning er at bruge færrest mulige farver. Når man skal overføre grafen til et planlagt skema, ville hver dag få hver sin farve, og det ville også være nemt i denne forbindelse at indsætte en hviledag, f.eks efter hvert farveskift. Et eksempel på en planlagt uge, sat op i et skema, kan ses i Tabel 4.1. Eksemplet viser, at der er indsat en hviledag om onsdagen. Dette er gjort for at sikre hviledagen for de studerende. Ugedage: Mandag Tirsdag Onsdag Torsdag Fredag Uge 1: Røde eksaminer Hviledag Grønne eksaminer Uge 2: Blå eksaminer Hviledag Gule eksaminer Tabel 4.1: Eksempel på en eksamensplan med farvede eksaminer Nu har vi beskrevet hvordan knudefarvning kan bruges i forbindelse med planlægning af eksaminer, og vil nu gå videre til at opstille en algoritme, som kan lave knudefarvningen. Denne algoritme har vi selv udviklet, og vi er klar over at der findes bedre alternative algoritmer til knudefarvning. Vi valgte at lave vores egen algoritme, da de andre algoritmer vi havde fundet, var for komplicerede til at implementere for os. 29

40 KAPITEL 4. KNUDEFARVNING For bedre at kunne forstå knudefarvning som et problem, beskrives det på følgende måde: KNUDEFARVNING = { (G, k) G har en knudefarvning med højst k farver } Knudefarvningsproblemet er NP-fuldstændigt [7, s. 95], hvilket medvirker at vi vælger at bruge en approksimativ algoritme, da vi ønsker at løse problemet i polynomiel tid. Algoritmen skal sørge for at hver knude i grafen har en farve, som ingen af dens naboer har. Derudover skal algoritmen også bruge så få forskellige farver så muligt, da færre farver vil betyde at vi kan lægge flere eksaminer per dag, uden fælles studerende, og vil derfor få en mere optimal eksamensplan. Farverne repræsenteres ved hjælp af værdier, og vil blive omtalt som farveværdier. Man kan derfor tage udgangspunkt i, at hver gang en knude farves, lægges farveværdierne af naboknuderne i mængden S, hvorefter knuden tildeles en farveværdi, så lav som muligt, der ikke er en del af mængden S. Denne proces skal ske for hver knude i grafen. Farveværdierne der bruges i algoritmen tilhører Z +. Vi benytter os af grafen G = (V, E). Der tages udgangspunkt i den første knude, v 0, hvor naboværdierne ligges i S. Herefter bliver v 0 tildelt den laveste farveværdi, der ikke er i S, som i dette tilfælde er 1, da S er tom. Dernæst farves v 1. Dens naboværdier placeres i S, og v 1 bliver tildelt den laveste farveværdi, som ikke er i S, som nu er 2, fordi {1} er i S. Algorithm 6 Knudefarvningsalgoritme 1: Input: Ufarvet graf 2: Output: Farvet graf 3: i = 0 4: while i < V do 5: j = 1 6: S = 7: Tilføj v i s naboers farveværdier til S 8: Sort(S) 9: S = S S 10: while S[j 1] == j do 11: j = j : end while 13: v i = j 14: i : end while Algoritmen er grådig, og der vil nu blive gennemgået et eksempel af algoritmens fremgangsmetode. Der tages udgangspunkt i en graf G = (V, E), som er vist på Figur 4.1. Knudefarvningsalgoritmen vil starte i v 0 og vil, da ingen af naboknuderne til v 0 har fået tildelt en farveværdi, tildele v 0 farveværdien 1, som det ses på Figur 4.2(a). Efter dette vil algoritmen se på næste knude, v 1, og naboerne hertil. Her har kun v 0 fået en farveværdi, som lægges ind i S og algoritmen finder den næstlaveste farveværdi, som er 2, der tildeles til v 1, se Figur 4.2(b). Samme fremgangsmetode anvendes på v 2, først ryddes S, så tilføjes de nye naboers farveværdier og den laveste farveværdi tildeles v 2. Sådan fortsætter algoritmen, til alle knuder har fået en farveværdi. Resultatet kan ses på Figur 4.2(d). I dette eksempel finder algoritmen en optimal farvelægning, men da algoritmen er approksimativ, findes den optimale løsning ikke altid. Et eksempel på en ikke optimal knudefarvning kan ses på Figur 4.3. Her er grafen på Figur 4.3(a) blevet farvet med 30

41 4.1. KNUDEFARVNING v 2 v 3 v 0 v 1 v 4 Figur 4.1: Eksempel på graf til knudefarvning v 2 v 3 v 2 v 3 v 0 1 v 1 v 4 v v 1 v 4 (a) (b) v 2 v 3 3 v v 3 v v 1 v 4 v v 1 3 v 4 (c) (d) Figur 4.2: Gennemgang af farvningsalgoritmen på Figur

42 KAPITEL 4. KNUDEFARVNING algoritmen, og som det ses, bliver der i alt brugt 5 forskellige farver, selv om det er muligt kun at bruge 4, som ses på Figur 4.3(b). v 1 v v 4 v 1 v v v 2 3 v 3 5 v 5 v 2 3 v 3 1 v v 6 v 6 (a) Ikke optimal farvning (b) Optimal farvning Figur 4.3: Eksempel på ikke optimal(a), og optimal farvning(b) Vi kan dermed konkludere at vores algoritme er approksimativ, da den ikke altid vil kunne finde den optimale løsning. Tidskompleksiteten for denne algoritme kan ses i Tabel 4.2, hvor n er antal knuder. Linjer Antal operationer 7 O(n 1) = O(n) 8 O(n log n) 9 O(n) O(n 1) = O(n) Sammenlagt O(n(n log n + n + n + n)) I alt O(n 2 log n) Tabel 4.2: Tidskompleksitet for knudefarvningsalgoritme 32

43 Kapitel 5 Løsningsmodeller Nu hvor forskellige muligheder for løsninger er blevet fremlagt, vil deres konkrete brug til eksamensplanlægningen blive gennemgået. Vi opstiller vores første løsningsmodel i Afsnit 5.1, hvor vi bruger pardannelse i en to-delt graf. Herefter i Afsnit 5.2 har vi vores anden model, hvor vi bruger både pardannelse og knudefarvning. I vores tredje model i Afsnit 5.4, bruges der pardannelse i en n-delt graf. I Afsnit 5.5 har vi vores sidste model, hvor der bruges stifarvning og knudefarvning. For at kunne sammenligne modellernes tidskompleksitet, samt fordele og ulemper vil en sammenligning blive opstillet i slutningen af alle afsnit og herefter i Afsnit 5.6 udvælges den bedste model til implementationen. Vi lader n betegne antallet af knuder, og d antallet af dage eksamensperioden varer, i forbindelse med tidskompleksiteten af de forskellige løsningsmetoder. 5.1 Pardannelse af hver ressource Pardannelse er én mulig løsningsmetode til at planlægge alle eksaminer. Det er dog under den forudsætning at de kurser som har flere studier tilfælles, bliver opdelt i studiespecifikke kurser. Dette giver en ekstra knude der skal laves en pardannelse på. Som det kan ses på Figur 5.1, har hvert studie en knude for hvert kursus der er tilknyttet studiet. Pardannelsesmetoden starter med at lave en maksimal pardannelse mellem studie og kurser. Da der i grafen højst findes én kant til hvert kursus fra hvert studie, vil udvælgelsen svare til en grådig udvælgelse. Disse parringer vil nu blive behandlet som en ny knude der kan sættes ind i en ny graf og herefter parres igen. Dette gøres indtil alle ressourcer er parret. Efter studier(s) er blevet parret med kurser(k), hvilket betegnes S K, vil parringen med eksaminator(u) ske, S K,U, herefter med censor(c), S K,U,C og til sidst med lokaler(l), S K,U,C,L, som illustreret på Figur 5.2, og kan ses i Algoritme 7. Med denne fremgangsmetode sikres det, at alle studerende kun får en eksamen per dag, ved at der kun kan planlægges en eksamen for hvert studie per dag. Det kan samtidig garanteres at der kommer en hviledag efter en eksamensdag, ved ikke at planlægge en eksamen fra samme studie på dage efter hinanden. Fordelen ved at at bruge denne løsningsmetode, er at de kun kræver én effektiv algoritme, der skal køres 4 gange for at få lavet en eksamensplan. Dette kan observeres på Figur 5.2, hvor hver af de grå områder illustrerer en iteration af algoritmen. At der kun kræves én algoritme gør metoden let at implementere. Ulemperne er at planlægningen risikerer at blive dårlig, da de fleste studerende vil få alle deres eksaminer meget hurtigt efter hinanden med kun en enkelt hviledag mellem hver eksamen. Kurserne kan derudover ikke behandles som hele enheder, men skal deles op i mindre stykker, der kræver langt flere iterationer af algoritmen. Der er en risiko for at ikke alle mulige kombinationer af eksaminer findes, da knuderne bliver dannet et par af gangen kan det udelukke muligheder 33

44 KAPITEL 5. LØSNINGSMODELLER Kurser s0 Kurser s0 0 s0 1 Studie s 0 s0 2 s1 Kurser s 1 s1 0 s1 1 s1 2 Figur 5.1: Opdeling af studieindividuelle kurser Planlagt eksamen Studie, kurser, eksaminator og censor Studie, kurser og eksaminator Studie og kurser s 0 k 0 u 0 c 0 l 0 Figur 5.2: Planlæggelse af en eksamen igennem flere pardannelser Algorithm 7 Pardannelse af hver ressource 1: Input: 4 todelte grafer, G 1 = (S, K, E), G 2 = (S K, U, E), G 3 = (S K,U, C, E), G 4 = (S K,U,C, L, E) 2: Output: Eksamensplan 3: for all Dage i eksamensperioden do 4: S K Hopcroft-Karp(S, K) 5: S K,U Hopkroftkarp(S K, U) 6: S K,U,C Hopkroftkarp(S K,U, C) 7: S K,U,C,L Hopcroft-Karp(S K,U,C, L) 8: return S K,U,C,L 9: end for 34

45 5.2. KNUDEFARVNING OG PARDANNELSE Linjer Antal operationer 3 O(d) 4 O(n 5 2 ) 5 O(n 5 2 ) 6 O(n 5 2 ) 7 O(n 5 2 ) Sammenlagt O(d(O(n 5 2 ) + O(n 5 2 ) + O(n 5 2 ) + O(n 5 2 ))) I alt O(d(n 5 2 )) Tabel 5.1: Tidskompleksitet for pardannelsesmetoden senere hen der kunne være blevet lavet ved en anderledes men stadig optimal pardannelse. Derudover er der en risiko for at den kun finder én eksamen per dag. Denne løsning undersøger hver delmængde som individuelle enheder og tager derfor ikke højde for at senere parringer kan udelukke de allerede fundne par. Dette kan betyde at eksaminerne ikke kan afholdes inde for den givne periode og kan derfor bryde kravet om at alle eksaminer skal afholdes (se Afsnit for krav). Fordele Ulemper Benytter kun én hurtig og effektiv algoritme Kræver speciel opdeling af kurser Tager ikke højde for alle kombinationer Stor risiko for dårlig planlægning Tabel 5.2: Fordele og ulemper ved pardannelse af hver ressource 5.2 Knudefarvning og pardannelse Knudefarvning er en anden metode til at planlægge eksamen. Denne metode bruger en graf med kurser opdelt efter studie, som i Afsnit 5.1. En knude består af et studie, et kursus, en eksaminator og en censor. Der laves nu en kant mellem knuderne, som repræsenterer eksaminerne, hvis de har en ressource tilfælles. Herefter knudefarves denne graf med knudefarvningsalgoritmen (Algoritme 6). De knuder der herefter har samme farve, kan afholdes på samme dag. Efter at denne farvning er lavet, vil Hopcroft-Karp algoritmen blive brugt på en todelt graf, bestående af de knuder med samme farve og lokalemuligheder. Resultatet af dette kan ses i Algoritme 8. Der bliver, ved denne model, taget højde for at ingen studerende kan have mere end en eksamen per dag. Derudover kan der tages højde for en fridag mellem eksaminerne, ved at have en hviledag mellem hver planlagt eksamen, hvilket betyder en tabt dag til at planlægge eksamen på da der ikke bliver taget højde for om eksaminer kan afholdes dage efter hinanden. Denne løsningsmetode har samme fordel som pardannelse i Afsnit 5.1, da den bruger samme algoritme, men den har en ulempe i, at der også skal laves en algoritme til knudefarvning, hvilket betyder mere at implementere. Dette betyder dog ikke, at tidsforbruget stiger, da de to algoritmer har samme asymptotiske tidskompleksitet. Derudover har den samme ulemper som pardannelsesmetoden, se Afsnit 5.1. Der kan dog opstå problemer, hvis f.eks. en censor, som bruges af en eksamen med farveværdien 1, ikke kan afholde eksamen i de første to uger. 35

46 KAPITEL 5. LØSNINGSMODELLER Algorithm 8 Knudefarvning og pardannelse 1: Input: Graf G = (V, E), og en mængde af lokaler, L 2: Output: Eksamensplan 3: Lav kanter mellem alle knuder der har en ressource tilfælles 4: G Knudefarvningsalgoritme(G) 5: for all farver f G do 6: if forrige dag er hviledag then 7: Planlagt Dag Hopcroft-Karp(V f, L) 8: return Planlagt Dag 9: else 10: return Hviledag 11: end if 12: end for Linjer 3 O(n) Antal operationer 4 O(n 2 log n) 5 O(n) 7 O(n 5 2 ) Sammenlagt O(n + n 2 log n + n(n 5 2 )) I alt O(n 7 2 ) Tabel 5.3: Tidskompleksitet for knudefarvning og pardannelsesmetoden, hvor n er antal knuder Fordele Ulemper Bruger hurtig og effektiv algoritme til pardannelsen Stor risiko for dårlig planlægning Kræver speciel opdeling af kurser Mere at implementere end i pardannelse (Afsnit 5.1) Kan opstå problemer med ledighed af eksaminator eller censor Tabel 5.4: Fordele og ulemper ved knudefarvning og pardannelse 5.3 Introduktion til n-delte grafer n-delte grafer er også en måde at løse problemet på. Denne metode bruges til at danne par i grafer, som har flere delmængder end en todelt graf. En n-delt graf defineres ved Definition Definition (n-delt graf). En graf G = (V, E) kaldes n-delt hvis dens knudemængde V kan deles i n disjunkte ikketomme delmængder V 1, V 2,..., V n, V = V 1 V 2, V n, således at ingen knuder fra samme delmængde er naboer [12, s. 6]. n-delte grafer kan bruges til at indramme de forskellige ressourcer der er nødvendige for en eksamensplan. Med denne viden er det muligt at opstille en n-delt graf for eksamensplanlægning, der er illustreret på Figur 5.3. Grafen er 5-delt, da ingen kanter går mellem studier, lokaler, underviser og censor, men alle kanter fra disse går til kurserne. For at kunne sige at der er blevet planlagt en eksamen via denne graf, vil det kræve at der er blevet valgt et kursus, en censor, en 36

47 5.4. PARDANNELSE UD FRA N-DELT GRAF Underviser Lokaler u2 u1 u0 l2 l1 l0 Censor Studie c0 s2 c1 s1 c2 s0 k0 k1 k2 Kurser Figur 5.3: En 5-delt graf over eksamensplanlægningsressourcer underviser og et lokale. Studierne indgår ikke som del af eksamen, men de bruges til at reducere antallet af kurser der kan benyttes på samme dag, ved at sikre at kurser der deler studerende ikke udvælges. 5.4 Pardannelse ud fra n-delt graf En anden løsningsmetode til problemet, er ved først at tage højde for studier og kurser. Når en dag planlægges må de kurser der vælges ikke skabe konflikt med de foregående via en fælles studerende eller lignende. Graden for kurser svarer til antallet af studier der har dette kursus. Det afgør samtidigt hvor mange andre kurser der bliver udelukket hvis denne eksamen vælges at blive afholdt. Graden vil blive fundet til samtlige kurser og den med højest grad vil blive valgt som udgangspunkt til en søgning. Hvis der er flere med samme grad vil en tilfældig af disse blive valgt. Søgningen der bruges til udelukkelse kan f.eks være en BFS der starter i den valgte knude og benytter denne som rod til træet. Herefter tilføjer den alle de knuder som er forbundet i grafen som blade til træet. Søgningen går videre og vælger nu alle de kurser som er forbundet til de fundne studier. En videresøgning er ikke nødvendig da det kun er disse kurser der er forbundet med udelukkede studier. Denne fremgangsmetode benyttes indtil alle kurser enten er valgt eller udelukket. De udvalgte kurser benyttes i delgrafen G = (K s, U k, E). Her parrer Hopcroft-Karp algoritmen kurser med en underviser, og igen med en censor efter samme princip som i Figur 5.2. Der vil i denne proces være mulighed for, at ikke alle de udvalgte kurser kan få tildelt en eksaminator og en censor, hvilket kan skyldes at censor og/eller eksaminator ikke kan afholde eksamen på den pågældende dato. Hvis dette er tilfælde, vil kurset ikke blive føjet til den nye graf, da en eksamen ikke kan afholdes uden dem. Når alle de mulige pardannelser er fundet, mangler de stadig et lokale, hvor Hopcroft-Karp algoritmen igen benyttes, og efter denne gennemgang vil alle de eksaminer, der kan afholdes på denne dag, være planlagt. Fordelene ved denne metode er, som kan ses i Tabel 5.5, at tidskompleksiteten er lav hvilket gør at det kan på polynomiel tid. Ulemper er de samme som i pardannelse (Afsnit 5.1). 37

48 KAPITEL 5. LØSNINGSMODELLER Algorithm 9 n-delt kombinationsmetoden 1: Input: 5-delt graf G = (S, K, E, C, L) 2: Output: Eksamensplan 3: while ikke alle knuder i K er udvalgt/fjernet do 4: Vælg knude med højest grad i K 5: Find alle de kurser i K, der udelukkes, og fjern dem 6: end while 7: for all Dage i eksamensperiode do 8: K S,E Hopkroftkarp(K S, E) 9: K S,E,C Hopkroftkarp(K S,E, C) 10: K S,E,C,L Hopkroftkarp(K S,E,C, L) 11: return K S,E,C,L 12: end for Linjer Antal operationer 3 O(n) 4 O(n) 5 O(n) 7 O(d) 8 O(n 5 2 ) 9 O(n 5 2 ) 10 O(n 5 2 ) Sammenlagt O(n(n + n) + d(n n n 5 2 )) I alt O(d(n 5 2 )) Tabel 5.5: Tidskompleksitet for n-delt kombination 38

49 5.5. STIFARVNING Fordele Ulemper Bruger hurtig og effektiv algoritme til pardannelsen Stor risiko for dårlig planlægning Stort set identisk med første metode Tager ikke højde for alle kombinationer Tabel 5.6: Fordele og ulemper ved n-delt pardannelse 5.5 Stifarvning Når man planlægger eksaminer på AAU, og formodentligt også andre steder, vil man opdage, at mange parringer, der tidligere er lavet manuelt, allerede er givet på forhånd. De fleste studier har hvert år de samme kurser, og ved de sjældne lejligheder hvor der ændres i studiernes kurser, vil denne del af implementationen være nem at ændre. Kurserne har kun en eller to undervisere, der samtidigt fungerer som eksaminatorer til eksamen, og samtidig finder den pågældende censor til eksamen. Dette betyder at forholdet mellem S, K, E og C allerede er kendt på forhånd. Det betyder at en pardannelse vil verificere dette, og vil derfor være spildt arbejde. Den eneste fordeling, der skal finde sted, er fordelingen af lokaler, samt hvornår disse eksaminer skal afholdes. Denne viden giver muligheden for at man med fordel kan beskrive problemet som et stifarvningsproblem. Forholdet mellem ressourcerne kan sættes op som en n-delt graf, så hver delmængde repræsenterer hhv. studier, kurser, eksaminatorer, censorer og lokaler. Der vil kunne laves en sti i denne graf, som repræsenterer en eksamen der kan planlægges. Konflikter kan undgås ved at udelukke de knuder, der bliver brugt når en sti laves. Et eksempel på sådan en graf kan ses på Figur 5.4. AGD Emma Martin Aud. 1 GPRO Jeppe Kurt D312 Media IMPR Simon Karl Aud. 4 Dat VA Kathrine Bent A205a Kemi AKEM Jais Lone A416 PV Samuel Olav A309 LIAL Bertil Figur 5.4: Eksempel på en 5-delt graf, som viser sammenhæng imellem de forskellige ressourcer Løsningsmetoden skal finde flest mulige stier, som er knude-disjunkte, og dette kan gøres med en polynomiel reduktion til knudefarvning. Følgende afsnit omhandler ideen bag algoritmerne Algoritme 11 og Algoritme

50 KAPITEL 5. LØSNINGSMODELLER Stifarvning knudefarvning Da stierne er kendt på forhånd, kan hver af disse laves om til en knude i en graf G θ = (V θ, E θ ). Denne graf kan maksimalt få S K U C L knuder, men da delen K, U, C er entydig, kan dette reduceres til S K U,C L = n. Lad derefter hver kant i G θ repræsentere at to stier benytter en fælles ressource. Der vil her være maksimalt n2 2 = m kanter her. Der skal imidlertid kun placeres en kant, hvis to stier deler en ressource, og det er derfor nødvendigt at tjekke alle stier imod alle stier, og dette kræver n 2 operationer. Det må derfor kræve n 2 + n O(n 2 ) operationer at fremstille denne graf, som det kan ses i algoritmen M s k ialgoritme 10. Denne graf kan herefter knudefarves, med knudefarvningsalgoritmen (Algoritme 6). Algorithm 10 Stireduktion(G) 1: Input: G med stierne P 2: Output: Graf G θ hvor hver knude i G θ er en sti i G 3: G θ = 4: for all P G do 5: Lav knude i G θ 6: end for 7: j P 8: i 1 9: for all P j P do 10: for all P i P do 11: if P j har fælles ressource med P i then 12: Tilføj kant (v θ j, vθ i ) 13: end if 14: j j 1 15: i i : end for 17: end for 18: return G θ Linjer Antal operationer 3 O(1) 4-5 O(n) 7 O(1) 8 O(1) 9 O(n) 10 O(n) O(1) 14 O(1) 15 O(1) Sammenlagt O(1 + n n(n(1 + 1))) I alt O(n 2 ) Tabel 5.7: Tidskompleksitet for stireduktion Da både knude- og stifarvning er NP-fuldstændige problemer, kan de reduceres til 40

51 5.5. STIFARVNING hinanden, og det er derfor af mindre betydning, hvilket af problemerne vi vælger at løse. Af praktiske årsager, da vi allerede har en knudefarvningsalgoritme, vælger vi at løse dette problem i stedet for stifarvning, ved at reducere stifarvning til knudefarvning, og derefter benytte vores algoritme til knudefarvning Knudefarvning stifarvning Vi vil nu reducere knudefarvning til stifarvning, og dermed bevise at stifarvning er NP-fuldstændigt, da alle problemer i NP kan reduceres til knudefarvning og, hvis knudefarvning kan reduceres til stifarvning, dermed også til stifarvning. Ideen bag reduktionen f s k beskrives her: Begge problemer kan beskrives på følgende måde: KNUDEFARVNING = { (G, k) G har en knudefarvning med højst k farver } { STIFARVNING = (G, P, k) G er en n-delt graf og P er mængden af parstier i G, der har en stifarvning med højst k farver } Lad G = (V, E) og lad k N. Se Figur 5.5 for eksempel. Vi konstruerer en n-delt graf G θ = (V 1,..., V n, E), en mængde af parstier P i G θ, og et k θ N, således at grafen G har en knudefarvning med højst k farver hvis og kun hvis P har en stifarvning med højst k θ farver. Det bemærkes her, at k = k θ. Knuderne og kanterne i hhv. V og E nummereres nu, sådan at der findes en knude v i, hvor 0 i < V og en kant e j, hvor 0 j < E. Den n-delte graf G θ har nu et n givet på følgende måde, hvor x er antallet af knuder i G θ : Vi lader n = { 0 hvis E = 0; 3x + 1 hvis E > 0. G θ = (V 1, X 1, Y 1, V 2, X 2, Y 2,..., X E 1, Y E 1, V E, E) Lad m = V. I hver V i skal der være m knuder, så V i = {vi 1, v2 i,..., vm i }. Tilsvarende har vi X = {x 1 i, x2 i,..., xm i } og Y = {y1 i, y2 i,..., ym i }. Der er også m stier i P, da hver sti repræsenterer en knude i G; disse konstrueres nu. Når stierne går fra V j til V j+1 repræsenteres de knuder som er forbundet af kanten e j. Hvis e j = {v a, v b } skal sti P a og sti P b mødes imellem V j og V j+1. Til dette formål benyttes knudemængderne X j og Y j (se Figur 5.6). For alle andre knuder, end dem der indgår i kanten e j, skal stien gå igennem hhv. vj k xk j yk j vk j+1. På denne måde sikres at ingen andre stier mødes, end dem som netop danner kanten e j. Det ses ud fra Figur 5.6 at knude v 0 og v 3 kan have samme farve, samt v 1 og v 2, da stierne for knude v 0 og v 3 ikke deler en kant, det samme gør sig gældende for v 1 og v 2. Vi skal nu bevise, at denne reduktion er i polynomiel tid. Til dette formål opstilles algoritmen for M k s som det ses i Algoritme 11. Det ses nu ud fra Tabel 5.8, at tidskompleksiteten for M k s forløber ved O(n 3 ) operationer, og den er derved i polynomiel tid. For at vise at vores reduktion er trofast, dvs. at hvis vi har en graf der kan farves med k farver, så vil vi også få en stifarvning med k farver. Dette fremgår dog tydeligt, da hver kant fra den oprindelige graf, G, bliver repræsenteret enkeltvis, i hver sin del af stierne, i grafen G θ, mere bestemt for stien e j bliver den repræsenteret i v j v j+1. Da hver kant derfor er repræsenteret kun en gang, helt uafhængig af hinanden, må stier være 41

52 KAPITEL 5. LØSNINGSMODELLER v 1 v 2 v 0 v 3 Figur 5.5: G V 1 X 1 Y 1 V 2 X 2 Y 2 V 3 X 3 Y 3 V 4 Figur 5.6: G θ Algorithm 11 Knudereduktion(G) 1: Input: G 2: Output: Graf G θ hvor hver knude i G er en sti i G θ 3: G θ = 4: Tildel alle knuder og kanter, i G, en værdi 5: Lav 3 E + 1 dele med V knuder i hver i G θ 6: for all e i G do 7: G θ G θ + P (V ei V ei +1) 8: end for forbundet på præcis samme måde som knuderne, og derfor må stierne kunne farves med k farver. Reduktionen må derfor være trofast. Et certifikat for stifarvningen må være en mængde af farver til stierne, og verifikationen af dette, må da være en algoritme som viser, at ingen sti der har samme farve, har en fælles kant. Dette skal dog foregå i polynomiel tid, og det fremgår tydeligt at denne algoritme er i polynomiel tid, da hver sti skal tjekkes imod hver sti af samme farve for hver v j, altså antal v j n 2 operationer, hvor n er antal stier. Dette betyder, at stifarvning er et NP-fuldstændigt problem, da det kan reduceres til knudefarvning, og mere vigtigt, knudefarvning kan reduceres til stifarvning. Efter at vi har vist at knudefarvning kan reduceres til stifarvning, vil vi nu opsætte følgende algoritme. I algoritmen udvælges en farve, ud fra hvilken farves eksaminer der har flest dage tilbage at planlægge. For at finde tiden det tager for en eksamen at blive afholdt, bruges metoden fra Afsnit

53 5.5. STIFARVNING Linjer Antal operationer 3 O(1) 4 O(n + n 2 ) 5 O(n(3(n 2 ) + 1)) 6 O(n 2 ) 7 O(3n) Sammenlagt O(n + n 2 + n(3(n 2 ) + 1) + (n 2 )(3n)) I alt O(n 3 ) Tabel 5.8: Tidskompleksitet for Knudereduktion Algorithm 12 Stifarvningsmetoden 1: Input: 5-delt graf G = (S, K, E, C, L) med stier 2: Output: Eksamensplan 3: for all Dage i eksamensperioden do 4: Transformer G G θ 5: Knudefarv(G θ ) 6: Udvælg farvning med højst antal planlægningsdage 7: Transformer knuderne i G θ til stier i G 8: return Stier i G 9: end for Linjer Antal operationer 3 O(d) 4 O(n 2 ) 5 O(n 2 log(n)) 6 O(3(n)) 7 O(n) Sammenlagt O(d(n + n 2 log(n) + 3(n) + n)) I alt O(d(n 2 log(n))) Tabel 5.9: Tidskompleksitet for Stifarvningsmetoden Fordelen ved denne løsningsmetode er, at der kun skal bruges én algoritme til planlægningen, og at der bliver taget højde for alle ressourcerne på én gang. Derudover kan den benytte alle de eksisterende kombinationer af ressourcer. Ulemperne er, at der skal ske en reduktion fra sti- til knudefarvning, før planlægningen kan begynde, hvilket kan gøre løsningen kompliceret. Fordele Ulemper Én algoritme til planlægningen Kan tage højde for alle ressourcer på en gang Kan benytte alle eksisterende kombinationer Kompliceret løsning Kræver reduktion fra sti- til knudefarvning Tabel 5.10: Fordele og ulemper ved stifarvning 43

54 KAPITEL 5. LØSNINGSMODELLER 5.6 Valg af løsningsmodel Vi vil i dette afsnit vælge én af de forrige løsningsmodeller, og derefter implementere denne. Da alle metodere har både fordele og ulemper, og alle algoritmerne er approksimative, har vi valgt at vælge vores løsningsmetode ud fra O-notation. Det ses, at alt efter forholdet mellem eksaminer, n, og dage, d, er enten knudefarvning 7 og pardannelse, Afsnit 5.2 med O(n 1 2 ) eller stifarvning, Afsnit 5.5 med O(d(n 2 2 log n 2 )) den hurtigste. n 2 vil dog for det meste være større end n 1, da n 2 = n 1 l, hvor l er gennemsnitligt antal lokaler hver eksamen er forbundet til. d l 2 log n 2. Da dette spørgsmål er svært at svare på, når man ikke ved hvor mange lokaler hver eksamen er forbundet til, har vi i stedet kigget på fordele og ulemper ved de to metoder med lavest O-notation. Nogle af deres problemer er de samme, da de begge bruger en grådig farvningsalgoritme, selvom stifarvning bruger den flere gange. Men knudefarvning og pardannelse bruger derudover Hopcroft-Karps algoritme, mens stifarvning bruger reduktion fra stifarvning til knudefarvning. Af disse to algoritmer har M s k den laveste O-notation. Desuden tager stifarvning hensyn til hvilke kurser, der kræver de samme lokaler, og den har ikke de samme problemer med at håndere, at censor eller eksaminator ikke har mulighed for at afholde eksaminer på visse dage. Vi vælger derfor at bruge løsningen, stifarvning fra Afsnit 5.5, i vores implementation. 44

55 Kapitel 6 Dokumentation Efter at have valgt en løsningsmodel har vi implementeret den valgte model i programmeringssproget C#. Den grafisk brugergrænseflade er udviklet i Microsoft Visual Studio. Vi vil i dette kapitel dokumentere de vigtige aspekter af programmet. Vi vil i Afsnit 6.1 beskrive hvordan vi har valgt at repræsentere en graf i C#. I Afsnit 6.2 beskriver vi den overordnede programstruktur. Vi vil i Afsnit 6.3 beskrive vores brugergrænseflade, samt kort beskrive vores output i Afsnit Derefter vil vi i Afsnit 6.4 kort beskrive de vigtige metoder i vores program. Så vil vi i Afsnit 6.5 beskrive testningen af vores program, samt resultatet af denne test. Til sidst en kort opsummering af programmet i Afsnit 6.6. Hele programkoden vil kunne findes i Bilag C. 6.1 Repræsentation af grafer En stor del af vores implementation benytter grafer, og det er derfor vigtigt at have en god datastruktur til dette. For at repræsentere en graf i programmeringssproget C#, har vi valgt at lave en klasse for knuder og en klasse for kanter, dvs. at vi laver en naboliste for hver knude ved at benytte Kant klassen. Dette er valgt frem for andre repræsentationer, som f.eks. en nabomatrix. En fordel ved at bruge nabolister er, at de kun benytter den plads, som er nødvendigt, dvs. at en naboliste kun vil indeholde naboerne til en knude, hvor en matrix vil kræve et array af størrelsen n 2, hvor n er antal knuder. En repræsentation af hver af disse kan ses på Figur 6.1. En ulempe ved at bruge nabolister er, at de tager længere tid end en matrix til at finde en bestemt nabo, da man i en liste skal gennemgå alle elementer, hvor man i en matrix blot kan slå naboen op på konstant tid [8]. Da fordelene og ulemperne ved hver slags repræsentation ikke betyder meget i vores programs størrelse, har vi valgt at bruge nabolister frem for matricer, da vi mente at det ville være lettere at arbejde med. 45

56 KAPITEL 6. DOKUMENTATION Figur 6.1: Graf repræsenteret som naboliste og som matrix [8] 6.2 Overordnet programstruktur Da vi har valgt at bruge nabolister, kan en graf repræsenteres ved en liste af knudeobjekter. Hver ressource repræsenteres som en knude, og der laves en klasse til hver af disse, som arver fra Knude klassen, som det fremgår af Figur 6.2. Som det også ses på figuren, har vi en klasse Eksamen, som ikke er en enkelt ressource, men en knude som repræsenterer en hel eksamen, dvs. at Eksamen klassen er en sti, reduceret til en knude, som forklaret i Afsnit Det er denne Eksamen klasse som der vil blive lavet objekter af, når vi laver en eksamen der skal planlægges. 46

57 6.2. OVERORDNET PROGRAMSTRUKTUR Figur 6.2: Diagram over knudeklassen, og de klasser der arver fra den 47

58 KAPITEL 6. DOKUMENTATION 6.3 Brugergrænseflade Vi vil i dette afsnit beskrive vores brugergrænseflade, som bliver brugt i vores program. Til det har vi valgt at benytte Microsoft Visual Studios Windows Forms Application, da dette giver os mulighed for at lave en grafisk brugergrænseflade forholdsvis nemt, frem for at skulle udvikle det fra bunden. Det betyder dog også at vores program kun kan udvikles, og bruges, på Windows platformen. Vi valgte at arbejde med første studieår på AAU, men af ressourcemæssige årsager har vi valgt at udvikle programmet med henblik på Første Studieår ved Det Teknisk-Naturvidenskabelige Fakultet og Det Sundhedsvidenskabelige Fakultet (TNB) på AAU. Et billede af vores grafiske brugergrænseflade er vist på Figur 6.3. Figur 6.3: Billede af programmets grafiske brugergrænseflade Brugergrænsefladen er lavet således, at en bruger kan tilføje eksaminer. Dette gøres ved at der først vælges et studie i en dropdown-menu, som kan ses på Figur 6.4(a). Når et studie er valgt, vil de kurser, som tilhører dette studie, blive aktive i den næste dropdownmenu, Figur 6.4(b), hvor brugeren kan vælge hvilket kursus, der skal planlægges. (a) (b) Figur 6.4: Billede af programmets dropdownmenuer, henholdsvis studie og kursus 48

Hamilton-veje og kredse:

Hamilton-veje og kredse: Hamilton-veje og kredse: Definition: En sti x 1, x 2,...,x n i en simpel graf G = (V, E) kaldes en hamiltonvej hvis V = n og x i x j for 1 i < j n. En kreds x 1, x 2,...,x n, x 1 i G kaldes en hamiltonkreds

Læs mere

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)} Procedure Dijkstra(G = (V, E): vægtet sh. graf,. a, z: punkter) { Det antages at w(e) > 0 for alle e E} For alle v V : L(v) := L(a) := 0, S := while z / S begin. u := punkt ikke i S, så L(u) er mindst

Læs mere

Tirsdag 12. december David Pisinger

Tirsdag 12. december David Pisinger Videregående Algoritmik, DIKU 2006/07 Tirsdag 12. december David Pisinger Resume sidste to gang Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret er 1. P = {L : L genkendes af en algoritme

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se

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

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

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Approximations-algoritmer Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Negativt resultat om generel TSP Approximations-algoritme

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

P2-projektforslag Kombinatorik: grafteori og optimering.

P2-projektforslag Kombinatorik: grafteori og optimering. P2-projektforslag Kombinatorik: grafteori og optimering. Vejledere: Leif K. Jørgensen, Diego Ruano 1. februar 2013 1 Indledning Temaet for projekter på 2. semester af matematik-studiet og matematikøkonomi-studiet

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 26. maj 2009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning

Læs mere

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 005, F0 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 00. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af opgaverne:

Læs mere

P2-gruppedannelsen for Mat og MatØk

P2-gruppedannelsen for Mat og MatØk Institut for Matematiske Fag Aalborg Universitet Danmark 1-02-2012 Vejledere Bo Hove E-mail: bh@thisted-gymnasium.dk 3 Mat grupper (semesterkoordinator) E-mail: diego@math.aau.dk. Web page: http://people.math.aau.dk/~diego/

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer I Kursus nr. 0205. Tilladte hjælpemidler: Alle skriftlige hjælpemidler. Vægtning af

Læs mere

EKSAMENSBESTEMMELSER FOR AFGANGSPROJEKTET. Kommunomuddannelsen på akademiniveau. Gældende fra januar 2015

EKSAMENSBESTEMMELSER FOR AFGANGSPROJEKTET. Kommunomuddannelsen på akademiniveau. Gældende fra januar 2015 EKSAMENSBESTEMMELSER FOR AFGANGSPROJEKTET Kommunomuddannelsen på akademiniveau Gældende fra januar 2015 Kommunomuddannelsen www.cok.dk/kommunom 12-01-2015 INDHOLDSFORTEGNELSE 1. Eksamen på Afgangsprojektet...

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 0205. Varighed: 4 timer Tilladte hjælpemidler: Alle skriftlige hjælpemidler.

Læs mere

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid 6 april Løsning af N P -hårde problemer Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid Oversigt Grænseværdier (repetition) Branch-and-bound algoritmens komponenter Eksempler

Læs mere

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel I dag Løsning af NP -hårde optimeringsproblemer Repetition: branch-and-bound Flere begreber Konkret eksempel: TSP Lagrange relaxering Parallel branch-and-bound 1 Opsummering Løsning af NP -hårde optimeringsproblemer

Læs mere

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

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

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Algoritmedesign med internetanvendelser ved Keld Helsgaun Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.

Læs mere

Analyse af algoritmer. Analyse af algoritmer. Analyse af algoritmer. Køretid

Analyse af algoritmer. Analyse af algoritmer. Analyse af algoritmer. Køretid Philip Bille Mål. At bestemme og forudsige resourceforbrug og korrekthed af algoritmer Eks. Virker min algoritme til at beregne korteste veje i grafer? Hvor hurtigt kører min algoritme til at søge efter

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af 2 sider anmarks Tekniske Universitet Skriftlig prøve, den 23. maj 20. Kursusnavn: lgoritmer og datastrukturer Kursus nr. 02326. Varighed: 4 timer Tilladte hjælpemidler: lle skriftlige hjælpemidler.

Læs mere

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet

Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Om at løse problemer En opgave-workshop Beregnelighed og kompleksitet Hans Hüttel 27. oktober 2004 Mathematics, you see, is not a spectator sport. To understand mathematics means to be able to do mathematics.

Læs mere

K 7 - og K 4,4 -minors i grafer

K 7 - og K 4,4 -minors i grafer Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Institut for Matematiske Fag K 7 - og K 4,4 -minors i grafer Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Institut for Matematiske

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside Fagprojekt (1-2. semester) Om kurset Uddannelse Aktivitetstype Undervisningssprog Tilmelding Plan by og proces kandidatprojekt Dansk Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode,

Læs mere

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside Projekt - Sundhedsfremme emme i teori og praksis Om kurset Uddannelse Aktivitetstype Undervisningssprog Tilmelding Sundhedsfremme kandidatprojekt Dansk Tilmelding sker via stads selvbetjening indenfor

Læs mere

Kommunom- uddannelsen

Kommunom- uddannelsen Kommunom- uddannelsen PÅ AKADEMINIVEAU EKSAMENSBESTEMMELSER Afgangsprojektet på Kommunomuddannelsen GÆLDENDE FRA August 2017 INDHOLDSFORTEGNELSE 1. Eksamen på Afgangsprojektet... 3 1.1 Eksamensform...

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

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2. Bevis ved stærk induktion. Basisskridt: P (2) er sand og P (3) er sand. Induktionsskridt: Lad k 2 og antag P

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)

Læs mere

Symmetrisk Traveling Salesman Problemet

Symmetrisk Traveling Salesman Problemet Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok 2 2008/2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik,

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

prøven i almen studieforberedelse

prøven i almen studieforberedelse 2015 prøven i almen studieforberedelse Der er god mulighed for at få vejledning. Du skal blot selv være aktiv for at lave aftale med din vejleder. AT-eksamen 2015 Prøven i almen studieforberedelse er som

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

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

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti. Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Mandag den. marts 00, kl..00 11.00 Navn Gerth Stølting Brodal Årskort 1 Dette eksamenssæt består af en kombination

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet Eksamen 0205, Forår 205 side af 5 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 205. Kursusnavn: Algoritmer og datastrukturer Kursusnummer: 0205 Hjælpemidler: Skriftlige hjælpemidler. Det

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =

Læs mere

1. Semester-ABC Opdateret 05/ Udarbejdet af Stine Rasmussen, semesterkoordinator 1. semester PAS

1. Semester-ABC Opdateret 05/ Udarbejdet af Stine Rasmussen, semesterkoordinator 1. semester PAS 1. Semester-ABC Opdateret 05/7 2018 Udarbejdet af Stine Rasmussen, semesterkoordinator 1. semester PAS I dokumentet her er samlet en række relevante informationer specifikt omkring 1. semester PAS, som

Læs mere

Københavns åbne Gymnasium

Københavns åbne Gymnasium Københavns åbne Gymnasium Info om AT -Almen studieforberedelse Redaktion Nina Jensen Almen studieforberedelse Generel og overordnet beskrivelse. AT er et tværfagligt fag, hvor man undersøger en bestemt

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges).

Læs mere

Kapitel 3 Lineære sammenhænge

Kapitel 3 Lineære sammenhænge Matematik C (må anvendes på Ørestad Gymnasium) Lineære sammenhænge Det sker tit, at man har flere variable, der beskriver en situation, og at der en sammenhæng mellem de variable. Enhver formel er faktisk

Læs mere

Sundhedsteknologi Første projektarbejde Efterår 2013

Sundhedsteknologi Første projektarbejde Efterår 2013 Sundhedsteknologi Første projektarbejde Efterår 2013 Velkommen til sundhedsteknologi! Denne lille skrivelse er ment som en hjælp til at komme hurtigt i gang med det første projektarbejde i de administrativt

Læs mere

Københavns åbne Gymnasium

Københavns åbne Gymnasium Københavns åbne Gymnasium Generel information om AT Almen studieforberedelse - 2016 Redaktion Nina Jensen Almen studieforberedelse Hvad er AT? AT er en arbejdsmetode, hvor man undersøger en bestemt sag,

Læs mere

Grafer og graf-gennemløb

Grafer og graf-gennemløb Grafer og graf-gennemløb Grafer En mængde V af knuder (vertices). En mængde E V V af kanter (edges). Dvs. ordnede par af knuder. Figur: Terminologi: n = V, m = E (eller V og E (mis)bruges som V og E ).

Læs mere

Vejledning i projektskrivelse ved faget Salgsteknik

Vejledning i projektskrivelse ved faget Salgsteknik Vejledning i projektskrivelse ved faget baseret på Nøglen til det gode salg Formål Efter kurset skal du kunne beskrive og bruge teorien fra Nøglen til det gode salg og kunne anvende det i dit arbejde.

Læs mere

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E Grafteori Definition (Simpel graf): En simpel graf G = (V, E) består af V, en mængde hvis elementer kaldes punkter, og E, en mængde af uordnede par af forskellige elementer fra V. Et element fra E kaldes

Læs mere

Sprog L : mængden af instanser for et afgørlighedsproblem

Sprog L : mængden af instanser for et afgørlighedsproblem 26. marts Resume sidste to gang Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret er 1. P NP L : L genkendes af en algoritme i polynomiel tid L : L verificeres af en polynomiel tids

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

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

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer

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 (DM528) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 3 Januar 2011, kl. 9 13 Alle sædvanlige hjælpemidler

Læs mere

Sammenhængskomponenter i grafer

Sammenhængskomponenter i grafer Sammenhængskomponenter i grafer Ækvivalensrelationer Repetition: En relation R på en mængde S er en delmængde af S S. Når (x, y) R siges x at stå i relation til y. Ofte skrives x y, og relationen selv

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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 0. august 00, kl. 9.00-.00

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

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2014 Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

Læs mere

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer: Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Antal sider i opgavesættet (incl. forsiden): (fjorten) Eksamensdag: Mandag den. juni 0, kl. 9.00-.00 Tilladte medbragte hjælpemidler:

Læs mere

Analyse af algoritmer

Analyse af algoritmer Analyse af algoritmer Analyse af algoritmer Køretid Pladsforbrug Asymptotisk notation O, Θ og Ω-notation. Eksperimentiel analyse af algoritmer Philip Bille Analyse af algoritmer Analyse af algoritmer Køretid

Læs mere

Om at gå til mundtlig eksamen en manual for studerende

Om at gå til mundtlig eksamen en manual for studerende Om at gå til mundtlig eksamen en manual for studerende Hans Hüttel 14. juni 2005 Folk ytrer tit en meget forståelig utryghed ved det at gå til mundtlig eksamen. Eksamen er en unormal situation og som eksaminand

Læs mere

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

Pointen med Differentiation

Pointen med Differentiation Pointen med Differentiation Frank Nasser 20. 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

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 24. juni 2011, kl.

Læs mere

FAQ - Ofte stillede spørgsmål om synopsis og eksamen i faget Analyse af regnskabsdata

FAQ - Ofte stillede spørgsmål om synopsis og eksamen i faget Analyse af regnskabsdata FAQ - Ofte stillede spørgsmål om synopsis og eksamen i faget Analyse af regnskabsdata I nedenstående forsøges at besvare mange af de spørgsmål, som der erfaringsmæssigt stilles i forbindelse med synopsis-eksamen

Læs mere

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er en unik simpel vej mellem ethvert par af punkter i

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

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion Philip Bille Introduktion (MST). Udspændende træ af minimal samlet vægt. Introduktion (MST). Udspændende træ af minimal samlet vægt. 0 0 Graf G Ikke sammenhængende Introduktion (MST). Udspændende træ af

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 1 (tolv) Eksamensdag: Fredag den 7. august 009, kl.

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Fredag den 25. juni 200, kl. 9.00-.00

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag: Mandag den 11. august 008, kl.

Læs mere

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside

Tilmelding sker via stads selvbetjening indenfor annonceret tilmeldingsperiode, som du kan se på Studieadministrationens hjemmeside Undersøgende Journalistiske Produktioner på Radio Om kurset Uddannelse Aktivitetstype Undervisningssprog Tilmelding Journalistik kandidatkursus Dansk Tilmelding sker via stads selvbetjening indenfor annonceret

Læs mere

P2 Projektet. P2-vejlederne Redigeret af Kurt Nørmark. Datalogi og Software Første Studieår Aalborg Universitet

P2 Projektet. P2-vejlederne Redigeret af Kurt Nørmark. Datalogi og Software Første Studieår Aalborg Universitet P2 Projektet P2-vejlederne Redigeret af Kurt Nørmark Datalogi og Software Første Studieår Aalborg Universitet Forårssemestret 2015 Introduktion til P2 projektforløbet Til dette P2 projektforløb vil der

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

Nyttig viden om den afsluttende opgave på Skov- og naturteknikeruddannelsen

Nyttig viden om den afsluttende opgave på Skov- og naturteknikeruddannelsen Nyttig viden om den afsluttende opgave på Skov- og naturteknikeruddannelsen For at afslutte din uddannelse som skov- og naturtekniker skal du 1) løse en praktisk opgave på dit praktiksted, 2) skrive en

Læs mere

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR ATALOGI, AARHUS UNIVERSITET Science and Technology EKSAMEN Algoritmer og atastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. august 0,

Læs mere

It-sikkerhedstekst ST9

It-sikkerhedstekst ST9 It-sikkerhedstekst ST9 Single Sign-On og log-ud Denne tekst må kopieres i sin helhed med kildeangivelse. Dokumentnavn: ST9 Version 1 Juli 2015 Single Sign-On og log-ud Betegnelsen Single Sign-On (SSO)

Læs mere

Rettelsesblad til studieordningen for finansøkonom, 2009 2012 Rettet den 9. november 2010

Rettelsesblad til studieordningen for finansøkonom, 2009 2012 Rettet den 9. november 2010 Rettelsesblad til studieordningen for finansøkonom, 2009 2012 Rettet den 9. november 2010 Rettelse til side 10: Erhvervskunderådgivning (2. interne) Ved udgangen af 3. semester afholdes en mundtlig prøve

Læs mere

Datastrukturer (recap)

Datastrukturer (recap) Dictionaries Datastrukturer (recap) Data: Datastruktur = data + operationer herpå En ID (nøgle) + associeret data. Operationer: Datastrukturens egenskaber udgøres af de tilbudte operationer (API for adgang

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Torsdag den 26. marts 2009, kl.

Læs mere

Håndbog til Studieretningsprojektet. Aalborg Katedralskole 2014. Arkiv 6151

Håndbog til Studieretningsprojektet. Aalborg Katedralskole 2014. Arkiv 6151 Håndbog til Studieretningsprojektet Aalborg Katedralskole 2014 Studieretningsprojektet (SRP) er en eksamensopgave, der optræder med en selvstændig A- niveau-karakter med vægten 2 på studentereksamensbeviset.

Læs mere

Mindste udspændende træ

Mindste udspændende træ Mindste udspændende træ Introduktion Repræsentation af vægtede grafer Egenskaber for mindste udspændende træer Prims algoritme Kruskals algoritme Philip Bille Mindste udspændende træ Introduktion Repræsentation

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET INSTITUT FOR DTOI, RUS UNIVERSITET Science and Technology ESEN lgoritmer og Datastrukturer (00-ordning) ntal sider i opgavesættet (incl. forsiden): (elleve) Eksamensdag: Fredag den. juni 0, kl. 9.00-.00

Læs mere