• Nie Znaleziono Wyników

Algorytmika Problemów Trudnych Wykład 4

N/A
N/A
Protected

Academic year: 2021

Share "Algorytmika Problemów Trudnych Wykład 4"

Copied!
20
0
0

Pełen tekst

(1)

Algorytmika Problemów Trudnych

Wykład 4

Tomasz Krawczyk

krawczyk@tcs.uj.edu.pl

Kraków, semestr letni 2019/20

(2)

I Algorytmy rozgałęziające się.

I Metoda analizy mierz i zwyciężaj (Measure & Conquer):

I Maksymalny zbiór niezależny.

I Minimalny zbiór rozcyklający.

(3)

Metoda mierz i zwyciężaj

Metoda mierz i zwyciężaj:

I cel: polepszenie analizy algorytmów rozgałęziających się,

I sposób: stosujemy bardziej wyrafinowane miary do mierzenia wielkości podzadań (zazwyczaj: rozmiar podzadania to liczba wierzchołków grafu).

(4)

Makysmalna klika (bądź minimalne pokrycie wierzchołkowe)

Spostrzeżenie. Dla każdego wierzchołka v stopnia ≥ 2:

I albo v jest (wtedy żaden wierzchołek z N(v ) nie jest) w maksymalnym zbiorze niezależnym,

I albo v nie jest w maksymalnym zbiorze niezależnym.

MaxIndSet(G ):

I if exists v ∈ V with d (v ) = 0 return 1 + maxIndSet(G \ v ), I if exists v ∈ V with d (v ) = 1 return 1 + maxIndSet(G \ N[v ]), I if d (v ) 6 2 for all v ∈ V : solve polynomially in n,

I if exist v ∈ V with d (v ) ≥ 3:

I choose a vertex v of maximum degree in G ,

I return max(MaxIndSet(G \ v ), 1 + maxIndSet(G \ N[v ]))

(5)

Makysmalna klika (bądź minimalne pokrycie wierzchołkowe)

Spostrzeżenie. Dla każdego wierzchołka v stopnia ≥ 2:

I albo v jest (wtedy żaden wierzchołek z N(v ) nie jest) w maksymalnym zbiorze niezależnym,

I albo v nie jest w maksymalnym zbiorze niezależnym.

MaxIndSet(G ):

I if exists v ∈ V with d (v ) = 0 return 1 + maxIndSet(G \ v ), I if exists v ∈ V with d (v ) = 1 return 1 + maxIndSet(G \ N[v ]), I if d (v ) 6 2 for all v ∈ V : solve polynomially in n,

I if exist v ∈ V with d (v ) ≥ 3:

I choose a vertex v of maximum degree in G ,

I return max(MaxIndSet(G \ v ), 1 + maxIndSet(G \ N[v ])) Wektor rozgałęzień algorytmu: (1, 4), co daje czas działania O(1.3803n), gdyż τ (1, 4) = 1.3803. Prosta analiza uzyskana metodą mierz i zwyciężaj daje oszacowanie O(1.3248n) (wynika z τ (1, 5) = 1.3248).

(6)

Przyjmujemy miarę G jako sumaryczną wagę wszystkich wierzchołków w G , gdzie:

I wierzchołki o stopniu 0 i stopniu 1 ważą 0 (i tak się ich zaraz pozbędziemy),

I wierzchołki o stopniu 2 ważą 12 (czekają do końca, jak ich jest dużo, to szybko kończymy),

I wierzchołki o stopniu ≥ 3 ważą 1 (te sprawiają kłopot).

Przed rozpoczęciem algorytmu miara instancji 6 n.

(7)

Analiza algorytmu MaxIndSet

Wektory rozgałęzień w algorytmie (pokażemy na kolejnych slajdach):

I są typu (a, b) gdzie, a + b ≥ 6, a ≥ 1, b ≥ 1,

I widać, że dla każdego rozgałęzienia (a, b) mamy τ (a, b) 6 τ (1, 5), I konkludując, czas działania algorytmu jest ograniczony od góry przez

c · (τ (1, 5))n= c · (1.3248n).

Analizę tego algorytmu można wzmocnić (różne wagi dla różnych stopni) do O(1.2905)

(8)

Rozpatrzmy dwa możliwe typy rozgałęzień:

I rozgałęzienie na wierzchołku stopnia ≥ 4, I rozgałęzienie na wierzchołku stopnia = 3.

(9)

Analiza algorytmu MaxIndSet

Rozpatrzmy typ I rozgałęzienia: na wierzchołku v stopnia ≥ 4.

Mamy dwa podzadania:

I lewe– na podgrafie G − v , I prawe– na podgrafie G − N(v ).

Zmiana miar podzadań w stosunku do miary G :

I wierzchołka w o wadze 1 w G nie ma w podzadaniu lewym ani w podzadaniu prawym (lewe i prawe ‘ważą’ mniej o 1 w stosunku do G ), I jeżeli u waży 1 w G , to u nie ma w prawym podzadaniu (podzadanie

prawe ‘waży’ przynajmniej o 1 mniej w stosunku do G ),

I jeżeli u waży 12 w G , to u waży 0 w prawym podzadaniu oraz u nie ma w prawym podzadaniu (rozmiar lewego i prawego podzadania zmniejsza się o 12).

Konkludując, suma spadku miar podzadania lewego oraz prawego wynosi co najmniej |N(v )| + 2, czyli ≥ 6.

(10)

Rozpatrzmy typ II rozgałęzienia: na wierzchołku v stopnia = 3. Oznacza to, że stopień każdego wierzchołka w G jest 6 3.

Łatwo wykazać, że suma spadków miar prawego i lewego podzadania wynosi co najmniej 5 (dowód jak powyżej).

Aby zyskać jeszcze 1 rozważamy sąsiadów zbioru N[v ], czyli N(N[v ]) (wierzchołki w dystansie 2 od v ).

I jeżeli |N(N[v ])| ≥ 2, to w prawym podzadaniu wierzchołki z N(N(v )) tracą po 12,

I pozostaje sprawdzić przypadki |N(N[v ])| = 1 bądź |N(N[v ])| = 0, co pozostawiamy jako ćwiczenie.

(11)

Minimalny zbiór rozcyklający

W problemie minimalnego zbioru rozcyklającego chcemy znaleźć najmniejszy zbiór przecinający wszystkie cykle w G (którego usunięcie ‘rozcykla’ graf G ).

Równoważnie: chcemy znaleźć największy zbiór X taki, że X jest lasem.

Łatwo możemy rozwiązać problem w czasie O(2n).

Czy można szybciej? np. O((2 − )n) dla pewnego  > 0?

Zaproponujemy algorytm rozgałęziający się o złożoności O(1.8907n)

(12)

Stan algorytmu w każdym węźle drzewa przeszukiwań:

I F – zbiór wybranych wierzchołków do lasu,

I w F wyróżnony jest dokładnie jeden wierzchołek, nazwijmy go aktywnym, i oznaczmy go przez t.

Równoważna reprezentacja – każdą spójną składową indukowaną przez F możemy ‘ściągnąć’ do punktu i usunąć wierzchołki z G , które mają dwie krawędzie do jednego ze ‘ściągniętych’ punktów. Wtedy:

I F – zbiór niezależny (wierzchołki z F ),

I w F wyróżnony jest dokładnie jeden wierzchołek, nazwijmy go aktywnym, i oznaczmy go przez t.

(13)

minimalny zbiór rozcyklający

W jednym kroku algorytmu:

I w pierwszej kolejności wyrzucamy z grafu wierzchołki stopnia 0 oraz 1, (wkładamy je do zbioru F )

I jeżeli t nie jest izolowany, wybieramy jeden z wierzchołków v przyległych do t i rozgałęziamy się: albo dodajemy v do F albo usuwamy go z grafu (rozgałęzienie typu II),

I jeżeli t jest izolowany, zamieniamy go na inny z F , który ma jakiś sąsiadów,

I jeżeli wszystkie wierzchołki z F są izolowane, wybieramy dowolny wierzchołek v z V − F i rozgałęziamy się: usuwamy v z grafu bądź dodajemy v do F i czynimy go aktywnym (rozgałęzienie typu I).

Poprawność algorytmu: dla każdego v rozpatrujemy przypadki: albo v ∈ F albo v /∈ F , chyba że na wczesniejszym etapie wiadomo, że dodanie v do F utworzyłoby cykl. A zatem jeżeli X to pewien maksymalny las w G , to istnieje ścieżka w drzewie rozgałęzień prowadząca do F = X .

(14)

Dla wierzchołka v ∈ V \ F przyległego do t definiujemy jego stopień rozszerzony jako liczbę wierzchołków z V \ F grafu przyległych do v bądź osiągalnych z v ścieżką długości 2 przechodzącą przez wierzchołek z F różny od t.

(15)

Minimalny zbiór rozcyklający

Miara (ważenie) grafu G :

I wierzchołki z F otrzymują wagę 0,

I wierzchołki z V − F przyległe do t otrzymują wagę 1, I pozostałe wierzchołki z V − F otrzymują wagę 1.5.

Miara µG to sumaryczna miara po wszystkich wierzchołkach z G . Początkowo µ(G ) 632n.

(16)

Rekurencja:

I dążymy do szacowania T (µG) 6 T (µG− 2.5) + T (µG − 1), I dla wektora rozgałęzień (1, 2.5) mamy τ (1, 2.5) = 1.5290, I w ogólności dostaniemy, że liczba liści jest ograniczona przez

T (µG) 6 O(1.52901.5n) = O(1.8907n),

I nie możemy sobie pozwolić na wektor rozgałęzień (1, 2), gdyż wtedy (τ (1, 2))1.5= (1.6181)1.5> 2.

(17)

Minimalny zbiór rozcyklający

Rozgałęzienia typu I (wszystkie wierzchołki z F są izolowane): wybieramy wierzchołek v z V − F i rozgałęziamy się:

I pierwsze podzadanie: usuwamy v z G ,

I drugie podzadanie: dodajemy v do F i ustawiamy t = v . Nidobór wzgledem zadania początkowego:

I pierwsze podzadanie: niedobór 1.5 (tyle ważył v ),

I drugie podzadanie: niedobór co najmniej 2.5 (v ważył 1.5, który teraz jako element z F waży 0, dodatkowo co najmniej dwaj sąsiedzi v tracą 12), I wektor rozgałęzień nie gorszy niż (1.5, 2.5), czyli OK.

(18)

Rozgałęzienie typu II. Założenie: v przyległy do t ma stopień rozszerzony przynajmniej 3. Rozgałęziamy się:

I pierwsze podzadanie: usuwamy v z G

I drugie podzadanie: dodajemy v do F (i ściągamy komponent aktywny).

Nidobór wzgledem zadania początkowego:

I pierwsze podzadanie: niedobór 1 (tyle ważył v jako sąsiad t),

I drugie podzadanie: niedobór co najmniej 2.5 (v ważył 1, który teraz jako element z F waży 0, dodatkowo każdy rozszerzony sąsiad jeżeli ważył 1 (przylegał do t), waży 0 gdyż jest usuwany z grafu), jeżeli ważył 1.5 to teraz waży 1.

I wektor rozgałęzień nie gorszy niż (1, 2.5), czyli OK. Analiza nie przechodzi dla wierzchołków o stopniu rozszerzonym 2.

(19)

Minimalny zbiór rozcyklający

Rozgałęzienie typu II. Założenie: v przyległy do t ma stopień rozszerzony = 2.

Rozgałęziamy się:

I pierwsze podzadanie: dodajemy v do F

I drugie podzadanie: dodajemy dwóch sąsiadów rozszerzonych do F (i ściągamy komponent aktywny).

Poprawność. Jesteśmy w węźle drzewa rozgałęzień prowadzącym do pewnego maksymalnego lasu. Jeżeli v ma co najwyżej dwóch sąsiadów rozszerzonych, to:

I albo v jest w jakimś maksymalnym lesie,

I albo dwóch sąsiadów maksymalnych w1, w2wierzchołka v jest w jakimś maksymalnym lesie.

Dowód. Jeżeli tylko w1 jest w maksymalnym lesie, to zauważmy, że po dołożenie do X wierzchołka v sprawia, że wszystkie cykle grafu zawierają i v i w1. Tym samym, zbiór (X − w1) + v jest również maksymalnym lasem w G . Jeżeli v ma stopień rozszerzony = 1, to v jest w pewnym maksymalnym zbiorze drzewiastym (nie rozgałęziamy się)

(20)

Rozgałęzienie typu II. Założenie: v przyległy do t ma stopień rozszerzony = 2.

Rozgałęziamy się:

I pierwsze podzadanie: dodajemy v do F

I drugie podzadanie: dodajemy dwóch sąsiadów rozszerzonych do F (i ściągamy komponent aktywny).

Nidobór wzgledem zadania początkowego:

I pierwsze podzadanie: niedobór przynajmniej 2 (v ważył 1, jego sąsiedzi rozszerzeni spadają z 1 do 0 lub z 1.5 do 1),

I drugie podzadanie: niedobór co najmniej 2 (waga sąsiadów rozszerzonych spada do 0),

I wektor rozgałęzień (2, 2), nie jest gorszy niż (1, 2.5), czyli jest OK.

Cytaty

Powiązane dokumenty

Programowanie dynamiczne jest to technika projektowania algorytmów (zazwyczaj optymalizacyjnych) oparta na podziale zadania na podproblemy wzgl¦dem pewnych parametrów.. Z

Ogólnie, i-t¡ warstw¡ grafu G nazywamy pierwsz¡ warstw¦ grafu planarnego powstaªego z G przez usuni¦cie wierzchoªków z warstw od 1 do i −

Ogólnie, i-t¡ warstw¡ grafu G nazywamy pierwsz¡ warstw¦ grafu planarnego powstaªego z G przez usuni¦cie wierzchoªków z warstw od 1 do i −

krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2020/21.. Algorytmy wykªadnicze dla SAT

Algorytm A dla problemu P jest algorytmem pseudowielomianowym je»eli czas jego dziaªania jest wielomianowy w zale»no±ci od rozmiaru wej±cia przy zaªo»eniu, »e liczby na

I Zaokr¡glij (losowo) rozwi¡zanie rzeczywiste do rozwi¡zania caªkowitoliczbowego i udowodnij, »e nie jest du»o gorsze od optymalnego... Rozwa»my sieci z

Nietrudno jest zauwa»y¢, »e odwzorowanie tak okre±lone jest bijekcj¡ ze zbioru wszystkich kraw¦dzi wstecznych w zbiór wszystkich trójk¡tów T dla których X T

Trasa komiwoja»era jest unormowana je»eli wchodzi i wychodzi do ka»dego kwadratu podziaªu tylko i wyª¡cznie przez przej±cia tego kwadratu.. Niestety, istniej¡ takie zbiory punktów