Den rejsende sælgers problem. Den rejsende sælgers problem. Første omtale af problemet 1832

Størrelse: px
Starte visningen fra side:

Download "Den rejsende sælgers problem. Den rejsende sælgers problem. Første omtale af problemet 1832"

Transkript

1 Den rejsende sælgers problem? En sælger skal besøge n byer og vende tilbage til sit udgangspunkt I hvilken rækkefølge skal han besøge byerne, hvis han ønsker at minimere sine rejseomkostninger? Den rejsende sælgers problem ved Keld Helsgaun Tur for 16 amerikanske byer 1 2 Konkurrence fra 1962 Første omtale af problemet byer i Tyskland Der Handlungsreisende - wie er sein soll und was er zu thun hat, um Aufträge zu erhalten und eines glücklichen Erfolgs in seinen Geschäften gewiss zu sein - Von einem alten Commis-Voyageur Voigt 3 4

2 Matematisk formulering Rejseomkostninger kan f.eks. måles i afstand, tid eller penge Givet en matrix C = {c ij }, hvor c ij repræsenterer omkostningen ved at gå fra by i til by j (i, j = 1,..., n) Find en permutation (i 1, i 2,..., i n ) af tallene fra 1 til n, der minimerer summen c i1 i 2 + c i2 i c in!1 i n + c in i 1 Problemtyper Egenskaber ved C benyttes til at klassificere problemer: Hvis c ij = c ji for alle i og j, siges problemet at være symmetrisk. Ellers er det asymmetrisk Hvis trekantuligheden gælder (c ik! c ij + c jk for alle i, j og k), j siges problemet at være metrisk Hvis c ij er Euklidiske afstande imellem punkter i planet, siges problemet at være Euklidisk i k 5 6 Grafformulering i 1 i 2 i 3 i 5 i 4 Motivation (1) Lad G = (V, E) være en vægtet graf, hvor V = {1, 2,..., n) er mængden af knuder, og E = {(i, j) i! V, j! V} er mængden af kanter. En cykel er en mængde af kanter {(i 1, i 2 ), (i 2, i 3 ),..., (i k, i 1 )}, hvor i p " i q for alle p " q. Længden af en cykel er summen af dens kantomkostninger. En tur (Hamiltoncykel) er en cykel, hvor k = n. TSP kan nu formuleres således: Givet en graf G. Find en tur i G af minimal længde. 7 Hvorfor beskæftige sig med den rejsende sælgers problem (TSP)? (1) Prototype-problem. Algoritmer og teknikker udviklet til løsning af TSP kan overføres til andre kombinatoriske optimeringsproblemer Alle større landvindinger inden for kombinatorisk optimering kan direkte eller indirekte henføres til studiet af TSP: Branch and bound, dynamisk programmering, beregningskompleksitet, snitplaner i LP, metaheuristikker 8

3 (2) Mange anvendelser Motivation (2) TSP opstår naturligt som delproblem ved løsning af problemer inden for transport og logistik: afhentning af børn med en skolebus udbringning af mad til pensionister Men TSP opstår også inden for mange andre områder: boring af huller på en printplade (VLSI) planlægning af opgaveafviklingen på en maskine Flere praktiske anvendelser Design af et optisk fibernetværk Kredsløb til afprøvning af integrerede kredse Genetisk sekvensanalyse 9 10 Beregningskompleksitet For et symmetrisk problem med n byer er antallet af mulige ture lig med (n!1) " (n! 2) "..." 2 "1 (n!1)! = 2 2 Hvis vi antager, at det tager 10-9 sekunder at bestemme hver mulig tur, bliver tidsforbruget stort, selv for små værdier af n: n Antal ture # # # Tidsforbrug # 2 år # 10 millioner år # år N = 3: N = 4: N = 5: N = 6: N = 7: N = 8: N = 9: N = 10: N = 11: N = 12: N = 13: N = 14: N = 15: N = 17: N = 19: N = 21: N = 23: N = 25: N = 30: N = 35: N = 40: Antal ruter 1 rute. 3 ruter. 12 ruter. 60 ruter. 360 ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter ruter

4 Problemkompleksitet TSP er NP-fuldstændigt Enhver algoritme, der med garanti finder optimum, vil have et tidsforbrug, der vokser eksponentielt med problemstørrelsen Løsningsalgoritmer Eksakte algoritmer Dynamisk programmering Lineær programmering (snitplaner, facetter) Approksimative algoritmer Heuristikker Metaheuristikker (simuleret udglødning, myrekolonier, genetiske algoritmer, tabusøgning) subject to minimize Eksakte løsninger (milepæle) pla85900: optimal tur År Forskere Byer 1954 G. Dantzig, R. Fulkerson, S. Johnson M. Held, R. M. Karp P. M. Camerini, L. Fratta, F. Maffioli M. Grötschel H. Crowder, M.W. Padberg M. Padberg, G. Rinaldi M. Grötschel, O. Holland M. Padberg, G. Rinaldi D. Applegate, R. Bixby, V. Chvátal, W. Cook D. Applegate, R. Bixby, V. Chvátal, W. Cook D. Applegate, R. Bixby, V. Chvátal, W. Cook D. Applegate, R. Bixby, V. Chvátal, W. Cook, K. Helsgaun D. Applegate, R. Bixby, V. Chvátal, W. Cook, K. Helsgaun, S. Dash, D. Espinoza, R. Fukasawa, M. Goycoolea ,112-by problemet blev løst ved hjælp af 110 cpu er med et samlet CPU-forbrug på cirka 22 år. 24,978-by problemet blev løst med et samlet CPU-forbrug på cirka 84 år. 15 CPU-tidsforbrug: 136 år 16

5 by problemet Optimal løsning byer i Tyskland 1 ud af mulige ture Antallet af atomer i hele det kendte univers antages at være Approksimative algoritmer Nærmeste nabo (en turkonstruerende algoritme) Turkonstruktuerende algoritmer En tur konstrueres fra bunden Turforbedrende algoritmer En given tur forbedres så meget som muligt Sammensatte algoritmer En tur konstrueres og forbedres Besøg den nærmeste ubesøgte by, så længe der er ubesøgte byer

6 Multi-fragment (Greedy) (en turkonstruerende algoritme) 2-opt (en turforbedrende algoritme) Ersta forbindelser med 2 andre forbindelser, så der fremkommer en kortere tur Tilføj den korteste kant, som forbinder endepunkterne for to fragmenter Animering af 2-opt 3-opt Erstat 3 forbindelser med 3 andre forbindelser, så der fremkommer en kortere tur 23 24

7 Løsningskvalitet by problemet Algoritme Afvigelse fra optimum Nærmeste nabo 25% Multi-fragment 15% 2-opt 14% 3-opt 8% "-opt En tur siges, at være "-optimal, hvis det er umuligt at opnå en kortere tur ved at erstatte " af dens forbindelser med en mængde af " forbindelser Hvis en tur er "-optimal, er den også " -optimal for 1! "! " En tur med n byer er optimal, hvis og kun hvis den er n-optimal Kompleksitet af "-opt Lin-Kernighan Kvaliteten af en tur øges, når " øges Men (1) tiden for at undersøge, om en tur er "-optimal, vokser meget hurtigt. Med en naiv implementering er tidskompleksiteten O(n " ) (2) der er ingen ikke-triviel øvre grænse for antallet af "-ombytninger Ofte vælges "=2 eller "=3 Men det er en ulempe, at " skal vælges på forhånd Lin og Kernighan fjernede denne ulempe ved at introducere en variabel "-opt algoritme Algoritmen undersøger for stigende værdier af ", om en ombytning af " forbindelser vil resultere i en kortere tur. Dette fortsætter, indtil et fastsat stopkriterium er opfyldt 27 28

8 Begrænsning af søgningen (1) Eksempel på et ikke-sekventielt træk (1) Sekventielle ombytninger Forbindelser fjernes og tilføjes skiftevis, og således at to på hinanden følgende forbindelser har et endepunkt tilfælles t 4 t 3 Dobbelt-bro-træk t 3 t 4 4-opt træk t 8 t 6 t 7 t 7 t 5 t 8 t 6 Kæden af kanter udgør en alternaternde cykel t 5 To alternerende cyker t 1 t Begrænsning af søgningen (2) (2) Gennemførlighed For i $ 3 må en forbindelse (i-1, i ) kun fjernes, hvis tilføjelsen af forbindelsen (i, t 1 ) resulterer i en tur t 6 t tilladt 3 t 5 t 4 t 4 t 3 t 5 t 6 forbudt Træk som en følge af 2-opt træk 4 t 3 t 1 I den originale algoritme, LK, kan et "-opt træk repræsenteres som e- eller 3-opt træk, efterfulgt af en serie af 2-opt træk t 1 t 1 t

9 Begrænsning af søgningen (3) Begrænsning af søgningen (4) (3) Positiv gevinst Ved konstruktion af et "-opt træk, skal den foreløbige gevinst, G i, altid være positiv, hvor G i = c(t 1, ) - c(, t 3 ) + c(t 3, t 4 ) c(i, i+1 ) t 6 t 3 t 5 t 4 (4) Disjunkte forbindelser En tidligere fjernet forbindelse kan ikke blive tilføjet, og en tidligere tilføjet forbindelse kan ikke blive fjernet t 6 t 3 t 5 t 4 t 7 t 7 t 1 t Begrænsning af søgningen (5, 6 og 7) (5) Beskæring af søgebredden Søgning efter en forbindelse, der skal tilføjes, begrænses til de 5 nærmeste naboer til i (6) Gode faste forbindelser bibeholdes For i $ 4 må en forbindelse ikke fjernes, hvis den er fælles for et givet antal hidtil korteste ture (7) Overflødigt overarbejde undgås Søgning efter en forbedring stoppes, hvis den aktuelle tur er den samme som en tidligere tur Dirigering af søgningen Udover regler til begrænsning af søgningen indeholder den originale algoritme også en række heuristiske regler, hvis formål er at forbedre chancen for at finde gevinstgivende træk Hvis der er flere muligheder for at tilføje en forbindelse, vælges den, der giver den største tilvækst af gevinsten Hvis der er flere muligheder for at fjerne en forbindelse, vælges den længste 35 36

10 Effektiviteten af LK Itereret LK LK betragtes i dag som den mest effektive approksimative algoritme til løsning af TSP LK kan på rimelig tid bestemme løsninger, som afviger fra optimum med omkring 2% Med itereret LK opnås typisk en kvalitet på 1% besttour = LK(randomTour()); for (run = 2; run <= numberofruns; run++) { tour = LK(kick(bestTour)); if (cost(tour) < cost(besttour)) besttour = tour; } kick-operationen kan, for eksempel, være et tilfældigt dobbelt-bro-træk LKH Lin-Kernighan-Helsgaun algoritmen En turforbedrende algoritme, der finder næroptimale løsninger til TSP Faktisk finder algoritmen ofte optimum Centrale ændringer i forhold til LK (1) Der benyttes 5-opt træk, som det basale træk (i stedet for 2-opt træk) (2) Mængden af kandidater for de forbindelser, der kan indgå i en tur bestemmes ved sensitivitetsanalyse (i stedet for ved bestemmelse af nærmeste nabo) 39 40

11 Sensitivitetsanalyse i LKH Effektiviteten af #-målet Forbindelsers chance for at tilhøre en optimal tur estimeres ved hjælp af det såkaldte #-mål For hver kant i den til problemet svarende graf bestemmes kantens #-værdi som den tilvækst omkostningen for et mindste udspændende træ ville få, hvis kanten skulle være med i et sådan træ #-målet kan forbedres ved Lagrange relaksation og subgradient optimering Målet er så godt, at man i mange tilfælde kan nøjes med kandidatmængder, der for hver by blot omfatter de 5 #-nærmeste naboer Bestemmelse af #-værdierne kan gøres i O(n 2 ) tid Andre effektiviseringer (1) Startture genereres ikke helt tilfældigt Forbindelserne vælges blandt kandidatforbindelserne (2) Den første kant, der fjernes i et træk, (t 1, ), må ikke tilhøre den hidtil bedste tur (3) Ture repræsenteres med en datastruktur, som tillader udførelse af et "-opt træk i O(" n) tid (4) Tiden for afstandsberegninger reduceres (caching) LKH version 2 Version 2 af LKH forbedrer den oprindelige implementation på følgende punkter: (1) Løsning af meget store problemer (mere end 1 million byer), er nu muligt (2) Det er muligt at opnå endnu bedre løsningskvalitet (5) Tiden til at undersøge, at der ikke er mulighed for flere forbedringer, reduceres (hashing, don t look bits) 43 44

12 Løsning af meget store problemer Øget løsningskvalitet En god starttur kan bestemmes hurtigt med multi-fragment algoritmen Delaunay-triangularisering kan benyttes til at effektivisere sensitivitetsanalysen (1) Basistræk kan være K-opt for en vilkårlig værdi af K (ikke blot! 5 som i version 1) (2) Træk kan omfatte ikke-sekventielle træk (3) Ture kan flettes (4) Et problem kan opløses i delproblemer Generelt K-opt træk t 3 t 8 t 4 t 7 Er trækket lovligt? Antallet af tilfælde, der skal undersøges, vokser hurtigt for stigende værdier af K: Delproblemer: (1) Er trækket lovligt? (2) Hvorledes udføres det i givet fald? t 6 t 5 t 1 t 10 t 9 K Mulige sekvenser Lovlige sekvenser Andel 50.0% 50.0% 41.7% 38.5% 35.1% 32.8% 30.7% 29.1% 27.6% 47 48

13 Er trækket lovligt? Implementeringsmuligheder (1) Programgenerering (David Applegate) Antal producerede programlinjer: K = 6: K = 7: K = 8: Hvorledes udføres et lovligt træk? Et K-opt træk udføres ved at vende 0, 1 eller flere sekvenser af byer på turen om (foretage reversioner) reversion reversion (2) Rekursion og sortering (Keld Helsgaun) Lovlighed kan afgøres i O(K log K) tid 49 reversion 50 2-opt træk og reverseringer E-opt træk bevirker en reversering af et tursegment. Sætning: Ethvert K-opt træk (K $ 2) er ækvivalent med en følge af højst K 2-opt træk. Hvorledes udføres et lovligt træk? (mest effektivt) Bestemmelse af den korteste følge af reversioner, der skal bruges for at udføre et K-opt træk viser sig at være ækvivalent med et centralt problem ved sammenlignende studier af gener: Sortering ved reversering af permutationer med fortegn En permutation med fortegn er en sædvanlig permutation, hvor hvert element er forsynet med et fortegn, + eller - Problemet kan løses i polynomiel tid: O(K 2 ) 51 52

14 Et 4-opt træk og dets tilsvarende permutation med fortegn Udførelse 4-opt trækket ved sortering af dets permutation (+1, -4, -2, +3) (+1, -4, -3, +2) (+1, -2, +3, +4) (+1, +2, +3, +4) 2 (+1, -4, -2, +3) (+1, +2, +3, +4) 53 Trækket foretages med 3 reversioner (2-opt træk) 54 Tur repræsentation To-niveau-træ Ikke-sekventielle træk Hvis der under konstruktionen af et K-opt træk findes et turforbedrende, men ulovligt træk, forsøges de opståede cykler føjet sammen på en sådan måde, at der fremkommer et turforbedrende, lovligt træk Operation Kompleksitet PRED(t), SUC(t) O(1) BETWEEN(t1, t2, t3) O(1) FLIP(t1, t2, t3, t4) O( n) Cykler kan føjes sammen ved brug af en eller flere alternerende cykler 55 56

15 Sammenføjning med 1 alternerende cykel Sammenføjning med 2 alternerende cykler t 3 t 3 t 4 t 4 t 1 t 5 t 1 t 6 t 6 t 7 t 8 t Repræsentation af potentielle træk t incl t t 3 t 4 2 t 5 5 t 6 4 t t 8 9 t 9 8 t 10 7 Afgørelse af cykelmedlemskab 1. Sorter t-følgen: (t 1,, t 4, t 3, t 9, t 10, t 7, t 8, t 5, t 6 ) Tid: O(K logk) 2. Bestem cykelnummeret for hver t-knude Tid: O(K) Cykelnummeret for enhver knude kan bestemmes ved binær søgning i den sorterede t-følge Tid: O(logK) 59 60

16 Begrænsning af søgningen efter alternerende cykler Fletning af ture (1) To alternerende cykler må ikke haves fælles kanter. (2) Alle ud-kanter i en alternerende cykel skal tilhøre fællesmængden af kanter i den aktuelle tur og cyklernes kanter. (3) Alle ind-kanter i en alternerende cykel skal forbinde to cykler. (4) Startknuden i en alternerende cykel skal tilhøre den korteste cykel (cyklen med færrest kanter). Lås fælles kanter og løs ved lokal søgning (5) Konstuktion af en alternerende cykel påbegyndes kun, hvis den aktuelle gevinst er positiv Iterativ partiel omskrivning Givet to ture. Søg efter kantfølger, som indeholder de samme knuder, men i forskellig rækkefølge, og hvor startog slutknuden er den samme. Erstat den dyreste kantfølge med den billigste. Backbone-styret søgning Kanterne i ture, der er frembragt efter et fast antal indledende iterationer, kan benyttes som kandidatkanter i de efterfølgende iterationer 63 64

17 Tur-baseret opdeling Geometrisk opdeling En tur opdeles i segmenter af samme størrelse. Hvert segment omdannes til en tur ved tilføjelse af en fast kant imellem dets to endepunkter, og turen forsøges forbedret. Opdel området, der indeholder alle byerne, i rektangler med lige mange byer i hvert. Forbedrede segmenter sættes på plads igen. Prøv igen med en opdeling, hvor hvert nyt segment omfatter halvdelen af byerne fra to gamle nabosegmenter Resultater dk11455 I det følgende gives eksempler på løsninger fundet af LKH For visse af eksemplerne kendes de optimale løsninger ikke. For disse vurderes løsningernes kvalitet i forhold til kendte nedre grænser (bestemt af Applegate m.fl. ved hjælp af snitplan-metoder) Længde ca km 67 68

18 brd14051: optimum d18512: optimum sw24978: optimum pla33810: optimum 71 72

19 china71009: fejl! 0,024% pla85900: optimum e100k.0: fejl! 0,039% E1M.0: fejl! 0,019% 75 76

20 lrb World ( byer): fejl! 0,049% Antal ruter # Igangværende arbejde 526 millioner stjerner Distribueret løsning af meget store problemer: Et VLSI-problem med byer Cirka 526 millioner stjerner (# mulige ruter) I samarbejde med David Applegate, William Cook, André Rohe og Sanjeeb Dash Parallel memetisk (hybrid genetisk) algoritme baseret på LKH 79 80

21 TSP-kunst? punkter En ud af mulige ture Den rejsende rummands problem 81 82

Den rejsende sælgers problem. ved Keld Helsgaun

Den rejsende sælgers problem. ved Keld Helsgaun ? Den rejsende sælgers problem ved Keld Helsgaun 1 Den rejsende sælgers problem En sælger skal besøge n byer og vende tilbage til sit udgangspunkt I hvilken rækkefølge skal han besøge byerne, hvis han

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

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

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

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393.

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Broer, skak og netværk Side 1 af 6 Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s. 388-393. Eksempler på praktiske anvendelser af matematik og nogle uløste problemer Indledning Figur

Læs mere

Logistik og optimering

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

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

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

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

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

Læs mere

Ideer til datalogiprojekter. Keld Helsgaun

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

Læs mere

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

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

Dynamisk programmering

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

Læs mere

DATALOGISK INSTITUT, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET DATALOGISK INSTITUT, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Algoritmer og Datastrukturer (00-ordning) Antal sider i opgavesættet (incl. forsiden): 6 (seks) Eksamensdag:

Læs mere

Ugeseddel 12(10.12 14.12)

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

Læs mere

Prioritetskøer og hobe. Philip Bille

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

Læs mere

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer

Læs mere

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version Finn Nordbjerg 1/9 Indledning I det følgende introduceres et par abstrakte

Læs mere

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

Læs mere

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk Philip Bille Orienteret graf (directed graph). Mængde af knuder forbundet parvis med orienterede kanter. Vejnetværk Knude = vejkryds, kant = ensrettet vej. deg + (6) =, deg - (6) = sti fra til 6 8 7 9

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

Videregående Algoritmik. Version med vejledende løsninger indsat!

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

Læs mere

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang 16. marts Resume sidste gang Abstrakt problem konkret instans afgørlighedsproblem Effektiv kodning (pol. relateret til binær kodning) Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret

Læs mere

Sommeren 2001, opgave 1

Sommeren 2001, opgave 1 Sommeren 2001, opgave 1 Vi antager at k 3, da det ellers er uklart hvordan trekanterne kan sættes sammen i en kreds. Vi ser nu at for hver trekant er der en knude i kredsen, og en spids. Derfor er n =

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

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, side af sider anmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer

Læs mere

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Kursusbeskrivelsen Kursusbeskrivelsen: Algoritmer og datastrukturer 1 Formål Deltagerne vil efter kurset have indsigt i algoritmer som model for sekventielle

Læs mere

Danmarks Tekniske Universitet

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:

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

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen lukket kreds af kanter

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): 6 (seks) Eksamensdag: Fredag den 22. juni 2012, kl. 9.00-13.00 Eksamenslokale: Finlandsgade

Læs mere

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

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

Læs mere

Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012

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

Læs mere

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse

UNION-FIND. UNION-FIND-problemet. Forbundethed kan være svær at afgøre (især for en computer) Eksempel på udførelse UNION-FIND-problemet UNION-FIND inddata: en følge af heltalspar (p, q); betydning: p er forbundet med q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel på anvendelse: Forbindelser i computernetværk

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet ksamen 06, F side af sider anmarks Tekniske Universitet Skriftlig prøve, den 9. maj 0. ursusnavn: lgoritmer og datastrukturer ursus nr. 06. jælpemidler: Skriftlige hjælpemidler. et er ikke tilladt at medbringe

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

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

Dynamisk programmering. Flere eksempler

Dynamisk programmering. Flere eksempler Dynamisk programmering Flere eksempler Eksempel 1: Længste fælles delstreng Alfabet = mængde af tegn: {a,b,c,...,z}, {A,C,G,T}, {,1} Streng = sekvens x 1 x 2 x 3... x n af tegn fra et alfabet: helloworld

Læs mere

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Indledning: I B-bogen har vi i studieretningskapitlet i B-bogen om matematik-fsik set på parallelkoblinger af resistanser

Læs mere

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter. Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter Philip Bille Forén og find Introduktion Hurtig find Hurtig forening Vægtet forening

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

Minimum udspændende Træer (MST)

Minimum udspændende Træer (MST) Minimum udspændende Træer (MST) Træer Et (frit/u-rodet) træ er en uorienteret graf G = (V, E) som er Sammenhængende: der er en sti mellem alle par af knuder. Acyklisk: der er ingen kreds af kanter. Træ

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

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

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

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille Nærmeste naboer. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle key[] og satellitdata data[]. operationer. PREDECESSOR(k): returner element med største nøgle k.

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

Simulering af AntNet

Simulering af AntNet Simulering af AntNet - en routingsalgoritme baseret på ACO metaheuristikken af Sanne Bjerg Vejleder: Keld Helsgaun 2.modul Forår 2007 Bachelorprojekt Datalogi Roskilde Universitetscenter 2007 Resumé Resumé

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

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010

Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 Algorithms and Architectures I Rasmus Løvenstein Olsen (RLO) Mm2: Rekursive algoritmer og rekurrens - October 12, 2010 1 Algorithms and Architectures II 1. Introduction to analysis and design of algorithms

Læs mere

Lokalisering af og samspil mellem distributionsterminaler

Lokalisering af og samspil mellem distributionsterminaler Lokalisering af og samspil mellem distributionsterminaler Louise Tranberg DTU, Lyngby Logistisk optimering Hvordan optimeres den fysiske struktur og logistik i transportfirmaer? Hvor mange terminaler skal

Læs mere

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb Philip Bille Binære søgetræer Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave

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

Algorithms & Architectures I 2. lektion

Algorithms & Architectures I 2. lektion Algorithms & Architectures I 2. lektion Design-teknikker: Divide-and-conquer Rekursive algoritmer (Recurrences) Dynamisk programmering Greedy algorithms Backtracking Dagens lektion Case eksempel: Triple

Læs mere

RUTEPLANLÆGNING OG TRANSPORTNETVÆRK

RUTEPLANLÆGNING OG TRANSPORTNETVÆRK 98 Ruteplanlægning og transportnetværk Af professor Oli B.G. Madsen 99 Flere og flere mennesker og større og større mængder af varer og gods bliver transporteret over længere afstande end nogensinde før.

Læs mere

Optimeringsmatematik og matematik-økonomi studiet

Optimeringsmatematik og matematik-økonomi studiet Optimeringsmatematik og matematik-økonomi studiet og specielt anvendelser af matematisk programmering Esben Høg Institut for Matematiske Fag Aalborg Universitet Oktober 2012 EH (Institut for Matematiske

Læs mere

Søgning og Sortering. Philip Bille

Søgning og Sortering. Philip Bille Søgning og Sortering Philip Bille Plan Søgning Linæer søgning Binær søgning Sortering Indsættelsesortering Flettesortering Søgning Søgning 1 4 7 12 16 18 25 28 31 33 36 42 45 47 50 1 2 3 4 5 6 7 8 9 10

Læs mere

Programmering, algoritmik og matematik en nødvendig sammenblanding?

Programmering, algoritmik og matematik en nødvendig sammenblanding? Programmering, algoritmik og matematik en nødvendig sammenblanding? Oplæg til IDA møde, 29. november 2004 Martin Zachariasen DIKU 1 Egen baggrund B.Sc. i datalogi 1989; Kandidat i datalogi 1995; Ph.D.

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

Vektorer og lineær regression. Peter Harremoës Niels Brock

Vektorer og lineær regression. Peter Harremoës Niels Brock Vektorer og lineær regression Peter Harremoës Niels Brock April 2013 1 Planproduktet Vi har set, at man kan gange en vektor med et tal. Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden.

Læs mere

Chapter 7: Transport-, assignment- & transshipmentproblemer

Chapter 7: Transport-, assignment- & transshipmentproblemer Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper

Læs mere

LINALG JULENØD 2013 SUNE PRECHT REEH

LINALG JULENØD 2013 SUNE PRECHT REEH LINALG JULENØD 203 SUNE PRECHT REEH Resumé I denne julenød skal vi se på lineær algebra for heltallene Z Hvad går stadig godt? og hvad går galt? I de reelle tal R kan vi for ethvert a 0 altid finde R som

Læs mere

Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT.

Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT. Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT. Projektet kan bl.a. anvendes til et forløb, hvor en af målsætningerne er at lære om samspillet mellem værktøjsprogrammernes geometriske

Læs mere

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo Philip Bille er. Vedligehold en dynamisk mængde S af elementer. Hvert element har en nøgle x.key og satellitdata x.data. operationer. PREDECESSOR(k): returner element x med største nøgle k. SUCCESSOR(k):

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

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

Læs mere

Matroider Majbritt Felleki

Matroider Majbritt Felleki 18 Rejselegatsformidlingsaktivitet Matroider Majbritt Felleki Den amerikanske matematiker Hassler Whitney fandt i 1935 sammenhænge mellem sætninger i grafteori og sætninger i lineær algebra. Dette førte

Læs mere

Matematisk modellering og numeriske metoder. Lektion 16

Matematisk modellering og numeriske metoder. Lektion 16 Matematisk modellering og numeriske metoder Lektion 16 Morten Grud Rasmussen 6. november, 2013 1 Interpolation [Bogens afsnit 19.3 side 805] 1.1 Interpolationspolynomier Enhver kontinuert funktion f på

Læs mere

Grafteori. 1 Terminologi. Indhold

Grafteori. 1 Terminologi. Indhold Grafteori Dette er en introduktion til de vigtigste begreber i grafteori, udvalgt teori samt eksempler på opgavetyper inden for emnet med fokus på de opgavetyper der typisk er til internationale matematikkonkurrencer.

Læs mere

Tilfældige rektangler: Et matematikeksperiment Variable og sammenhænge

Tilfældige rektangler: Et matematikeksperiment Variable og sammenhænge Tilfældige rektangler: Et matematikeksperiment Variable og sammenhænge Baggrund: I de senere år har en del gymnasieskoler eksperimenteret med HOT-programmet i matematik og fysik, hvor HOT står for Higher

Læs mere

Approximations-algoritmer. Løsningsmetoder for NP -hårde opt.problemer

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

Læs mere

Turneringsplanlægning

Turneringsplanlægning Rasmus Vinther Rasmussen Afdelingen for Operations Analyse Aarhus Universitet Matematiklærerdag 006 Er der nogen, der har prøvet at planlægge en turnering? Er der nogen, som har hørt om en turnering, der

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): 5 (fem) Eksamensdag: Fredag den 10. august 007, kl.

Læs mere

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning

Søgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]

Læs mere

Integer Factorization

Integer Factorization Integer Factorization Per Leslie Jensen DIKU 2/12-2005 kl. 10:15 Overblik 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder

Læs mere

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige

Læs mere

Symmetrisk traveling salesman problem Dat2A godkendelsesopgave 2

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 mere

Stifinder V. Allan Ebdrup. Heuristik til at finde sti for firkantet objekt mellem firkantede forhindringer

Stifinder V. Allan Ebdrup. Heuristik til at finde sti for firkantet objekt mellem firkantede forhindringer Stifinder V. Allan Ebdrup Heuristik til at finde sti for firkantet objekt mellem firkantede forhindringer Motivation dotnet Terrarium http://www.gotdotnet.com/terrarium/ Rovdyr Jagte andre dyr Løbe væk

Læs mere

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer 1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer på disse. Typer af lister: Array Enkelt linket liste Dobbelt linket Cirkulære lister Typer af køer: FILO FIFO

Læs mere

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer. 14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel

Læs mere

Parallelisering/Distribuering af Genetiske Algoritmer

Parallelisering/Distribuering af Genetiske Algoritmer Parallelisering/Distribuering af Genetiske Algoritmer Hvorfor parallelisere/distribuere? Standard GA algoritme Modeller Embarassing parallel Global (fitness evaluering) Island (subpopulation) Grid/Cellular

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

DM507 Algoritmer og datastrukturer

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

Læs mere

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort

Sortering. Sortering ved fletning (merge-sort) Del-og-hersk. Merge-sort Sortering Sortering ved fletning (merge-sort) 7 2 9 4! 2 4 7 9 7 2! 2 7 9 4! 4 9 7! 7 2! 2 9! 9 4! 4 1 2 Del-og-hersk Merge-sort Del-og-hersk er et generelt paradigme til algoritmedesign Del: opdel input-data

Læs mere

Kirchberger s sætning om separation af to mængder Maria Larissa Ziino

Kirchberger s sætning om separation af to mængder Maria Larissa Ziino 12 Formidlingsaktivitet Kirchberger s sætning om separation af to mængder Maria Larissa Ziino I denne artikel fremføres to sætninger af henholdsvis den østrigske matematiker Eduard Helly og den tyske matematiker

Læs mere

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè

Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives. Type Expr = Sumèplus, minus, times, div: Args, const: Int, name: Textè Opgave 1 è20èè Et udtrykstrç med de ære regnearter, heltalskonstanter og variabler beskrives af fçlgende rekursive Trine-type: Type Expr = Sumèplus, minus, times, div: rgs, const: Int, name: Textè Type

Læs mere

Obligatorisk projekt 3.

Obligatorisk projekt 3. Obligatorisk projekt 3. Administration af Regionale Køre-Planer Fag: Projektet omhandler emner fra fagene Softwarearkitektur og Distribuerede Programmer, samt SystemUdviklingsMetoder. Formål: Formålet

Læs mere

Projekt 1.5: Tagrendeproblemet en modelleringsøvelse!

Projekt 1.5: Tagrendeproblemet en modelleringsøvelse! Projekt 1.5: Tagrendeproblemet en modelleringsøvelse! Det er velkendt at det største rektangel med en fast omkreds er et kvadrat. Man kan nemt illustrere dette i et værktøjsprogram ved at tegne et vilkårligt

Læs mere

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak Introduktion til differentialregning 1 Jens Siegstad og Annegrete Bak 16. juli 2008 1 Indledning I denne note vil vi kort introduktion til differentilregning, idet vi skal bruge teorien i et emne, Matematisk

Læs mere

Eksperimentel Matematik

Eksperimentel Matematik Eksperimentel Matematik 4 bidrag Ib Michelsen 2007 Trekanter - der ligner hinanden Ib Michelsen VUC Skive-Viborg ib.michelsen@mimimi.dk Geometri C 2 6 timer Faglige mål Ensvinklede og ligedannede trekanter

Læs mere

DesignMat Kvadratiske matricer, invers matrix, determinant

DesignMat Kvadratiske matricer, invers matrix, determinant DesignMat Kvadratiske matricer, invers matrix, determinant Preben Alsholm Uge 5 Forår 010 1 Kvadratiske matricer, invers matrix, determinant 1.1 Invers matrix I Invers matrix I Definition. En n n-matrix

Læs mere

1 Oversigt I. 1.1 Poincaré modellen

1 Oversigt I. 1.1 Poincaré modellen 1 versigt I En kortfattet gennemgang af nogle udvalgte emner fra den elementære hyperbolske plangeometri i oincaré disken. Der er udarbejdet både et Java program HypGeo inkl. tutorial og en Android App,

Læs mere

B.Sc., 6. semester Eksamensnr.: 302507. Ruteplanlægning. Optimering ved hjælp af eksakt metode og ikke eksakte metoder

B.Sc., 6. semester Eksamensnr.: 302507. Ruteplanlægning. Optimering ved hjælp af eksakt metode og ikke eksakte metoder B.Sc., 6. semester Eksamensnr.: 302507 Forfatter: Jesper Hoffmann Vejleder: Kim Allan Andersen Tegn: 88.033 Ruteplanlægning Optimering ved hjælp af eksakt metode og ikke eksakte metoder Ruteplanlægning

Læs mere

LinAlgDat 2014/2015 Google s page rank

LinAlgDat 2014/2015 Google s page rank LinAlgDat 4/5 Google s page rank Resumé Vi viser hvordan lineære ligninger naturligt optræder i forbindelse med en simpel udgave af Google s algoritme for at vise de mest interessante links først i en

Læs mere

Skriftlig eksamen i Datalogi

Skriftlig eksamen i Datalogi Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2

Læs mere

HVORDAN SIKRES EN EFFEKTIV LADE INFRASTRUKTUR i DANMARK? Allan Olsen, 18. november 2014

HVORDAN SIKRES EN EFFEKTIV LADE INFRASTRUKTUR i DANMARK? Allan Olsen, 18. november 2014 HVORDAN SIKRES EN EFFEKTIV LADE INFRASTRUKTUR i DANMARK? Allan Olsen, 18. november 2014 Kørestil virkningsgrad fra batteri til elmotor 80-95 % (benzin 20 %) uøkonomisk kørsel / speeder i bund / mange opbremsninger

Læs mere

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Diskret Matematik (DM528) Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug

Læs mere

Om opbygningen af en geometrisk model for mandatfordelinger

Om opbygningen af en geometrisk model for mandatfordelinger Om opbygningen af en geometrisk model for mandatfordelinger I denne note vil vi prøve at beskrive et nyttigt diagram når man skal analysere problemstillinger vedrørende mandatfordelinger. For at holde

Læs mere

Spilstrategier. 1 Vindermængde og tabermængde

Spilstrategier. 1 Vindermængde og tabermængde Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende type: Spil der spilles af to spillere A og B som skiftes til at trække, A starter, og hvis man ikke kan trække har man tabt. Der

Læs mere

Divide-and-Conquer algoritmer

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

Læs mere