Algorytmika Problemów Trudnych
Wykªad 3 Tomasz Krawczyk
krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2020/21
plan wykªadu
I Algorytmy rozgaª¦ziaj¡ce si¦ (Branching Algorithms).
I Algorytmy wykªadnicze:
I Pokrycie wierzchoªkowe.
I Minimalny zbiór rozcyklaj¡cy (Measure & Conquer).
I Algorytmy parametryzowane:
I Minimalny zbiór rozcyklaj¡cy.
I Minimalne pokrycie wierzchoªkowe powy»ej LP.
Algorytmy rozgaª¦ziaj¡ce si¦
Algorytmy rozgaª¦ziaj¡ce si¦:
I dekomponujemy problem na podproblemy prostsze (branching), I rozwi¡zujemy podproblemy,
I zwracamy najlepsze rozwi¡zanie podproblemu i uzasadniamy, »e jest to dobre rozwi¡zanie problemu wyj±ciowego,
Proces rozgaª¦zie« algorytmu drzewo rozgaª¦zie« (podziaªów na podproblemy).
Czas dziaªania algorymu rozgaª¦ziaj¡cego mo»na ograniczy¢ przez:
liczba w¦zªów w drzewie × czas dziaªania dla pojedynczego w¦zªa, bad¹ liczba li±ci w drzewie × sumaryczny czas na ±cie»ce od korzenia do li±cia.
Drugi czynnik w powy»szych wyra»eniach jest cz¦sto wielomianowy od rozmiaru wej±cia. W takim przypadku, czas dziaªania: O∗(liczba w¦zªów) b¡d¹ O∗(liczba li±ci).
Minimalne pokrycie
Spostrze»enie:
Dla ka»dego wierzchoªka v stopnia ≥ 2, albo v albo N(v) jest w minimalnym pokryciu.
Algorytm minVC(G):
I if exists v ∈ V with d(v) = 0 return minVC(G \ v), I if exists v ∈ V with d(v) = 1 return 1 + minVC(G \ N[v]), I if d(v) ≥ 2 for all v ∈ V :
I choose any vertex v (with degree ≥ 2) of G,
I return max(1+minVC(G \ v), |N(v)| + minVC(G \ N[v])) T (n) oszacowanie górne na liczb¦ li±ci drzewa przeszukiwa« dla instancji wej±ciowej rozmiaru n.
T (n) 6 T (n − 1) + T (n − 3)
Szacowanie T (n)
I Rekurencja: T (n) = T (n − 1) + T (n − 3),
I poszukujemy λ takiego, »e T (n) 6 c · λn dla pewnego n,
I poka»emy, »e najmniejsze λ ≥ 0 speªniaj¡ce λ3≥ λ2+1 jest dobre, a wi¦c λ = 1.4656...
Dowód indukcyjny:
I zakªadamy, »e T (n − 1) 6 c · λn−1 oraz T (n − 3) 6 c · λn−3, I Wtedy:
T (n) 6 T (n−1)+T (n−3) 6 c ·λn−1+c ·λn−36 c ·λn−3(λ2+1) 6 c ·λn.
Algorytmy rozgaª¦ziaj¡ce si¦ - wektor rozgaª¦zie«
Analiza czasu dziaªania przypadek ogólny:
I n rozmiar zadania,
I n − d1, . . . ,n − dk - rozmiar k podzada«, d16 d26 . . . 6 dk =d I (d1, . . . ,dk) wektor rozgaª¦zie« (branching vector)
Rekursja na liczb¦ li±ci drzewa rozgaª¦zie«:
T (n) 6 T (n − d1) + . . . +T (n − dk).
Wtedy T (n) 6 c · λn, gdzie λ jest dodatnim miejscem zerowym wielomianu λd− λd−d1− . . . − λd−dk−1−1 = 0.
Wielomian W (x) = akxk−ak−1xk−1− . . . −a0x0, gdzie ak,a0>0 oraz ai ≥0 dla i = 1, . . . , k − 1, w przedziale [0, ∞) ma jedno miejsce zerowe λ.
Ponadto, W (x) < 0 dla 0 6 x < λ oraz W (x) > 0 dla x > λ.
Dowód indukcyjny. Pochodna W (x) ma posta¢ W (x) = ak·k · xk−1b¡d¹ te»
jest postaci xc·P(x), gdzie P speªnia takie same zaªo»enia jak wielomian W .
Minimalne pokrycie raz jeszcze
Spostrze»enie:
Dla ka»dego wierzchoªka v stopnia ≥ 2, albo v albo N(v) jest w minimalnym pokryciu.
minVC(G):
I if exists v ∈ V with d(v) = 0 return minVC(G \ v), I if exists v ∈ V with d(v) = 1 return 1 + minVC(G \ N[v]), I if d(v) 6 2 for all v ∈ V : solve in time polynomial in n, I if exist v ∈ V with d(v) ≥ 3:
I choose a vertex v of maximum degree in G,
I return max(1+minVC(G \ v), |N(v)| + minVC(G \ N[v])) Dla tego algorytmu wektor rozgaª¦zie« wynosi (1, 4), który jest istotnie lepszy ni» (1, 3). Poprawia czas dziaªania z O∗(1.4656n)do O∗(1.3803n).
Wzmocniona analiza czasu dziaªania tego algorytmu daje O∗(1.2905n).
Minimalne pokrycie historia
Minimalne pokrycie maksymalny zbiór niezale»ny w n wierzchoªkowym grae (problemy równowa»ne)
Historia:
I O∗(1.26n) Tarjan, Trojanowski, I O∗(1.2346n) Jian,
I O∗(1.2278n) Robson,
I O∗(1.2202n) Fomin, Grandoni, Kratsch, I O∗(1.2132n) Kneis, Langer, Rossmanith,
I O∗(1.2114n) Bourgeois, Escoer, Paschos, van Rooij
Przy zaªo»eniu ETH, istnieje granica tego ci¡gu, tzn. istnieje c > 1 takie, »e minimalnego pokrycia nie mozna zrobi¢ szybciej niz O?(cn).
ETH nie pozwala na wskazanie staªej c.
Minimalne pokrycie historia
Minimalne pokrycie maksymalny zbiór niezale»ny w n wierzchoªkowym grae (problemy równowa»ne)
Historia:
I O∗(1.26n) Tarjan, Trojanowski, I O∗(1.2346n) Jian,
I O∗(1.2278n) Robson,
I O∗(1.2202n) Fomin, Grandoni, Kratsch, I O∗(1.2132n) Kneis, Langer, Rossmanith,
I O∗(1.2114n) Bourgeois, Escoer, Paschos, van Rooij
Przy zaªo»eniu ETH, istnieje granica tego ci¡gu, tzn. istnieje c > 1 takie, »e minimalnego pokrycia nie mozna zrobi¢ szybciej niz O?(cn).
ETH nie pozwala na wskazanie staªej c.
Minimalne pokrycie historia
Minimalne pokrycie maksymalny zbiór niezale»ny w n wierzchoªkowym grae (problemy równowa»ne)
Historia:
I O∗(1.26n) Tarjan, Trojanowski, I O∗(1.2346n) Jian,
I O∗(1.2278n) Robson,
I O∗(1.2202n) Fomin, Grandoni, Kratsch, I O∗(1.2132n) Kneis, Langer, Rossmanith,
I O∗(1.2114n) Bourgeois, Escoer, Paschos, van Rooij
Przy zaªo»eniu ETH, istnieje granica tego ci¡gu, tzn. istnieje c > 1 takie, »e minimalnego pokrycia nie mozna zrobi¢ szybciej niz O?(cn).
ETH nie pozwala na wskazanie staªej c.
minimalny zbiór rozcyklaj¡cy
Zbiorem rozcyklaj¡cymgrafu G nazywamy zbiór wierzchoªków, który ma niepuste przeci¦cie z ka»dym cyklem grafu G.
Innymi sªowy, usuni¦cie zbioru rozcyklaj¡cego sprawia, »e graf staje si¦
drzewem.
Problem
Wej±cie: (G, k).
Wyj±cie: TAK je»eli w grae G istnieje zbiór rozcyklaj¡cy o mocy 6 k.
Poka»emy algorytm o czasie dziaªania O((3k)knO(1)), a zatem problem ten jest FPT.
Istnieje algorytm kernelizacji konstruuj¡cy j¡dro rozmiaru O(k2).
Minimalny zbiór rozcyklaj¡cy
Idea:
I skoro po usuni¦ciu graf ma by¢ drzewem, to trzeba usuwa¢ pewne wierzchoªki o wysokim stopniu.
Preprocessing:
I usu« wierzchoªki izolowane, stopnia 1, oraz stopnia 2, i zwró¢ instancj¦
równowa»n¡, w której ka»dy wierzchoªek ma stopie« przynajmniej 3 (by¢
mo»e istniej¡ kraw¦dzie dwukrotne mi¦dzy par¡ wierzchoªków).
Dla instancji po preprocessingu mamy 2|E| ≥ 3|V |.
Minimalny zbiór rozcyklaj¡cy
I v1,v2, . . . ,vn porz¡dek wierzchoªków grafu G taki, »e d(v1) ≥d(v2) ≥ . . . ≥d(vn).
I Poka»emy, »e ka»dy zbiór X przecinaj¡cy wszystkie cykle rozmiaru co najwy»ej k zawiera jeden z 3k pierwszych elementów ci¡gu v1, . . . ,vn. I Algorytm sprawdza ka»d¡ z 3k mo»liwo±ci, wywoªuj¡c si¦ rekurencyjnie
dla ka»dej mo»liwo±ci. Gª¦boko±ci rekursji ograniczamy przez k.
I Czas dziaªania algorytmu: O((3k)knO(1)).
Minimalny zbiór rozcyklaj¡cy
Wyka»emy, »e je»eli X jest zbiorem przecinaj¡cym wszystkie cykle, to:
X
v∈X
(d(v) − 1) ≥ |E| − |V | + 1.
Nierówno±¢ ta wynika z nierówno±ci:
X
v∈X
d(v) + (|V | − |X | − 1) ≥ |E|,
która wynika z faktu, i» ka»da kraw¦d¹ grafu albo przylega do elementu z X albo jest kraw¦dzi¡ z lasu rozpi¦tego na wierzchoªkach V \ X .
Minimalny zbiór rozcyklaj¡cy
Dla ka»dego zbioru X przecinaj¡cego wszystkie cykle mamy X
v∈X
(d(v) − 1) ≥ |E| − |V | + 1.
Zaªó»my, »e zbiór X rozmiaru 6 k nie ma cz¦±ci wspólnej z {v1, . . . ,v3k}. Policzmy Pv∈V(d(v) − 1). Mamy:
P
v∈V(d(v) − 1) = P3ki=1(d(vi) −1) + Pni=3k+1(d(vi) −1)
≥ 3(|E| − |V | + 1) + (|E| − |V | + 1)
≥ 4(|E| − |V | + 1).
Ale Pv∈V(d(v) − 1) = 2|E| − |V |. Ostatecznie 2|E| − |V | ≥ 4|E| − 4|V | + 4, co implikuje 3|V | ≥ 2|E| + 4, to za± jest sprzeczne z 3|V | 6 2|E|.
Minimalne pokrycie ponad vc
∗( G)
Rozwa»my relaksacj¦ problemu minimalnego pokrycia LPVC(G) dla grafu G:
minX xi
x(i) + x(j) ≥ 1 dla ka»dej kraw¦dzi {i, j}
x(i) ≥ 0
Niech:
I x∗(i), vc∗(G) rozwi¡zanie optymalne LPVC(G), I vc(G) minimalne pokrycie G.
Oczywi±cie,
vc∗(G) 6 vc(G).
Minimalne pokrycie ponad vc
∗( G)
Nie istnieje pokrycie wierzchoªkowe G rozmiaru 0, 1, . . . , dvc∗(G)e − 1, ale mo»e ju» istnie¢ rozmiaru dvc∗(G)e, dvc∗(G)e + 1, . . . , n.
Parmatryzacja powy»ej LP:
Dla pary (G, µ) pytamy czy istnieje pokrycie wierzchoªkowe rozmiaru co najwy»ej vc∗(G) + µ. Czy problem ten jest FPT?
Inaczej: Czy istnieje pokrycie wierzchoªkowe rozmiaru k, gdzie k = vc∗(G) + µ.
Poszukujemy algorytmu o zªo»ono±ci
f (µ) · nO(1).
pokrycie wierzchoªkowe j¡dro rozmiaru 6 2k
Niech {x∗(v) : v ∈ V } b¦dzie rozwi¡zaniem optymalnym póªcaªkowitym, tzn.
takim, »e x∗(v) ∈ {0,12,1}. Deniujemy:
V0 = {v : xv∗=0}, V1
2 = {v : xv∗=12}, V1 = {v : xv∗=1}.
Wykazali±my, »e w zbiorze minimalnych (na liczno±¢) pokry¢ wierzchoªkowych G istnieje pokrycie S takie, »e
V1⊂S ⊂ V1∪V1 2.
pokrycie wierzchoªkowe reguªa redukcji
Redukcja: Rozwi¡» LPVC(G). Oblicz V0,V1
2,V1i je»eli V16= ∅zwró¢
równowa»n¡ instancj¦ (V1
2,k − |V1|).
Niech G0=G[V1
2]. Zauwa»my, »e:
vc(G) = vc(G0) + |V1|, vc∗(G) = vc∗(G0) + |V1|.
W konsekwencji:
G posiada pokrycie wierzchoªkowe rozmiaru vc∗(G) + µ wtedy i tylko wtedy, gdy
G0posiada pokrycie wierzchoªkowe rozmiaru vc∗(G0) + µ.
Minimalne pokrycie
Minimalne pokrycie ponad LP:
I je»eli istnieje rozwi¡zanie póªcaªkowite LPVC(G) takie, »e V16= ∅, wykonaj redukcj¦ i wywoªaj si¦ na podzadaniu mniejszym (parametr µ pozostaje bez zmian);
I w przeciwnym przypadku (ka»de rozwi¡zanie optymalne programu liniowego jest postaci x∗(v) = 12 dla ka»dego v), wybierz dowolny v ∈ V i wywoªaj si¦ rekurencyjnie, rozgaª¦ziaj¡c si¦ na dwa przypadki:
I v idzie do pokrycia. Zredukowana instancja to (G − v, k − 1) (parametr µ zmniejsza si¦ o 12),
I N(v) idzie do pokrycia. Zredukowana instancja to (G − N[v], k − |N(v)|) (parametr µ zmniejsza si¦ przynajmniej o 12).
Minimalne pokrycie ponad LP - analiza algorytmu
atwo sprawdzi¢, czy jedynym rozwi¡zaniem programowania liniowego jest x∗(v) =12 dla ka»dego v ∈ V .
Istnieje rozwi¡zanie optymalne LPVC(G) w którym x∗(v) = 1.
m
Istnieje v takie, »e rozwi¡zanie optymalne LPVC(G − v) ma koszt o 1 mniejszy.
Powy»szy warunek mo»na sprawdzi¢ w czasie n × m√ n.
Minimalne pokrycie ponad LP - analiza algorytmu
Prze±led¹my zmian¦ parametru µ = k − vc∗w przypadku, gdy algorytm rozgaª¦zia si¦:
I v idzie do pokrycia, zredukowana instancja to (G − v, k − 1):
I parametr k spada o 1,
I vc∗o 12, (w p.p., rozwi¡zanie poszerzone o x∗(v) = 1 jest optymalnym rozwi¡zaniem LPVC(G) z V16= ∅)
I µspada o 12.
I N(v) idzie do pokrycia, zredukowana instancja to (G − N[v], k − |N(v)|):
I parametr k spada o |N(v)|,
I vc∗o |N(v)| −12 b¡d¹ mniej (w p.p., rozwi¡zanie poszerzone o x∗(w) = 1 dla w ∈ N(v) jest optymalnym rozwi¡zaniem LPVC(G) z V16= ∅)
I µspada przynajmniej o 12.
W obu przypadkach, µ = k − vc∗zmiejsza si¦ przynajmniej o 12.
Minimalne pokrycie ponad vc
∗( G) - analiza algorytmu
Czas dziaªania:
I liczba li±ci w drzewie ograniczona T (µ) 6 2T (µ −12), co daje T (µ) = 4µ. I dªugo±¢ ka»dej ±cie»ki od korzenia w drzewie do li±cia jest ograniczona
przez n,
I czas dziaªania algorytmu w ka»dym w¦¹le jest ograniczony przez nO(1). Ogólnie, czas dziaªania algorytmu na instancji (G, µ) jest ograniczony przez:
4µnO(1).
Problem jest wi¦c FPT w zale»no±ci od parametru µ = k − vc∗(G).
Minimalne pokrycie powy»ej maksymalnego dopasowania
Niech M(G) b¦dzie dopasowaniem o maksymalnej liczno±ci w G. Poniewa»
|M(G)| ≥ vc∗(G), mamy równie» algorytm sprawdzaj¡cy czy istnieje pokrycie wierzchoªkowe rozmiaru k w grae G dziaªaj¡cy w czasie
4k−|M(G)|nO(1).
Aplikacja minimalny zbiór przecinaj¡cy wszystkie cykle nieparzystej dªugo±ci
Problem
Wej±cie: G, k.
Wyj±cie: TAK wtedy i tylko wtedy, gdy istnieje zbiór k wierzchoªków, które przecinaj¡ wszystkie cykle nieparzystej dªugo±ci w G?
Niech G∗ b¦dzie grafem skªadaj¡cym si¦ z dwóch kopii grafu G: G0 i G00oraz dopasowania doskonaªego ª¡cz¡cego te same elementy z ró»nych kopii.
Fakt
G ma zbiór k wierzchoªków przecinaj¡cych wszystkie cykle nieparzystej dªugo±cim G∗ma pokrycie wierzchoªkowe rozmiaru n + k.
Ostatni warunek mo»na sprawdzi¢ w czasie 4n+k−nnO(1)=4knO(1). Problem jest wi¦c w klasie FPT.
Aplikacja
Fakt
G ma zbiór k wierzchoªków przecinaj¡cych wszystkie cykle nieparzystej dªugo±cim G∗ma pokrycie wierzchoªkowe rozmiaru n + k.
Oznaczenie. X zbiór w G, X0 odpowiadaj¡cy mu zbiór w G0.
Dowód. Zaªó»my, »e X jest zbiorem przecinaj¡cym wszystkie cykle w G. Wtedy G − X jest dwudzielny. Niech A, B b¦d¡ klasami dwudzielno±ci G − X . atwo sprawdzi¢, »e X ∪ X0∪A ∪ B0jest pokryciem rozmiaru n + k w grae G0.
Zaªó»my, »e G∗ma pokrycie VC rozmiaru n + k. Dokªadnie k kraw¦dzi dopasowania ª¡cz¡cego G i G0ma dwa ko«ce w VC. Oznaczmy te elementy w G przez X , przez A [B] te elemenety a z G których pokryty koniec kraw¦dzi aa0 le»y w G [G0]. Nietrudno sprawdzi¢, »e A ∪ B indukuje graf dwudzielny w G. G ma wi¦c ziór przecinaj¡cy cykle wszystkie nieparzyste dªugo±ci rozmiaru 6 k.
Problemy modykacji grafów
Problem
C klasa grafów.
Wej±cie: (G, k).
Wyj±cie: TAK wtedy i tylko wtedy, gdy na grae k mo»na dokona¢ k modykacji tak, aby przeksztaªci¢ go w graf z klasy C.
Zazwyczaj rozwa»a si¦ nastepuj¡ce modykacje:
I usuni¦cie wierzchoªka,
I dodanie nowej kraw¦dzi do grafu, I usuni¦cie kraw¦dzi z grafu, oraz ich kombinacje.
Przykªady
I Minimalne pokrycie wierzchoªkowe sprowadzenie grafu do zbioru niezale»nego, gdzie dozwolon¡ modykacj¡ jest usuni¦cie wierzchoªka.
I Minimalny zbiór rozcyklaj¡cy sprowadzenie grafu do lasu, gdzie dozwolon¡
modykacj¡ jest usuni¦cie wierzchoªka.