Approksimationsalgoritmer for k-median og facility location problemer, vha. lokalsøgning

Størrelse: px
Starte visningen fra side:

Download "Approksimationsalgoritmer for k-median og facility location problemer, vha. lokalsøgning"

Transkript

1 Approksimationsalgoritmer for k-median og facility location problemer, vha. lokalsøgning Peter Neergaard Jensen, Christian Plum & Mette Gamst 8. januar Indledning I forbindelse med kurset Approkismationsalgoritmer, udbudt efteråret 2005 på Datalogisk Institut, Københavns Universitet, er disse noter udarbejdet. Noterne er skrevet udfra artiklen [Arya et al, 2004], det vil sige, at resultater nået i nævnte artikel er gennemgået her. En metode til at placere faciliteter, der skal betjene en given mængde af klienter effektivt, har været et vigtigt emne inden for meget forskning. Dette skyldes til dels, at problemet er meget anvendeligt, praktisk set. For eksempel kan det være relevant at beregne hvor et lager skal bygges, således at omkostningen for at fragte varer til klienter, minimeres. Den praktiske vinkel af problemet gør, at effektiviteten af en given plan for placering af faciliteterne ofte måles ved afstanden fra en facilitet til de klienter, den kan betjene. Dette mål, der kaldes serviceomkostningen for at en given facilitet servicerer en given klient, indebærer dog at en optimal løsning i nogle tilfælde vil kunne nås ved ganske simpelt at åbne en facilitet tæt på hver klient. Det er ikke en realistisk løsning på for eksempel det nævnte varelagerproblem, så der bliver typisk tilføjet enten en øvre grænse for hvor mange faciliteter, der må åbnes, eller en omkostning for åbning af hver facilitet. Sidstnævnte kaldes typisk for facilitetsomkostningen. I disse noter ser vi på tre forskellige typer af facility location problemet, nemlig k-median problemet, uncapacitated facility location problemet og -capacitated facility problemet. Vi betragter de metriske versioner af problemerne, dvs. at trekantsuligheden gælder, og at afstandene er symmetriske, altså at afstanden fra a til b er den samme som fra b til a og at afstanden fra a til a er 0. Noterne bygger på artiklen [Arya et al, 2004], og de tre problemer bliver her kort introduceret. Metrisk k-median facility location problemet går ud på at placere højst k faciliteter sådan at de samlede serviceomkostninger minimeres. I metrisk uncapacitated facility location problemet (UFL) har åbningen af hver facilitet en omkostning. Målet er at minimere summen af facilitetsomkostningerne og serviceomkostningerne. Metrisk -capacitated facility location problemet (CFL) er et specialtilfælde af k-capacitated facility location problemet (k-cfl). I k-cfl kan der højest åbnes k kopier af hver facilitet, det vil sige at i -CFL kan der åbnes uendeligt mange kopier af hver facilitet. Åbning af hver facilitet har en omkostning, og ydermere er der en grænse 1

2 for hvor mange klienter, en given facilitet kan betjene. Målet er, at hver klient betjenes af en facilitet således at ingen af faciliteternes kapaciteter overskrides, samt at minimere summen af facilitetsomkostningerne og serviceomkostningerne. Fælles for de tre problemer er, at de er N P-hårde, da de kan reduceres fra det N P-hårde problem, Minimum Set Cover. Dette er vist af blandt andre [Archer, 2000], [Kann, 1997] og [Jain & Vazirani, 2001]. Konsekvensen af, at de tre problemer er N P-hårde er, at der, under antagelse P N P, ikke eksisterer en polynomieltidsalgoritme, som finder en optimal løsning. Derfor er der forsket i heuristikker og approksimationsalgoritmer for problemet. I disse noter gennemgås approksimationsalgoritmer for hver af de tre problemer. Som beskrevet i [Arya et al, 2004], er lokalsøgningsteknikker en ofte anvendt tilgang til at løse hårde kombinatoriske optimeringsproblemer. Lokalsøgningsteknikkerne er gerne anvendt i forbindelse med heuristikker, der ofte kan have dårlige worst-case garantier. Kun få approksimationsalgoritmer, der gør brug af lokalsøgning, er kendt. [Könemann & Ravi, 2000] anvendte lokalsøgningsalgoritmer på valens-afgrænsede mindst udspændte træer, ligesom lokalsøgning er anvendt til set packing problemer af [Arkin & Hassin, 1998]. Approksimationsalgoritmer bedømmes gerne efter den garanti for løsningsværdien, de kan stille. Garantien, eller approksimationsfaktoren, angiver en øvre grænse for hvor langt den approksimerede løsningsværdi ligger fra den optimale. Ved anvendelse af lokalsøgning på en instans I, findes et lokalt optimum, local(i). Den optimale løsning til I kaldes global(i), og approksimationsfaktoren kan defineres som global(i)/local(i) for et maksimeringsproblem og local(i)/global(i) for et minimeringsproblem. Da vi arbejder med minimeringsproblemer i disse noter, er det altså sidstnævnte forhold vi anvender til at finde approksimationsfaktoren. En række resultater er nået ved at anvende lokalsøgning på facility location problemer, og i det følgende nævnes de vigtigste af disse. For 1-capacitated facility location problemet med ens kapaciteter viser [Korupolu, Plaxton & Rajaraman, 1998], at enhver procedure, hvor de tilladte operationer er at tilføje faciliteter, fjerne faciliteter og bytte faciliteter, har en approksimationsfaktor på 8. [Chudak & Williamson, 1998] forbedrer analysen af problemet, og viser en approksimationsfaktor på 6. [Pál, Tardos & Wexler, 2100] forslår en lokalsøgningsalgoritme for 1-capacitated facility location problemet med forskellige kapaciteter med en approksimationsfaktor på 9. Senere har de udvidet denne til at opnå en faktor 8 algoritme. For uncapacitated facility location, præsenterer [Korupolu, Plaxton & Rajaraman, 1998] en approksimationsalgoritme med garantien 5. [Charikar & Guha, 1999] udvider metoden til at opnå en approksimationsfaktor på 3. Der eksisterer også approksimationsalgoritmer for k- median problemet. [Korupolu, Plaxton & Rajaraman, 1998] viser en lokalsøgningsprocedure, hvor løsningen består af k(1 + ɛ) faciliteter, og hvor garantien er 3 + 5/ɛ. En lang række approksimationsalgoritmer for facility location problemer er udviklet gennem årene. [Shmoys, Tardos & Aardal, 1997] har opskrevet problemet som et LP-problem for at afrunde LP-løsningen. Dette resulterede i en faktor 3 algoritme for UFL problemet og en faktor algoritme for k-median problemet. [Jain & Vazirani, 2001] har anvendt et primal-dual-skema til at opnå en alternativ faktor 3 approksimationsalgoritme for UFL. Endvidere har de anvendt Lagrange-relaksering til at opnå en faktor 6 algoritme for k- 2

3 median problemet. Sidstnævnte har [Charikar & Guha, 1999] forbedret til en faktor 4 approksimation. [Guha & Khuller, 1998] introducerer randomisering til at opnå et garanti på for UFL, hvilket er forbedret til (1 + 2/e) af [Chudak, 1998] og endeligt til af [Charikar & Guha, 1999]. [Chudak & Shmoys, 1999] har opnået en faktor 3 algoritme for - CFL, hvor kapaciteter for faciliteterne er uniforme. Dual fitting factor revealing LP er anvendt af [Jain et al, 2003] til at designe to grådige algoritmer for UFL med faktor hhv Denne idé kombineret med omkostningsskalering giver i følge [Mahdian, Ye & Zhang, 2002] en faktor 1.52 algoritme for UFL, hvilket er det bedst kendte resultat. [Jain & Vazirani, 2001] har opnået en faktor 4 approksimationsalgoritme for -CFL med ikke-uniforme kapaciteter, og endeligt har [Mahdian, Ye & Zhang, 2003] givet en faktor 2 approksimation for -CFL med ikke-uniforme kapaciteter ved at reducere problemet til et lineær-omkostnings facility location problem. I [Arya et al, 2004], som disse noter bygger på, nås følgende resultater: Det metriske k-median problem. Lokalsøgningalgoritmen anvendes: Først vises en algoritme, hvor højest ét par af faciliteter kan udbyttes ad gangen (single swap), det vil sige hvor én facilitet lukkes, og en anden åbnes. Algoritmen har en approksimationsfaktor på 5. Algoritmen udvides til at tillade at op til p, p > 1 faciliteter kan udbyttes på én gang, det vil sige, at p faciliteter lukkes, og p andre åbnes. Derved nås en garanti på 3 + 2/p. Dette er en forbedring af faktor 4 algoritmen, der gennemgås i [Charikar & Guha, 1999]. Det metriske uncapacitated facility location problem. En approksimationsalgoritme, der anvender lokalsøgning, præsenteres. Algoritmen har en garanti på 3, hvilket er bedre end den faktor 5 algoritme, som [Korupolu, Plaxton & Rajaraman, 1998] præsenterer. Lokalsøgningsalgoritmen forbedres endvidere til at nå en faktor 1+ 2+ɛ ved at anvende idéer fra [Charikar & Guha, 1999]. Det metriske -capacitated facility location problem. En algoritme, der bl.a. anvender knapsack som en subrutine analyseres. Algoritmen når en faktor 3, og forbedres derefter til en faktor ɛ approksimationsalgoritme ved at anvende idéer fra [Charikar & Guha, 1999] Disse noter er organiseret som følger. Først, i afsnit 2, gennemgås en generaliseret lokalsøgningsalgoritme, der anvendes i alle de approksimationsalgoritmer, der præsenteres. Afsnit 3 indeholder en formel beskrivelse af k-median problemet, samt to approksimationsalgoritmer. Herefter, i afsnit 4, beskrives uncapacitated facility location problemet formelt, og en approksimationsalgoritme til at løse problemet analyseres. Endeligt, inden konklusionen i afsnit 5.3, gennemgås -capacitated location problemet i afsnit 5 samt en approksimationsalgoritme til løsning deraf. 2 Lokalsøgningsalgoritme De approksimationsalgoritmer, der præsenteres, anvender alle en lokalsøgningsalgoritme. Algoritmen arbejder på et løsningsrum S, en omkostningsfunktion cost : S R og et nabolag af løsninger; B : S 2 S. Algoritmen, der er uddybet i [Yannakakis, 1990], fungerer som følger. Givet en lovlig løsning S S, anvendes et orakel til om muligt at finde en løsning S B(S) således at cost(s ) < cost(s). Algoritmen terminerer, når en lokal optimal løsning 3

4 S er fundet, det vil sige, hvor cost(s) cost(s ) for alle S B(S): Lokalsøgningsalgoritme 1. S en tilfældig lovlig løsning i S 2. While S B(S) således at cost(s ) < cost(s), do S S 3. Return S 2.1 Køretid Lokalsøgningsalgoritmen beskrevet ovenfor terminerer ikke altid i polynomiel tid, da der potentielt kan foretages lige så mange ændringer som nabolaget er stort, det vil sige 2 S For at ændre dette, modificeres trin 2 til: 2M. While S B(S) således at cost(s ) (1 ɛ/q)cost(s) do S S Her er ɛ > 0 en konstant og Q = Q, hvor Q er en polynomiel stor delmængde af naboløsninger; Q B(S). Altså medtages kun forbedringer, der er mindst ɛ/q store. Lad nu S 0 være den initielle løsning og O en optimal løsning. Da itererer algoritmen højest log(cost(s 0 )/cost(o))/ log(1/(1 ɛ/q)) gange. Da Q, log(cost(s 0 )), og log(cost(o)) er polynomielle i inddatastørrelsen, terminerer algoritmen efter et polynomielt (i inddata størrelsen) antal skridt. Det bemærkes, at eftersom der kun itereres over delmængden Q, er S ikke nødvendigvist et rigtigt lokalt minimum, men blot et lokalt minimum i delmængden Q af løsninger. Dette er også tilstrækkeligt, da algoritmen finder en approksimativ løsning. I det følgende omtales S derfor som en lokal optimal løsning. 2.2 Approksimationsfaktor Nu gennemgås en teknik, der anvendes til at bevise approksimationsfaktoren, når lokalsøgningsalgoritmen anvendes i forbindelse med en approksimationsalgoritme. Når S er en lokal optimal løsning, gælder cost(s ) cost(s) 0 S B(S) For at finde approksimationsfaktoren og for at algoritmen kan køre i polynomiel tid, skal delmængden af naboløsninger Q B(S), identificeres. Delmængden skal overholde: (cost(s ) cost(s)) α cost(o) cost(s) (1) S Q hvor O er en optimal løsning og α > 1 er en passende konstant. Da S er en lokal optimal løsning, må venstresiden af (1) være større eller lig 0. Derfor er højresiden af (1) også større eller lig 0. Nu udledes: 0 α cost(o) cost(s) cost(s) α cost(o) 4

5 hvilket giver grænsen α for approksimationsfaktoren. Trin 2M af algoritmen skal medtages. S er den returnerede løsning, hvor trin 2M er inkorporeret i lokalsøgningsalgoritmen og hvor Q = Q. For alle S Q, gælder det da, at cost(s ) > (1 ɛ/q) cost(s). Derfor: α cost(o) cost(s) S Q(cost(S ) cost(s)) > ɛ cost(s) hvilket anvendes til at udlede: α cost(o) cost(s) ɛ cost(s) α cost(o) (1 ɛ) cost(s) cost(s) α 1 ɛ cost(o) Det betyder, at når der i det følgende er beskrevet en algoritme med approksimationsfaktor α α, skal dette oversættes til at være en approksimationsalgoritme med garanti 1 ɛ og med en køretid, der er polynomiel i inddatastørrelsen og 1/ɛ. 3 Det metriske k-median problem I dette afsnit gennemgås to approksimationsalgoritmer for det metriske k-median problem. Men først introduceres problemet mere formelt. Vi er givet en mængde af faciliteter, F, og en mængde af klienter, C. Da angiver c ji 0, c ji R omkostningen for at klient j C betjenes af facilitet i F. I k-median problemet skal alle klienter betjenes ved at åbne en delmængde S F bestående af højest k faciliteter. Den totale pris, det koster at betjene klienterne, skal minimeres, det vil sige min j C c jσ(j), hvor σ(j) er faciliteten, der betjener klient j. I approksimationsalgoritmerne anvendes single swap hhv. multiswap. Et swap dækker over at bytte en facilitet i løsningen S, kald den s S, ud med en facilitet, der ikke er med i løsningen, kald den o O. Et single swap betegner et swap af netop ét par af faciliteter, mens et multiswap betegner et swap af to lige store mængder af faciliteter. 3.1 Lokalsøgning med single swaps Lokalsøgningsalgoritmen fra afsnit 2 på side 3 udbygges med single swaps. Givet en lovlig løsning S, består et single swap af at bytte en åben facilitet i den nuværende løsning, s S, ud med en facilitet, der ikke indgår i løsningen, s F \S. Et single swap betegnes s, s. Nabolaget er derfor B(S) = {S {s} + {s } s S}. Algoritmen starter med at åbne en mængde af k tilfældige faciliteter således, at en lovlig løsning haves, og derefter forbedrer algoritmen løsningen ved at swappe faciliteter indtil en lokal minimumsløsning er nået: Lokalsøgning med single swaps 1. Lad S F således at S = k. 2. While s S, s F \S: cost(s {s} + {s }) < cost(s), do S S {s} + {s } 3. Return S I det følgende anvendes S s + s til at betegne S {s} + {s } 5

6 3.1.1 Approksimationsfaktor I det følgende gennemgås approksimationsfaktoren for algoritmen og et bevis derfor. Lemma 3.1 Approksimationsfaktoren for lokalsøgning med single swaps er 5. Bevis Beviset er struktureret således, at notation først præsenteres sammen med en strukturering af problemet. Herefter udnyttes dette til at vise approksimationsfaktoren. Følgende notation anvendes. Givet en løsning A, benævner A j omkostningen for at betjene klient j. For hver facilitet a A, anvendes N A (a) til at betegne den mængde af klienter, som a betjener. Lad S være løsningen, algoritmen har returneret, og lad O være en optimal løsning. Mængden N O (o) opdeles i delmængderne N o s = N O (o) N S (s). En opdeling kan ses i figur 1. N o s 1 = N S (s 1 ) N O (o) N o s 4 = N S (s 4 ) N O (o) N o s 3 = N S (s 3 ) N O (o)) N o s 2 = N S (s 2 ) N O (o)) Figur 1: Mængden N O (o) opdeles i delmængder efter hvilke klienter, der betjenes af et s S. For at kunne give en øvre grænse for hvor meget et swap koster, introduceres en afbildningsfunktion, der afbilder enhver klient, betjent af facilitet o O til en anden klient, der også betjenes af o. Afbildningsfunktionen er endvidere beskrevet i [Pandit, 2004, side 21]. Nærmere er idéen med afbildningen, at hvis en facilitet s S swappes med o O, og der eksisterer en klient j N S (s), j / N O (o), så bestemmer afbildningsfunktionen hvilken facilitet, der skal betjene klienten j. For at afbildningsfunktionen kan afgøre dette, skal hver klient j N O (o) afbildes til netop én anden klient j N O (o), således at j N S (s) og j / N S (s). Heraf udledes nemt, at hvis der eksisterer faciliteter s S og o O således, at N o s > 1 2 N O(o), kan afbildningsfunktionen ikke eksistere, idet der ikke er nok klienter udenfor N o s, som klienterne i N o s kan afbildes over i. På baggrund af denne observation, kategoriseres faciliteter i S i det følgende efter hvorvidt de betjener mere end halvdelen af mængden af j N O (o) eller ej. Efter kategoriseringen introduceres en afbildningsfunktion, der afviger en anelse fra den netop beskrevne, men med samme overordnede formål. Definition 3.2 En facilitet s S siges at fange en facilitet o O hvis s betjener mere end halvdelen af de klienter, o betjener. Det vil sige, hvis N o s > 1 2 N O(o). Det ses nemt, at en facilitet o O højest fanges af én facilitet s S. En facilitet s S kaldes dårlig, hvis den fanger mindst én facilitet o O. Ellers kaldes den god. 6

7 Nu defineres en bijektiv afbildningsfunktion π : N O (o) N O (o). Lad D = N O (o) være størrelsen af mængden N O (o). Da afbildes en klient j N O (o) over i π(j) = i, hvor i = (j + D/2 modulo D). Derved afbildes enhver klient j N O (o) over i en anden klient i N O (o). Afbildningsfunktionen bruges senere til at definere hvilken facilitet, der betjener en klient. Funktionen π har endvidere egenskaben (se eventuelt eksemplet i figur 2): Egenskab 3.3 Hvis s ikke fanger o, det vil sige N o s 1 2 N O(o), da er π(n o s ) N o s =. N O (o) Ns o N o s j π(j) π Figur 2: Et eksempel på afbildning af en klient. s fanger ikke o, så når j ligger i s, kan π(j) ikke også ligge i s. Det bevises nu at ovenstående egenskab 3.3 overholdes. Klienterne i N O (o) sorteres som client 0,... client D 1, hvor D = N O (o), således at for ethvert s S med et ikke-tomt Ns o, er klienterne i Ns o på hinanden følgende. Det vil sige, at der eksisterer p, q, hvor 0 p q D 1, sådan at Ns o = {client p,..., client q }. Herefter følger et modbevis. Lad client j Ns o og π(client j ) = client i Ns o og antag nu, at Ns o D/2. Nu deles beviset op i to: (1) i = j + D/2 og (2) i = j + D/2 D. 1. Det må gælde, at N o s i j + 1, da klienterne er sorteret som beskrevet ovenfor. Endvidere, når i = j + D/2, får vi ved indsættelse N o s j + D/2 j + 1 > D/2. Dette modstrider, at N o s D/2. 2. Når i = j+ D/2 D, må det gælde, at j > i. Så Ns o j i+1 = j j D/2 +D+1 = D D/2 + 1 > D/2. Igen modstrides, at Ns o D/2. Der er k faciliteter i startløsningen, så k swaps kan foretages. Disse betragtes nu. For at få et overblik over hvilke faciliteter, der swappes, konstrueres en todelt graf, med faciliteterne s S på den ene side og faciliteterne o O på den anden. En kant tilføjes mellem et s S og et o O, hvis s fanger o. I figur 3 på næste side ses et eksempel på en sådan todelt graf. På grund af definition 3.2, kan enhver knude på O siden højest have valens 1, mens en knude på S siden kan have en valens på op til k. Betragt nu en facilitet s S, som fanger en facilitet o O. Antag, at s swappes med en facilitet o O, o o. Ifølge egenskab 3.3, kan afbildningsfunktionen ikke anvendes til at afgøre hvilke faciliteter, der skal betjene klienterne i Ns o, da klienter j Ns o er afbildet til π(j) Ns o og da o ikke er med i løsningen. Derfor begrænses s til kun at kunne blive udskiftet med o. Dette er der endvidere redegjort for i [Pandit, 2004, side 24]. Fanger s to eller flere faciliteter, vil tilsvarende problemer opstå. Antag, at s fanger faciliteterne o 1, o 2 O. s kan kun swappes med én af faciliteterne, kald den o 1. Ved swappet, 7

8 o1 o 2 l O s 1 s2 > l / 2 Figur 3: På den ene side af den todelte graf repræsenterer knuderne de faciliteter s, der er åbne i S og på den anden side de faciliteter o, der er åbne i O. En kant repræsenterer, at facilitet s fanger facilitet o. opstår der problemer med hvilke faciliter, der skal betjene klienterne j N o 2 s. Da s fanger o 2, vil π(j) N o 2 s, hvorved afbildningsfunktionen ikke kan bruges til at afgøre, hvordan de pågældende klienter skal betjenes. Derfor vil en facilitet s, der fanger to eller flere faciliteter i O, slet ikke tages med i betragtningen i noget swap. Når en dårlig facilitet s S fanger præcist én facilitet o O, betragtes swap s, o. Antag nu, at l faciliteter i S (og derfor også l faciliteter i O) ikke indgår i et sådan swap. Da må det gælde, at hver facilitet blandt de l faciliteter enten fanger flere end én facilitet i O, eller er en god facilitet. Fordi der højest kan være l/2 faciliteter, der fanger mere end én facilitet i O, vides også at mindst l/2 faciliteter i S er gode. Nu betragtes de gode faciliteter i S. Når de resterende l faciliteter o O swappes, er det via en god facilitet i S. Derved er det kun relevant at betragte betragtes hver god facilitet i S i forbindelse med to swaps. En oversigt over swaps kan nu opstilles: 1. Hver o O betrages i netop ét swap. 2. En dårlig facilitet s S, der fanger mere end én facilitet o O, medtages ikke i noget swap. 3. Hver god facilitet s S betragtes i højest to swaps. 4. Hvis swap s, o betragtes, så fanger s ikke nogen facilitet o o. Hvert enkelt swap analyseres. Givet et swap s, o skal klienterne i N s (s) N O (o) serviceres af faciliteter i S s + o. En øvre grænse for hvor meget denne nye tildeling koster, beregnes. Ved tildelingen opstår mindst én af følgende to situationer: En klient j N S (s) betjenes af o O, da j N o s En (anden) klient j N S (s) skal ikke betjenes af o O, da j / N o s. I første situation tildeles klienten j til o. Prisen for dette er c jo c js. Generelt vil alle klienter j N O (o), blive betjent af facilitet o, hvilket samlet giver omkostningen: (O j S j ) j N O (o) 8 S

9 I anden situation, nemlig når j / Ns o, anvendes afbildningsfunktionen π til at bestemme, hvad der skal ske med j. I følge analysen af hvilke faciliteter i S, der swappes, kan s ikke fange andre faciliteter end o. Da j / Ns o o, må det gælde, at j Ns, hvor o o, og da s ikke fanger o, er π(j) / N S (s). Nu betragtes den facilitet s S, hvorom det gælder, at π(j) N S (s ). Klienten j tildeles faciliteten s som vist i figur 4. Den umiddelbare omkostning for at tildele j til s er c js, men da tildelingen af j sker via π(j) og o, fås omkostningen: c jo + c π(j)o + c π(j)s c js = O j + O π(j) + S π(j) S j Der generaliseres nu til, at alle klienter j / Ns o, bliver tildelt facilitet s på den beskrevne måde. Den samlede omkostning er derfor: O j + O π(j) + S π(j) S j j N S (s), j / N O (o) Der ændres ikke på tildelingen af de klienter, der i forvejen hverken er tildelt s eller o. o O j O π(j) π(j) j S π(j) S j s Figur 4: En oversigt over hvorledes klienter tildeles faciliteter efter et swap. Klienterne tildeles facilitet s via faciliteten o og afbildningen π(j). Da S er et lokalt minimum, gælder s cost(s s + o) cost(s) s S, o O Det bemærkes, at ovenstående holder selv når S O. Dette overføres nu til, at den samlede omkostning for et swap er større eller lig 0: (O j S j ) + O j + O π(j) + S π(j) S j 0 (2) j N O (o) j N S (s), j / N O (o) Da hver facilitet o O er med i et swap netop én gang, vil en summering af det første led i (2) over alle k swaps give: cost(o) cost(s) (3) For det andet led gælder, at hver facilitet s S højest medtages i to swaps. Eftersom trekantsuligheden er overholdt må det gælde, at O j + O π(j) + S π(j) S j, hvor S j er den mindste 9

10 pris for at j betjenes af en facilitet s S. En summering af andet led over alle k swaps vil derfor have en omkostning på højest 2 j C(O j + O π(j) + S π(j) S j ) (4) Da afbildningsfunktionen π, afbilder enhver klient til netop én anden klient må det gælde, at O j = O π(j) = cost(o) og (S π(j) S j ) = 0 j C j C j C Tilføjes dette til (4) fås 2 j C(O j + O π(j) + S π(j) S j ) = 2 2 cost(o) = 4 cost(o) (5) Nu samles (3) og (5) til den samlede omkostning: 0 cost(o) cost(s) + 4 cost(o) cost(s) 5 cost(o) Hermed er det vist, at approksimationsalgoritmen har en approksimationsfaktor på Lokalsøgning med multiswaps I stedet for single swaps udføres nu multiswaps. Et multiswap defineres ved, at op til p > 1 faciliteter kan udbyttes på én gang. Det vil sige, at givet en lovlig løsning S kan op til p åbne faciliteter A S udskiftes med op til p andre faciliteter B S. Lad F angive mængden af faciliteter. Da er nabostrukturen B(S) = {(S \ A) B A S, B F, og A = B p}. Det bemærkes, at antallet af faciliteter i S ikke ændres af et multiswap. Nabostrukturen angiver mængden af løsninger, der kan nås ved at slette højest p faciliteter A og derefter tilføje faciliteterne B, hvor A = B. Et multiswap betegnes A, B. Algoritmen starter med at åbne en mængde bestående af k tilfældige faciliter således, at en lovlig løsning haves. Derefter køres lokalsøgningen, hvor løsningen forbedres ved at udbytte faciliteter via multiswaps. Algoritmen kører indtil et lokalt optimum er fundet: Lokalsøgning med multiswaps 1. Lad S F således at S = k. 2. While A S, B F \ S: cost((s \ A) B) < cost(s), do S (S \ A) B 3. Return S 10

11 3.2.1 Approksimationsfaktor I det følgende gennemgås approksimationsfaktoren for algoritmen og et bevis derfor. Lemma 3.4 Lokalsøgningsalgoritmen med multiswaps har en approksimationsfaktor på (3 + 2/p), hvor p er det maksimale antal faciliteter, der kan swappes på én gang. Bevis Beviset er struktureret således, at der først vises hvilke swaps, der er relevante at betragte. Dette gøres ved at opdele alle faciliteter i S og O i hensigtsmæssige mængder. Derefter analyseres hver type swap, der kan finde sted, hvilket munder ud i approksimationsfaktoren. Først udvides noget af notationen brugt i beviset for lokalsøgningsalgoritmen med single swap. Igen er der brug for at kunne angive hvornår en facilitet fanges. Da der i multiswap er at gøre med mængder af faciliteter, omdefineres begrebet til at gælde for den mængde af klienter, der swappes. Det vil sige, mængden A fanger følgende: capture(a) = {o O N S (A) N O (o) > N O (o) /2} (6) Det ses, at hvis to mængder, X og Y, er disjunkte, så fanger de også to disjunkte mængder af faciliteter. Er X en delmængde af Y, da er mængden af faciliteter, X fanger, en delmængde af de faciliteter, Y fanger. For at kunne beregne en øvre grænse for, hvad et multiswap koster, opdeles S i mængderne A 1, A 2,..., A r og O i mængderne B 1, B 2,..., B r. Opdelingen sker således, at følgende tre betingelser overholdes: 1. For 1 i r 1 haves at A i = B i og at capture(a i ) = B i. Eftersom S = O = k, må det gælde, at A r = B r 2. For 1 i r 1 indeholder mængden A i netop én dårlig facilitet. 3. Mængden A r indeholder kun gode faciliteter. I figur 5 på næste side ses en procedure, Partition, til at opdele S og O således, at de tre ovenstående betingelser overholdes. Påstand 3.5 Proceduren Partition opdeler S mængderne A 1, A 2,..., A r og O i mængderne B 1, B 2,..., B r, således at ovenstående tre betingelser overholdes. Bevis Da S = O, og på grund af definitionen (6), er der mindst én facilitet i S, der ikke fanger nogen facilitet i O. Derfor kan proceduren opdele S og O i r mængder således, at netop én mængde, A r, kun indeholder gode faciliteter. I trin 4 sikres der, at A i = B i for 1 i r 1. Hvis A i B i tilføjes gode faciliteter til A i indtil de to mængder har samme størrelse. Det bemærkes, at inden trin 4, vil A i B i ; A i består af én dårlig facilitet, og B i = capture(a i ) 1. Hvis B i inden trin 4 består af mere end én facilitet, må der i trin 4.1 være en god facilitet at tilføje A i, da to faciliteter i S ikke kan fange den samme facilitet i O. 11

12 Procedure Partition i = 0 While en dårlig facilitet i S, do 1. i = i A i {b}, hvor b S er en dårlig facilitet. 3. B i capture(a i ) 4. While A i B i do 4.1 A i A i {g} hvor g S \ A i er en god facilitet 4.2 B i capture(a i ) 5. S S \ A i O O \ B i A r S B r O End. Figur 5: En procedure til at opdele S og O. Trin 2 og 4.1 gør, at A i, for 1 i r 1, indeholder netop én dårlig facilitet. Trin 3 og 4.2 gør, at B i = capture(a i ). Trin 5 sikrer, at S og O reduceres med A i henholdsvis B i. Derved må det gælde, at proceduren vil terminere; S reduceres med bl. a. en dårlig facilitet. Eftersom S = O må den afsluttende definition af mængderne A r og B r gøre, at A r = B r. Desuden nås den afsluttende definition af A r og B r først, når der ikke er nogen dårlig facilitet tilbage i S. Derved er det sikret, at A r udelukkende indeholder gode faciliteter. Opdelingen anvendes til at definere hvilke multiswaps, der skal analyseres. I det følgende er to typer af multiswaps beskrevet. Det bemærkes, at hvert multiswap har en positiv, reel vægt tilknyttet, som anvendes til at vurdere hvor mange gange, en facilitet indgår i et swap: Multiswap type 1 A i = B i p for 1 i r. Tallet p er den øvre grænse for hvor mange faciliteter, der kan swappes på én gang. Et multiswap af type 1 får tilknyttet vægten 1. Da S er et lokalt minimum, må det gælde, at cost((s \ A i ) B i ) cost(s) 0 (7) Det bemærkes, at dette også gør sig gældende, hvis A i B i, eller hvis S B i. Multiswap type 2 A i = B i = q > p for 1 i r. Tallet p er stadig den øvre grænse for hvor mange faciliteter, der kan swappes på én gang. Her betragtes alle mulige swaps s, o, hvor s A i er en god facilitet, og o B i. Hvis i r, er der netop én dårlig facilitet i A i. Derfor betragtes kun de q 1 gode faciliteter. Hvis i = r, er der ingen dårlige faciliteter - det vil sige, at der er q gode faciliteter. Af disse q gode faciliteter, vælges en delmængde med præcist q 1 gode faciliteter. Det vil sige, at der i multiswap type 2 er q(q 1) mulige swap mellem par af faciliteter, for der er q 1 gode faciliteter 12

13 s S og q faciliteter o O. Hvert swap s, o, får tildelt vægten 1/(q 1), og for hvert swap s, o gælder, at cost(s s + o) cost(s) 0 (8) Enhver god facilitet s S betragtes i swaps med total vægt på højest q(q 1): Hvis s indgår i et multiswap af type 1, er vægten 1, mens hvis s indgår i et multiswap af type 2, er vægten 1/(q 1) for hver af de q faciliteter o O - det vil sige en samlet vægt på q(q 1). Det bemærkes desuden, at q/(q 1) (p + 1)/p når q > p og p og q er heltal, da: q (q 1) (p+1) p q p 1 q 1 1 p q 1 p q > p Altså kan en øvre grænse for den totale vægt af de swaps, en god facilitet s S indgår i, sættes til at være (p + 1)/p. Enhver facilitet o O betragtes i swaps med en total vægt på præcist 1: Indgår faciliteten o O i et multiswap af type 1, er vægten trivielt 1. Indgår o O i et multiswap af type 2, vil o blive swappet med hver af de q 1 gode faciliteter i s S. Vægten for hver af disse swaps er 1/(q 1), hvilket giver en total omkostning på netop 1. Nu overholdes følgende betingelser: 1. For hver facilitet o O er summen af vægtene for de swaps, o betragtes i, netop For hver facilitet s S, er summen af vægtene af swaps, hvori s betragtes, højest (p + 1)/p. 3. Hvis et swap A, B betragtes, så er capture(a) B. Dette gælder ifølge opdelingen af S og O udført af proceduren partition i figur 5 på forrige side. Nu opdeles N O (o) for hver facilitet o O. Ved at opdele N O (o) kan der, sammen med ovenstående, gives en endelig øvre grænse for hvad et swap koster. Opdelingen af N O (o) for hver facilitet o O er: For A i p, 1 i r, er opdelingen N 0 A i = N S (A i ) N O (o). For A i > p, 1 i r og for alle s A i, er opdelingen N o s = N S (s) N O (o). En afbildningsfunktion, π : N O (o) N O (o), indføres. Afbildningsfunktionen er tilsvarende den for single swaps, bare overført på mængder i stedet for på enkelte facilitet. Funktionen overholder følgende egenskab: Egenskab 3.6 For alle mængder P for hvilke opdelingen af N O (o) resulterer i, at P 1 2 N O(o), gælder det, at π(p ) P =. Den resterende del af beviset er meget tilsvarende det for single swaps. Hvert enkelt swap analyseres med henblik på at sætte en øvre grænse for hvor meget swappet koster. 13

14 Et swap s, o betragtes. Alle j Ns o bliver trivielt betjent af facilitet o O til prisen O j S j j N O (o) De j N S (s), hvor j N O (o ), o o, bliver betjent af den facilitet s, hvor π(j) N S (s ) - helt tilsvarende samme situation ved single swaps, se eventuelt figur 4 på side 9. Omkostningen for dette er som ved single swaps: c js c jo + c π(j)o + c π(j)s O j + O π(j) + S π(j) S j 0 Nu, fordi alle o O betragtes i swaps med samlet vægt på netop 1, mens alle gode faciliteter s S betragtes i swaps med samlet vægt på mindre end (p + 1)/p, haves en samlet pris: (O j S j ) + (p + 1)/p (O j + O π(j) + S π(j) S j ) 0 (9) j N O (o) j N S (s) j / N O (o) Den samlede pris er større eller lig nul på grund af (7) og (8). Første led på venstresiden af (9) summes over alle multiswaps, hvilket giver en samlet omkostning på: cost(o) cost(s) (10) Ligeledes summes sidste led på venstresiden af (9) over alle multiswaps, hvilket giver: (p + 1)/p (O j + O π(j) + S π(j) S j ) (11) På grund af definitionen af afbildningsfunktionen π, haves at j C O j = j C O π(j) og j C (S j S π(j) ) = 0. Derfor kan den samlede øvre grænse for lokalsøgning med multiswaps fås ved at samle (10) og (11) til: 0 cost(o) cost(s) + (p + 1)/p (2cost(O)) cost(s) (3 + 2/p) cost(o) Dermed er det vist, at approksimationsfaktoren er 3 + 2/p Tæt eksempel I det følgende gennemgås et eksempel, hvis løsning ligger en faktor 3 + 2/p fra den optimale løsning for k og p = 2. Eksemplet kan ses i figur 6 på den følgende side, og kan generaliseres til p swaps for p 1. I figur 6 på næste side er de sorte firkanter faciliteter o O, mens de grå firkanter repræsenterer faciliteter s S. Cirkler angiver klienter c C. Hver kant er tilknyttet et tal, der angiver prisen for at anvende kanten. Omkostningen for at en facilitet betjener en klient er således den billigste sti mellem faciliteten og klienten. Hvis der ingen sti er mellem en facilitet og en klient, er serviceomkostningen uendelig. I det følgende vises først, at forskellen mellem løsningen S og den optimale løsning, O, er 3 + 2/p, p = 2, og derefter at S er et lokalt minimum. 14

15 o1 o 2 o 3 o k 2 o o k 1 k O /2 1/2 1/2 1/2 1/2 1/2 C /2 1/2 1/2 1/2 1/2 1/2 S s 1 s2 s r s r+1 s r+2 s k r = (k 2) / 3 Figur 6: Tæt eksempel for p = 2. De sorte firkanter angiver faciliteter o O, mens de grå firkanter repræsenterer faciliteter s S. Cirklerne er klienter c C. Kantvægte angiver prisen for at anvende kanten. Serviceomkostningen for en klient er den billigste vej til klienten. Det ses i figur 6 at værdien af løsning S er cost(s) = 6r + (k r) = 5r + k = Den optimale løsning O har omkostningen 5(k 2) 3 + 3k 3 = 8k 10 3 cost(o) = k r = 3k k = 2k Forskellen på løsningerne er altså en faktor 4 for k. Endvidere gælder det, at 3+2/p = 4 for p = 2. S er en lokal optimal løsning, da ethvert swap, hvor s i, s j udbyttes med o l, o m, ikke forbedrer løsningsværdien for S, uanset hvad i, j, l og m sættes til. For at vise dette betragtes følgende situationer: 1. i, j r. I løsning S er den samlede omkostning for de to komponenter, som s i og s j indgår i, summen af kanterne, det vil sige 2 ( ) = 12. Ved multiswappet, må o j og o m ligge i de to komponenter med s i og s j. Omkostningen for at betjene de tilhørende klienter er da 2(0 + (2 + 2) + (2 + 2)) = 16; facilitet o j kan betjene én af de tre klienter i komponentet uden omkostning, mens vejen til de to resterende klienter må gå om s i hvorfor omkostningen for at betjene hver af disse er (2+2). Det samme gør sig gældende for klient o m. Det vil sige, at den samlede omkostning for løsning S stiger med i r < j. I løsning S er den samlede omkostning for de to komponenter, s i og s j indgår i, summen af kanterne, det vil sige /2 + 1/2 = 7. Der er tre mulige måder at udvælge o j og o m : o l, o m k 2 og o l, o m ligger i samme komponent: Efter swappet er omkostningen for at betjene klienterne, der ligger i komponentet med o l og o m lig 2+2 = 4, mens prisen for at betjene de klienter, der før betjentes af s j, er 3 1/2+3 1/2 = 3. Altså er den samlede omkostning 7 efter swappet, så løsningsværdien forbedres ikke. 15

16 o l, o m k 2 og o l, o m ligger ikke i samme komponent: Efter swappet er omkostningen for at betjene klienterne, der ligger i de komponenter med o l hhv. o m lig 2 (2 + 2) = 8. Men nu bliver en klient, som det før kostede 2 at betjene, betjent gratis. Endeligt skal de to klienter, som s j før betjente, betjenes, så den samlede omkostning er (1/2 + 1/2) = 9. Den samlede omkostning stiger altså med 2. o l k 2 < o m : Efter swappet er omkostningen for at betjene klienterne, der ligger i de komponenter med o l, lig 0 + (2 + 2) + (2 + 2) = 8. Den ene af klienterne, som s j betjener, kan betjenes af o m med omkostningen 1/2, mens det koster 3 1/2 at betjene den anden. Det vil sige, at swappet koster 8 + 1/ /2 = 10. Altså stiger løsningsværdien med i, j > r. I løsning S er den samlede omkostning 2 (1/2 + 1/2) = 2. Der er fire måder at udvælge o l og o m : o l, o m k 2 og o l, o m ligger i samme komponent: De klienter, som o l og o m kan betjene med omkostning 0, tildeles o m hhv. o l. Dermed spares en samlede omkostning på 4. Klienterne, som s i og s j betjente, koster 2 (3 (1/2 + 1/2)) = 6. Da = 2, forbedrer swappet ikke løsningsværdien. o l, o m k 2 og o l, o m ligger ikke i samme komponent: Igen spares der 4, da o j og o m hver kan betjene en klient gratis. Klienterne, som s i og s j betjente, koster nu 2 (3 (1/2 + 1/2)) = 6. Da = 2 forbedrer swappet ikke løsningsværdien. o l k 2 < o m : Der spares 2 på den klient, o l kan betjene gratis. o m kan betjene to klienter; én for s i og én for s j. Det koster 3 (1/2 + 1/2) = 3 at betjene de resterende to klienter. Det vil sige, at swappet koster 2 + 1/2 + 1/2 + 3 = 2, hvorfor løsningsværdien ikke forbedres. k 2 < o l, o m : Omkostningen ændrer sig ikke, da det koster o m hhv. o l det samme som s i hhv. s j at betjene de pågældende klienter. Altså kan et multiswap ikke forbedre løsningsværdien for S, hvorfor der er at gøre med et lokalt minimum. 4 Uncapacitated facility location (UFL) I facility location problemet er der en mængde klienter, C, der skal serviceres, af en mængde faciliteter, F. For hver facilitet i F, der åbnes, er der forbundet en omkostning f i 0, og for hver klient j C er der en serviceomkostning, som er afstanden fra klienten til den nærmeste facilitet. Mængden af åbne faciliteter kaldes S. Hvis klient j serviceres af facilitet σ(j) S betegnes serviceomkostningen c σ(j)j. UFL-problemet går ud på at finde en delmængde S F, der servicerer alle klienter j C således at summen af omkostningerne ved at åbne faciliteterne S og serviceomkostningerne for de enkelte klienter minimeres, altså at minimere udtrykket cost(s) = i S f i + j C c σ(j)j. Bemærk, at for en fast mængde af faciliteter S, minimeres serviceomkostningerne ved at lade hver klient servicere af den nærmeste facilitet i S. 16

17 4.1 En lokalsøgningsprocedure Vi vil nu introducere en lokalsøgningsprocedure for metrisk UFL med en approksimationsfaktor på 3, hvor de lovlige operationer i hvert skridt er at tilføje en facilitet til S, fjerne en facilitet fra S og bytte faciliteter mellem S og F \S. Nabolaget B for en løsning S er således defineret ved B(S) = {S + {s }} {S {s} s S} {S {s} + {s } s S s F \S} Approksimationsalgoritmen er: UFL approksimationsalgoritme 1. Lad S F således at alle klienter bliver serviceret. 2. While s S: cost(s {s}) < cost(s) or s F \ S: cost(s + {s }) < cost(s) or s S, s F \ S: cost(s {s} + {s }) < cost(s) do if( s S: cost(s {s}) < cost(s)) then S S {s} else if( s F \ S: cost(s + {s }) < cost(s)) then S S + {s } else S S {s} + {s } 3. Return S 4.2 Approksimationsfaktor For en mængde af faciliteter S F, lad cost f (S ) = i S f i være omkostningerne ved at åbne faciliteterne i løsningen S, og lad cost s (S ) = j C c σ(j)j være den totale omkostning ved at lade klienterne i C blive serviceret af den nærmeste facilitet i S. Den totale omkostning af løsningen S kalder vi cost(s ) = cost f (S ) + cost s (S ). Vi bruger S til at angive et lokalt optimum. I det følgende vil vi først bevise to lemmaer, der giver en øvre grænse for serviceomkostningerne hhv. facilitetsomkostningerne for en lokal optimal løsning S. Disse to lemmaer bruges til at bevise, at lokalsøgningsproceduren er en faktor 3 approksimationsalgoritme. Lemma 4.1 (Serviceomkostning). hvor S er en lokal optimal løsning. cost s (S) cost f (O) + cost s (O) Bevis Betragt en operation hvor en facilitet o O tilføjes S. Lad alle klienterne N O (o) servicere af o, dvs. at alle klienterne, der serviceres af facilitet o i den optimale løsning O serviceres af o i S. Da S er et lokalt optimum får vi f o + (O j S j ) 0, (12) j N O (o) hvor O j svarer til den mindste afstand fra j til en facilitet i en optimal løsning O og S j svarer til den mindste afstand fra j til en facilitet i løsningen S. Da enhver klient j C serviceres 17

18 af den nærmeste facilitet, svarer O j hhv. S j til serviceomkostningen for j i de to løsninger. Uligheden (12) gælder også selvom o S, idet de klienter j N O (o), som ikke serviceres af o i S, må ligge længere væk fra o end det s S de serviceres af. Summer vi nu ulighederne af typen (12) for hvert o O, får vi netop den ønskede ulighed, idet det er klart at hver klient j C optræder i præcis én af ulighederne: cost f (O) + j C O j j C S j 0 cost f (O) + cost s (O) cost s (S) Herefter vil vi sætte en øvre grænse for facilitetsomkostningerne i S, cost f (S). Lemma 4.2 (Facilitetsomkostninger). hvor S er en lokal optimal løsning. cost f (S) cost f (O) + 2 cost s (O) Bevis Som i afsnit antager vi, at for et bestemt o O er afbildningen π : N O (o) N O (o) bijektiv og opfylder Egenskab 3.3. Vi antager endvidere at hvis N o s > 1 2 N O(o) (altså hvis s S servicerer mere end halvdelen af de klienter, som o O servicerer), da gælder for alle klienter j N o s for hvilke π(j) N o s, at π(j) = j. Vi vil nu beskrive hvordan sådan en funktion kan defineres, se figur 7: Lad N o s > 1 2 N O(o). Vi vælger N o s N O(o)\N o s tilfældige klienter j fra N o s og sætter π(j) = j. For de resterende klienter i N O(o) er funktionen π defineret på samme måde som i afsnit 3.1, idet at antallet af resten af klienterne j N o s netop svarer til antallet af klienter j N O (o)\n o s. Figur 7: Eksempel på mængderne N S (s) og N O (o) og deres fællesmængde Ns o, hvor s fanger o (Ns o er fællesmængden af klienter j, der serviceres af s i S og af o i O). Vi har N s o = 4 > 7 2 = 1 2 N O(o). Udtrykket Ns o N O (o)\ns o evaluerer til 4 3 = 1 og derfor er der ét j NS o for hvilket π(j) = j. De resterende 3 klienter i Ns o afbildes over i de 3 klienter i N O(o)\Ns o og vice versa. Som defineret tidligere er en facilitet s S god hvis den ikke fanger nogen o O, dvs. at for alle o O gælder at N o s 1 2 N O(o). Vi vil nu give en øvre grænse for omkostningerne på 18

19 Figur 8: Omplacering af en klient j N S (s) når en god facilitet s droppes. gode faciliteter. Betragt en operation hvor en god facilitet s S droppes. Lad j N S (s) og π(j) N S (s ). Da s ikke fanger nogen facilitet o O har vi at s s jf. definitionen af π i afsnit π er defineret til at afbilde en klient j N O (o) over i en anden klient π(j) N O (o) - de serviceres altså begge af den samme facilitet o. Pga. trekantsuligheden er det derfor klart, at O j + O π(j) + S π(j) S j, se figur 8. Endvidere, da S er lokalt optimum, får vi, hvis vi lader s betjene j for alle klienter j N S (s), at f s + j N S (s) (O j +O π(j) +S π(j) S j ) 0. Da s er en god facilitet, gælder der for alle j N S (s), at π(j) j og det er derfor klart at udtrykket j N S (s) π(j)=j O j er lig nul. Ovenstående udtryk kan derfor omskrives til f s + j N S (s) π(j) j (O j + O π(j) + S π(j) S j ) + 2 j N S (s) π(j)=j O j 0 (13) Vi kan altså give en øvre grænse på omkostningen for en god facilitet f ved udtrykket f s j N S (s) π(j) j (O j + O π(j) + S π(j) S j ) + 2 j N S (s) π(j)=j O j Vi vil nu give en øvre grænse på omkostningen for en dårlig facilitet s S, dvs. at der gælder at N o s > 1 2 N O(o), se beskrivelsen af afbildningen π i starten af beviset. Betragt en bestemt facilitet s S, og antag at s fanger faciliteterne P O. Lad o P være faciliteten nærmest s, og betragt swappet s, o. Klienterne j N S (s) serviceres af faciliteterne i S s + o på følgende vis: 1. Antag π(j) N S (s ) for s s, og dermed π(j) j. Dette svarer til afbildningen for klienter, der hører til en god facilitet, hvor j omplaceres til s. Lad j N O (o ). Vi har 19

20 at cjs0 cjo0 + cπ(j)o0 + cπ(j)s0 = Oj + Oπ(j) + Sπ(j), sa vi fa r Oj + Oπ(j) + Sπ(j) Sj 0 se figur 9. Dette gælder ba de for o0 = o og o0 6= o 2. Antag at π(j) = j NS (s) og j NO (o). Sa omplaceres j til o. 3. Antag at π(j) = j NS (s) og j NO (o0 ) for o0 6= o. Vi har at o0 / S, da vi ellers ville have j NS (o0 ). Klienten j omplaceres nu til faciliteten o. Da π(j) = j har vi ved Egenskab 3.3 af afbildningen π, at s fanger facilitet o 0 og dermed er o0 P. Pga. trekantsuligheden har vi at cjo cjs + cso. Da o P er den facilitet, der er nærmest s, fa r vi cso cso0 cjs + cjo0. Derfor fa r vi at cjo cjs + cjs + cjo0 = Sj + Sj + Oj, og vi har trivielt Sj + Sj + Oj Sj 0, se figur 9. Figur 9: Øvre grænse pa facilitetsomkostningen for en da rlig facilitet s: (a) Omplacering na r π(j) / NS (s). (b) Omplacering na r π(j) NS (s) og j / NO (o). (c) Omplacering af j NO (o0 ) na r o0 P {o} tilføjes. Da S er en lokal optimal løsning, fa r vi følgende ulighed for swappet hs, oi : X fo f s + (Oj + Oπ(j) + Sπ(j) Sj ) j NS (s) π(j)6=j (14) X + j NO (o) π(j)=j NS (s) (Oj Sj ) + X j N / O (o) π(j)=j NS (s) (Sj + Sj + Oj Sj ) 0 og vi kan altsa give en øvre grænse pa omkostningen for en da rlig facilitet s S ved X fs f o + (Oj + Oπ(j) + Sπ(j) Sj ) j NS (s) π(j)6=j + X j NO (o) π(j)=j NS (s) (Oj Sj ) + X j N / O (o) π(j)=j NS (s) 20 (Sj + Sj + Oj Sj )

21 Betragt nu en operation hvor vi tilføjer en facilitet o P o, se figur 9. Klienterne j N O (o ) for hvilke π(j) = j N S (s) serviceres nu af facilitet o hvilket, da S er en lokal optimal løsning, giver følgende ulighed: f o + (O j S j ) 0 for hvert o P o (15) j N O (o ) π(j)=j N S (s) Ved at summe ulighed (14) med ulighederne (15) får vi for en dårlig facilitet s S f o f s + o P j N S (s) π(j) j (O j + O π(j) + S π(j) S j ) + 2 j N S (s) π(j)=j O j 0 (16) idet sidste led på venstresiden i ulighed (16) er en øvre grænse for summen af de to sidste termer på venstresiden i ulighed (14) og den sidste term på venstresiden i ulighed (15) tilføjet for alle o P o, hvilket ses af det følgende. Hvert j i ulighed (15) er repræsenteret i den sidste term i ulighed (14) så summer vi sidste term på venstresiden af ulighed (14) med sidste term af venstresiden i alle uligheder (15) får vi (S j + S j + O j S j + O j S j ) = (O j + O j ) = 2 O j (17) j / N O (o) π(j)=j N S (s) j / N O (o) π(j)=j N S (s) j / N O (o) π(j)=j N S (s) Endvidere har vi j N O (o) π(j)=j N S (s) (O j S j ) 2 j N O (o) π(j)=j N S (s) O j (18) Da hvert j N S (s) hvor π(j) = j optræder enten i ulighed (17) eller ulighed (18), får vi at sidste term på venstresiden i ulighed (16) er en øvre grænse for summen af de to sidste termer på venstresiden i ulighed (14) og den sidste term på venstresiden i ulighed (15) tilføjet for alle o P o. Nu summer vi uligheder (13) for alle gode faciliteter s S, uligheder (16) for alle dårlige faciliteter s S og uligheder f o 0 for alle o O, som ikke fanges af nogen s S, og får f s + (O j + O π(j) + S π(j) S j ) + 2 O j 0 (19) o O f o s S Betragt de to summer: j:π(j) j j:π(j) j O j og j:π(j) j O π(j). π(j)=j Vi vil nu vise, at de to summer summerer over de samme elementer. π afbilder en klient j over i en anden klient π(j) j. Da alle klienter j N O (o), hvor π(j) j afbildes over i et andet j N O (o), hvor π(j ) j, se figur 10, er enhver klient j N O (o) en afbildning i π fra en anden klient j i N O (o). 21

22 P P P P Det er derfor klart, at j:π(j)6=j Oj = j:π(j)6=j Oπ(j), samt at j:π(j)6=p j Sj = j:π(j)6=j Sπ(j), for det er præcis de samme klienter, der summes over. Derfor har vi at (O j + Oπ(j) + j:π(j)6=j P Sπ(j) Sj ) = 2 j:π(j)6=j Oj og ved indsættelse i (19) fa r vi cost f (O) costf (S)+2 costs (O) 0, og hermed er lemmaet bevist. Figur 10: Eksempel pa afbildningen π : NO (o) NO (o), hvor s fanger o. Kombinerer vi de to lemmaer (4.1) og (4.2) fa r vi følgende resultat. Theorem 4.3 Lokalsøgningsproceduren for det metriske UFL problem med nabolagsstruktur B givet ved B(S) = {S + {s0 }} {S {s} s S} {S {s} + {s0 } s S s0 F \S} har en approksimationsfaktor pa højest 3. Bevis Vi kombinerer de to lemmaer (4.1) og (4.2) og fa r costf (S) + costs (S) 2 costf (O) + 3 costs (O) cost(s) 2 cost(o) + costs (O) 3 cost(o) og theoremet er hermed vist. Algoritmen ovenfor kan let udvides til at ha ndtere at klienterne j C har arbitrære behov dj 0. da nye afstande c0ij = dj cij, og objektfunktionen bliver cost(s) = P PVi beregner 0 i S fi + j C cσ(j)j Vi vil nu vise hvordan man kan bruge en metode fra [Charikar & Guha, 1999] til at opna en approksimation for UFL. Hovedide en er at udnytte asymmetrien i service- og facilitetsomkostningsgarantierne. 22

23 Bemærk, at Lemma (4.1) og (4.2) holder for enhver løsning O og ikke kun for optimale løsninger, idet en løsning, som ikke er optimal vil være en dyrere løsning end den optimale. Vi skalerer facilitetsomkostningerne med en passende faktor α > 0 og løser det nye problem ved hjælp af lokalsøgning. Theorem 4.4 Det metriske UFL problem kan approksimeres til en faktor ved hjælp af en lokalsøgningsprocedure. Bevis Som før betegner vi facilitetsomkostningerne og serviceomkostningerne i en optimal løsning med costf (O) hhv. costs (O). Lad cost0f (A) og cost0s (A) betegne facilitets- og serviceomkostningerne for en løsning i det skalerede problem og lad S være en lokal optimal løsning. Da har vi costf (S) + costs (S) = cost0f (S) + cost0s (S) α cost0f (O) + 2cost0s (O) + cost0f (O) + cost0s (O) 2 = (1 + α)costf (O) costs (O) α hvor uligheden følger af lemma (4.1) og (4.2). Sætter vi α = 2 fa r vi cost(s) (1 + 2)cost(O). Sa lokalsøgning kan bruges til at opna en approksimation. α 4.3 Tæt eksempel Figur 11: Tæt eksempel for lokalitetsgabet for UFL. I figur 11 ses et tæt eksempel, hvor et lokalt optimum, S 6= O, har omkostning mindst 3 o(1) gange omkostningen pa en optimal løsning O. Den lokale optimum løsning S, besta r af en 23

24 enkelt facilitet s, mens den optimale løsning O består af faciliteterne {o 0, o 1,... o k }. Der er k + 1 klienter. Alle viste kanter har enhedslængde, og prisen for at servicere klient j med facilitet f er længden af den korteste vej i grafen mellem klient j og facilitet f. Prisen for at åbne facilitet s er 2k, mens enhver anden facilitet koster 0 at åbne. For at argumentere for at S er et lokalt optimum, bemærk at vi ikke kan fjerne facilitet s. Det er også let at se at vi ikke kan mindske omkostningen af vores løsning enten ved at tilføje en facilitet fra O eller ved et swap som bevirker at vi indsætter en facilitet fra O og sletter s. Altså er S et lokalt optimum med cost(s) = 3k + 1, mens cost(o) = k + 1. Da brøken cost(s)/cost(o) går mod 3 for k gående mod, er grænseværdien fundet for lokalsøgningsalgoritmen tæt. Bruger vi metoden fra Theorem (4.4) får vi at cost(s) = k k. Hvis vi fjerner s og tilføjer en facilitet o i bliver omkostningen 1 + 3k, hvilket er en billigere løsning. For hvert efterfølgende o i - som der er k af - der tilføjes, vil cost(s) falde med 2, og vi vil ende med den optimale løsning med cost(o) = 1 + 3k 2k = k + 1. Et tæt eksempel for denne metode er at sætte f s = 2k, hvor vi får cost(o) = k + 1 og cost(s) = 2k + k Capacitated facility location (CFL) I -CFL-problemet haves en mængde af klienter, C, som skal betjenes af en mængde af faciliteter, F. c ij 0 er serviceomkostningen ved at klient i bliver betjent af facilitet j. Faciliteterne har en omkostning f j 0 for at åbne facilitet j og en ikke uniform kapacitet u j > 0 for hvert j F, som er antallet af klienter denne facilitet kan betjene. Vi kan åbne ubegrænset antal kopier af hver facilitet (deraf navnet -CFL), hver med en omkostning f j, og som kan betjene højest u j klienter. Problemet er at identificere en multimængde af faciliteter S F, som betjener klienterne C, overholder kapacitetsbegrænsninger og minimerer summen af facilitets- og serviceomkostningerne. Da klienterne har enhedsefterspørgsel og faciliteterne har heltalskapaciteter vil hver klient blive tilknyttet en enkelt facilitet. Hvis en klient i C er tilknyttet en facilitet σ(i) S, vil vi minimere: cost(s) = j S f j + i C c iσ(i) cost s (S) = i C c iσ(i) er serviceomkostningen for en løsning og cost f (S) = j S f j er facilitetsomkostningen. Lad S være en lokal optimal løsning fundet ved lokal søgning og O være en optimal løsning til -CFL. 5.1 Beskrivelse af -CFL algoritmen Algoritmen er som de to foregående baseret på en lokalsøgning i et nærmere defineret nabolag. For at finde forbedrende løsninger løses et knapsack problem i en del-rutine. Givet nabolaget og knapsack rutinen, udvikler artiklen lemma er som giver en øvre grænse for facilitets- og serviceomkostninger af en lokal optimal løsning i dette nabolag. Disse sammensættes og der findes en approksimationsfaktor på højest ɛ. Der er ikke givet et tæt eksempel på denne approksimationsfaktor, kun et faktor 3 eksempel. 24

M=3 kunde forbindelse. oprettet lokation Steinerkant

M=3 kunde forbindelse. oprettet lokation Steinerkant M=3 åben facilitet kunde forbindelse lukket facilitet oprettet lokation Steinerkant v Connected facility location-problemet min i f i y i + d j c ij x ij + M c e z e (1) j i e hvorom gælder: x ij 1 j (2)

Læs mere

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

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

Læs mere

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

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

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

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

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

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger

Kalkulus 2 - Grænseovergange, Kontinuitet og Følger Kalkulus - Grænseovergange, Kontinuitet og Følger Mads Friis 8. januar 05 Indhold Grundlæggende uligheder Grænseovergange 3 3 Kontinuitet 9 4 Følger 0 5 Perspektivering 4 Grundlæggende uligheder Sætning

Læs mere

Sammenhængskomponenter i grafer

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

Læs mere

Dynamisk programmering

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

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

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

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

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

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

Danmarks Tekniske Universitet

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

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet 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

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

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

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

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

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

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

83 - Karakterisation af intervaller

83 - Karakterisation af intervaller 83 - Karakterisation af intervaller I denne opgave skal du bevise, at hvis A er en delmængde af R med følgende egenskab: x, y, z R : x, y A og x < z < y z A (1) så er A enten et interval eller en mængde

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

Archimedes Princip. Frank Nasser. 12. april 2011

Archimedes Princip. Frank Nasser. 12. april 2011 Archimedes Princip 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 er

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

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

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

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

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

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

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

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

ANALYSE 1. Uge 7, 4. juni juni, 2007

ANALYSE 1. Uge 7, 4. juni juni, 2007 ANALYSE 1 Uge 7, 4. juni - 10. juni, 2007 Forelæsninger Mandag 4. juni Formålet med denne dags forelæsninger er at etablere en overgang til emnet metriske rum, hvis hovedformål er at udvide begreber som

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

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

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X). Analyse 2 Øvelser Rasmus Sylvester Bryder 3. og 6. september 2013 Gennemgå bevis for Sætning 2.10 Sætning 1. For alle mængder X gælder #X < #P(X). Bevis. Der findes en injektion X P(X), fx givet ved x

Læs mere

Grafer og graf-gennemløb

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

Læs mere

Danmarks Tekniske Universitet

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

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

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

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Gruppeteori Michael Knudsen 8. marts 2005 1 Motivation For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Eksempel 1.1. Lad Z betegne mængden af de hele tal, Z = {..., 2, 1, 0,

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

Sortering af information er en fundamental og central opgave.

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

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet Side af 1 sider Skriftlig Eksamen Algoritmer og Datastrukturer 1 Datalogisk Institut Aarhus Universitet Dette eksamenssæt består af en kombination af små skriftlige opgaver og multiplechoice-opgaver. Opgaverne

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

Sortering. Eksempel: De n tal i sorteret orden

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

Læs mere

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

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 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

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

Læs mere

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

Gult Foredrag Om Net

Gult Foredrag Om Net Gult Foredrag Om Net University of Aarhus Århus 8 th March, 2010 Introduktion I: Fra Metriske til Topologiske Rum Et metrisk rum er en mængde udstyret med en afstandsfunktion. Afstandsfunktionen bruges

Læs mere

FPTAS er for korteste vej med restriktion

FPTAS er for korteste vej med restriktion FPTAS er for korteste vej med restriktion DIKU-opgave i kurset Approksimationsalgoritmer Allan Nordlunde Hjorth Tommy Clausen Kenneth Lyneborg Hvam 18. december 2003 INDHOLD INDHOLD Indhold 1 Forord 3

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

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

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

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

Læs mere

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

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

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

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4 Indhold 1 Vindermængde og tabermængde 2 2 Kopier modpartens træk 4 3 Udnyt modpartens træk 5 4 Strategityveri 6 5 Løsningsskitser 7 Spilstrategier De spiltyper vi skal se på her, er primært spil af følgende

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

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

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

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

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

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

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

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

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

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

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

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

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

er et helt tal. n 2 AB CD AC BD (b) Vis, at tangenterne fra C til de omskrevne cirkler for trekanterne ACD og BCD står vinkelret på hinanden.

er et helt tal. n 2 AB CD AC BD (b) Vis, at tangenterne fra C til de omskrevne cirkler for trekanterne ACD og BCD står vinkelret på hinanden. Opgave Heltalligt Bestem alle hele tal, n >, for hvilke n + n er et helt tal. Opgave Trekantet I en spidsvinklet trekant ABC skærer vinkelhalveringslinien fra A siden BC i punktet L og den omskrevne cirkel

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

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Institut for Matematik & Datalogi Syddansk Universitet Fredag den 9 Januar 2015, kl. 10 14 Alle sædvanlige hjælpemidler(lærebøger, notater etc.) samt

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

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

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

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

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n Side af 0 sider Opgave (%) Ja Nej n er O(0n logn)? n er O(n )? n +n er O(n )? n logn er O(n )? n logn er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n

Læs mere

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

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

Læs mere

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

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi INSTITUT FOR DATALOGI, AARHUS UNIVERSITET Det Naturvidenskabelige Fakultet EKSAMEN Grundkurser i Datalogi Antal sider i opgavesættet (incl. forsiden): 12 (tolv) Eksamensdag: Fredag den 16. august 2013,

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 Onsdag den. august 200, kl. 9.00.00 Opgave (25%) Lad A = A[] A[n] være et array af heltal. Længden af det længste

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

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

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

Taylors formel. Kapitel Klassiske sætninger i en dimension

Taylors formel. Kapitel Klassiske sætninger i en dimension Kapitel 3 Taylors formel 3.1 Klassiske sætninger i en dimension Sætning 3.1 (Rolles sætning) Lad f : [a, b] R være kontinuert, og antag at f er differentiabel i det åbne interval (a, b). Hvis f (a) = f

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

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

Reeksamen i Diskret Matematik

Reeksamen i Diskret Matematik Reeksamen i Diskret Matematik Første studieår ved Det Teknisk-Naturvidenskabelige Fakultet 23. august, 2016, 9.00-13.00 Dette eksamenssæt består af 11 nummerede sider med 16 opgaver. Alle opgaver er multiple

Læs mere

Nogle grundlæggende begreber

Nogle grundlæggende begreber BE2-kursus 2010 Jørgen Larsen 5. februar 2010 Nogle grundlæggende begreber Lidt simpel mængdelære Mængder består af elementer; mængden bestående af ingen elementer er, den tomme mængde. At x er element

Læs mere

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2 Side af sider Opgave (%) Ja Nej n er O(n n)? n er O(n+n )? ( n ) er O( n )? logn er O(n / )? n +n er O(n)? Opgave (%) Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn)

Læs mere

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

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

Læs mere

Matematisk induktion

Matematisk induktion Induktionsbeviser MT01.0.07 1 1 Induktionsbeviser Matematisk induktion Sætninger der udtaler sig om hvad der gælder for alle naturlige tal n N, kan undertiden bevises ved matematisk induktion. Idéen bag

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