Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU ( ) 1 Introduktion Gennemgående eksempler Brute-force metoder 10

Størrelse: px
Starte visningen fra side:

Download "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"

Transkript

1 Branch-and-bound David Pisinger Videregående algoritmik, DIKU ( ) Indhold 1 Introduktion Gennemgående eksempler Brute-force metoder 10 3 Divide and Conquer 11 4 Grænseværdier Eksempler på grænseværdier Grænseværditest Monotonitet af grænseværdier Branch-and-bound Øvre grænseværdifunktion Nedre grænseværdi Søgestrategi Forgreningsregel Eksempler på branch-and-bound algoritmer

2 6 Kvalitet af grænseværdifunktionen Eksempler på dominans Kritiske og Semikritiske delproblemer 34 8 Kunsten at designe en god branch-and-bound algoritme 36 9 Opgaver 38 Index 42 2

3 Forord Disse noter er skrevet til kurset Videregående algoritmik på Datalogisk Institut, Københavns Universitet. Formålet med noterne er at give en samlet indføring til branch-and-bound paradigmet. I modsætning til majoriteten af tilsvarende tekster forudsætter noterne ikke kendskab til lineær programmering. Til gengæld bygger de videre på terminologi og principper fra Cormen m.fl. [7]. Da noterne er tiltænkt algoritmik-undervisning på studieår er noterne skrevet på dansk. Dette giver samtidig mulighed for at indføre en dansk terminologi på kurset. Nogle begreber har det dog ikke været muligt (eller hensigtsmæssigt) at oversætte til dansk, hvorfor de engelske betegnelser er bibeholdt. Som inspiration er benyttet noterne Branch-and-bound algorithms, af Clausen [6], samt bøgerne Integer Programming af Wolsey [24] og Elements of the Theory of Computation af Lewis og Papadimitriou [16]. For at noterne også kan bruges som mini-opslagsbog, er der udarbejdet et stikordsregister sidst i noterne. En stor tak til alle som har læst første version af disse noter, og som har bidraget til at forbedre dem. Kommentarer til 2. udgave En række fejl, heriblandt figur 3 er blevet rettet. Kapitel 8 er blevet opdateret med nyeste litteratur omkring branch-and-bound paradigmet. 9. oktober 2005, DP. 3

4 4

5 1 Introduktion Teorien om N P -fuldstændighed giver os en velbegrundet formodning om, at der er en lang række problemer, som vi ikke kan forvente at løse i polynomiel tid. Da problemerne dog kan være vigtige at løse for industri eller samfund, er det essentielt at finde løsningsmetoder til sådanne problemer. Selv om vi ikke kan garantere polynomiel køretid af sådanne algoritmer, kan man håbe på at køretiden er rimelig for de fleste instanser, som forekommer i praksis. Teorien om N P - fuldstændighed udtaler sig kun om, at der eksisterer instanser med ubehagelig køretid, men den udelukker ikke at mange instanser kan løses i polynomiel tid. Hvor vi i teorien om N P -fuldstændighed fandt det hensigtsmæssigt at betragte afgørlighedsproblemer, vil man i praktiske anvendelser snarere betragte det tilhørende optimeringsproblem. F.eks. vil man for traveling salesman-problemet næppe være tilfreds med at få et ja-nej svar på, om der findes en Hamilton-kreds af længde højst k i grafen. Man vil snarere spørge efter den korteste Hamilton-kreds. Formelt set kan et optimeringsproblem i maksimeringsform defineres som: z max f x x S (1) Her angiver f x objektfunktionen, mens S er løsningsrummet og z er den optimale løsningsværdi. Ofte vil man også være interesseret i den optimale løsning, dvs. det x hvor z f x. En række optimeringsproblemer som f.eks. traveling salesmanproblemet er defineret i minimeringsform z min f x x S (2) Man kan omforme et minimeringsproblem på formen (2) til et maksimeringsproblem ved at maksimere f x. Vi vil i disse noter indføre alle definitioner for et maksimeringsproblem. Det overlades til læseren at definere de tilsvarende begreber for minimeringsproblemer. Da klassen N P kun er defineret for afgørlighedsproblemer, giver det ikke mening at snakke om N P -fuldstændighed af optimeringsproblemer. Vi definerer derfor, at et optimeringsproblem er N P -hårdt, hvis det tilhørende afgørlighedsproblem er N P -fuldstændigt. Bemærk, at selv om man får forelagt den optimale løsning x for et N P -hårdt optimeringsproblem, kender vi ikke en effektiv metode til at verificere at den givne løsning er optimal. Rent faktisk kan det kun bevises at en løsning er optimal ved at gennemløbe hele løsningsrummet. 5

6 Hvor polynomielle problemer typisk kan løses ved hjælp af en konstruktiv algoritme, der gradvist opbygger en løsning, må vi for N P -hårde problemer ty til søgebaserede algoritmer, dvs. algoritmer som gennemløber hele eller dele af løsningsrummet for at finde den optimale løsning. I disse noter vil vi betragte branch-and-bound paradigmet, som netop er en søgebaseret algoritme. Der findes en række danske betegnelser for branch-and-bound, f.eks. del-og-hersk, forgren-og-begræns. Ingen af disse betegnelser er dog slået igennem i stort omfang, hvorfor man typisk blot fastholder den engelske betegnelse. Branch-and-bound er nok det mest benyttede værktøj til løsning af N P -hårde kombinatoriske optimeringsproblemer. Branch-and-bound er dog et paradigme (dvs. en slags skabelon) hvor en række konkrete valg skal træffes for hvert enkelt optimeringsproblem. Som disse noter vil vise, er der en bred vifte af muligheder for hver komponent af branch-and-bound paradigmet, og det er en kunstart at kombinere de rette komponenter til en vellykket algoritme. Princippet i branch-and-bound er en total gennemsøgning af løsningsrummet, hvor man bruger nogle matematiske overvejelser til at udelukke dele af løsningsrummet. En vel-designet branch-and-bound algoritme bør udelukke store dele af løsningsrummet, således at den for de fleste praktisk forekommende instanser kun skal gennemsøge en lille del af løsningsrummet. I afsnit 2 vil vi først designe en simpel algoritme til løsning af kombinatoriske optimeringsproblemer baseret på total gennemsøgning af løsningsrummet. I det følgende afsnit 3 benytter vi divideand-conquer paradigmet til at gennemsøge løsningsrummet, ved fortløbende at dele problemet op i mindre delproblemer og samle løsningerne op fra disse. For at undgå en gennemsøgning af alle delløsningsrum benytter vi grænseværdier, som defineres i afsnit 4. En grænseværdi er et tal knyttet til et delløsningsrum, som siger noget om, hvor gode løsninger vi kan forvente at finde i det givne delløsningsrum. Hvis vi ved hjælp af grænseværdien for et delløsningsrum kan se, at vi ikke vil være i stand til at forbedre den nuværende løsning, kan vi forkaste delløsningsrummet. Dette er ideen i grænseværditesten, som beskrives i afsnit 4.2. Sætter vi disse grundelementer sammen, har vi branch-and-bound paradigmet, som beskrives i afsnit 5. Vi vil gerne have så stramme grænseværdier som muligt, idet disse vil gøre det muligt at bortskære større dele af løsningsrummet. I afsnit 6 opstiller vi en formel ramme for at sammenligne kvaliteten af grænseværdier. Afsnit 7 ser på, hvilke delproblemer vi altid vil skulle behandle uanset søgestrategi og initiel løsning. Noterne afsluttes i afsnit 8 med forskellige tips til at designe vellykkede branch-and-bound algoritmer i praksis. 6

7 I disse noter vil vi benytte tre gennemgående optimeringsproblemer til at illustrere principperne. De første to er maksimeringsproblemerne knapsack-problemet og dense subgraph-problemet, mens det sidste problem er minimeringsproblemet traveling salesman-problemet. Vær opmærksom på, at alle definitioner skal vendes om når vi betragter et minimeringsproblem. Traveling salesman-problemet er med vilje medtaget for at træne læseren i denne proces. Alle eksempler med traveling salesman-problemet vil dog tydeligt være mærket med en overskrift som minder om, at det er et minimeringsproblem. 1.1 Gennemgående eksempler Eksempel 1 Knapsack-problemet Knapsack-problemet kan defineres på følgende vis: Lad der være givet n genstande, som hver har en tilknyttet profit p j og vægt w j. Udvælg en delmængde af genstandene således, at den samlede profitsum bliver maksimeret uden, at den tilhørende vægtsum overstiger en given grænse c, kaldet kapaciteten. Trods den simple struktur har knapsack-problemet utallige anvendelser. Det opstår i adskillige transportproblemer (f.eks. ladning af genstande i containere med vægtbegrænsning c), udskæringsproblemer (f.eks. udskæring af tømmer som har længde c i mindre stykker w j med forskellig salgspris p j ), investering (der er en mængde kapital c til rådighed, som kan investeres i et antal projekter med profit p j og pris w j ) eller budgetlægning (afdelingens budget er c, og der skal udvælges et antal projekter, som har størst mulig samlet nytteværdi). For en komplet oversigt over eksakte algoritmer og approximationsalgoritmer for knapsack-problemet, se [13]. En samling af testinstanser for knapsack-problemet findes i [19]. Hvis vi bruger den binære variabel x j til at angive om genstand j vælges eller ej, får vi følgende matematiske definition af problemet: 0 1 c x j (3) n n j z max p j x j j x j 1 j 1w Bemærk, at hvis genstand j vælges, dvs. x j 1, så tælles p j og w j med i henholdsvis profitsummen og vægtsummen, mens hvis x j 0 bidrager genstand j ikke til nogen af summerne. Det antages normalt, at alle koefficienter p j, w j og c er positive heltal. Se evt. Cormen m.fl. [7] s. 382 for yderligere beskrivelse af problemet. 7

8 I det følgende eksempel er c 9, og der er givet n 7 genstande med følgende profitter og vægte: j p j w j Den optimale løsning er at vælge genstandene 1 og 4, hvilket giver en optimal løsning på z 15. Eksempel 2 Dense subgraph-problemet Givet en komplet vægtet graf G V E c og et heltal k. Dense subgraph-problemet beder os udvælge en delmængde U V af størrelse U k, således at summen af kantvægte mellem knuder i U bliver maksimeret. Vi vil tænke på grafen som orienteret, dvs. mellem hvert par af knuder i og j findes to kanter, som har vægt c i j henholdsvist c ji. Selv om vi tillader, at c i j c ji så kan man altid opnå en symmetrisk form c i j c ji ved at dele summen c i j c ji ligeligt på de to kanter (overvej!). Uden tab af generalitet kan vi antage, at alle kantvægte er ikke-negative, dvs. c i j 0, idet vi ellers kan lægge en konstant M til alle kantvægte for at opnå dette (se også opgave 4 side 39). I de fleste praktiske anvendelser vil c ii 0, men i det følgende kan c ii også antage positive værdier. Dense subgraph-problemet er en umiddelbar generalisering af klike-problemet, hvorfor det dukker op i mange sammenhænge indenfor grafteori. Praktiske anvendelser omfatter bl.a. lokalisering af sendemaster, således at trafik mellem masterne maksimeres, samt lokalisering af tankstationer, supermarkeder, brandstationer, eller hospitaler, således at de spredes mest muligt geografisk. 8

9 Kun få eksakte algoritmer er præsenteret for dense subgraph-problemet [8, 20], mens der er udviklet adskillige approximationsalgoritmer [4, 10, 11, 14, 21, 22]. Formelt kan problemet defineres som følgende maksimeringsproblem: z max k c i j U V U i U j U (4) Den følgende tabel angiver kantvægtene for en graf med 7 knuder, hvori der skal udvælges en delgraf U af størrelse k 3. j i Den optimale løsning er at vælge knuderne U 2 4 6, hvilket giver en løsningsværdi på 48. Eksempel 3 Traveling salesman-problemet (minimeringsproblem) Traveling salesman-problemet har utallige anvendelser, og er blevet studeret indgående i litteraturen, se f.eks. den omfattende bog [15]. Den p.t. bedste algoritme til løsning af Traveling salesman-problemet er Concorde-løseren [2] designet af Applegate, Bixby, Chvátal og Cook [3]. Vi vil betragte den symmetriske version af traveling salesman-problemet, der formelt kan defineres som følgende optimeringsproblem: Lad V E d være en vægtet graf, hvor d i j for i j E angiver afstanden mellem knuderne i og j. Da vi betragter den symmetriske variant gælder at d i j d ji. Problemet er da at finde en Hamilton-kreds H i grafen, som har en minimal længde med hensyn til d. Hamilton-kredsen H er en delmængde af kanterne i E, hvorfor vi kan formulere problemet som: z min i j H d i j H E Her en Hamilton-kreds (5) På det følgende kort er der markeret otte byer på Bornholm. 9

10 Afstanden mellem de otte byer er givet ved følgende tabel, og vi ønsker at finde den korteste Hamilton-kreds gennem byerne. i j Den optimale løsning er at besøge byerne (knuderne) i rækkefølgen: , hvilket giver en samlet længde af Hamilton-kredsen på z Brute-force metoder Som tidligere nævnt er branch-and-bound paradigmet en søgebaseret algoritme, som i værste fald gennemsøger alle lovlige løsninger. Vi vil i dette afsnit skitsere 10

11 2 en første søgebaseret algoritme samt vurdere dens køretid. Algoritmen udnytter, at ethvert N P -problem har et kort (dvs. polynomielt) certifikat, samt at ethvert certifikat kan verificeres i polynomiel tid. Vi kan derfor gennemløbe alle kombinationsmuligheder af certifikatet, og hver gang kontrollere om verifikationsalgoritmen returnerer ja. Den samlede køretid bliver eksponentiel. Definition 1 Klassen EX P er mængden af afgørlighedsproblemer, som kan løses i eksponentiel tid på en deterministisk Turing-maskine. Formelt sagt siger vi, at et afgørlighedsproblem L EX P, hvis der findes et polynomium p n, således at enhver streng x af længde n kan afgøres i tiden 2 p n. Sætning 1 Hvis L N P, så gælder også at L EX P. Bevis: Antag at L N P, så findes en verifikationsalgoritme A x y, som kører i polynomiel tid p x y. Længden af certifikatet y skal overholde at y p 2 x for et polynomium p 2, så køretiden af A x y må også være polynomiel i x, dvs. begrænset af et polynomium p 1 x. Vi konstruerer nu en algoritme, 2 som afgør L i eksponentiel tid. Uden tab af generalitet kan vi antage, at certifikatet y er en binær streng. Vi opremser nu samtlige værdier af y i tiden 2 y p x. For hver værdi af y anvender vi verfikationsalgoritmen A x y. Hvis A x y 1 for et givet y returnerer vores algoritme værdien O 1. Hvis A x y 0 for alle y returnerer 2 algoritmen værdien 0. Køretiden af algoritmen bliver 2 p x p 1 x, hvilket viser at algoritmen afgør L i eksponentiel tid. Løsningsmetoden i ovenstående bevis kaldes brute-force opremsning og trods dens dårlige køretid, er den grundlaget for de følgende algoritmer. Fra beviset bemærker vi også, at løsningsrummet for et N P -hårdt optimeringsproblem må være begrænset. Faktisk er det begrænset af 2 y, hvor y er den binære længde af en løsning. 3 Divide and Conquer Brute-force paradigmet fra forrige afsnit fungerede kun for N P -fuldstændige afgørlighedsproblemer. Når vi skal løse et N P -hårdt optimeringsproblem på formen z max f x x S 11

12 har vi ikke en verifikationsalgoritme til rådighed. I stedet kan vi anvende divideand-conquer paradigmet fra Cormen m.fl. [7]. Vi ønsker at opdele problemet i en række mindre problemer, løse de mindre problemer, og samle informationen sammen til en optimal løsning. Der gælder Sætning 2 Lad S S 1 S k være en opdeling af S i mindre mængder, og lad z i max f x x S i være løsningsværdien svarende til den i te delmængde. Da gælder z max i 1 k z i. Bevis: z max f x x S 1 S k max i 1 k max f x x S i max i 1 z i. k Vi vil bruge betegnelsen delproblem til at betegne vores optimeringsproblem begrænset til delmængde S i. I det følgende vil vi sprogligt ikke skelne mellem en delmængde og det tilhørende delproblem. Eksempel 4 Knapsack-problemet Af pladshensyn vil vi betragte en reduceret udgave af knapsack-problemet fra eksempel 1, hvor der kun er n 3 genstande, og kapaciteten er c 6. j p j w j j Løsningsrummet er S x 1 x n n j 1 w jx c x j 0 1. På figur 1 ses en opdeling af løsningsrummet S svarende til, om en given beslutningsvariabel x i sættes til 0 eller 1. I den første opdeling får vi to delproblemer: S 1 S 2 x 1 x n S x 1 0 x 1 x n S x 1 1 (6) Tilsvarende får vi ved opdeling af S 1 de to mængder S 3 og S 4 givet ved S 3 S 4 x 1 x n S 1 x 1 0 x 2 0 x 1 x n S 1 x 1 0 x 2 1 (7) Og så fremdeles. 12

13 S S 1 S S 3 S 4 S 5 S S 7 S 9 S 11 S S 8 S 10 S 12 S 14 Figur 1: Opdeling af løsningsrum. De understregede tal svarer til ulovlige løsninger, dvs. løsningsvektorer x hvor n j 1 w jx j c. 13

14 S x 1 0 x 1 1 S 1 S 2 x 2 0 x 2 1 x 2 0 x 2 1 S 3 S 4 S 5 S 6 x 3 0 x 3 1 x 3 0 x 3 1 x 3 0 x 3 1 x 3 0 x 3 1 S 7 S 8 S 9 S 10 S 11 S 12 S 13 S 14 x f x ulovlig 6 9 ulovlig ulovlig Figur 2: Søgetræ for knapsack-problemet. De understregede mængder angiver ulovlige løsninger, dvs. løsningsvektorer x hvor n j 1 w jx j c. 14

15 z Sætning 2 viser, at vi kan finde en optimal løsning til f.eks. S 5 som max z 11 z 12 max 6 9 9, hvor z 11 er den optimale løsning til S 11, og z 12 er løsningen til S 12. Man kan illustrere opdelingen af S med et søgetræ, som vist i figur 2. Hver knude i søgetræet svarer til et delproblem S i. Hvis vi betragter to knuder i og j i søgetræet, hvor j ligger under i, så kalder vi j for et underproblem til i. 4 Grænseværdier Vi betragter igen et optimeringsproblem P på formen z max f x x S. S behøver ikke at være det originale løsningsrum for et problem, L men kan godt være et delproblem S i fremkommet ved brug af divide-and-conquer paradigmet. En nedre grænseværdi L er et reelt tal, som overholder at z. På samme måde kan vi definere en øvre grænseværdi U som et reelt tal, der overholder at U z. Enhver lovlig løsning x S til problemet P er en nedre grænseværdi, idet der oplagt gælder at f x max f x x S. Det er anderledes udfordrende at finde en øvre grænseværdi. Til dette formål har vi brug for at betragte en relaksering: Definition 2 Givet et problem P defineret som z max f x x S. Problemet R givet ved z R max g x x T er en relaksering af P, hvis der gælder: (i) S T, (ii) g x f x for alle x S. Følgende figur illustrerer princippet i en relaksering. Vi maksimerer funktionen f over mængden S. Funktionen g må ikke ligge under f i hele definitionsmængden S, men der stilles ingen krav til g udenfor S. g x f x S T 15

16 Sætning 3 Hvis R er en relaksering af P, så gælder der at z R z. Bevis: Antag, at den optimale løsning for P er x, dvs. der gælder f x z. Da x S har vi fra (ii) at g x f x. Fra (i) ved vi endvidere at x T. Dermed må gælde at z R max g x x T g x f x z. Ovenstående sætning giver os en opskrift til at bestemme øvre grænseværdier, idet vi for et problem P kan løse en tilhørende relaksering R og bestemme z R. Da gælder at U : z R er en øvre grænseværdi, idet vi har z R z max f x x S f x for ethvert x S. Man kan altid finde en triviel relaksering ved at vælge g x f x og T S. Denne relaksering vil returnere den bedst tænkelige grænseværdi U z, men den er lige så dyr at beregne, som at løse det originale problem. Man vil derfor normalt kræve, at en relaksering kan løses i polynomiel tid. Det er måske ikke videre intuitivt, at et problem kan bliver lettere at løse ved at udvide løsningsrummet S til en større mængde T, men nedenstående eksempler vil vise, at dette rent faktisk ofte er tilfældet. Tilsvarende kan nogle problemer blive lettere at løse ved at modificere objektfunktionen. For ethvert problem P vil der kunne defineres mange relakseringer, som vil resultere i et antal forskellige grænseværdier. Det er en kunstart at finde en relaksering, som giver gode grænseværdier, og som kan beregnes effektivt. Divide-and-conquer paradigmet fra afsnit 3 kan også anvendes til at bestemme grænseværdier ved opdeling af problemet i mindre delproblemer. Idet vi definerer z i max f x x S i, gælder følgende to sætninger: Sætning 4 Lad S S 1 S k være en opdeling af S i mindre mængder, og lad L i være en nedre grænseværdi for delmængde S i. Da gælder at L max i 1 k L i er en nedre grænseværdi i for S. Bevis: Da L z i har vi L i max i 1 L k max i 1 k z i z. Sætning 5 Lad S S 1 S k være en opdeling af S i mindre mængder, og lad U i være en øvre grænseværdi for delmængde S i. Da gælder at U max i 1 k U i er en øvre grænseværdi for S. 16

17 U S T i Bevis: Da z U i har vi U Endelig har vi sætningen: max i 1 U i k max i 1 z i z. k Sætning 6 Betragt et maksimeringsproblem z max f x x S, hvor f x returnerer en heltallig løsningsværdi for ethvert x S. Antag at U er en øvre grænseværdi. Da er også U en øvre grænseværdi. z z Bevis: Da f x er heltallig, må z, og følgelig z z. Da U gælder z, og dermed U. 4.1 Eksempler på grænseværdier Eksempel 5 Knapsack-problemet For at finde øvre grænseværdier for knapsack-problemet betragter vi en simpel relaksering, hvor det er tilladt at medtage brøkdele af genstandene. Dette problem kaldes det fraktionelle knapsack-problem i Cormen c 0 m.fl. [7], j givet 1 ved x (8) U 1 n n j max KP p j x j j x j 1 j 1w For at se, at der er tale om en relaksering, bemærker vi først at knapsack-problemet er defineret på formen (1) med j f x n j 1 p jx j x 1 x n n j 1 w jx c x j 0 1 Det fraktionelle knapsack-problem er defineret på samme j form c 0 med j g x n j 1 p jx j x 1 x n n j 1 w jx x 1 Da f x g x er kriterium (ii) i definition 2 overholdt. Endvidere er S T, hvorfor kriterium (i) også er opfyldt. Det fraktionelle knapsack-problem kan løses i polynomiel tid ved brug af den grådige algoritme, som beskrevet i Cormen m.fl. [7] s Først sorteres genstandene efter aftagende effektivitet p j w j, således at p 1 p w 1 2 p w 2 3 w 3 (9) 17 p n w n

18 hvorpå rygsækken fyldes som følger: Genstandene lægges i rygsækken, indtil man støder på den første genstand b, som der ikke er plads til. Den optimale løsning er da at medtage de første b 1 genstande (dvs. x j 1 for j 1 b 1), mens en brøkdel af genstand b medtages, således at hele kapaciteten udnyttes: c b j 1 1 x w j b w b Ingen af genstandene efter b medtages (dvs. x j 0 for j b 1 n). Dette giver os følgende direkte formel til at bestemme den øvre grænseværdi U 1 KP b 1 j 1 p j p b c b 1 j 1 w j w b (10) tid, hvor den tungeste beregning er sorte- Grænseværdien kan findes i O n log n ringen (9). Den grådige algoritme kan også bruges til at finde en nedre grænseværdi L. Antag, at genstandene er sorteret efter (9) og betragt genstandene i rækkefølgen Hvis der stadig er plads til en given genstand i medtages den i rygsækken, ellers fortsættes med genstand i 1. For knapsack-problemet fra eksempel 1 bemærker vi, at genstandene allerede er sorteret efter aftagende profit-vægt forhold. j p j w j Da rygsækken har kapacitet c 9 fylder vi genstande 1 2 i rygsækken og medtager en fraktionel del af genstand b 3. Beslutningsvariablene bliver x 1 x 2 1, og x Den øvre grænseværdi bliver 3 U 1 2 KP som ifølge sætning 6 kan rundes ned til U 1 KP 16. En nedre grænseværdi findes ved at vælge genstande 1 2 7, der giver værdien L

19 T Eksempel 6 Dense subgraph-problemet Ved at sætte en parentes i objektfunktionen kan problemet k skrives som z max U V U (11) i U j c i j U Lad c i være en øvre grænse på enhver kantvægt-sum, der kan udgå fra knude i. Formelt kan dette defineres som c i max k c i j U V U j U (12) Da kan udtrykket inde i parentesen af (11) begrænses i opadtil ved c (13) j c i j U og vi får følgende øvre grænseværdi for dense subgraph-problemet U 1 DSP max k c i U V U i U (14) For at indse, at der er tale om en relaksering af det originale problem, bemærker vi, at det originale problem havde objektfunktion og løsningsrum S U V U k Det nye problem har objektfunktion og løsningsrum f x i U j U c i j g x i U c i U V U Da S T er kriterium (i) i definition 2 opfyldt. Tilsvarende har vi kriterie (ii) opfyldt, da g x f x for alle x S på grund af (13). Det relakserede problem (14) kan løses i O V 2 tid. Først finder vi for hver knude i V værdien c i givet ved (12). Dette problem består i at vælge de k største kantvægte, som udgår fra knude i. Dette kan gøres i O V tid for hver knude i, jf. Problem 9-1 side 194 i Cormen m.fl. [7]. I det relakserede problem (14) skal vi igen vælge de k største tal blandt tallene c 1 c 2 c n, hvilket kan gøres i O V tid. Samlet får vi køretiden V O V O V. Som eksempel på grænseværdiberegningen kan vi betragte instansen fra eksempel 2: 19 k

20 j i Her har vi n 7 knuder, hvoraf k 3 skal udvælges. Ved at vælge de k største tal i hver række finder vi c 1 24, c 2 25, c 3 20, c 4 18, c 5 18, c 6 24 og c Dermed bliver en øvre grænseværdi U 1 DSP 73. I opgave 9 vises en strammere version af ovenstående grænseværdi. Eksempel 7 Traveling salesman-problemet (minimeringsproblem) Der er gennem tiden foreslået mange grænseværdier for traveling salesman-problemet. En af de kønneste er baseret på 1-træ relaksering. Givet en vægtet graf V E d fremkommer et 1-træ ved at finde et udspændende træ på knuderne 2 3 n og herefter forbinde knude 1 med to vilkårlige kanter. Et minimalt 1-træ findes ved at løse et mindste udspændende træ på knuderne 2 3 n, og herefter udvælge de to billigste kanter, som udgår fra knude 1 (overvej, hvorfor dette er et minimalt 1-træ). For Bornholm-instansen fra eksempel 3 konstrueres et minimalt 1-træ ved at finde et mindste udspændende træ på knuderne De to billigste kanter, som udgår fra knude 1 er 1 2 og 1 7, som tilføjes kantmængden. Samlet har vi følgende 1-træ, som koster 97 enheder:

21 S T Køretiden for at finde et mindste 1-træ domineres af, at vi skal finde et mindste udspændende træ (MST). Dette kan gøres i tiden O E log V med Kruskals algoritme, jf. Cormen m.fl. [7] afsnit 23.2 side 568. Alternativt kan man bruge Prims algoritme, som har køretiden O E V log V, hvis man benytter Fibonacci hobe. Man kan bruge 1-træer til at finde en nedre grænseværdi for traveling salesmanproblemet givet ved L 1 TSP min i j H d i j H E Her et 1-træ (15) For at indse at et minimalt 1-træ er en relaksering, bemærker vi, at det originale problem kan skrives på formen (1) med f x i j H d i j Tilsvarende har vi for problem (15) at g x d i j i j H H E H er en Hamilton-kreds (16) H E H er et 1-træ Da både traveling salesman-problemet og det mindste 1-træ har samme objektfunktion er kriterium (ii) opfyldt. Endvidere har vi, at en Hamilton-kreds også er et 1-træ, hvilket ses ved at fjerne knude 1 og bemærke, at de tilbageværende kanter udgør et træ (faktisk udgør de en vej, der naturligvis også er et træ). Da S T har vi vist kriterium (i). 4.2 Grænseværditest I forrige afsnit definerede vi en grænseværdifunktion som en funktion f, der for ethvert delproblem S i returnerer et reelt tal U, således at f x U for alle x S i. Sagt i ord giver grænseværdifunktionen en garanti for, at man ikke kan finde en løsning i S i, som er bedre end U. Man kan bruge denne viden konstruktivt til at bortskære delproblemer. Hvis man for et delproblem S i ved, at man ikke kan finde en bedre løsning end den nuværende nedre grænseværdi, så er der ingen grund til at undersøge delproblemet nærmere. Lidt mere formelt har vi følgende grænseværditest: 21

22 Sætning 7 Hvis et delproblem S i L har grænseværdi U, således at U S i (17) så kan vi forkaste S i. U Bevis: Grænseværdien sikrer, at f x L for alle x S i. Så ingen løsning x i S i vil have en bedre løsningsværdi end den allerede kendte L. 4.3 Monotonitet af grænseværdier En øvre grænseværdifunktion siges at være monoton, hvis der gælder at U S 1 U S 2, når S 1 S 2. Løst sagt skal grænseværdien blive mindre, når vi maksimerer over et mindre løsningsrum. Dette gælder oplagt for alle relakseringer, hvor S T i definition 2, og det vil også gælde for de fleste fornuftige relakseringer, hvor S T. Hvis en grænseværdifunktion er monoton, vil den øvre grænseværdi aftage efterhånden, som vi bevæger os ned i søgetræet af delproblemer. Dette hænger sammen med den trivielle observation, at vi hver gang opdeler problemet i mindre delproblemer, således at ovenstående kriterium er opfyldt for en knude og dens underliggende knude. 5 Branch-and-bound Vi er nu i stand til at skitsere en generisk branch-and-bound algoritme for et maksimeringsproblem på formen z max f x x S (18) I den nedenstående algoritme angiver L en liste af delproblemer S i givet ved de tilhørende løsningsrum. Listen L vil ofte være organiseret som en prioritetskø. Vi kalder delproblemerne i L for åbne delproblemer, mens delproblemer, der allerede er blevet behandlet, kaldes lukkede delproblemer. Endvidere vedligeholder vi en global nedre grænseværdi L samt den tilhørende løsning x. 22

23 1 L : ; L : S 2 while L /0 3 vælg et delproblem S i fra L 4 L : L S i 5 if S i /0 then 6 find en øvre grænseværdi U S i 7 if U S i L then 8 find en lovlig løsning x S i 9 if f x L then L : f x ; x : x 10 opdel S i i delproblemer S 1 i S k i 11 tilføj delproblemerne til L, dvs. sæt L : L 12 endif 13 endif 14 endwhile S 1 i S k i En branch-and-bound algoritme for et maksimeringsproblem vil derfor bestå af følgende fire komponenter: 1. En øvre grænseværdifunktion, der for et givet delproblem returnerer en øvre grænse på værdien af den bedste løsning, som vi kan finde i delrummet. 2. En nedre grænseværdi, som på ethvert tidspunkt angiver den hidtil bedst kendte løsning. 3. En søgestrategi, som fastlægger en rækkefølge for behandlingen af delproblemer. 4. En forgreningsregel, som for alle delproblemer, der ikke kan forkastes af grænseværditesten, angiver, hvorledes det tilhørende løsningsrum skal opdeles. Dermed skabes to eller flere nye delproblemer. 5.1 Øvre grænseværdifunktion En god grænseværdifunktion er afgørende for, at en branch-and-bound algoritme bliver vellykket. Jo strammere grænseværdier vi kan få, des mindre bliver søgetræet. Som beskrevet i afsnit 4 findes grænseværdier ved relaksering af optimeringsproblemet. Der findes en række standardteknikker, som kan benyttes i 23

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

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

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

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

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

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

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

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

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU (2004) 1 Introduktion 5 1.1 Gennemgående eksempler... 7. 2 Brute-force metoder 10

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU (2004) 1 Introduktion 5 1.1 Gennemgående eksempler... 7. 2 Brute-force metoder 10 Branch-and-bound David Pisinger Videregående algoritmik, DIKU (2004) 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

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

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

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

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

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

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

Divide-and-Conquer algoritmer

Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen

Læs mere

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

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

Læs mere

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

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

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

Læs mere

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

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

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

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

Læs mere

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 Mandag den 2 Juni 2008, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater

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

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

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

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

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

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

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

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

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

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

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning) Datalogisk Institut Aarhus Universitet Fredag den 28. maj 2004, kl. 9.00 13.00 Opgave 1 (20%) En (r, k) kryds-graf er en orienteret graf

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

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

16. december. Resume sidste gang

16. december. Resume sidste gang 16. december 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

Læs mere

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed Videregående algoritmik Cormen et al. 34.1 34.3 Fredag den 12. december

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

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

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

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

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

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

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

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

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

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æer

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

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

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

Hamiltonkreds, den handelsrejsendes problem, delmængdesum-problemet

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

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

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

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

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

Udtømmende søgning 1

Udtømmende søgning 1 Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer Find den korteste

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

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

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. 22 Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned. Indsættelse i hobe. Sletning af minimalt element i hobe. Repræsentation. 327

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

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

Mat H /05 Note 2 10/11-04 Gerd Grubb

Mat H /05 Note 2 10/11-04 Gerd Grubb Mat H 1 2004/05 Note 2 10/11-04 Gerd Grubb Nødvendige og tilstrækkelige betingelser for ekstremum, konkave og konvekse funktioner. Fremstillingen i Kapitel 13.1 2 af Sydsæters bog [MA1] suppleres her med

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Pointen med Funktioner

Pointen med Funktioner Pointen med Funktioner Frank Nasser 0. april 0 c 0080. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er en

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

Funktionsterminologi

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

Læs mere

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

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur

Udtømmende søgning. Udtømmende søgning (kombinatorisk søgning) Problem med 4461 byer Udtømmende søgning i grafer. Find den korteste rundtur Udtømmende søgning Udtømmende søgning (kombinatorisk søgning) Systematisk gennemsøgning af alle potentielle løsninger Den rejsende sælgers problem (TSP): En sælger skal besøge N byer ind den korteste rundtur

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

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

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3 02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................

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

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

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

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

Læs mere

Algoritmer og invarianter

Algoritmer og invarianter Algoritmer og invarianter Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker. Iterative algoritmer Algoritmen er overordnet set een eller flere while eller for-løkker.

Læs mere

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger enote 11 1 enote 11 Lineære differentialligningers karakter og lineære 1. ordens differentialligninger I denne note introduceres lineære differentialligninger, som er en speciel (og bekvem) form for differentialligninger.

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

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

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

Perspektiverende Datalogikursus

Perspektiverende Datalogikursus Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet Gerth Stølting Brodal 27. august 2004 1 Indhold Mere om Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer

Læs mere

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering Philip Bille Prioritetskøer Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer

Læs mere

Perspektiverende Datalogi Klassiske Algoritmer

Perspektiverende Datalogi Klassiske Algoritmer Perspektiverende Datalogi Klassiske Algoritmer Gerth Stølting Brodal 1 Indhold Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet

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

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

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

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

Projekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet

Projekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet Projekt 1.4 De reelle tal og 2. hovedsætning om kontinuitet Mens den 1. hovedsætning om kontinuerte funktioner kom forholdsvis smertefrit ud af intervalrusebetragtninger, så er 2. hovedsætning betydeligt

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

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

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af)

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

Analyse af ombytningspuslespil

Analyse af ombytningspuslespil Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. 2 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset

Læs mere

Projekt 4.9 Bernouillis differentialligning

Projekt 4.9 Bernouillis differentialligning Projekt 4.9 Bernouillis differentialligning (Dette projekt dækker læreplanens krav om supplerende stof vedr. differentialligningsmodeller. Projektet hænger godt sammen med projekt 4.0: Fiskerimodeller,

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

Analyse af ombytningspuslespil

Analyse af ombytningspuslespil Analyse af ombytningspuslespil 1 / 7 Konkret eksempel på algoritmeanalyse Prøv ombytningspuslespillet på kurset webside. Spørgsmål: Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvilken algoritme

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