Algorytmika - wykªad 6
dr Anna Sasak-Oko«
Uniwersytet Marii Curie-Skªodowskiej w Lublinie
18.11.2019
Na razie wiemy tyle:
P klasa problemów, dla których istnieje wielomianowy algorytm rozwi¡zania na Deterministycznej Maszynie Turinga. np sortowanie elementów, algorytm euklidesa
NP wielomianowy algorytm rozwi¡zania istnieje jedynie na niedeterministycznej MT, a rozwi¡zanie nie jest mo»liwe w czasie wielomianowym. np. cykl Hamiltona, problem
TRAVELING SALESMAN PROBLEM
Mamy danych n miast 1,...n i nieujemne, caªkowite olegªo±ci di ,j, mi¦dzy ka»dymi dwoma miastami i i j (zakªadamy »e odleglo±ci s¡
symetryczne, tzn. di ,j = dj ,i dla dowolnych i i j).
Naszym zadaniem jest znalezienie najkrótszej trasy prowadz¡cej przez wszystkie miasta, tzn. permutacji π takiej, »e suma Σni =1dπ(i ),π(i +1) jest tak maªa jak to tylko jest mo»liwe. (przez π(n +1) rozumiemy π(1))
Wersj¦ decyzyjn¡ problemu TSP(D) deniujemy analogicznie jak MAX FLOW(D), tzn. razem z macierz¡ di ,j podajemy caªkowite ograniczenie B (bud»et komiwoja»era) i pytamy czy istnieje trasa komiwoja»era o dªugo±ci co najwy»ej B.
Algorytm naiwny → przej»e¢ wszystkie mo»liwe rozwi¡zania, obliczy¢ koszt ka»dego z nich i wybra¢ najlepsze. Czas jest proporcjonalny do n! (12(n −1)1 tras do rozwa»enia).
Z drugiej strony ograniczenie pami¦ciowe jest bardzo dobre proporcjonalne do nlogn gdy» algorytm musi pami¦ta¢ jedynie aktualnie badan¡ permutacj¦ i najlepsz¡ z dotychczasowych tras.
Nie s¡ znane algorytmy o czasie wielomainowym dla TSP. Mo»na jedynie nieco poprawi¢ ograniczenie czasowe n! stosuj¡c metody programowania dynamicznego (ale wymagania pami¦ciowe wzrastaj¡ do wykªadniczych).
Istniej¡ tak»e metody heurystyczne, które dziaªaj¡ efektywnie i daj¡
w wyniku trasy niewiele gorsze od optymalnych, jezeli stosuje si¦ je do 'typowych' przykªadów.
Je»eli jednak poszukujemy optimum to obecny stan wiedzy oferuje jedynie rozwi¡zania wykªadnicze.
HAMILTON PATH
Dla zadanego grafu chcemy stwierdzi¢ czy istnieje ±cie»ka, która przechodzi przez ka»dy wierzchoªek dokªadnie raz.
Na poni»szym rysunku ±cie»ka Hamiltona zaznaczona jest pogrubion¡ lini¡
Klasa NP (jak tez i inne klasy) zawiera niesko«czenie wiele j¦zyków.
Wspomniane wcze±niej:
TSP(D) SAT
REACHABILITY (∈ P ∈ NP) CIRCUIT VALUE (∈ P ∈ NP)
Intuicja podpowiada »e dwa pierwsze s¡ bardziej reprezentatywne (trudniejsze?) dla NP ni» dwa ostatnie. → Potrzeba poj¦cia umo»liwiaj¡cego dokªadne okre±lenie, kiedy jeden problem jest PRZYNAJMNIEJ TAK TRUDNY jak inny. wykorzystamy do tego poj¦cie REDUKCJI.
Mówimy »e B redukuje sie do A, je»eli istnieje transformacja R, w wyniku której dla ka»dego przykªadu z problemu B powstaje równowa»ny mu przykªad R(x) problemu A
Przez równowa»no±¢ rozumiemy tutaj, »e odpowied¹ na pytania, czy R(x) jest pozytywnym przykªadem problemu A, jest
jednoczesnie odpowiedzi¡ na pytanie, czy x jest pozytywnym przykªadem problemu B.
Czyli aby obliczy¢ B dla przykªadu x, wsytarczy obliczy¢ R(x) i rozwi¡za¢ A dla tego przykªadu.
Aby poj¦cie redukcji byªo sensowne, powinno opiera¢ si¦ na najsªabszych mo»liwych obliczeniach. Za 'efektywn¡ redukcj¦' przyjmiemy redukcj¦ w pami¦ci ograniczonej przez log(n).
Powiemy wi¦c, »e j¦zyk L1 jest redukowalny do L2, je»eli istnieje funkcja R okre±lona na sªowach i o warto±ciach w zbiorze sªów, obliczana przez maszyn¦ Turinga wykorzystuj¡c¡ pami¦¢ O(log(n)), taka »e dla ka»dego sªowa wej±ciowego x zachodzi: x ∈ L1 wtedy i tylko wtedy, gdy R(x) ∈ L2. Funkcja R jest nazywana REDUKCJ
L1 do L2.
Uwaga: redukcje speªniaj¡ce powy»sze warunki sa algorytmami wielomianowymi.
przykªad 1
HAMILTON PATH →R(X ) SAT
Niech G b¦dzie danym grafem. Skonstruujmy formuª¦ logiczn¡
R(G), która jest speªnialna wwtedy, gdy w grae G istnieje ±cie»ka Hamiltona.
Przyjmijmy, »e graf G ma n wierzchoªków: 1,2,...n. Wobec tego formuªa R(G) bedzie miaªa n2 zmiennych logicznych: xi ,j dla 1 6 i, j 6 n.
Mówi¡c nieformalnie, xi ,j b¦dzie przedstawiaªa fakt, »e wierzchoªek j jest i-tym wierzchoªkiem na ±cie»ce Hamiltona, co moze by¢ albo prawd¡ albo faªszem. Formuªa G b¦dzie w koniunktywnej postaci
Klauzule R(G) (ich koniunkcja) b¦da wyra»aªy wymagania w stosunku do xi ,j, zapewniaj¡ce, »e zmienne s¡ kodowaniem prawdziwej ±cie»ki Hamiltona:
wierzchoªek j musi pojawi¢ si¦ na ±cie»ce klauzula (x1j∨ x2j ∨ ... ∨ xnj) skonstruowana dla ka»dego j.
wierzchoªek j nie mo»e by¢ jednoczesnie i-tym i k-tym na
±cie»ce klauzula (¬xij ∨ ¬xkj) dla wszystkich j oraz i 6= k musi istnie¢ wierzchoªek, który b¦dzie na pozycji i w ±cie»ce klauzula (xi1∨ xi2∨ ... ∨ xin),
»adne dwa wierzchoªki nie mog¡ byc jednocze±nie na tej samej pozycji (¬xij ∨ ¬xik)dla wszystkich i oraz wszystkich j 6= k, dla ka»dej pary (i,j), która NIE jest kraw¦dzi¡ w grae G, j nie mo»e wystepowac bezpo±rednio po i w ±cie»ce Hamiltona (¬xki ∨ ¬xk+1,j), dla (i, j) 6∈ G, k = 1..n − 1
Twierdzenie
R jest redukcj¡ problemu HAMILTON PATH do SAT Dowód:
1. dla ka»dego grafu G formuªa R(G) ma warto±ciowanie speªniaj¡ce wwtedy gdy graf G ma ±ciezk¦ Hamiltona 2. R mozna wyliczy¢ w pami¦ci log(n)
dowód cz.1
przypu±¢my »e formuªa R(G) ma warto±ciowanie speªniaj¡ce T poniewa» T speªnia wszystkie klauzule formuªy R(G), wi¦c musi by¢ prawd¡ »e dla ka»dego j istnieje dokªadnie jedno i, takie »e T (xij) = true w przeciwnym razie klauzule (x1j∨ x2j ∨ ... ∨ xnj) i (¬xij ∨ ¬xkj)nie mogªyby wszystkie jednocze±nie by¢ speªnione
podobnie klauzule (xi1∨ xi2∨ ... ∨ xin i (¬xij ∨ ¬xik)
gwarantuj¡ »e dla ka»dego i istnieje dokªadnie jedno j, takie »e T (xij) = true
st¡d T rzeczywi±cie reprezentuje permutacj¦ π(1), ...π(n) wierzchoªków grafu G, gdzie π(i) = j wwtedy gdy T (xij) = true
dodatkowo klauzule (¬xki ∨ ¬xk+1,j), dla
(i , j ) 6∈ G , k =1..n − 1 zapewniaj¡, »e dla ka»dego k para (πk, π(k +1)) jest kraw¦dzi¡ grafu G.
a wi¦c (π(1), π(2), ...π(n)) jest ±cie»k¡ Hamiltona grafu G.
W druga stron¦: przypu±cmy, »e graf G ma ±cie»k¦ Hamiltona (π(1), π(2), ...π(n)), gdzie π jest permutacj¡. Wówczas jest
oczywiste, »e warto±ciowanie T, takie »e T (xij) = true gdy π(i) = j oraz T (xij) = false gdy π(i) 6= j speªnia wszystkie klauzule formuªy R(G)
dowód cz.2
Maj¡c dany graf G, maszyna Turinga oblicza formuª¦ R(G) w nastepuj¡cy sposób:
Najpierw maszyna pisze binarnie n liczbe wierzchoªków grafu G i na podstawie n generuje w swoim ciagu wyj±ciowym, jedna po drugiej klauzule, które nie zale»¡ od grafu (pierwsze 4). Jak na razie MT potrzebuje jedynie trzech liczników: i,j oraz k sªu»¡cych do konstrukcji indeksów zmiennych w klauzulach.
Dla ostatniej grupy klauzul, zale»nych od grafu G, maszyna M ponowie generuje w swoim ciagu roboczym , jedn¡ po drugiej, klauzule postaci (¬xki ∨ ¬xk+1,j)dla k=1,...n-1. Po wygenerowaniu takiej klauzuli MT sprawdza w swoim sªowie wej±ciowym czy (i,j) jest krawedzi¡ w grae G. Je»eli nie jest, to wypisuje klauzul¦ w ci¡gu wyj±ciowym. To ko«czy dowód.
przykªad 2
REACHABILITY →R(x ) CIRCUIT VALUE
Mamy dany graf G i chcemy skonstruowa¢ sie¢ R(G) bez zmiennych, tak¡,»e R(G) ma warto±¢ true wwtedy, gdy istnieje
±ciezka od wierzchoªka 1 do n w grae G.
Bramki sieci R(G) s¡ postaci gijk gdzie 1 6 i, j 6 n i 0 6 k 6 n oraz hijk gdzie 1 6 i, j, k 6 n.
Mówi¡c nieformalnie,
gijk=true wwtedy gdy istnieje ±ciezka w grae G od wierzchoªka i do wierzchoªka j NIE PRZECHODZCA przez ADEN wierzchoªek po±redni >k.
hijk=true wwtedy gdy w grae G istnieje ±cie»ka z wierzchoªka i do wierzchoªka j, jak poprzednio nie przechodz¡ca przez wierzchoªki
>k, ale PRZECHODZCA przez wierzchoªek k.
Typy bramek:
dla k=0 wszystkie gij0 s¡ bramkami wej±ciowymi (nie ma bramek hij0)
W szczególno±ci gij0= true wwtedy gdy i=j lub (i,j) jest kraw¦dzi¡ grafu G; w przeciwnym razie =false.
dla k=1,...,n hijk jest bramk¡ AND (tzn. s(hijk) = ∧), a jej poprzednikami s¡ gi ,k,k−1 oraz gk,j ,k−1 (tzn. w sieci R(G) istniej¡ kraw¦dzie (gi ,k,k−1, hijk) i (gk,j ,k−1, hijk)).
Bramki gijk dla k=1,...n s¡ typu OR i prowadz¡ do nich kraw¦dzie (gi ,j ,k−1, gijk) i (hijk, gijk).
g1nn jest bramk¡ wyj±ciow¡.
R(G) jest rzeczywi±cie poprawn¡ sieci¡ bez zmiennych, której bramki mo»na ponumerowa¢ liczbami 1, 2, ..., 2n3+ n2 (np.
zgodnie z niemalej¡cym porz¡dkiem trzeciego indeksu), tak by kraw¦dzie prowadziªy od bramek o mniejszych numerach do bramek o wi¦kszych numerach. Stopnie wej±ciowe bramek s¡ odpowiednie do ich rodzajów.
dowód
Poka»emy przez indukcje wzgl¦dem k, »e warto±ci bramek odpowiadaj¡ podanemu poprzednio nieformalnemu znaczeniu.
1. stwierdzenie to jest prawdziwe dla k=0 (bramki wej±ciowe) 2. nast¦pnie zauwa»my, »e jesli jest ono prawdziwe dla liczb 6 k − 1 to denicje hijk jako (gi ,k,k−1∧ gk,j ,k−1)oraz gijk jako (hijk∨ gi ,j ,k−1)gwarantuj¡, »e stwierdzenie jest prawdziwe tak»e dla k.
St¡d bramka wyj±ciowa g1nn= true wwtedy gdy istnieje ±ciezka od 1 do n nie przechodz¡ca przez wierzchoªki o numerach wiekszych ni» n ( a takich nie ma).
redukcja R mo»e by¢ obliczona w pami¦ci log(n).
Maszyna turinga, podobnie jak w poprzenim przykªadzie, przegl¡da wszystkie mo»liwe indeksy i,j,k i umieszcza w ciagu wyj±ciowym odpowiednie kraw¦dzie i typy bramek dla ka»dej zmiennej.
Konstrukcja sieci R(G) opiera si¦ na algorytmie wielomianowym dla problemu REACHABILITY → algorytm FLOYDA-WARSHALLA.
Skonstruowana sie¢ nie zawiera bramek NOT i st¡d jest sieci¡
monotoniczn¡ i ma gª¦boko±¢ liniow¡ do n.
przykªad 3
CIRCUIT SAT → SAT
Mamay dan¡ sie¢ C, dla której chcemy utworzy¢ formuª¦ logiczn¡
R(C), tak¡ »e R(C) jest speªnialna wwtedy, gdy C jest speªnialna.
Zmienne formuªy R(C) b¦d¡ zawieraªy zmienne wystepuj¡ce w C, a ponadto dla ka»dej bramki g z C bedziemy mie¢ w formule R(C) zmienn¡ oznaczon¡ tak»e przez g.
Dla ka»dej bramki sieci C wygenerujemy pewne klauzule w formule R(C).
Jezeli g jest bramk¡ zmiennej, na przykªad odpowiadajac¡
zmiennej x, to dodajemy dwie klauzule: (¬g ∨ x) i (g ∨ ¬x). Zauwa»my »e dowolne warto±ciowanie T speªniaj¡ce obie kluzule musi zachowa¢ równo±¢ T(g)=T(x) tzn. jest to CNF dla formuªy g ⇔ x
Jezeli g jest bramk¡ o warto±ci true dodajemy klauzul¦ g Je»eli jest bramk¡ o warto±ci false dodajemy klauzul¦ ¬g Je»eli g jest bramk¡ NOT, a jej poprzednikiem w sieci C jest bramka h, to dodajemy klauzule (¬g ∨ h) i (g ∨ h) czyli CNF dla (g ⇔ ¬h)
Je»eli g jest bramk¡ OR o poprzednikach h i h' dodajemy klauzule (¬h ∨ g), (¬h0∨ g )czyli CNF dla (g ⇔ (h ∨ ¬h) je»eli g jest bramk¡ AND o poprzednikach h i h' dodajemy klauzule (¬ ∨ h), (¬g ∨ h0), (¬h ∨ ¬h0∨ g )
je»eli g jest bramk¡ wyjsciow¡ to dodajemy klauzul¦ (g) Formuªa R(C) jest speªnialna wwtedy gdy sie¢ C byªa speªnialna, oraz konstrukcja formuªy R(C) mo»e byc przeprowadzona w pami¦ci log(n)
Redukcja przez uogólnienie
Nieformlanie powiemy, »e problem A jest szczególnym przypadkiem problemu B, je»eli przykªady problemu A stanowi¡ ªatwo
rozpoznawalny podzbiór przykªadów B oraz pozytywne przykªady A s¡ jednoczesnie pozytywnymi przykªadami B, a negatywne
przykªady A - negatywnymi przykªadami B.
Problem CIRCUIT VALUE jest szczególnym przypadkiem problemu CIRCUIT SAT jego przykªadami s¡ wszystkie sieci, które (tak sie skªada) nie maja zmiennych. Ponadto dla tych sieci problemy CIRCUIT VALUE i CIRCUIT SAT daj¡ identyczne odpowiedzi na pytanie, czy sie¢ jest pozytywnym przykªadem problemu. Problem CIRCUIT SAT jest uogólnieniem problemu CIRCUIT VALUE redukcja z R - funkcj¡ to»samo±ciow¡.
REACHABILITY → CIRCUIT VALUE → CIRCUIT SAT → SAT.
REACHABILITY → SAT (czy istnieje?)
Okazuje si¦ »e tak, gdy» redukcje mo»na skªada¢.
Je»eli R jest redukcj¡ j¦zyka L1 do L2 oraz R' jest redukcj¡ j¦zyka L2 do L3, to zªo»enie R*R' jest redukcj¡ L1 do L3.
Poniewa» redukowalno±¢ jest przechodnia, mo»liwe jest wi¦c uporz¡dkowanie problemów wedªug ich trudno±ci. Szczególnie interesuj¡ce b¦d¡ elementy maksymalne w tym porz¡dku.
denicja
Niech C b¦dzie klas¡ zªo»ono±ci i niech L b¦dzie j¦zykiem z klasy C.
Powiemy, »e L jest C-zupeªny, jezeli dowolny j¦zyk l0∈ C mo»e by¢
zredukowany do L.
Problemy zupeªne stanowi¡ wa»ne narz¦dzie metodologiczne teorii zªo»ono±ci. Tylko wtedy mo»emy uzna¢, »e w peªni rozumiemy problem i znamy jego zªo»ono±¢ gdy wyka»emy, »e problem ten jest zupeªny w swojej klasie zªo»ono±ci.
Najbardziej powszechnym zastosowaniem zupeªno±ci s¡
NEGATYWNE WYNIKI W ZOONOCI: spo±ród wszystkich problemów nale»¡cych do klasy C najmniej prawdopodobne jest, »e to wªa±nie problem zupeªny w tej klasie b¦dzie nale»aª do sªabszej klasy C0⊆ C. Jezeli jednak tak sie stanie, to caªa klasa C okazuje sie równa sªabszej klasie C' ( o ile tylko C' jest zamkni¦ta na redukcje)
Denicja
Powiemy, »e klasa C' jest zamkni¦ta na redukcje, jezeli dla ka»dego j¦zyka L redukowalnego do L0 ∈ C0, zachodzi tak»e L ∈ C0.
Wszystkie interesuj¡ce nas klasy maj¡ t¦ wªasno±¢ (P,NP,L,.
Problem P0 jest NP-zupeªny, gdy:
P0 ∈NP, oraz ka»dy problem klasy NP da si¦ sprowadzi¢ w czasie wielomianowym do problemu P0
Problemy NP-zupeªne byªyby wi¦c w pewnym sensie najtrudniejsze w caªej klasie NP, gdyz rozwi¡zuj¡c je , rozwi¡»emy te» wszystkie pozostaªe problemy. Czyli. np znaj¡c rozwi¡zanie problemu P0 w czasie wielomianowym na DTM, moglibysmy w czasie
wielomianowym rozwi¡za¢ ka»dy problem z klasy NP. Czyli wówczas byªoby P=NP.
Obecnie wi¦kszo±¢ teoretyków wci¡» skªania si¦ ku tezie, »e »aden efektywny algorytm dla problemu NP-zupeªnego nie istnieje.
Rozstrzygni¦cie zwi¡zku mi¦dzy P a NP jest jednym z 7 tzw.
Milenijnych Problemów ogªoszonych przez Clay Mathematics Institute w 2000r.
Problemy NP-trudne
Problemami klasy NP-trudnej nazywamy problemy obliczeniowe dla których:
znalezienie rozwi¡zania problemu nie jest mo»liwe ze zªozono±ci¡ wielomianow¡ oraz
sprawdzenie rozwi¡zania problemu nie jest mo»liwe ze zªo»ono±ci¡ wielomianow¡, oraz
sprawdzenie rozwi¡zania problemu jest co najmiej tak trudne jak ka»dego innego problemu NP.
Problemy Np-trudne obejmuj¡ zarówno problemy decyzyjne jak równie» problemy przeszukiwania czy te» problemy optymalizacyjne.
Problemy zaliczane s¡ do NP-trudnych je»eli sprawdzenie poprawno±ci rozwi¡zania wymaga zªo»ono±ci obliczeniowej co najmniej wielomianowej i jednocze±nie speªniony jest co najmniej jeden z poni»szych warunków:
rozwa»any problem NP jest problemem NP-zupeªnym rozwa»any jest problem przeszukiwania
rozwa»any jest peoblem optymalizacyjny
znalezienie rozwi¡zania problemu nie jest mo»liwe ze zªo»ono±ci¡ wielomianow¡
Problemy Np-zupeªne nale»¡ do zbioru problemów NP jak równie»
do zbioru problemów NP-trudnych.
Klasa problemu NP Klasy Zªo»ono±ci czasowej
Sprawdzenie rozwi¡zania Znalezienie rozwi¡zania problem P
zªo»ono±¢ wielomianowa:
P = O(nx)
zªo»ono±¢ wielomianowa:
NP = O(nx)
problem NP zªo»ono±¢ wielomianowa
lub wykªadnicza:
NP = O(nx)
NEXPTIME = O(Xn)
problem NP-zupeªny »ªo»ono±¢ wykªadnicza:
NEXPTIME = O(xn) problem NP-trudny zªo»ono±¢ wielomianowa
lub wykªadnicza:
P = O(nx)
EXPTIME = O(Xn)
Problem SAT i Twierdzenie Cooka
Problem SAT SATISFABILITY
DANE: Formuªa boolowska f o zmiennych x1, ..., xn∈ {0, 1}
PYTANIE: Czy istnieje warto±ciowanie dla X1, ..., xn, dla którego f jest speªniona?
Problem SAT ma szczególne znaczenie, gdy» da sie pokaza¢, »e ka»dy j¦zyk w NP jest do niego wielomianowo redukowalny. Skoro tak, to b¦dziemy dysponowali przykªadem problemu NP-zupeªnego i uzyskamy potwierdzenie sensowno±ci redukowalno±ci wielomianowej.
Twierdzenie COOKA
Problem SAT jest NP-zupeªny.
dowód - krok 1
Zgodnie z denicj¡ NP-zupeªno±ci nale»y wykona¢ dwa kroki:
1. pokaza¢, »e SAT jest w NP
2. pokaza¢, »e ka»dy problem w NP ma wielomianow¡ redukcj¦ do SAT.
Krok1: SAT jest w NP. Maszyna niedeterministyczna mo»e 'zgadn¡¢' rozwi¡zanie, a nastepnie zwerykowa¢ czy jest ono warto±ciowaniem speªniaj¡cym zadan¡ formuª¦. Operacj¦
sprawdzenia warto±ci formuªy boolowskiej mo»na wykona¢ w czasie wielomianowym ze wzgledu na jej dªugo±¢. Zatem SAT jest w NP.
dowód - krok 2
Poka»my, »e dla ka»dej niedeterministycznej maszyny Turinga M = (Q, Σ, Γ, δ, q0, B, F )dziaªaj¡cej w czasie wielomianowym p(n) i sªowa w (|w|=n) mo»na zbudowac formuª¦ boolowsk¡ f tak¡, »e M akceptuje w wwtedy, gdy dla f istnieje warto±ciowanie speªniaj¡ce.
Zauwa»my, »e poniewa» zªo»ono±¢ M jest oszacowana przez wielomian p(n), to wystarczy rozpatrywa¢ tylko komórki ta±my poªo»one o nie dalej ni» p(n) od pozycji gªowicy w stanie q0. Pozycj¦ na tasmie w q0 oznaczamy jako 0, a nastepnie numerujemy pozycje na ta±mie symetrycznie po obu stronach 0 liczbami z zakresu od -p(n) do p(n). Operacje przesuni¦cia gªowicy w prawo i lewo b¦dziemy identykowali z dodaniem odpowiednio +1 i -1 do
Niech q ∈ Q, −p(n) 6 i 6 p(n), j ∈ Σ, 0 6 k 6 p(n). Kodowanie maszyny zaczniemy od podania zmiennych boolowskich, które wystepuj¡ w naszej formule:
Tijk jest prawdziwa (=1) ⇔ i-ta komórka na ta±mie zawiera symbol j w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)2).
Hik jest prawdziwa ⇔ gªowica znajduje si¦ nad i-t¡ komórk¡
ta±my w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)2).
Qqk jest prawdziwa ⇔ M jest w stanie q w k-tym kroku obliczenia. Takich zmiennych jest O(p(n)).
Za pomac¡ tak wprowadzonych zmiennych zbudujemy formuª¦
boolowsk¡, która b¦dzie wyra»aªa obliczenie M. Ogóªem mamy O(p(n)2) zmiennych.
Formuªa f jest koniunkcj¡ podformuª koduj¡cych:
Tij0 i-ta komórka w stanie q0 zawiera symbol j O(p(n)) takich elementów
Qs0 stan pocz¡tkowy (jeden)
H00 pocz¡tkowe poªo»enie gªowicy (jedno)
Tijk ⇒ ¬Tij0k dla j 6= j0 w ka»dym kroku obliczenia, w ka»dej komórce jedt dokªadnie jeden symbol. O(p(n)2) takich elementów.
Tijk = Tij (k+1)∨ Hik zmiana na tasmie mo»e nast¡pi¢ tylko na pozycji gªowicy. O(p(n)) takich elementów
∨(q,σ,g0,σ0,d )∈δ(Hik ∧ Qqk∧ Ti σk) →
(H(i +d )(k+1)∧ Qq0(k+1)∧ T(i +d )σ0(k+1)) przej±cia do kolejnego stanu w ka»dym kroku musz¡ by¢ zgodne z relacj¡
przej±cia δ O(p(n)2) takich elementów
stan po zako«czeniu obliczenia musi by¢
Przykªady problemów NP-zupeªnych
Logika problem trójspeªnialno±ci (3SAT) 3-SAT
DANE: Formuªa boolowska f w postaci 3-CNF, czyli taka, której klauzule skªadaj¡ si¦ z co najwy»ej 3 literaªów.
PYTANIE: czy f jest speªnialna?
dowód : przez wielomianowe sprowadzenie do niego z problemu CNF-SAT
Problemy grafowe(1) - znajdowanie kliki
Klik¡ - w grae nazywamy jego podgraf, którego wszystkie wierzchoªki s¡ ze sob¡ poª¡czone kraw¦dziami.(i.e klika jest podgrafem peªnym danego grafu). Klika maksymalna - taka klika,
»e nie mo»na ju» do niej doda¢ »adnego nowego wierzchoªka grafu
Problem 1 - Czy w danym grae istnieje klika rz¦du k.
Problem 2 - Jaka jest klika maksymalna dla danego grafu.
Problemy grafowe(2) - znajdowanie cyklu Hamiltona
Cykl Hamiltona jest cyklem, który odwiedza ka»dy wierzchoªek grafu dokªadnie jeden raz (za wyj¡tkiem pierwszego, od którego cykl si¦ zaczyna i w którym sie ko«czy) Prosty algorytm
rekurencyjny znajdowania wszystkich cykli i ±ciezek Hamiltona posiada zªo»óno±¢ O(n!) co czyni go praktycznie bezu»ytecznym dla wi¦kszych grafów (powy»ej 30 wierzchoªków).
Problemy grafowe(3) - pokrycie wierzchoªkowe
Pokrycie wierzchoªkowe grafu G taki podzbiór jego wierzchoªków,
»e ka»da kraw¦d¹ G jest incydentna do jakiego± wierzchoªka z tego podzbioru.
V0 jest pokryciem wierzchoªkowym grafu G = (V , E) je»eli V0 ⊂ V ∧ (∀e ∈ E , ∃v ∈ V0: v ∈ e
Znalezienie minimalnego pokrycie wierzchoªkowego jest
NP-trudnym problemem optymalizacyjnym (NP-kompletnym w wersji decyzyjnej).
Problemy grafowe (4) - problem komiwoja»era, TSP
Zagadnienie optymalizacyjne znalezienie minimalnego cyklu Hamiltona w peªnym grae wa»onym. -problem NP-trudny.
Nazwa pochodzi od typowej ilustracji problemu w¦drownego sprzedawcy (komiwoja»era): dane jest n miast, które komiwoja»er ma odwiedzi¢, oraz odlegªo±¢ / cena podró»y / czas podró»y pomi¦dzy ka»d¡ par¡ miast. Celem jest znalezienie najkrótszej / najta«szej / najszybszej drogi ª¡cz¡cej wszystkie miasta,
zaczynaj¡cej si¦ i ko«cz¡cej si¦ w okre±lonym punkcie.
W wersji decyzyjnej problemu, danymi s¡ graf i pewna liczba n, nale»y odpowiedzie¢ czy istnieje trasa komiwoja»era krótsza od n.
Tak sformuªowany problem jest NP-zupeªny.
Problemy grafowe (5) - kolorowanie grafu
Kolorowanie grafu polega w ogólno±ci na przypisaniu okre±lonym elementom skªadowym grafu (najcz¦±ciej wierzchoªkom, rzadziej kraw¦dziom lub ±cianom) wybranych kolorów wedªug ±ci±le okre±lonych reguª.
Klasyczne (czyli wierzchoªkowe) kolorowanie grafu jest zwi¡zane z przypisaniem wszystkim wierzchoªkom w grae jednej z wybranych barw w ten sposób, aby »adne dwa s¡siednie wierzchoªki nie miaªy tego samego koloru.
Liczb¡ chromatyczn¡ grafu G nazywamy liczb¦ χ(G) równ¡
najmniejszej mo»liwej liczbie kolorów potrzebnych do legalnego pokolorowania wierzchoªków grafu G.
Problem, czy dany graf jest k-kolorowalny dla danego k jest NP-zupeªny, za wyj¡tkiem k ∈ {0, 1, 2} Problem znalezienia liczby chromatycznej jest NP-trudny.
Najlepsze algorytmy aproksymacyjne realizuj¡ kolorowanie co najwy»ej ze wspóªczynnikiem O(n(loglogn)2(logn)−3) liczby chromatycznej.
Problemy grafowe - minimalne drzewo spinaj¡ce o ograniczonej wysoko±ci
problem znalezienia drzewa spinaj¡cego:
1. o minimialnym koszcie 2. o narzuconym korzeniu
3. nie przekraczaj¡cym okre±lonej wysoko±ci c
Ograniczenie c gwarantuje, »e poddrzewa przylegaj¡ce do korzenia nie maj¡ wi¦cej ni» c w¦zªów.
Je»eli z w¦zªami zwi¡zane s¡ wagi to ogranczenie c mówi, »e suma wag w »adnym poddrzewie nie mo»e by¢ wi¦ksza ni» c.
Kraw¦dzie ª¡cz¡ce podgrafy z korzeniem nazywane s¡ bramkami.
Heurystyki znajduj¡ce rozwi¡zania bliskie optymalnemu w czasie wielomianowym: Esau-Williamsa, Sharma's.
Problemy podziaªu zbioru
problem plecakowy (KNAPSACK PROBLEM) dany jest zbiór przedmiotów, ka»dy o okreslonej wadze i warto±ci.
Nalezy wypeªni¢ plecak tymi przedmiotami (z powtórzeniami), tak aby nie przekroczy¢ dopuszczalnej wagi i uzyskac
maksymaln¡ warto±¢.
problem trójpodziaªu Dla danego ograniczenia B i zbioru A skªadaj¡cego si¦ z 3q elementów o znanych wagach
caªkowitych, pytamy o istnienie podziaªu tego zbioru na q rozª¡cznych podzbiorów trójelementowych, takich »e suma wag w ka»dym z nich jest równa B
Inne
ukªadanki dwuwymiarowe
przydziaª ograniczonego miejsca i ukªadanie planu zaj¦¢ np.
sprawdzenie czy istnieje plan zaj¦¢ dopasowuj¡cy nauczycieli, klasy i godziny lekcyjne tak, aby dwie klasy nie miaªy
jednocze±nie zaj¦¢ z tym samym nauczycielem, nauczyciel nie prowadziª w tym samym czasie lekcji w dwóch ró»nych klasach
1. problem stopu nie istnieje MT, która w sko«czonej liczbie kroków rozstrzygnie czy dowolna MT zako«czy prac¦
2. problem sprawdzenia, czy formuªa klasycznej logiki predykatów jest tautologi¡ je±li dana formuªa rachunku predykatów jest tautologi¡, to umiemy si¦ o tym przekona¢ w sko«czonym czasie.
Jesli jednak nie jest to tautologia, to nie ma takiej metody, która po sko«czonej liczbie kroków pozwoliªaby przerwa¢ post¦powanie i zdecydowa¢, »e to nie jest tautologia.
3. problem pokrycie pªaszczyzny/ problem domina niech b¦d¡
dane kafelki - kwadraty podzielone przek¡tnymi na 4 cz¦±ci, z których ka»da zostaªa w pewien sposób pokolorowana. problem:
czy dowoln¡ sko«czon¡ powierzchni¦ mo»na pokry¢ kaami tak, zby s¡siaduj¡ce kae pasowaªy do siebie kolorami. Zakªadamy
dodatkowo, »e kae maj¡ ustalon¡ orientacj¦ i nie mo»na ich obraca¢, oraz »e liczba kai ka»dego typu jest nieograniczona
Co nale»y wiedzie¢?
Zna¢ poj¦cie redukcji, umie¢ poda¢ przykªady redukcji problemów fundamentalnych
Zna¢ poj¦cia problemów np-zupeªnych i np-trudnych, umie¢
wskaza¢ ró»nice pomi¦dzy nimi
poda¢ i opisa¢ przykªady problemów np-zupeªnych, np-trudnych i nierozstrzygalnych