You are on page 1of 23

Podstawy analizy algorytmw

DEFINICJA. Problem jest NP-trudny, jeli istnienie dla niego algorytmu o wielomianowym czasie dziaania implikowaoby istnienie algorytmu wielomianowego dla SPENIALNOCI.

Podstawy analizy algorytmw

Po pierwsze naley zaobserwowa, e problem NP-trudny jest co najmniej tak trudny jak kady inny w NP. Po drugie problemy NPI nie s NP-trudne. Po trzecie istniej problemy NP-trudne, ktre s niealgorytmiczne. Po czwarte wystpuj problemy algorytmiczne NP-trudne, ktre nie s NP-zupene. Tylko problem decyzyjny moe by NP-zupeny. Natomiast, problem optymalizacyjny moe by NP-trudny. Jeeli 1 jest problemem decyzyjnym i 2 jest problemem optymalizacyjnym, to moliwe jest, e 1 zredukuje si do 2 (jednak nie jest to redukcja ).

Podstawy analizy algorytmw

Generalnie mamy 3 rodzaje problemw: Problem decyzyjny Czy istnieje lepsze rozwizanie od zadanej wartoci progowej?? Warto optymalna Jaka jest warto najlepszego moliwego rozwizania?? Rozwizanie optymalne Znajd rozwizanie, ktre osiga warto optymaln!!

Podstawy analizy algorytmw

Problemy te s uoone wedug rosncej trudnoci. Na przykad, jeeli mamy optymalne kolorowanie grafu, to wystarczy policzy uyte kolory aby okreli warto liczby chromatycznej grafu. A jeeli znamy warto liczby chromatycznej, to jest trywialne, aby okreli czy graf jest k-barwny dla danego k. Przypumy, e kiedy, kto, gdzie udowodni jako, e P = NP. Jeli mamy algorytm o wielomianowym czasie dziaania dla problemw decyzyjnych, to czy moemy wwczas znale rozwizanie optymalne w wielomianowym czasie?? W wielu moemy. przypadkach

Podstawy analizy algorytmw

Przykad: Kolorowanie grafw Rozwamy problem kolorowania wierzchokw grafu G. Przypumy, e mamy procedur CanColor(G, k), ktra w wielomianowym czasie zwraca warto 1 wtedy i tylko wtedy, gdy G = (V, E) jest k-barwny.

Podstawy analizy algorytmw

Algorytm deterministyczny: Procedure OptimalColor(G, n, k); begin k := 0; repeat k := k + 1; until CanColor(G, k) ; ChromaticNumber := k; niech E bdzie V x V E; for kada krawd e E do if CanColor(G + e, k) then E := E + e; {G dy do penego grafu k-dzielnego} for i := 1 to n do koloruj vi w zachanny sposb end;

}np(n)

}n2p(n)

}n2

Podstawy analizy algorytmw

Niech p(n) bdzie zoonoci CanColor. Skoro dowolny graf o n wierzchokach moe by pokolorowany n kolorami, wiemy, e bdzie co najwyej n iteracji ptli repeat. Zoono pierwszej czci jest rwna np(n). W drugiej cz mamy |E| O(n m) = O(n), tak wic zoono pierwszej ptli for jest np(n), czyli wielomianowa. Zoono drugiej ptli for jest dokadnie O(n), bo znalezienie pierwszego wolnego koloru dla wierzchoka vi wymaga wykonania O(n) krokw, po jednym dla kadego ssiada. Zatem cay program wykonuje si w czasie wielomianowym. Problemy optymalizacyjne nie mog by NP-zupene. Mog natomiast by NP-trudne. Z drugiej strony istniej NP-trudne problemy decyzyjne, ktre nie s NP-zupene.

Podstawy analizy algorytmw

Przykad: Problem stopu Problem stopu jest problemem niealgorytmicznym, wic NP. Aby pokaza, e SPENIALNO moe by zredukowana do STOPU mona atwo skonstruowa, dla kadej formuy logicznej Q, algorytm A, ktry wczytuje t formu. Jeeli Q ma n zmiennych, wwczas A dokadnie sprawdza 2n podstawie zero-jedynkowych, sprawdzajc czy Q jest spenialne. Jeeli jest, wtedy A zatrzymuje si. Jeeli nie, wwczas A wpada w ptl nieskoczon. A zatem algorytm A zatrzymuje si na wejciu Q wtedy i tylko wtedy, gdy Q jest spenialne.

Podstawy analizy algorytmw

Wersja pseudo-Pascala dla A jest nastpujca: Procedure A; begin read(Q); i:= 0; repeat i := i + 1; generowanie nowego nowego cigu 0-1; if Q jest spenialne then return until i = 2 ; label: goto label; end;

Podstawy analizy algorytmw

Problemy NP-trudne i NP-zupene, o ile P NP

NPH

NPC NPI P

NP

Podstawy analizy algorytmw

Co powoduje, e problem jest trudny?? Nie wiadomo Jeli zbir danych wejciowych dla problemu NP-zupenego jest ograniczony, problem moe by P lub NP-zupeny. Dla problemw grafowych moemy ograniczy stopie grafu G, tj. maksymalny stopie wierzchoka w G. Problem POKRYCIE WIERZCHOKOWE CYKL HAMILTONA GRAF 3-BARWNY ZBIR WIERZCHOKW ROZRYWAJCYCH CYKLE Tabela: 12.1 P dla (G) NPC dla (G)

2 2 3 2

3 3
4

Podstawy analizy algorytmw

Grafy podkubiczne:

Podstawy analizy algorytmw

Twierdzenie Brooksa Dla kadego grafu (G) z wyjtkiem C2k+1 i K 2k+1. Z twierdzenia Brooksa wynika, e w przypadku grafw kubicznych mamy (G) 3 z wyjtkiem grafu K4.

Podstawy analizy algorytmw

Wszystkie problemy z tabeli 12.1 pozostaj NP-zupene, nawet jeli G jest grafem planarnym! Innym interesujcym zjawiskiem jest to, e dwa problemy, ktre rni si tylko nieznacznie definicj, mog rni si bardzo zoonoci. Jeden problem moe by P podczas gdy ten drugi NP-zupeny.

Podstawy analizy algorytmw

I Problemy NP-trudne CYKL HAMILTONA ZBIR UKW ROZRYWAJCYCH CYKLE NAJDUSZA CIEKA POKRYCIE WIERZCHOKOWE

II Problemy wielomianowe CYKL EULERA ZBIR KRAWDZI ROZRYWAJCYCH CYKLE NAJKRTSZA CIEKA POKRYCIE KRAWDZIOWE

Zoono II problemu

PROBLEM KOMIWOJAERA CHISKI LISTONOSZ

O(m) O(n) O(m + n) O(n) O(mn)

Tabela: 12.2

Podstawy analizy algorytmw

Animacja cyklu Hamiltona w grafie.

Podstawy analizy algorytmw

Animacja cyklu Eulera w grafie.

Podstawy analizy algorytmw

Animacja pokrycia krawdziowego w grafie.

Podstawy analizy algorytmw

Animacja pokrycia wierzchokowego w grafie.

Podstawy analizy algorytmw

Przykady te nie daj adnych odpowiedzi na pytanie: dlaczego jeden problem jest NP-zupeny, a drugi nie. Istnieje jeszcze wiele problemw otwartych w tej dziedzinie, gwnym z nich jest

Czy P = NP ???

Podstawy analizy algorytmw

W roku 2002 zapytano 100 czoowych informatykwteoretykw, w ktrym roku, ich zdaniem, problem zostanie rozwizany? Odpowiedziao 79 profesorw. Ich odpowiedzi zgrupowano postaci nastpujcej tabeli:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

2002 - 09 2010 - 19 2020 - 29 2030 - 39 2040 - 49 2050 - 59 2060 - 69 2070 - 79 2080 - 89 2090 - 99 2100 - 2110 2111 - 2199 2200 - 3000

5 12 13 10 5 12 4 0 1 0 7 0 5 5

Tabela: 12.3

Podstawy analizy algorytmw

W gronie 79 respondentw 61 sdzio, e P NP, 9 sdzio, e jest przeciwnie, za 9 udzielio innej odpowiedzi (np. adnej lub takiej, e to zaley od modelu obliczeniowego).
14 12 10 Odpowiedzi 8 6 4 2 0 2010- 2020- 2030- 2040- 2050- 2960- 2070- 2080- 2090- 2100- 2111- 220019 29 39 49 59 69 79 89 99 2110 2199 3000 Czas

KONIEC

You might also like