1 Problemy niepodatne
W ostatnim rozdziale omówimy dwie podstawowe klasy czasowej zªo»ono±ci obliczeniowej P oraz NP i sformuªujemy jeden z siedmiu problemów mileni- jnych.
1.1 Sprowadzalno±¢ problemu ±cie»ki Hamiltona do prob- lemu speªnialno±ci
Dla digrafu G=(V,E) o n wierzchoªkach ponumerowanych kolejnymi liczbami naturalnymi ze zbioru {1, . . . , n} zdeniujemy wyra»enie logiczne (funkcj¦
zdaniow¡) fG o n2 zmiennych xij, którym nadamy warto±¢ logiczn¡ 1 wtw, gdy j-ty wierzchoªek wyst¦puje na i-tej pozycji ±cie»ki Hamiltona.
Wtedy dla ka»dego digrafu G, G ma ±cie»k¦ Hamiltona wtw, gdy wyra»e- nie fG jest speªnialne.
fG jest koniunkcj¡ wyra»e« logicznych stwierdzaj¡cych:
1. Ka»dy wierzchoªek j musi si¦ pojawi¢ na ±cie»ce: (x1j∨ x2j∨ . . . ∨ xnj), ale co najwy»ej raz: (¬xkj ∨ ¬xij)dla wszystkich k 6= i;
2. Jaki± wierzchoªek musi by¢ na i-tej pozycji: (xi1∨ xi2∨ . . . xin), ale nie dwa: (¬xik∨ ¬xij) dla wszystkich k 6= j;
3. Kolejne wierzchoªki musz¡ by¢ poª¡czone kraw¦dzi¡: dla ka»dej pary (j, i) 6∈ E oraz k ∈ {1, . . . , n − 1} : (¬xkj ∨ ¬xk+1i);
Procedura sprowadzania musi speªnia¢ dodatkowe w-ki. Najogólniej, proces sprowadzania nie mo»e by¢ trudniejszy ni» sam problem.
Zakªada¢ b¦dziemy, »e j¦zyki s¡ rekurencyjne; w zwi¡zku z tym maszyny Turinga b¦d¡ zawsze si¦ zatrzymywa¢ i do odró»nienia sªów akceptowanych od odrzucanych wykorzystamy stany MT.
1.2 Redukcje
Funkcja R : X? −→ X? jest obliczalna przez deterministyczn¡ MT M w pami¦ci logarytmicznej o ile
1. M jest wielota±mowa,
2. ma dwie wyró»nione ta±my: wej±ciow¡ i wyj±ciow¡,
3. sªowo pojawiaj¡ce si¦ na ka»dej z pozostaªych ta±m (zwanych roboczymi) w czasie oblicze« M na sªowie x dªugo±ci n jest dªugo±ci O(log n).
Niech L,L' b¦d¡ j¦zykami nad ustalonym alfabetem X.
Denicja 1.1 Redukcj¡ j¦zyka L do L' nazywamy funkcj¦ R : X? −→ X?, która jest obliczalna przez deterministyczn¡ MT w pami¦ci logarytmicznej i sprowadzaj¡c¡ L do L':
∀x∈X? x ∈ L ←→ R(x) ∈ L0 Niech C b¦dzie klas¡ zªo»ono±ci.
Denicja 1.2 J¦zyk L ∈ C jest zupeªny dla C, je±li dla ka»dego L0 ∈ C istnieje redukcja L' do L.
Obecnie zajmiemy si¦ dwiema klasami zª»ono±ci: P jest klas¡ wszyskich j¦zyków rozpoznawanych przez deterministyczne maszyny Turinga w cza- sie wielomianowym; NP jest klas¡ wszyskich j¦zyków rozpoznawanych przez maszyny Turinga w czasie wielomianowym.
Twierdzenie 1.3 Niech M b¦dzie maszyn¡ Turinga, która jest determin- istyczna i operuje pami¦ci¡ O(log n). Wtedy M ma wielomianow¡ czasow¡
zªo»ono±¢ obliczeniow¡.
Twierdzenie 1.4 ( COOK (1971)) J¦zyk SAT wyra»e« logicznych, które s¡ speªnialne jest zupeªny w klasie NP.
wiczenie Wyka», »e SAT ∈ NP.
Dowód polega na zbudowaniu w pami¦ci logarytmicznej dla dowolnej MT M, operuj¡cej wej±ciowym alfabetem X , o wielomianowej czasowej zªo»ono±ci obliczeniowej, oraz dowolnego sªowa x ∈ X?wyra»enia logicznego R(x), które jest speªnialne wtw, gdy x jest akceptowane przez M.
Zaªó»my, »e maszyna M maj¡c na wej±ciu sªowo x wykonuje co najwy»ej
|x|k ruchów przed zaakceptowaniem lub odrzuceniem sªowa.
Poniewa» M jest lewostronnie ograniczona, aby prze±ledzi¢ dziaªanie M na x wystarczy obserwowa¢ tablic¦ T |x|k na |x|k, gdzie wiersze odpowiada¢
b¦d¡ ta±mie M w kolejnych krokach oblicze«: T(i,j) reprezentuje j-t¡ pozycj¦
na ta±mie w i-tym kroku oblicze«. Nale»y te» uwzgl¦dni¢ stany M, wi¦c elementy T nie b¦d¡ tylko literami ale równie» trójkami (stan, litera, numer- nastepnej-instrukcji). Je»li stan jest ko«cowym, b¦dzie nas tylko interesowa¢, czy jest akceptuj¡cy.
Formalnie:
• Γ oznacza zbiór symboli mog¡cych pojawi¢ si¦ w tablicy.
• q oznacza maksymaln¡ ilo±¢ instrukcji, które M mo»e wykona¢ w ka»dej konguracji; zakªadamy »e denicja M obejmuje numerowanie kole- jnymi liczbami naturalnymi wszystkich instrukcji dotycz¡cych danej konguracji (stan, litera).
• Obliczenia zatrzymuj¡ si¦ dokªadnie w |x|k− 1 krokach, czyli wiersz o numerze |x|k− 1odpowiada konguracji ko«cowej.
Je»li w wierszu |x|k − 1 pojawia si¦ konguracja akceptujaca, to tablic¦ T nazywamy akceptuj¡c¡.
Oczywi±cie, sªowo x jest akceptowane przez M wtw, gdy istnieje akceptu- j¡ca tablica oblicze« M na x.
Podobnie jak dla problemu ±cie»ki Hamiltona, skonstruujemy wyra»enie logiczne, koduj¡ce wszystkie tablice oblicze« M na x, które jest speªnialne dokªadnie, gdy jedna z nich jest akceptuj¡ca. Wprowadzamy zmienne TijY, gdzie i, j ∈ {0, 1, . . . , |x|k− 1}, Y ∈ Γ. R(x) wyra»a:
1. dla ka»dych i,j prawdziwa jest dokªadnie jedna zmienna TijY;
^
i,j
_
Y
(TijY ∧ ^
Z6=Y
(¬TijY ∨ ¬TijZ))
2. zbiór {T0jY} opisuje konguracj¦ pocz¡tkow¡ M z x na wej±ciu; Niech x = a1a2...an, czyli n = |x|
(a) T00B
(b) T01Y1∨ . . . ∨ T01Yq, gdzie Yi odpowiada za wybór kolejnej instrukcji i 6 q
(c) V26i6nT0iai (d) Vn<i<nk−1T0iB
3. zbiór {TijY} dla i = |x|k− 1opisuje konguracj¦ ko«cow¡;
_
0<j6nk−1
(_
Z∈F
Tnk−1jZ)
gdzie F jest zbiorem stanów ko«cowy akceptuj¡cych.
4. zbiór {Ti+1jY}powstaje z {TijY}przez wykonanie instrukcji M; element (i+1,j) w tablicy oblicze« jest jednoznacznie okre±lony przez elementy (i,j-1), (i,j), (i,j+1). Mo»na zdeniowa¢ predykat f(V,X,Y,Z), który mówi, »e Z jest na pozycji j, o ile w poprzednim kroku oblicze« V, X, Y byªy na pozycjach j-1, j, j+1.
^
0<i<nk−1
^
0<j<nk−1
( _
f (V,X,Y,Z)
Tij−1V ∧ TijX ∧ Tij+1Y ∧ Ti+1jZ)
Udowodnij, »e wygenerowanie wyra»enia R(x) mo»na przeprowadzi¢
w pami¦ci logarytmicznej.
Denicja 1.5 Wyra»enie logiczne jest w postaci normalnej koniunkcyjnej PNK, je»li jest koniunkcj¡ alternatyw zmiennych lub ich zaprzecze«.
Symbolem PNK oznaczymy zbiór wszystkich takich wyra»e«, SAT-PNK oznacza zbiór wszystkich wyra»e« w PNK, które s¡ speªnialne.
UWAGA Nie wszystkie wyra»enia logiczne rozwa»ane wcze±niej byªy koniunkcjami alternatyw zmiennych zdaniowych lub ich zaprzecze«, chocia»
ªatwo je zast¡pi¢ równowa»nymi w tej postaci.
W istocie mo»na udowodni¢
Twierdzenie 1.6 J¦zyk SAT-PNK jest NP-zupeªny.
Na zako«czenie przedstawimy trzy NP-zupeªne problemy grafowe.
W tym celu rozwa»ymy j¦zyk SAT-3PNK speªnialnych wyra»e« w PNK, w której ka»da alternatywa ma co najwy»ej trzy elementy.
Zadanie Rozwa»my wyra»enie logiczne f(x) = x1∨ x2∨ . . . ∨ xm, gdzie m > 3oraz g(x, y) = (x1∨x2∨y1)∧(¬y1∨x3∨y2)∧. . .∧(¬ym−3∨xm−1∨xm). Wyka», »e Ka»de warto±ciowania zmiennych x, dla których f staje si¦ zdaniem prawdziwym, wyznacza warto±ciowanie zmiennych x, y, dla których g staje si¦ zdaniem prawdziwym oraz ka»de warto±cowanie x, y, przy którym g staje si¦ prawdziwe, jest te» warto±ciowaniem przy którym f staje si¦ prawdziwe.
Twierdzenie 1.7 J¦zyk SAT-3PNK jest NP-zupeªny.
Dowód twierdzenia opiera si¦ o powy»sze zadanie, które daje redukcj¦
problemu SAT-PNK do SAT-3PNK i nast¦puj¡cy
Lemat 1.8 Je»eli R jest redukcj¡ j¦zyka L1 do L2, a R0 redukcj¡ L2 do L3, to R0◦ R jest redukcj¡ L1 do L3.
Dowód Poniewa» R, R0 s¡ redukcjami otrzymujemy od razu, »e x ∈ L1 wtw, gdy R0(R(x)) ∈ L3. Istotne jest, czy obliczanie R0(R(x))mo»na przeprowadzi¢
w pami¦ci logarytmicznej. Niech MR, MR0 b¦d¡ maszynami Turinga, które obliczaj¡ R i R0 odpowiednio, w pami¦ci logarytmicznej. M konstruujemy nast¦puj¡co: skªadamy obie maszyny w jedn¡ trakuj¡c ta±m¦ wej±ciow¡ MR jako wej±ciow¡ M, a ta±m¦ wyj±ciow¡ MR0 jako wyj±ciow¡ M. Wtedy ta±ma wyj±ciowa MR nie mo»e by¢ ta±m¡ robocz¡ M, bo na niej mog¡ si¦ pojawia¢
zbyt dªugie sªowa. Nale»y zamiast niej u»y¢ ta±my, na której generowane b¦d¡ numery liter wyj±cia MR potrzebne do symulowania instrukcji MR0. Nale»y zbudowa¢ M, która:
1. maj¡c na wej±ciu x i na tej ta±mie i symuluje obliczenia MR aby wyp- isa¢ i-t¡ liter¦ R(x),
2. potem wykonuje jedn¡ instrukcj¦ MR0.
Wniosek 1.9 Niech j¦zyk L ∈ NP b¦dzie NP -zupeªny. Je±li istnieje re- dukcja j¦zyka L do j¦zyka L0 ∈ N P, to L0 jest NP - zupeªny.
1.3 Problem zbioru niezale»nego
Niech G=(V,E) b¦dzie grafem. Zbiór wierzchoªków I nazywamy nieza- le»nym, je±li »adne dwa wierzchoªki z I nie s¡ poª¡czone kraw¦dzi¡. Oczy- wi±cie ka»dy graf ma zbiór niezale»ny!
Problem ZN Dla grafu G=(V,E) i k ∈ N rozstrzygn¡¢, czy G ma zbiór niezale»ny mocy k.
Twierdzenie 1.10 Problem zbioru niezale»nego jest NP-zupeªny.
Dowód Sprowadzenie j¦zyka SAT-3PNK do problemu ZN.
Idea: wyra»eniu α = V16i6m(αi1 ∨ αi2 ∨ αi3) przyporz¡dkujemy graf o 3m wierzchoªkach, który posiada zbiór niezale»ny mocy m wtw, gdy wyra»enie α jest speªnialne. Wprowadzamy wierzchoªki αij, 1 6 i 6 m, 1 6 j 6 3, kraw¦dziami ª¡czymy te, które nale»¡ do jednego elementu koniunkcji oraz te, które odpowiadaj¡ zmiennej i jej zaprzeczeniu (patrz rysunek!).
Je±li wyra»enie α jest speªnialne, to przy pewnym warto±ciowaniu zmi- ennych w nim wystepuj¡cych, ka»da z koniunkcji ma warto±¢ 1, a pewien
@
x2 @x3 x1
@
¬x2 @¬x3
¬x1
@
x2 @x3
¬x1
& %
Rysunek 1: (x1∨ x2∨ x3) ∧ (¬x1∨ ¬x2∨ ¬x3) ∧ (¬x1∨ x2∨ x3)
skªadnik ka»dej z alternatyw równie» ma warto±¢ 1. Do zbioru niezale»nego wybieramy po jednym takim skªadniku. Odwrotnie, ka»dy zbiór niezale»ny wyznacza takie warto±ciowanie, »e dokªadnie jeden skªadnik ka»dej z alter- natyw ma warto±¢ 1.
1.4 Przykªad dwóch pokrewnych problemów NP-zupeª- nych
Problem kliki: Dla grafu G i k ∈ N rozstrzygn¡¢, czy istnieje peªny pod- graf G o k wierzchoªkach.
Problem pokrycia wierzchoªkowego: Dla grafu G i k ∈ N rozstrzygn¡¢, czy istnieje k-elementowy zbiór B wierzchoªków taki, »e ka»da kraw¦d» w G jest koincydentna przynajmniej z jednym wierzchoªkiem z B.
atwo sprowadzi¢ problem zbioru niezale»nego, do ka»dego z tych prob- lemów.
Zbiór K ⊆ V grafu G=(V,E) jest klik¡ wtw, gdy jest zbiorem niezale»nym grafu G=(V,E'), gdzie {i, j} ∈ E0 ←→ {i, j} 6∈ E.
Zbiór K ⊆ V grafu G=(V,E) jest pokryciem wierzchoªkowym wtw, gdy zbiór V-K jest niezale»ny.
1.5 Problem P=NP
Problem P=NP jest jednym z siedmiu wielkich problemów milenijnych. Prob- lemy te zostaªy sformuªowane w czasie sesji Clay Mathematical Institute w College de France w Pary»u w maju 2000 r przez znanych uczonych J.Tate i M.Atyiaha. Za rozwi¡zanie ka»dego z tych problemów jest wyznaczona na- groda w wysoko±ci 1 miliona dolarów. Cho¢ dominuje prze±wiadczenie, »e nie jest prawd¡, i» P=NP (prównaj Hopcroft, Ullman str. 419-423) nie brak
te» prób udowodnienia tej równo±ci. Standardowo poszukuje si¦ algorytmów deterministycznych o wielomianowej zªo»ono±ci czasowej dla problemów NP- zupeªnych.
A wi¦c do dzieªa!
Mam nadziej¦, »e nagroda miliona dolarów jest wystarczaj¡c¡ zach¦t¡, cho¢ i wzgl¦dy praktyczne s¡ równie wa»ne, gdy» lista problemów NP-zupeªnych jest bardzo dªuga i zawiera mnóstwo praktycznych (dla informatyków) prob- lemów. Wystarczy tu wspomnie¢ o problemie caªkowitoliczbowego programowa- nia liniowego czy problemie komiwoja»era.