Upload
vkajnskvja
View
61
Download
0
Embed Size (px)
Citation preview
Podstawy analizy algorytmów
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).
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.
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ść.
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
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
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)).
Podstawy analizy algorytmów
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.
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.
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)
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.
Podstawy analizy algorytmów
|FA(Gk+1) – FO(Gk+1)| = |FA(Gk+1) – (k+1)FO(G)| ≤ k
Podstawy analizy algorytmów
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.
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(∆)
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
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)
Podstawy analizy algorytmów
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
Podstawy analizy algorytmów
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]
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.
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
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.
Podstawy analizy algorytmów
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.
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.
~
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.
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).
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]).
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]).
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”.
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]).
KONIECKONIEC