Videregående Algoritmik, DIKU 00-08 Tirsdag 8. december David Pisinger Approximations-algoritmer Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP trekantsulighed) Negativt resultat om generel TSP Fuldt polynomiel-tids approximations skema FPTAS) for SUBSET-SUM Løsningsmetoder for NP -hårde opt.problemer Opdelingskriterier løsningskvalitet: optimal/ikke-optimal beregningstid: polynomiel/ikke-polynomiel Ikke-optimale metoder: løsningskvalitet: ingen garanti kan gives garanti kan gives, men det kan ikke gøres vilkårligt godt garanti kan gives, og det kan gøres vilkårligt godt beregningstid: ingen garanti kan gives polynomiel i inddata polynomiel i inddata og præcision Eksempel: knapsack problem Heuristik for Knapsack Problemet max s.t. n p j x j j= n j= w j x j c x j {0,} sorter efter aftagende effektivitet p j /w j fyld grådigt,,... så længe plads Vilkårligt dårlig løsning: Vi har: p =,w = p = M,w = M + c = M + heuristisk løsning: = optimal løsning: = M forhold: = M Eksempel: knudeoverdækning En knudeoverdækning af en ikke orienteret graf G = V,E) er en delmængde af V V så u,v) E u V eller v V eller begge) Størrelsen af en knudeoverdækning er V. Find den mindste overdækning i grafen. Approximations algoritme: Vælg tilfældig kant u, v) E. Lad V V {u} {v} Fjern kanter fra E som er incidente med u eller v Approximations algoritmen finder en knudeoverdækning V af størrelse som højst er dobbelt så stor som den optimale knudeoverdækning V af størrelse. 6 3 4 3 4
Approximations-algoritmer Approximations-algoritmer Ikke-eksakte løsningsmetoder, der giver garanti for hvor tæt på optimum man kommer. algoritmens løsningsværdi problemets optimale løsningsværdi Minimeringsproblem ) Mål: gør så lille som muligt Maximeringsproblem ) Mål: gør Generelt krav Gør så lille som mulig. så lille som muligt max ) max, ), ρn) hvor ρn) er ratio bound. Bemærk ρn) Man kan også måle relativ fejl Minimering εn) = så ρn) ρn) Altså: εn) = ρn) Maximering så = ρn) ρn) ρn) = ρn) ρn) Altså: εn) = ρn) ρn) dermed: εn) ρn) ) 6 Approximations-algoritmer approximations skema smuk) Input: instans, ε > 0 Algoritme træffer valg på basis af n og ε Output: Løsning med relativ fejl mindre end ε Skema idet familie af algoritmer Betegnelser A Approximations-algoritme PTA Polynoimel-Tids Approximations-algoritme AS Approximations Skema PTAS Polynomiel-Tids Approximations Skema FPTAS Fuldt Polynomiel-Tids Approximations Skema polynomiel-tids approx. skema smukkere) Approximations skema Algoritme kører i polynomiel tid i størrelsen af n køretid f.eks. /ε n 3 Heuristik Ingen garanti for løsningskvalitet fuldt polynomiel-tids approx. skema smukkest) Approximations skema Algoritmen kører i polynomiel tid målt i n og /ε køretid f.eks. /ε) n 3 findes ej for stærkt NP -hårde problemer) 8
Traveling Salesman Problem Approx. algoritme for TSP trekantsulighed) Givet graf G = V,E), omkostning cu,v) for hvert kant u, v) E. Find billigste Hamilton-kreds. 8 6 4 3 6 APPROX-TSP-TOURG, c) select a vertex r V [G] to be a root vertex grow a minimum spanning tree T for G from root r using MST-PRIMG,c,r) 3 let L be the list of vertices visited in a preorder tree walk of T 4 return the Hamiltonian cycle H that visits the vertices in the order L Eksempel 3 4 9 4 Trekantsulighed: u,v,w V cu,w) cu,v) + cv,w) bemærk: komplet graf) Overholdt: geometriske problemer Ej overholdt: flypriser Definition: pris af kantemængde A E ca) = u,v) A cu, v) 9 0 Sætning APPROX-TSP-TOUR er en approximations algoritme med ratio-bound ρ = for TSP opfyldende trekantsulighed. Dvs: ch) ch ) Bevis Mindste udspændende træ: T ct) ch ) full walk i grafen, besøger hver kant to gange cw) = ct) walk W ej Hamilton kreds sletter knuder. Trekantsulighed sikrer Totalt: ch) cw) ch) cw) = ct) ch ) Approx. algoritme for TSP generel) Hvis NP P findes der ingen polynomieltids approximationsalgoritme for generelt TSP med ratio bound ρ Bevis Antag at fandtes polynomiel approximations algoritme A med ratio bound ρ. Dvs finder tur med ρ Vil vise at HAM-YLE kan løses i polynomiel tid NP = P Givet instans af HAM-YLE defineret på G = V,E). Komplet graf: G = V,E ) hvor Tildel kantvægte E = {u,v) : u,v V og u v} cu,v) = { if u,v) E ρ V + if u,v) E Løs TSP for G,c).
Approx. algoritme for TSP generel) Subset-sum Problem HAM-YLE Afgør problem ρ V + TSP Hvis ρ V så findes der en Hamilton kreds Hvis > ρ V så findes der ikke en Hamilton kreds Vi har Hvis der findes en Hamilton kreds i G har TSP problemet optimal løsning = V. Hvis der ikke findes en Hamilton kreds i G vil TSP problemet vælge mindst en dyr kant cu,v) = ρ V + så > ρ V + Approximations algoritme A finder en løsning med pris opfyldende ρ Subset-sum problem delmængde sum): Givet mængde af heltal S = {x,x,...,x n } samt t Find en delmængde S S så er størst mulig For eksempel j S x j t S = {,4,6,64,6,040,093,84,344} t = 34 har løsning S = {,6,64,6,040,093,84}. Viser: Fuldt polynomiel-tids approximations skema 3 4 Eksponentiel algoritme Dynamisk programmering-lignende algoritme. Lister over tal som kan opnås med en delmængde af S Lad Liste L af positive heltal, f.eks. L =<,, 3,, 9 > x positivt heltal, f.eks. x = L + x =< 3,4,,, > P i = { tal, der kan opnås som sum af {x,...,x i } }. så gælder rekursionsligningen P i = P i P i + x i ) Her kan foreningsmængden L L udregnes i lineær tid da begge lister er sorterede i voksende orden MERGE- LISTS). Eksempel Lad S = {4,,}, t = 4 P 0 = {0} P = {0,4} P = {0,4,,9} P 3 = {0,4,,,9,,,6} Eksponentiel algoritme Algoritme EXAT-SUBSET-SUMS,t) n S L 0 0 3 for i to n do 4 L i MERGE-LISTSL i,l i + x i ) remove from L i every element that is greater than t 6 return the largest element in L n Total køretid: nt. Eksponentiel i input størrelsen n logt. F.eks: t = n, køretid n n = O n ), input n. Idé til forbedring fjern elementer i P i som ligger tæt på hinanden behold det mindste af to tal tæt på hinanden TRIM liste L 6
Trimning Trimning trim parameter med 0 < < L L Fjern så mange elementer tæt på hinanden som muligt For ethvert fjernet element y L eksisterer z L med z y + )z y + z y + ) z ) Algoritme: TRIML, ) m L L y 3 last y 3 for i to m do 4 if y i > last + ) then append y i onto the end of L last y i 6 return L Køretid: lineær. Eksempel: = 0. L =< 0,,,,0,,,3,4,9 > L =< 0,,,0,3,9 > 8 Approximations algoritme Givet instans S,t), tilladt fejl ε. vælg trimningsfaktor = ε n APPROX-SUBSET-SUMS,t, ε) n S L 0 0 3 for i to n do 4 L i MERGE-LISTSL i,l i + x i ) L i TRIML i,ε/n) 6 remove from L i every element that is greater than t return z A given by the largest element in L n Bogen kalder returnerede værdi, hvilket ikke harmonerer med at angiver optimal løsning) Sætning Fuldt polynomiel-tids approximations skema Finder en lovlig løsning z A Relative fejl er mindre end ε z A ε 3 Algoritmen kører i polynomiel tid i n og /ε Vi kan antage ε <, da -approximation nem overvej!) 9 Eksempel Instans: S = {04,0,0,0}, t = 308, ε = 0.40 Vælger = ε/n = 0.40/8 = 0.0. Forløb: line : L 0 = 0 line 4: L = 0,04 line : L = 0,04 line 6: L = 0,04 line 4: L = 0,0,04,06 line : L = 0,0,06 line 6: L = 0,0,06 line 4: L 3 = 0,0,0,06,303,40 line : L 3 = 0,0,0,303,40 line 6: L 3 = 0,0,0,303 line 4: L 4 = 0,0,0,0,03,30,303,404 line : L 4 = 0,0,0,30,404 line 6: L 4 = 0,0,0,30 Approximativ løsning: z A = 30 Optimal løsning: = 30, faktisk afvigelse %) 0
Finder en lovlig løsning Kun lovlige summer i L, alle t Naturligvis lovlig sum i sidste iteration Relativ fejl mindre end ε For ethvert fjernet element y P eksisterer z L så y + z y Ved induktion i i kan det vises at efter i iterationer gælder: For ethvert fjernet element y P i eksisterer z L i så y + ) i z y Gælder specielt for P n, dvs. der findes z L n så + ) n z z Må også gælde for z A som er den største værdi i L n så eller + ) n za + )n za Vil vise at + ) n + ε når = ε/n Relativ fejl mindre end ε Betragter f n,ε) = + ε n )n. Formel 3.3) side 3 siger at lim + x ) n = e x n n og da d dn f n,ε) > 0 er f voksende. + ε ) n e ε/ n Formel 3.) side 3 siger e x + x + x for x < så + ε ) n + ε/ + ε/) n og da ε < er ε ε, så + ε ) n + ε n Kombineret med formlen forrige side fås z A + ε og dermed z A = za z + ε = + ε ε + ε Kører i polynomiel tid i n og /ε TRIM sletter et element z z hvis z + ) z Så på ethvert tidspunkt vil elementerne i L i overholde z > + )z = αz Den tættest mulige liste ser ud som 0,,α,α,α 3,...,α k t α = + ) afstands-faktor Antal elementer er k +, hvor k findes som: α k = t k lnα = lnt k = lnt lnα = lnt ln + ) Formel 3.6) side 4 siger at for > gælder + ln + ) ln + ) + så + )lnt + ε/n)lnt k = ε/n Da ε < gælder at + ε/n) så k 4nlnt ε Køretid: Onk + )) = O ε n lnt) 3 Indsigt Approximabilitet og reduktion af problemer Da SUBSET-SUM er NP -fuldstændigt gælder f.eks. TSP p SUBSET-SUM Vi kan approximere SUBSET-SUM vilkårligt godt i polynomiel tid Gælder tilsvarende resultat for TSP? Reduktion gælder kun for afgørlighedsproblemer Såfremt vi vil løse SUBSET-SUM-DEISION skal ε = 0 4
Branch-and-bound som Approximations Skema Minimeringsproblem: givet ε > 0) For ethvert underproblem knude) lad l være en nedre grænseværdi Lad z være hidtil bedste løsning Forkast underproblem hvis l + ε) z Eksempel: ε = 0., l =, z =. Forkast knude Approximations skema. Relativ afvigelse < ε. Køretid:??? Branch-and-bound i Polynomiel tid Undersøg kun et polynomielt antal knuder M = n k Best-first søgning Stop efter M knuder Køretid polynomiel. Løsningskvalitet:???