Professional Documents
Culture Documents
Co moemy zrobi, kiedy musimy rozwiza jeden z tych trudnych problemw? Istniej trzy oglne podejcia. 1. Prawie na pewno rozwizanie. Algorytm tego rodzaju: (a) bdzie dziaa w czasie wielomianowym (b) kiedy znajdzie rozwizanie, to rozwizanie to bdzie zawsze poprawne (c) nie zawsze znajdzie rozwizanie, ale prawie zawsze (w tym sensie, e stosunek liczby sukcesw do cznej liczby przypadkw moe by tak bliski 1, jak sobie sami tego yczymy).
Co moemy zrobi, kiedy musimy rozwiza jeden z tych trudnych problemw? Istniej trzy oglne podejcia. 2. Prawie zawsze szybko. Algorytm tego rodzaju: (a) zawsze znajdzie prawidowe rozwizanie (b) bdzie operowa w rednim czasie wielomianowym, co jest lepsze ni w wykadniczym, chocia okazjonalnie moe wymaga czasu wykadniczego.
Co moemy zrobi, kiedy musimy rozwiza jeden z tych trudnych problemw? Istniej trzy oglne podejcia. 3. Prawie optymalne rozwizanie. Algorytm tego rodzaju: (a) zawsze dziaa w czasie wielomianowym (b) zawsze daje jaki wynik (c) gwarantuje, e wynik nie bdzie oddalony od optymalnego rozwizania o wicej, ni pewna ustalona warto.
Niech A bdzie algorytmem, ktry generuje rozwizanie suboptymalne dla kadej instancji I problemu . Niech FO(I) > 0 bdzie wartoci rozwizania optymalnego dla I i niech FA(I) > 0 bdzie wartoci rozwizania generowanego przez A.
Dla pewnej staej k algorytm A jest k-absolutnie aproksymacyjny, jeli dla kadej instancji I problemu mamy: |FO(I) FA(I)| k
A jest k-aproksymacyjnym (albo k-wzgldnie aproksymacyjnym) algorytmem dla pewnej staej k > 1, jeli dla kadej instancji I problemu f(I) k, gdzie f(I) = max{FO(I)/FA(I), FA(I)/FO(I)} lub
A() jest schematem aproksymacyjnym, jeli dla kadego ustalonego > 0 i instancji I, A() generuje rozwizanie przyblione FA(I) takie, e: f(I) 1 + Schemat aproksymacyjny jest wielomianowy, jeli jego czas oblicze jest wielomianem wzgldem rozmiaru n problemu. Schemat aproksymacyjny, ktrego czas oblicze jest wielomianowy zarwno pod wzgldem rozmiaru n, jak i stosunku 1/ nazywamy: cakowicie wielomianowym schematem aproksymacyjnym (Fully Polynomial-Time Approximation Scheme (FPTAS)).
Istnieje bardzo mao NP-trudnych problemw optymalizacyjnych, ktre posiadaj algorytmy tego rodzaju. Jednym z nich jest wyznaczanie minimum kolorw potrzebnych do pokolorowania wierzchokw grafu planarnego. Analogicznym problemem jest k-kolorowanie krawdziowe grafu G, gdzie celem jest przydzielenie k kolorw do krawdzi G w taki sposb, e kade dwie krawdzie o wsplnym wierzchoku maj rne kolory. Indeks chromatyczny G, oznaczany (G), jest najmniejsz liczb k, dla ktrej G jest k-kolorowalny krawdziowo.
' (G ) +1
gdzie = (G) jest stopniem grafu G
Zatem bardzo atwo mona obliczy warto indeksu chromatycznego grafu G z dokadnoci do jednego koloru.
Kolorowalno grafw planarnych atwo zauway, e nastpujca procedura dziaa w czasie proporcjonalnym do iloci wierzchokw. procedure PlanarColorability(G); begin case : V = : return(0); : E = : return(1); : G jest dwudzielny : return(2); : else return(4); end end;
Warto rwnie zauway, e w tym przypadku, na mocy twierdzenia o 4 barwach, mamy FA(G) (G) 1, gdzie (G) jest liczb chromatyczn G.
Twierdzenie: Jeli P NP, to aden wielomianowy algorytm aproksymacyjny dla problemu maksymalnego zbioru niezalenego danego grafu G nie moe zagwarantowa poniszej nierwnoci: |FO(G) FA(G)| k dla adnej staej k.
Zgodnie z definicj kady z 1-absolutnie aproksymacyjnych algorytmw wspomnianych wczeniej jest 4/3- aproksymacyjny. W tej czci wykadu poznamy dwa wyjtkowo proste algorytmy grafowe, ktre s 2-aproksymacyjne. Pierwszym naszym problemem jest NP-trudne kolorowanie krawdzi.
Naiwne kolorowanie krawdzi procedure NaiveColor(G); begin c := 1; for kada e E do begin niech C {1, ..., c} bdzie zestawem kolorw dopuszczalnych dla e; } O() if C then pokoloruj e dowolnym kolorem z C else begin c := c + 1; pokoloruj e kolorem c end end end; }O(m) = O(n2)
Jeli graf G jest dany w postaci wierzchokowokrawdziowych list incydencji, to do pokolorowania krawdzi e = {vi, vj} musimy sprawdzi (deg(vi) 1) + (deg(vj) 1) < 2 kolorw na listach wierzchokw vi i vj . Zoono tego algorytmu jest zatem O(n3). NaiveColor jest algorytmem 2-aproksymacyjnym
Naiwne pokrycie wierzchokowe procedure NaiveCover(G); begin 1. C := ; 2. E* := E; 3. while E* do begin 4. 5. 6. end end; C := C {u, v}; usu z E* kad krawd incydentn z u lub v; }O(m) }O(m)
Czas dziaania algorytmu wynosi O(m), o ile uyjemy waciwej struktury danych do reprezentowania E*
Istnieje kilkadziesit cakowicie wielomianowych schematw aproksymacyjnych dla problemw klasycznych, z ktrych najbardziej znane to: 1. Problem plecakowy O(n(logn + 1/2)) [1975], O(nlog1/ + 1/4) [1977] 2. Problem Sumy Podzbiorw (The Subset Sum) O(n + 1/3) [1977]
Znane s rwnie wyniki negatywne. Niech I bdzie instancj problemu i niech length(I) bdzie liczb bitw w reprezentacji I. Niech max(I) bdzie wartoci najwikszej liczby wystpujcej w I. Bez straty oglnoci, moemy zaoy, e wszystkie liczby w I s liczbami cakowitymi. Dla pewnego wielomianu p niech p bdzie podproblemem ograniczonym do tych instancji I, dla ktrych p(length(I)) max(I). Problem nazywamy silnie NPtrudnym, jeli istnieje wielomian p taki, e problem p jest NP-trudny.
Algorytmy
k-bezwzgldnie aproksymacyjne
Pozytywne przykady
Kolorowanie grafu planarnego (k = 1) Kolorowanie krawdzi (k = 1) Maksymalna liczba zapamitanych programw (k = 1) Minimalny stopie drzewa Steinera (k = 1) Planarny komiwojaer (k = 3/2) Szeregowanie zada niezalenych (k = 4/3) Pakowanie pudeek (k = 11/9) Suma podzbioru (k = 2) Pokrycie wierzchokowe (k = 2) Problem plecakowy Suma podzbioru
Negatywne przykady
Problem plecakowy Klika Suma podzbioru Oglny komiwojaer Programowanie cakowitoliczbowe Oglne kolorowanie grafu Klika
Tabela 13.1
Twierdzenie: aproksymacyjny dla problemu komiwojaera speniajcy f(I) < . Dowd: Przypumy przeciwnie, e istnieje taki algorytm aproksymacyjny. Oznacza to, e istnieje algorytm wielomianowy A speniajcy f(I) k dla pewnej staej k. Zobaczymy, jak A moe by uyty do rozwizania NP-zupenego problemu CYKLU HAMILTONA w grafie. Niech G = (V, E) bdzie rozpatrywanym grafem. Budujemy dla G odpowiedni instancj I problemu komiwojaera, przyporzdkowujc V zestaw miast i definiujc odlego d(u, v) pomidzy dwoma miastami u i v poprzez przyjcie, e d(u, v) = kn, gdy {u,v}E i 1 w przeciwnym przypadku.
Jeeli P NP, to nie istnieje wielomianowy algorytm
Oczywicie, skonstruowanie I i uruchomienie A na danych I wymaga czasu wielomianowego, poniewa k jest niezalene od rozmiaru G. atwo zauway, e jeeli G ma cykl Hamiltona, to FO(I) = n, jeli za G nie ma takiego cyklu, to FO(I) > kn. Jest zatem ogromny rozziew midzy tymi wartociami. Dlatego, na mocy zaoenia dotyczcego gwarancji dla A, bdziemy mie FA(I) kn wtedy i tylko wtedy, gdy G jest hamiltonowski. Oznacza to tylko jedn moliwo - mianowicie, e FA(I) = n. Zatem hipotetyczne istnienie takiego k-aproksymacyjnego algorytmu A implikuje, e CYKL HAMILTONA jest w klasie P i, w konsekwencji, e P = NP. Prowadzi to do sprzecznoci z zaoeniem pocztkowym, ktre mwio, e P NP.
Na przykad, w problemie waonego pokrycia zbioru n-elementowego Cygan i in. (2009) pokazali, e dla dowolnego r > 1 istnieje algorytm (1+lnr)-aproksymacyjny dziaajcy w czasie O(2n/r). A zatem, im wiksza dokadno (mniejsze r), tym algorytm dziaa duej. Idea tego algorytmu polega na pomyle zmniejszania instancji problemu (kompresji danych) kosztem utraty dokadnoci i uruchamianiu algorytmu dokadnego na tak zmienionych danych.
Inne techniki
1. Zastosowanie technik rozrzedzania grafw. Rozrzedzanie polega na tym, e zamiast bada wejciowy graf peny, konstruujemy wielomianowo pewne pokrycie ciekowe. Nastpnie nasz algorytm dziaa na grafie rzadkim, np. skierowanym grafie 2-regularnym. Dla przykadu, Thorup i Wick [2001] pokazali, e dla dowolnego grafu mona skonstruowa w oczekiwanym czasie O(kmn1/k) struktur danych rozmiaru O(kn1+1/k), pozwalajc na obliczenie w czasie O(k) odlegoci midzy dowoln par wierzchokw z bdem aproksymacji 2k-1. Techniki rozrzedzania wprowadziy niemay zamt w dziedzinie znajdowania maksymalnego przepywu w sieci i mamy obecnie do czynienia z wieloma rnymi algorytmami optymalnymi.
Inne techniki
2. Dynamiczna orientacja grafw rzadkich. Orientacja grafu nieskierowanego to nadanie jego krawdziom kierunkw. Wanym problemem jest konstrukcja algorytmw utrzymujcych orientacj dla rzadkiego grafu dynamicznie zmieniajcego si w czasie, tak aby stopnie wychodzce wszystkich wierzchokw byy niewielkie. Taka struktura moe suy do reprezentowania dynamicznych grafw rzadkich, poniewa umoliwia szybkie udzielanie odpowiedzi na pytania o istnienie cieki czcej dwa wierzchoki. Na przykad istnieje algorytm, ktry bazujc na takiej strukturze, udziela odpowiedzi na pytania o istnienie takiej cieki w czasie O(n) (Diks i Sankowski [2007]).
KONIEC