Symmetrisk Traveling Salesman Problemet
|
|
|
- Kaare Simonsen
- 9 år siden
- Visninger:
Transkript
1 Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok /2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik, blok 2, 2008/2009. Opgaven skal løses i grupper på 2 eller 3 personer. Hvis en studerende ønsker at arbejde alene, forudsætter dette en forhåndsgodkendelse fra en instruktor. Opgaven stilles tirsdag den 9. december 2008 og skal afleveres i Informationen (brevbakke på skranken) i 1 eksemplar inden onsdag den 6. januar 2009 kl Husk at angive unik ID (CPR-nr. eller eksamensnr.). Besvarelsen skal godkendes, for at gruppens medlemmer kan indstille sig til den skriftlige eksamen eller senere reeksaminationer. Der er ikke mulighed for genaflevering af en ikke godkendt besvarelse. Formål Formålet med opgaven er, at den studerende skal opnå praktisk erfaring med implementation af grafalgoritmer, et indblik i teknikker til løsning af NP-hårde problemer, erfaring med eksperimentel afprøvning. Opgaven går ud på at analysere og implementere en række løsningsmetoder til det Symmetriske Traveling Salesman Problem (se næste afsnit), samt eksperimentelt at sammenligne deres fordele og ulemper. Målet skulle være en algoritme, som kan finde en optimal løsning af probleminstanser med få knuder (byer) samt en heuristisk løsning af større problemerinstanser. Der skal altså konstrueres to generelle algoritmer, som kan løse problemet. Algoritmerne skal implementeres i C++ og gerne ved anvendelse af (extended) STL C++ og/eller LEDA funktioner. Besvarelsen skal bestå af et tekstafsnit, hvor nedenstående opgaver besvares. Ved 1
2 bedømmelse af opgaven vil der blive lagt vægt på, at alle spørgsmål (hver for sig) er besvaret tilfredstillende. Symmetrisk Traveling Salesman Problemet Den handelsrejsendes problem, eller Traveling Salesman Problemet (TSP), har altid fascineret forskere: Problemet er simpelt at formulere og alligevel meget svært at løse i praksis. Der er skrevet utallige forskningsartikler om emnet, og flere lærebøger betragter TSP som hovedemne. TSP er ikke blot fascinerende i matematisk forstand, men det er et særdeles vigtigt problem i praksis. En lang række problemer i transportsektoren, produktionsplanlægning og endda arkæologi kan formuleres ved brug af TSP. Mange års forskning har flyttet grænserne for, hvor store TSP problemer vi kan løse. Selv om der altid vil eksistere probleminstanser, som højst sandsynligt kræver eksponentiel løsningstid (jf. kommende forelæsnigner om NP-fuldstændighed), udnytter moderne algoritmer strukturen i problemet til konstruktion af stramme grænseværdier. Problemer med flere hundrede knuder (byer) kan nu løses rimelig let. Formelt kan det symmetriske TSP defineres som følgende optimeringsproblem (se også afsnit i CLRS [1]): Lad G = (V, E) være en vægtet (komplet) graf med n = V knuder, hvor c(i,j) for (i,j) E angiver afstanden mellem knuderne i og j. Afstanden antages at være symmetrisk, således at c(i,j) = c(j,i) for alle par af knuder i og j. Problemet er da at finde en kreds, der besøger alle knuder i grafen, en såkaldt Hamilton-kreds, som har en minimal total længde med hensyn til c. I det følgende antages, at alle afstande c(i,j) er heltal. Herunder er et eksempel, som angiver afstandene mellem 8 byer på Bornholm: i\ j Den optimale rækkefølge at besøge knuderne (byerne) i er: 1,2,3,4,5,6,7,8,1. Dette giver en samlet længde af Hamilton-kredsen på
3 Branch-and-Bound Vi vil i denne opgave betragte en nedre grænseværdi for TSP: 1-Tree: Et mindste udspændende træ (MST) konstrueres på grafen, hvor knude 1 midlertidigt er fjernet. Herefter tilføjes de to billigste kanter incidente med knude 1 til det udspændende træ. I ovenstående eksempel finder vi et MST blandt knuderne 2... n som kanterne (2,3), (3,4), (4,8), (5,6), (6,7) og (7,8). De to billigste kanter fra knude 1 er (1,2) og (1,7). Samlet fås en nedre grænseværdi på 97. Itereret 1-Tree: Princippet er her at omformulere problemet, så en strammere 1- tree grænseværdi opnås. Lad d i være antallet af valgte kanter incidente med knude i. Vi ønsker at straffe knuder med grad større end 2, mens knuder med grad mindre end 2 belønnes. Derfor modificeres afstandsmatricen c på følgende vis: c (i,j) = c(i,j) + (d i 2) + (d j 2) Processen kan gentages et antal gange. I praksis er iterationer passende. Eksempelvis kan man benytte 100 iterationer i rod-knuden af branch-and-bound søgetræet, og gradvist mindske antallet af iterationer i forhold til knudens dybde i søgetræet. Knuder, som har en dybde over 10 i søgetræet, kan passende nøjes med 10 iterationer. Bemærk, at en knude i søgetræet ikke bør starte med at iterere afstandsmatricen c fra grunden af, men i stedet bør tage udgangspunkt i den bedste modificerede afstandsmatrix c fra forældre-knuden. I ovenstående eksempel får vi følgende modificerede afstandsmatrix c : i\ j Ved løsning af 1-tree for det modificerede problem findes kanterne (2, 3), (3, 4), (4,8), (5,6), (5,8), (7,8), (1,2), og (1,8), hvor de første seks kanter angiver MST et blandt knuderne 2,...,n. Samlet fås en nedre grænseværdi på 97. De efterfølgende iterationer giver grænseværdierne 98, 99, 99 og
4 Opgave 1: Implementer itereret 1-Tree algoritme til udregning af grænseværdien. Benyt gerne det udleverede rammeprogram (se kursets hjemmeside). Algoritmen Ved konstruktion af en branch-and-bound algoritme skal man overveje, om der skal bruges dybde-først eller bedste-først-søgning, samt hvilken forgreningsstrategi der skal benyttes. I det følgende angiver z længden af den hidtil bedste løsning. Dybde-først-søgning er nemmest at implementere, idet algoritmen da blot bliver en rekursiv procedure som skitseret nedenfor: TSP_BRANCH(n, c) 1 find en nedre grænseværdi l for problemet 2 if l z 3 then return 4 if løsningen i grænseværdiberegningen er en Hamilton kreds 5 then gem løsningen 6 opdater z 7 else vælg en knude i som spolerer Hamilton kredsen 8 for hver kant (i,j) incident med knude i 9 do forbyd kanten (i,j) 10 kald TSP_BRANCH(n, c) Håndteringen af levende knuder i branch-and-bound-træet foretages automatisk af rekursionen, idet tidligere problemer gemmes på stakken. I ovenstående skitse er forgreningstrategien fra kursusbog 1, del 1, side 18, blevet benyttet: En knude udvælges, som har flere end to kanter, og branch-and-bound algoritmen forbyder på skift hver af kanterne ud fra knuden. Opgave 2: Implementer branch-and-bound algoritmen. Benyt gerne det udleverede rammeprogram. Beskriv fordele og ulemper ved den valgte forgreningsstrategi og dybde-først søgningen. Hvis tiden tillader det, kan der eksperimenteres med andre søge-strategier og forgrenings-strategier, omend dette ikke er et krav. (Vær opmærksom på, at hele løsningsrummet skal dækkes; knude 1 indgår ikke nødvendigvis i en optimal løsning med de to mindste incidente kanter.) 4
5 Simuleret udglødning Vi vil i denne opgave løse TSP heuristisk ved hjælp af simuleret udglødning, som er beskrevet i kursusbogen side Første skridt i en simuleret udglødnings-heuristik er en initiel løsning. En løsning til TSP består af alle knuderne i instansen angivet i en rækkefølge. Givet et MST med alle knuderne er en rækkefølge den, som knuderne mødes i en dybdeførst-gennemgang af træet. Opgave 3: Benyt MST til at lave en approksimativ initiel løsning. Antaget, at trekantsuligheden gælder, hvad er da approximationsfaktoren? 2-opt-nabolaget 2-opt-nabolaget til en given løsning z består af alle lovlige løsninger, der kan opnås fra z ved at fjerne to kanter og tilføje to andre. Dette indebærer, at en del af turen bliver vendt : z ={v 1,...,v i 1,v i,...,v j,v j+1...v 1 } {v 1,...,v i 1,v j,...,v i,v j+1...v 1 } Opgave 4: nabolaget. Implementer en heuristik baseret på simuleret udglødning vha. 2-opt Eksperimenter Afprøv de konstruerede algoritmer på følgende probleminstanser, som findes på kursets hjemmeside. n Instans Beskrivelse 8 bornholm Afstande mellem otte byer på Bornholm 10 rand10 Tilfældigt genererede kantvægte 15 rand15 Tilfældigt genererede kantvægte 20 rand20 Tilfældigt genererede kantvægte 25 rand25 Tilfældigt genererede kantvægte 30 rand30 Tilfældigt genererede kantvægte 17 gr17 17 byer i Tyskland 21 gr21 21 byer i Tyskland 24 gr24 24 byer i Tyskland 5
6 Opgave 5: Rapporter: øvre og nedre grænseværdier i rodknuden, antal knuder i branch-and-bound træet, beregningstid pr. knude i branch-and-bound træet, samt total beregningstid. Kommenter resultaterne. Opgave 6: Sammenlign løsningsværdier og køretider for Branch-and-Bound algoritmen i opgave 2 med forskellige parametre for heuristikken i opgave 4. Stræberi Den flittige studerende kan deltage i en konkurrence om hurtigste køretider for optimal løsning af udvalgte instanser. Opgave 7: Med udgangspunkt i Branch-and-Bound algoritmen: find bedre nedre grænser, finjuster, snyd, osv. for at finde den optimale løsningsværdi hurtigere. Litteratur [1] T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein: Introduction to Algorithms (2nd ed.), MIT Press, [2] Per S. Laursen: Generelle Optimeringsheuristikker en introduktion, Datalogisk Institut Københavns Universitet, 1994 (kan findes på nettet). [3] David Pisinger: Branch-and-Bound, Datalogisk Institut Københavns Universitet, 2008 (kan findes på nettet). 6
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
Symmetrisk traveling salesman problem Dat2A godkendelsesopgave 2
Symmetrisk traveling salesman problem Dat2A godkendelsesopgave 2 Jens Kristian Jensen, David Pisinger og Martin Zachariasen 13. april 2003 1 Formalia Dette er den anden af to godkendelsesopgaver på kurset
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
Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU (2007-08) 1 Introduktion 5 1.1 Gennemgående eksempler... 7. 2 Brute-force metoder 10
Branch-and-bound David Pisinger Videregående algoritmik, DIKU (2007-08) Indhold 1 Introduktion 5 1.1 Gennemgående eksempler..................... 7 2 Brute-force metoder 10 3 Divide and Conquer 11 4 Grænseværdier
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
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
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.)
Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)
Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM55) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den Juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater
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
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
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
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:
P2-gruppedannelsen for Mat og MatØk
Institut for Matematiske Fag Aalborg Universitet Danmark 1-02-2012 Vejledere Bo Hove E-mail: [email protected] 3 Mat grupper (semesterkoordinator) E-mail: [email protected]. Web page: http://people.math.aau.dk/~diego/
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
Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)
Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM55) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 2 Juni 2008, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater
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
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
Danmarks Tekniske Universitet
Eksamen 005, F 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:
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
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.)
Dynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
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
Approximations-algoritmer. Løsningsmetoder for NP -hårde opt.problemer
Motivation Definitioner Approximations-algoritme for nudeoverdæning Approximations-algoritme for TSP med treantsulighed Negativt resultat om generel TSP Approximations-algoritme for SET-OVERING Fuldt polynomiel-tids
Logistik og optimering
Logistik og optimering JENS LYSGAARD Professor Institut for Økonomi Aarhus Universitet Forskningscentret CORAL v. Institut for Økonomi Logistik og optimering CORAL: Cluster for Operations Research And
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM58) Institut for Matematik & Datalogi Syddansk Universitet Torsdag den 7 Januar 010, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger,
Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012
Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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
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
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
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 =
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)
Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538) Institut for Matematik og Datalogi Syddansk Universitet, Odense Fredag den 25. januar 2013 kl. 1013 Alle hjælpemidler (computer, lærebøger, notater,
Hamiltonkreds, den handelsrejsendes problem, delmængdesum-problemet
, den handelsrejsendes problem, delmængdesum-problemet Videregående algoritmik Cormen et al. 34.5.3 34.5.5 Fredag den 19. december 2008 1 N P-fuldstændige problemer 1 N P-fuldstændige problemer 2 Reduktion
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
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
Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)
Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse
Danmarks Tekniske Universitet
Eksamen 005, F09 side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 009. Kursusnavn Algoritmik og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Alle skriftlige hjælpemidler.
Prioritetskøer og hobe. Philip Bille
Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af
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
Eksamen i Diskret Matematik
Eksamen i Diskret Matematik Første Studieår ved Det Tekniske Fakultet for IT og Design samt Det Ingeniør- og Naturvidenskabelige Fakultet 29. maj 2017. Kl. 9-13. Nærværende eksamenssæt består af 11 nummererede
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Videregående Algoritmik. Version med vejledende løsninger indsat!
Videregående Algoritmik DIKU, timers skriftlig eksamen, 1. april 009 Nils Andersen og Pawel Winter Alle hjælpemidler må benyttes, dog ikke lommeregner, computer eller mobiltelefon. Opgavesættet består
Divide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
