Spredigs problemer David Pisiger 2001 Idledig Jukfood A/S er e amerikask kæde af familierestaurater der etop er ved at etablere sig i Damark. E massiv reklamekampage med de to slogas vores fritter er de fedeste og køer er (ko-)gale med vores bøffer skal erobre e stor del af markedsadelee fra kokurretere. Jukfood A/S har bereget at der er plads til p familierestaurater i Købehav. E udersøgelse bladt byes ejedomsmæglere har fudet frem til at der er erhvervslejemål der i størrelse og beliggehed eger sig til Jukfoods kocept. For at udgå kokurrece mellem filialere er det øskværdigt at placere de p restaurater så de er så lagt fra hiade som muligt. Afstade mellem lejemål i og j er opmålt til d i j 0. Ofte vil d i j = d ji af symmetrigrude omed dette ikke er et egetligt krav. Ligeledes vil ma ofte have d j j = 0. Idet vi idfører beslutigsvariable x j {0,1} for j = 1,..., til at agive om e facilitet (restaurat) åbes på lokalitet (lejemål) j, ka vi formulere problemet som følgede p-dispersio problem (PDP): maximer hvor j=1 i=1 j=1 d i j x i x j x j = p (1) x j {0,1}, j = 1,...,. 1
hvor objektfuktioe agiver at summe af afstadee mellem facilitetere øskes maximeret, mes begræsige betyder at der etop skal åbes p faciliteter. Det atages ormalt at alle værdier af d i j er heltal. Jukfood A/S betragter i første omgag blot et lille problem med = 7 lokaliteter (lejemål) hvor der skal åbes p = 3 faciliteter (restaurater). Alle afstade er agivet i kilometer. j i 1 2 3 4 5 6 7 1 0 3 7 4 10 5 7 2 3 0 9 5 5 10 6 3 7 9 0 1 3 2 4 4 4 5 1 0 1 9 1 5 10 5 3 1 0 3 2 6 5 10 2 9 3 0 3 7 7 6 4 1 2 3 0 = 7, p = 3. De optimale løsig er at åbe facilitet 2, 4, 6 hvilket giver e samlet afstadssum på 48 km. Di opgave er at kostruere e geerel algoritme som ka løse problemet (1). Algoritme skal implemeteres i C (eller C++). Besvarelse skal bestå af et tekstafsit, hvor edeståede opgaver besvares, samt udskrift af det kommeterede program. Læs hele opgavetekste ide implemeterige påbegydes, og bemærk specielt kommetarere sidst i tekste. Afgørlighedsproblem Det tilsvarede afgørlighedsproblem for PDP er PDP-DECISION, der ka formuleres som følger: Givet e matrix d i j af størrelse, samt tre heltal, p og k. Fides der e løsig til PDP hvor de samlede afstad er midst k? Opgave 1 Bevis at PDP-DECISION er et N P -fuldstædigt problem. Øvre græseværdi for PDP Da PDP er et NP -hårdt problem øsker vi at udvikle e brach-ad-boud algoritme til løsig af problemet. Til dette formål skal vi bruge ogle græseværdier. E øvre græseværdi ka udledes i to skridt. 1 Først udledes e øvre græseværdi d j på hver facilitets afstad til de adre faciliteter. 2 Deræst udledes e øvre græseværdi for hele problemet ved at beytte hver facilitets græseværdi d j. Opgave 2 Vis at afstade fra facilitet j til de adre faciliteter ikke ka blive bedre ed værdie af følgede maximerigsproblem maximer hvor d j = d j j + d i j x i i N j x i = p 1 (2) i N j x i {0,1}, i N j. 2
hvor mægde N j er givet ved N j = {1,...,} \ { j}. Vis at e øvre græseværdi u 1 for PDP deræst ka fides som maximer u 1 = hvor j=1 d jx j j=1 x j = p (3) x j {0,1}, j = 1,...,. For eksemplet fra itroduktioe betyder oveståede at vi først fider e øvre græseværdi (2) for hver af de syv lokaliteter. Til bestemmelse af d 1 løser vi problemet maximer d 1 = 0+3x 2 + 7x 3 + 4x 4 + 10x 5 + 5x 6 + 7x 7 hvor x 2 + x 3 + x 4 + x 5 + x 6 + x 7 = 2 x i {0,1}, i = 2,...,. De optimale løsig er d 1 = 17. Tilsvarede fides d 2 = 19, d 3 = 16, d 4 = 14, d 5 = 15, d 6 = 19 og = 13. For at fide de øvre græseværdi for hele problemet løser vi d 7 maximer u 1 = 17x 1 + 19x 2 + 16x 3 + 14x 4 + 15x 5 + 19x 6 + 13x 7 hvor x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 = 3 x j {0,1}, j = 1,...,. som har løsige u 1 = 55. Dee græseværdi ligger altså e del over de optimale løsig på 48. Opgave 3 Vis at u 1 ka fides i lieær tid målt i iddatastørrelse. Opgave 4 Foreslå e radomiseret algoritme til beregig af u 1 hvor de forvetede køretid er lieær. Opgave 5 Implemeter e af de to metoder fra opgave 3 og 4 til beregig af græseværdie u 1 således at de ka kaldes for e vilkårlig problemstørrelse og kardialitet p. Brach-ad-boud algoritme for PDP Vi vil u kostruere e brach-ad-boud algoritme til løsig af PDP. Hvis vi aveder dybde-først søgig ka algoritme skrives som e recursiv procedure der i hvert skridt forgreer på e variabel idtil alle variable har fået tildelt e værdi. Vi vælger i hvert skridt at forgree på beslutigsvariable x således at det tilbageværede problem herefter har størrelse 1. Dermed ka algoritme skitseres som: PDPRECURS(D, p, ) if p = 0 ad D > z the z D; x x if p = 0 or = 0 the retur fid græseværdi u 1 af tilbageværede problem. if D+u 1 > z the x 1; PDPRECURS(D+d, p 1, 1) x 0; PDPRECURS(D, p, 1) 3
I dee algoritme agiver atallet af lokaliteter, p det øskede atal faciliteter, der skal åbes, og D agiver de hidtil opåede afstads-sum. De hidtil bedste løsig er z der iitielt ka sættes til 1. De tilhørede optimale løsigsvektor er x. I de skitserede algoritme skal ma huske at modificere (d i j ) matrice hver gag e variabel x sættes til 1. Vi sætter d ii d ii + d i + d i for hvert i = 1,..., 1. Dette betyder, at hvis facilitet i på et seere tidspukt åbes, vil ma i d ii idkassere afstade mellem facilitetere i og. Når x sættes tilbage til 0, skal matrice aturligvis retableres. Opgave 6 Implemeter e fuldstædig versio af PDPRECURS som beytter græseværdie u 1. Beskriv de avedte forgreigsstrategi. Eksperimetel afprøvig Brug de udviklede algoritme til løsig af følgede datatilfælde Beskrivelse Jukfood A/S Geometrisk problem Vægtet geometrisk problem Radom vægte Dese subgraph filave jukfood7 geo10, geo20, geo30, geo40 sca10, sca20, sca30, sca40 ra10, ra20, ra30, ra40 de10, de20, de30, de40 Alle datatilfældede ka fides på hjemmeside for DAT-2A, hvor de optimale løsiger også er agivet. Opgave 7 Kør algoritme og agiv løsigstider, atal kuder i brach-ad-boud træet, optimal løsig. Opskriv disse i e tabel og kommeter. Maximerig af miimal afstad E ulempe ved PDP modelle er, at ma i e optimal løsig risikerer at åbe to faciliteter vilkårligt tæt på hiade. For at udgå dette problem vælger ma i ogle situatioer at maximere de midste afstad mellem to åbe faciliteter. Dette problem beteges p-defece problemet (PDEFP). Sidstævte betegelse kommer fra strategiske avedelser, hvor ma øsker at sprede istallatioer så meget som muligt for at besværliggøre e fjedtlig idtagelse/destruktio. Det tilsvarede afgølighedsproblem er PDEFP-DECISION, der ka formuleres som følger: Givet e matrix d i j af størrelse, samt tre heltal, p og k. Fides der e løsig til PDEFP hvor afstade mellem alle par af åbe faciliteter er midst k. Opgave 8 Vis at PDEFP-DECISION ka reduceres til PDP-DECISION. Opgave 9 Udyt dette til at kostruere e algoritme som løser PDEFP problemet i optimerigsform. Opgave 10 Implemeter algoritme og afprøv de på istasere ovefor. 4
Kommetarer Opgave har primært til hesigt at give idsigt i løsig afnp -hårde problemer, mes re programmerig ku er et sekudært mål. På hjemmeside for DAT-2A http://www.diku.dk/teachig/2001f/dat2a/ ligger derfor e færdig ramme for programmet som skal avedes i besvarelse. Her fides de ødvedige rutier til tidsmålig og idlæsig af data, ligesom oveståede programskitser er implemeteret. Tabeller adresseres så d[1][1] svarer til d 11 for at opå et læseligt program. Ramme er afprøvet på DIKU s Liux pc er (alvis, advare, berlig, brok, gefio, ivalde m.fl.), og det abefales at bruge disse ved udarbejdelse af besvarelse. Noter Idefor grafteori kedes PDP uder betegelse Heaviest Subgraph Problem idet problemet ka formuleres som følger: givet e vægtet graf G=(V,E) skal der udvælges e delmægde U af kudere med kardialitet U = p således at vægtsumme af katere udspædt af kudere U bliver størst mulig. Græseværdie u 1 er baseret på samme ide som Gallo m.fl. [5] beyttede for det Kvadratiske K- apsack Problem. Dee ka strammes yderligere ved at bruge tekikke beskrevet i Caprara m.fl. [3]. Der fides meget få resultater i litterature hvor eksakte algoritmer for p-disperiso problemet beskrives. Erkut [4] udviklede e brach-ad-boud algoritme til løsig af problemet, hvor primitive græseværdier beyttes. Kicaid [6] løste problemet heuristisk ved brug af metaheuristikker. Billioet og Faye [2] diskuterer ogle lovede (me meget komplicerede) græseværdier for problemet i miimerigsversio. Billioet og Faye rapporterer dog ikke oget om græseværdieres avedelighed i e brach-ad-boud algoritme. I modsætig til det meget sparsomme arbejde for eksakte algoritmer til løsig af PDP, fides der e lag række approximatiosalgoritmer. Ma ka æste tale om at PDP har været et mode-problem idefor approximatios-kredse op igeem 1990 ere. Bladt de mere iteressate resultater skal æves at ige har kuet bevise eller modbevise eksistese af e approximatiosalgoritme med kostat approximatiosratio ρ. Hvis problemet overholder trekatsulighede har Ravi m.fl. [7] preseteret e approximatiosalgoritme med ratio ρ = 4. Såfremt ma tillader at approximatiosfaktore ρ() afhæger af er der udviklet adskillige algoritmer. Asahiro m.fl. [1] giver et godt overblik over sådae resultater. Litteratur [1] Y. Asahiro, K. Iwama, H. Tamaki, T. Tokuyama (1996) Greedily Fidig a Dese Subgraph. I: Rolf G. Karlsso, Adrzej Ligas (Eds.): Algorithm Theory - SWAT 96, 5th Scadiavia Workshop o Algorithm Theory, Reykjavík, Icelad, July 3-5, 1996, Proceedigs. Lecture Notes i Computer Sciece, 1097, Spriger, 136 148. [2] A. Billioet, A. Faye (1997) A lower boud for a costraied quadratic 0-1 miimizatio problem, Discrete Applied Mathematics 74 135 146. [3] A. Caprara, D. Pisiger, P. Toth (1999), Exact solutio of the quadratic kapsack problem, INFORMS Joural o Computig, 11, 125 137. 5
[4] E. Erkut (1990), The discrete p-dispersio problem, Europea Joural of Operatioal Research, 46, 48 60. [5] G. Gallo, P.L. Hammer, B. Simeoe (1980), Quadratic Kapsack Problems, Mathematical Programmig 12, 132 149. [6] R. K. Kicaid (1992), Good solutios to discrete oxious locatio problems via metaheuristics, Aals of Operatios Research, 40, 265 281. [7] S.S. Ravi, D.J. Rosekratz, G.K. Tayi (1994), Heuristic ad special case algorithms for dispersio problems, Operatios Research, 42, 299 310. 6