36
Podstawy analizy algorytmów

W13 - Jak sobie radzić z NPH

Embed Size (px)

Citation preview

Page 1: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 2: W13 - Jak sobie radzić z NPH

Co możemy zrobić, kiedy musimy rozwiązać jeden z tych trudnychproblemów? Istnieją trzy ogólne podejścia.

1. Prawie na pewno rozwiązanie. Algorytm tego rodzaju:

(a) będzie działał w czasie wielomianowym

(b) kiedy znajdzierozwiązanie,to rozwiązanieto będzie zawsze

Podstawy analizy algorytmów

(b) kiedy znajdzierozwiązanie,to rozwiązanieto będzie zawszepoprawne

(c) nie zawsze znajdzie rozwiązanie, ale „prawie zawsze” (wtymsensie, że stosunek liczby sukcesówdo łącznej liczbyprzypadkówmoże być tak bliski 1, jak sobie sami tegożyczymy).

Page 3: W13 - Jak sobie radzić z NPH

Co możemy zrobić, kiedy musimy rozwiązać jeden z tych trudnychproblemów? Istnieją trzy ogólne podejścia.

2. Prawie zawsze szybko. Algorytm tego rodzaju:

(a) zawsze znajdzie prawidłowe rozwiązanie

(b) będzie operowałw średnim czasiewielomianowym,co jest

Podstawy analizy algorytmów

(b) będzie operowałw średnim czasiewielomianowym,co jestlepsze niż w wykładniczym, chociaż okazjonalnie możewymagać czasu wykładniczego.

Page 4: W13 - Jak sobie radzić z NPH

Co możemy zrobić, kiedy musimy rozwiązać jeden z tych trudnychproblemów? Istnieją trzy ogólne podejścia.

3. Prawie optymalne rozwiązanie. Algorytm tego rodzaju:

(a) zawsze działa w czasie wielomianowym

(b) zawszedajejakiś wynik

Podstawy analizy algorytmów

(b) zawszedajejakiś wynik

(c) gwarantuje,że wynik nie będzie oddalony od optymalnegorozwiązania o więcej, niż pewna ustalona wartość.

Page 5: W13 - Jak sobie radzić z NPH

Niech A będzie algorytmem, który generuje rozwiązaniesuboptymalne dla każdej instancjiI problemuΠ. Niech FO(I) > 0będzie wartością rozwiązania optymalnego dlaI i niech FA(I) > 0będzie wartością rozwiązania generowanego przezA.

Podstawy analizy algorytmów

Dla pewnej stałejk algorytm A jest k-absolutnie aproksymacyjny,jeśli dla każdej instancjiI problemuΠ mamy:

|FO(I) − FA(I)| ≤ k

Page 6: W13 - Jak sobie radzić z NPH

A jestk-aproksymacyjnym(albok-względnie aproksymacyjnym)algorytmemdla pewnej stałejk > 1, jeśli dla każdej instancjiIproblemuΠ

f(I) ≤ k, gdzie

f(I) = max{FO(I)/FA(I), FA(I)/FO(I)}

Podstawy analizy algorytmów

=),(/)(

),(/)()(

IFIF

IFIFIf

AO

OA jeśli Π jest minimalizacyjny

jeśli Π jest maksymalizacyjny

lub

Page 7: W13 - Jak sobie radzić z NPH

A(ε) jest schematemaproksymacyjnym, jeśli dla każdegoustalonegoε > 0 i instancjiI, A(ε) generuje rozwiązanie przybliżoneFA(I) takie,że:

f(I) ≤ 1 + ε

Schemataproksymacyjnyjest wielomianowy, jeśli jego czas

Podstawy analizy algorytmów

Schemataproksymacyjnyjest wielomianowy, jeśli jego czasobliczeń jest wielomianemwzględemrozmiarun problemu.

Schemat aproksymacyjny, którego czas obliczeń jestwielomianowy zarówno pod względem rozmiarun, jak i stosunku1/ε nazywamy:

całkowicie wielomianowym schematem aproksymacyjnym(Fully Polynomial-Time Approximation Scheme(FPTAS)).

Page 8: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 9: W13 - Jak sobie radzić z NPH

Istnieje bardzo mało NP-trudnych problemówoptymalizacyjnych, które posiadają algorytmy tegorodzaju. Jednymz nich jest wyznaczanie minimumkolorów potrzebnych do pokolorowania wierzchołkówgrafu planarnego.

Analogicznym problemem jest k-kolorowaniekrawędziowegrafuG, gdziecelemjestprzydzieleniek

Podstawy analizy algorytmów

krawędziowegrafuG, gdziecelemjestprzydzieleniekkolorów do krawędzi G w taki sposób,że każde dwiekrawędzie o wspólnym wierzchołku mają różnekolory. Indeks chromatyczny G, oznaczanyχ’ (G), jestnajmniejszą liczbą k, dla którejG jest k-kolorowalnykrawędziowo.

Page 10: W13 - Jak sobie radzić z NPH

gdzie

1)(' +∆≤≤∆ Gχ

Z twierdzenia Vizinga [1964] wynika, że

Podstawy analizy algorytmów

∆ = ∆(G) jest stopniem grafu G

Zatem bardzo łatwo można obliczyć wartość indeksuchromatycznego grafuG z dokładnością do jednego koloru.

Page 11: W13 - Jak sobie radzić z NPH

procedure PlanarColorability(G);begincase: V = ∅ : return (0);: E = ∅ : return (1);

Łatwo zauważyć, że następująca procedura działa w czasieproporcjonalnymdo ilości wierzchołków.

Podstawy analizy algorytmów

Kolorowalność grafów planarnychKolorowalność grafów planarnych

}O(1)}O(1)

: V = ∅ : return (0);: E = ∅ : return (1); : G jest dwudzielny : return (2);: else return(4);end end;

Warto również zauważyć, że w tym przypadku, na mocytwierdzenia o 4 barwach, mamy FA(G) – χ(G) ≤ 1, gdzieχ(G)jest liczbą chromatyczną G.

}O(1)}O(n)}O(1)

Page 12: W13 - Jak sobie radzić z NPH

Jeśli P ≠ NP, to żaden wielomianowy algorytmaproksymacyjny dla problemu maksymalnego zbioruniezależnego danego grafuG nie może zagwarantowaćponiższejnierówności:

Podstawy analizy algorytmów

Twierdzenie:

poniższejnierówności:

|FO(G) − FA(G)| ≤ k

dlażadnej stałejk.

Page 13: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

|FA(Gk+1) – FO(Gk+1)| = |FA(Gk+1) – (k+1)FO(G)| ≤ k

Page 14: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 15: W13 - Jak sobie radzić z NPH

Zgodnie z definicją każdy z 1-absolutnie aproksymacyjnychalgorytmówwspomnianych wcześniej jest 4/3- aproksymacyjny.

W tej części wykładu poznamy dwa wyjątkowo prostealgorytmy grafowe, które są 2-aproksymacyjne.

Pierwszymnaszymproblememjest NP-trudnekolorowaniekrawędzi.

Podstawy analizy algorytmów

krawędzi.

Page 16: W13 - Jak sobie radzić z NPH

procedure NaiveColor(G);

begin

c := 1;

for każda e ∈ E do

begin

Naiwne kolorowanie krawędziNaiwne kolorowanie krawędzi

Podstawy analizy algorytmów

}O(m) = O(n2)

begin

niech C ⊆ {1, ..., c} będzie zestawem kolorów

dopuszczalnych dla e;

if C ≠ ∅ then pokoloruj edowolnym kolorem z C

else beginc := c + 1; pokoloruj ekolorem c end

end

end;

} O(∆)

Page 17: W13 - Jak sobie radzić z NPH

Jeśli graf G jest dany w postaci wierzchołkowo-krawędziowych list incydencji, to do pokolorowania krawędzie = {vi, vj} musimy sprawdzić (deg(vi) − 1) + (deg(vj) − 1) < 2∆kolorówna listach wierzchołkówvi i vj .

Złożoność tego algorytmu jest zatem O(n3).

Podstawy analizy algorytmów

Złożoność tego algorytmu jest zatem O(n ).

NaiveColor jest algorytmem2-aproksymacyjnym

Page 18: W13 - Jak sobie radzić z NPH

procedure NaiveCover(G);

begin

1. C := ∅ ;

2. E* := E;

3. while E* ≠ ∅ do begin

Podstawy analizy algorytmów

Naiwne pokrycie wierzchołkoweNaiwne pokrycie wierzchołkowe

}O(m)

}O(m)3. while E* ≠ ∅ do begin

4. niech {u, v} będzie dowolną krawędzią w E*;

5. C := C ∪ { u, v};

6. usuń z E* każdą krawędź incydentną z u lub v;

end

end;

}O(m)

Page 19: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 20: W13 - Jak sobie radzić z NPH

Czas działania algorytmu wynosi O(m), o ile użyjemy właściwejstruktury danych do reprezentowaniaE*

NaiveCover jest algorytmem 2- aproksymacyjnym

Podstawy analizy algorytmów

Page 21: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 22: W13 - Jak sobie radzić z NPH

Istnieje kilkadziesiąt całkowicie wielomianowych schematówaproksymacyjnych dla problemówklasycznych, z którychnajbardziej znane to:

1. Problemplecakowy – O(n(logn + 1/ε2)) [1975], O(nlog1/ε + 1/ε4)[1977]

Podstawy analizy algorytmów

[1977]

2. ProblemSumy Podzbiorów(The Subset Sum) – O(n + 1/ε3)[1977]

Page 23: W13 - Jak sobie radzić z NPH

Niech I będzie instancją problemu Π i niech length(I)będzie liczbą bitów w reprezentacjiI. Niech max(I) będziewartością największej liczby występującej w I. Bez stratyogólności, możemy założyć, że wszystkie liczby w I są

Znane są również wyniki negatywne.

Podstawy analizy algorytmów

ogólności, możemy założyć, że wszystkie liczby w I sąliczbami całkowitymi. Dla pewnego wielomianup niech Πp

będzie podproblememΠ ograniczonymdo tych instancjiI, dlaktórychp(length(I)) ≥ max(I). ProblemΠ nazywamysilnie NP-trudnym, jeśli istnieje wielomianp taki, że problemΠp jestNP-trudny.

Page 24: W13 - Jak sobie radzić z NPH

Algorytmy Pozytywne przykłady Negatywne przykładyKolorowanie grafu planarnego (k = 1)Kolorowanie krawędzi (k = 1)Maksymalna liczba zapamiętanychprogramów (k = 1)Minimalny stopień drzewa Steinera (k = 1)

Problem plecakowy

Klika

Suma podzbioru

Planarny komiwojażer (k = 3/2) Ogólny komiwojażer

k-bezwzględnieaproksymacyjne

Podstawy analizy algorytmów

Planarny komiwojażer (k = 3/2)Szeregowanie zadań niezależnych (k = 4/3)Pakowanie pudełek (k = 11/9)Suma podzbioru (k = 2)Pokrycie wierzchołkowe (k = 2)

Ogólny komiwojażerProgramowanie całkowitoliczboweOgólne kolorowanie grafuKlika

Problem plecakowy

Suma podzbioru

Problemy silnie NP-trudne

k-(względnie)

aproksymacyjne

całkowiciewielomianoweschematy aproksymacyjne

Tabela 13.1

Page 25: W13 - Jak sobie radzić z NPH

Dowód:

Przypuśćmy przeciwnie, że istnieje taki algorytmaproksymacyjny. Oznaczato, że istniejealgorytmwielomianowy

Podstawy analizy algorytmów

Twierdzenie:

Jeżeli P ≠ NP, to nie istnieje wielomianowy algorytmaproksymacyjny dla problemu komiwojażera spełniający f(I) < ∞.

aproksymacyjny. Oznaczato, że istniejealgorytmwielomianowyA spełniający f(I) ≤ k dla pewnej stałejk. Zobaczymy, jakA możebyć użyty do rozwiązania NP-zupełnego problemu CYKLUHAMILTONA w grafie.

Niech G = (V, E) będzie rozpatrywanymgrafem. Budujemydla G odpowiednią instancję I problemu komiwojażera,przyporządkowując V zestawmiast i definiując odległość d(u, v)pomiędzy dwoma miastami u i v poprzez przyjęcie, żed(u, v) = kn, gdy {u,v} ∉E i 1 w przeciwnymprzypadku.

Page 26: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Page 27: W13 - Jak sobie radzić z NPH

Oczywiście, skonstruowanieI i uruchomienieA na danychIwymaga czasu wielomianowego, ponieważ k jest niezależne odrozmiaruG. Łatwo zauważyć, że jeżeli G ma cykl Hamiltona, toFO(I) = n, jeśli zaś G nie ma takiego cyklu, toFO(I) > kn. Jestzatemogromny rozziewmiędzy tymi wartościami. Dlatego, namocy założenia dotyczącego gwarancji dlaA, będziemy miećF (I) ≤ kn wtedy i tylko wtedy, gdy G jest hamiltonowski.

Podstawy analizy algorytmów

FA(I) ≤ kn wtedy i tylko wtedy, gdy G jest hamiltonowski.Oznacza to tylko jedną możliwość - mianowicie,że FA(I) = n.Zatem hipotetyczne istnienie takiegok-aproksymacyjnegoalgorytmuA implikuje, że CYKL HAMILTONA jest w klasie Pi, w konsekwencji,że P = NP. Prowadzi to do sprzeczności zzałożeniempoczątkowym, które mówiło,że P≠ NP.

Page 28: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Najnowsze trendy w dziedzinie algorytmów Najnowsze trendy w dziedzinie algorytmów dla problemów NPdla problemów NP--trudnychtrudnych

1. Konstruowanie algorytmówwykładniczych o złożonościparametryzowanej.

W algorytmachtego typu czasdziałaniazależy nie tylkoW algorytmachtego typu czasdziałaniazależy nie tylkood rozmiaru danych, ale i od pewnego parametrukcharakteryzującego dane. Dla przykładu, można zadaćpytanie: Jaką złożoność ma problem znalezienia pokryciawierzchołkowego rozmiaruk? Okazuje się, że istnieje ideowoprosty algorytmo złożoności O(2kn), zaś najlepszy algorytmma złożoność O(1,2738kn), co oznacza,że możemy badaćgrafy mające pokrycia rzędu kilkudziesięciu wierzchołków.

~

Page 29: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Najnowsze trendy w dziedzinie algorytmów Najnowsze trendy w dziedzinie algorytmów dla problemów NPdla problemów NP--trudnychtrudnych

2. Konstruowanie superwielomianowych algorytmówaproksymacyjnych.

Na przykład, w problemie ważonego pokrycia zbioruNa przykład, w problemie ważonego pokrycia zbiorun-elementowego Cygan i in. (2009) pokazali,że dladowolnegor > 1 istnieje algorytm(1+lnr)-aproksymacyjnydziałający w czasie O(2n/r). A zatem, imwiększa dokładność(mniejszer), tym algorytmdziała dłużej. Idea tego algorytmupolega na pomyśle zmniejszania instancji problemu(kompresji danych) kosztem utraty dokładności iuruchamianiu algorytmu dokładnego na tak zmienionychdanych.

Page 30: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Najnowsze trendy w dziedzinie algorytmów Najnowsze trendy w dziedzinie algorytmów dla problemów NPdla problemów NP--trudnychtrudnych

3. Metodamierz i zwyciężaj.

Innym podejściem do tworzenia algorytmówdokładnychrozwiązujących problemy NP-trudne jest próba dowodzenia,rozwiązujących problemy NP-trudne jest próba dowodzenia,że prosty algorytmprzeszukujący przestrzeń rozwiązań jestszybszy niż to się wydaje na pierwszy rzut oka. Spójrzmy naproblem maksymalnego zbioru niezależnego. Naiwneprzejrzenie wszystkich możliwych podzbiorów zbioruwierzchołkówgrafu on wierzchołkach wymaga czasu O(2n).

Page 31: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Najnowsze trendy w dziedzinie algorytmów Najnowsze trendy w dziedzinie algorytmów dla problemów NPdla problemów NP--trudnychtrudnych

3. Metodamierz i zwyciężaj.

Dodając jednak pewne usprawnienia (np. można brać dozbioru zawszewierzchołki o stopniunie większymniż 1 orazzbioru zawszewierzchołki o stopniunie większymniż 1 orazusuwać sąsiadów wierzchołków już wybranych do zbioru),można osiągnąć znacznie lepsze rezultaty. Stosując metodęmierz i zwyciężaj staramy się mierzyć rozmiar instancjiproblemu nie w klasyczny sposób liczbą n, lecz bardziejskomplikowanym potencjałem, lepiej oddającym trudnośćinstancji. W ten sposób przyspieszono algorytmdlaznajdowania maksymalnego zbioru niezależnego do poziomuO(20.288n), o czymjuż wspominaliśmy wcześniej (Fomin i in.[2006]).

Page 32: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Najnowsze trendy w dziedzinie algorytmów Najnowsze trendy w dziedzinie algorytmów dla problemów NPdla problemów NP--trudnychtrudnych

4. Redukcja do pamięci wielomianowej.

Jedną z technik unikania wykładniczego kosztuJedną z technik unikania wykładniczego kosztupamięciowego (a tym samym możliwego poprawianiazłożoności czasowej) jest zastosowanie zasady włączeń iwyłączeń. Klasycznymwynikiem jest algorytmdla problemukomiwojażera, a ostatnio takich algorytmówdoczekał sięproblemdrzewa Steinera (Nederlof [2009]).

Page 33: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Inne technikiInne techniki

1. Zastosowanie technik rozrzedzania grafów.

Rozrzedzanie polega na tym,że zamiast badać wejściowygraf pełny, konstruujemy wielomianowo pewne pokrycieścieżkowe. Następnie nasz algorytmdziała na grafie rzadkim, np.skierowanymgrafie 2-regularnym. Dla przykładu, Thorup i Wick[2001] pokazali,że dla dowolnego grafu można skonstruować woczekiwanym czasie O(kmn1/k) strukturę danych rozmiaruO(kn1+1/k), pozwalającą na obliczenie w czasie O(k) odległościmiędzy dowolną parą wierzchołkówz błędemaproksymacji 2k-1.

Techniki rozrzedzania wprowadziły niemały zamęt wdziedzinie znajdowania maksymalnego przepływu w sieci imamy obecnie do czynienia z wieloma różnymi algorytmami„optymalnymi”.

Page 34: W13 - Jak sobie radzić z NPH

Podstawy analizy algorytmów

Inne technikiInne techniki

2. Dynamiczna orientacja grafówrzadkich.

Orientacja grafu nieskierowanego to nadanie jegokrawędziom kierunków. Ważnym problememjest konstrukcjaalgorytmów utrzymujących orientację dla rzadkiego grafudynamicznie zmieniającego się w czasie, tak aby stopniedynamicznie zmieniającego się w czasie, tak aby stopniewychodzące wszystkich wierzchołkówbyły niewielkie. Takastruktura może służyć do reprezentowania dynamicznych grafówrzadkich, ponieważ umożliwia szybkie udzielanie odpowiedzi napytania o istnienieścieżki łączącej dwa wierzchołki. Na przykładistnieje algorytm, który bazując na takiej strukturze, udzielaodpowiedzi na pytania o istnienie takiejścieżki w czasie O(√n)(Diks i Sankowski [2007]).

Page 35: W13 - Jak sobie radzić z NPH

KONIECKONIEC

Page 36: W13 - Jak sobie radzić z NPH