Test Arka: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
Przedmiot & ''' | Przedmiot & '''Z³o¿ono¶æ obliczeniowa''' <br> | ||
Modu³ & '''13''' <br> | |||
Tytu³ & '''Pamiêæ logarytmiczna i hierarchia wielomianowa''' <br> | |||
Opracowanie & ''' | Opracowanie & '''Przemys³aw Broniek''' <br> | ||
{ Syllabus} | { Syllabus} | ||
Pamiêæ logarytmiczna i hierarchia wielomianowa | |||
* klasy L, NL i coNL, | * klasy L, NL i coNL, | ||
Linia 17: | Linia 17: | ||
* klasy coNP i DP, | * klasy coNP i DP, | ||
* maszyny | * maszyny alternuj±ce, | ||
* hierarchia wielomianowa. | * hierarchia wielomianowa. | ||
Linia 23: | Linia 23: | ||
==Klasy L, NL i coNL== | ==Klasy L, NL i coNL== | ||
W tym rozdziale zajmiemy | W tym rozdziale zajmiemy siê klasami z³o¿ono¶ci, w których dajemy bardzo restrykcyjne wymagania odno¶nie zu¿ywanej | ||
pamiêci, a mianowicie ograniczamy jej ilo¶æ przez funkcjê logarytmiczn±. Przypomnijmy: | |||
* Klasa L = SPACE(log<math>n</math>), to klasa tych | * Klasa L = SPACE(log<math>n</math>), to klasa tych jêzyków, które mog± byæ akceptowane w deterministycznej pamiêci logarytmicznej, | ||
* Klasa NL = NSPACE(log<math>n</math>), to klasa tych | * Klasa NL = NSPACE(log<math>n</math>), to klasa tych jêzyków, które mog± byæ akceptowane w niedeterministycznej pamiêci logarytmicznej, | ||
* Klasa coNL = coNSPACE(log<math>n</math>), to | * Klasa coNL = coNSPACE(log<math>n</math>), to dope³nienie klasy tych jêzyków, które mog± byæ akceptowane w niedeterministycznej pamiêci logarytmicznej, | ||
Na podstawie | Na podstawie nastêpnego rozdzia³u i twierdzenia Immermana-Szelepcsényi'ego dowiemy siê, ¿e NL=coNL . Natomiast pytanie czy L=NL pozostaje | ||
wci±¿ problemem otwartym. | |||
Przyjrzymy | Przyjrzymy siê teraz problemom zupe³nym w klasie NL. Zupe³no¶æ definiujemy przy pomocy redukcji w pamiêci logarytmicznej, gdy¿ | ||
jak wiemy, wszystkie z | jak wiemy, wszystkie z powy¿szych klas s± zawarte w klasie P (chocia¿ nie wiemy, czy ¶ci¶le). Dopuszczenie redukcji wielomianowej zniwelowa³oby jakiekolwiek ró¿nice pomiêdzy jêzykami, | ||
gdy¿ sama redukcja mia³aby moc obliczeniow± pozwalaj±c± rozwi±zaæ wszystkie problemy z tych klas. Poni¿szy problem okazuje siê byæ NL-zupe³ny: | |||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Problem REACHABILITY:<br> | Problem REACHABILITY:<br> | ||
Wej¶cie: Graf skierowany <math>G</math> oraz wierzcho³ki <math>x</math> i <math>y</math>.<br> | |||
Wyj¶cie: Czy istnieje ¶cie¿ka od <math>x</math> do <math>y</math> w <math>G</math>? | |||
}} | }} | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e problem REACHABILITY jest NL-zupe³ny. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Zwróæ uwagê na fakt, ¿e problem REACHABILITY jest zwi±zany z wykonywaniem obliczeñ przez maszynê Turinga. | |||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Poka¿my najpierw, ¿e problem REACHABILITY nale¿y do NL. | |||
U¿yjemy dwóch zmiennych <math>v</math> - wierzcho³ek bie¿±cy, oraz <math>u</math> wierzcho³ek kolejny na ¶cie¿ce od <math>x</math> do <math>y</math>. | |||
Pocz±tkowo | |||
ustawiamy <math>v:=x</math>. | ustawiamy <math>v:=x</math>. Poniewa¿ mamy do dyspozycji niedeterminizm to zgadujemy wierzcho³ek <math>u</math> i sprawdzamy, czy jest s±siedni do <math>v</math>. | ||
Je¶li nie, to przerywamy obliczenie, wiedz±c, ¿e na innej ¶cie¿ce obliczeñ przetworzymy inne mo¿liwo¶ci. | |||
Je¶li jest s±siedni to sprawdzamy czy <math>u=y</math> co oznacza, ¿e dotarli¶my do celu i akceptujemy parê <math>x</math>, <math>y</math>. W przeciwnym wypadku | |||
ustawiamy <math>v:=u</math> i kontynuujemy obliczenia. | ustawiamy <math>v:=u</math> i kontynuujemy obliczenia. | ||
Formalnie | Formalnie nale¿y jeszcze u¿yæ trzeciej zmiennej <math>licznik</math>, która zlicza liczbê kroków, tak aby ostatecznie | ||
odrzuciæ parê, gdy <math>licznik</math> przekroczy liczbê wierzcho³ków grafu. U¿yli¶my pamiêci rzêdu log <math>n</math> co koñczy dowód pierwszego faktu. | |||
Teraz musimy | Teraz musimy pokazaæ, ¿e ka¿dy inny problem z klasy NL redukuje siê do REACHABILITY | ||
poprzez | poprzez redukcjê w pamiêci logarytmicznej. We¼my dowolny jêzyk L z klasy NL i odpowiadaj±c± mu niedeterministyczn± maszynê Turinga | ||
<math>M</math>. | <math>M</math>. | ||
Rozmiar grafu konfiguracji maszyny | Rozmiar grafu konfiguracji maszyny dzia³aj±cej w pamiêci log <math>n</math> to jak wiemy <math>c^{</math> log <math>n}\in O(n)</math>, | ||
natomiast sprawdzenie czy <math>x</math> jest akceptowany przez <math>M</math> | natomiast sprawdzenie czy <math>x</math> jest akceptowany przez <math>M</math> mo¿emy sprowadziæ do istnienia ¶cie¿ki od konfiguracji pocz±tkowej | ||
do | do akceptuj±cej. Jest to zatem instancja problemu REACHABILITY na danych wielko¶ci rzêdu <math>n</math> . | ||
Nie potrzebujemy | Nie potrzebujemy konstruowaæ ca³ego grafu, a jedynie stwierdzaæ, czy dwie konfiguracje s± s±siednie, co mo¿emy zrobiæ | ||
w | w pamiêci logarytmicznej. | ||
}} | </div>}}</div> | ||
Bardzo ciekawy rezultat, który | Bardzo ciekawy rezultat, który zbli¿y³ nas do odpowiedzi na pytanie czy L=NL, uzyska³ w 2004 Reingold. Pokaza³ on, ¿e | ||
problem UNDIRECTED REACHABILITY, czyli | problem UNDIRECTED REACHABILITY, czyli osi±galno¶æ w grafie ''nieskierowanym'' nale¿y do klasy L. | ||
==Twierdzenie Immermana-Szelepcsényi'ego== | ==Twierdzenie Immermana-Szelepcsényi'ego== | ||
Ten | Ten rozdzia³ po¶wiêcony jest bardzo ciekawemu i ca³kiem m³odemu wynikowi udowodnionemu niezale¿nie | ||
przez Neila Immermana i Róberta Szelepcsényi'ego w roku 1987, za który otrzymali w 1995 | przez Neila Immermana i Róberta Szelepcsényi'ego w roku 1987, za który otrzymali w 1995 nagrodê Gödel'a. | ||
Twierdzenie mówi o tym, | Twierdzenie mówi o tym, ¿e klasy niedeterministyczne z³o¿ono¶ci pamiêciowej s± zamkniête na dope³nienie: | ||
{{twierdzenie|Immermana-Szelepcsényi'ego | {{twierdzenie|[Uzupelnij]|| | ||
(twierdzenie Immermana-Szelepcsényi'ego) | |||
Je¶li <math>f(n)</math> jest konstruowalna pamiêciowo, to NSPACE(f(n))=coNSPACE(f(n)). | |||
}} | |||
{{dowod||| | {{dowod|[Uzupelnij]|| | ||
To co | To co zosta³o pokazane przez autorów, to maszyna niedeterministyczna, która maj±c dany graf skierowany <math>G</math> i | ||
wierzcho³ek <math>x</math> potrafi obliczyæ liczbê wierzcho³ków osi±ganych z <math>x</math> w grafie <math>G</math> przy u¿yciu pamiêci log <math>n</math>. | |||
Zrobimy z niej | Zrobimy z niej u¿ytek w ostatniej czê¶ci g³ównego dowodu, gdy bêdziemy uruchamiaæ j± na grafie konfiguracji. | ||
Maszyna jest | Maszyna jest dosyæ trikowa i pokazuje jak wiele daje nam niedeterminizm. Wielokrotnie bêdziemy wykorzystywaæ fakt, | ||
¿e wystarczy nam, aby maszyna niedeterministyczna na dowolnej ¶cie¿ce dokona³a poprawnego obliczenia. Na wszystkich pozosta³ych ¶cie¿kach | |||
bêdziemy "wykrywaæ", ¿e co¶ jest nie tak i koñczyæ dzia³anie w stanie odrzucaj±cym ("poddawaæ siê"). | |||
Oznaczmy, przez <math>S(k)</math> zbiór tych | Oznaczmy, przez <math>S(k)</math> zbiór tych wierzcho³ków grafu <math>G</math>, które s± osi±gane z <math>x</math> ¶cie¿k± o d³ugo¶ci co najwy¿ej <math>k</math>. Natomiast | ||
przez <math>s(k)=|S(k)|</math> oznaczymy | przez <math>s(k)=|S(k)|</math> oznaczymy liczno¶æ tego zbioru. Naszym obiektem zainteresowania jest zatem obliczenie warto¶ci <math>s(n)</math>, | ||
czyli liczba wszystkich | czyli liczba wszystkich wierzcho³ków osi±galnych, gdy¿ <math>n</math> -- rozmiar grafu -- ogranicza d³ugo¶æ ¶cie¿ki. | ||
Pamiêtamy jednak, ¿e mamy do dyspozycji tylko logarytmiczn± ilo¶æ pamiêci, wiêc o zapamiêtaniu zbioru <math>S(k)</math> (i obliczaniu na jego podstawie | |||
<math>S(k+1)</math> co | <math>S(k+1)</math> co by³oby banalne) nie mo¿emy marzyæ - ma on wielko¶æ | ||
liniow± wzglêdem rozmiaru <math>G</math>. To brzmi niesamowicie, ale bêdziemy obliczaæ <math>s(k+1)</math> na podstawie <math>s(k)</math>! Czyli wystarczy nam liczba | |||
stosownych | stosownych wierzcho³ków, która to do zapisu potrzebuje pamiêci logarytmicznej. G³ówna pêtla algorytmu przedstawia siê nastêpuj±co: | ||
{<math>s(0):=1</math>} | {<math>s(0):=1</math>} | ||
Linia 112: | Linia 114: | ||
{Wyznacz <math>s(i)</math> na podstawie <math>s(i-1)</math>} | {Wyznacz <math>s(i)</math> na podstawie <math>s(i-1)</math>} | ||
Teraz procedura | Teraz procedura obliczaj±ca <math>s(i)</math>. Jest ona ca³kiem prosta, je¶li zastosujemy w niej pewien skrót notacyjny: | ||
{<math>s(i):=0</math>} | {<math>s(i):=0</math>} | ||
Linia 118: | Linia 120: | ||
{<math>v\in S(i)</math>}{s(i)++} | {<math>v\in S(i)</math>}{s(i)++} | ||
Lecz zbioru <math>S(i)</math> nie | Lecz zbioru <math>S(i)</math> nie byli¶my w stanie zapamiêtaæ. Zapowiedziel¶my ju¿, ¿e bêdziemy sprawdzaæ, czy wierzcho³ek do niego nale¿y, | ||
na podstawie <math>s(i-1)</math>. To najbardziej skomplikowana | na podstawie <math>s(i-1)</math>. To najbardziej skomplikowana czê¶æ algorytmu, gdzie wykorzystujemy niedeterminizm. | ||
Przegl±dniemy teraz wszystkie wierzcho³ki <math>u</math> grafu <math>G</math> i sprawdzimy, czy który¶ z nich nale¿y do <math>S(i-1)</math> w sposób niedeterministyczny. | |||
Przypomnijmy, | Przypomnijmy, ¿e taka procedura, gdy mówi "TAK", to wierzcho³ek na pewno nale¿y do <math>S(i-1)</math>, natomiast gdy mówi "NIE" to mogli¶my trafiæ na nieodpowiedni± | ||
¶cie¿kê obliczeñ. Bêdziemy jednak zliczaæ ile wierzcho³ków zgadli¶my na TAK i sprawdzimy, czy wyjdzie nam <math>s(i-1)</math>. Je¶li tak siê stanie, to bêdziemy mieæ gwarancjê, ¿e | |||
o | o ka¿dym wierzcho³ku <math>u</math> zgadli¶my dobrze. Je¶li wysz³o nam mniej, to odrzucamy, wiedz±c, ¿e na innej ¶cie¿ce obliczeñ musi nam siê udaæ. | ||
Nastêpnie sprawdzamy, czy z <math>u</math> mo¿na doj¶æ do <math>v</math> przy pomocy jednej krawêdzi w ten sposób obliczymy | |||
czy <math>v\in S(i)</math>: | czy <math>v\in S(i)</math>: | ||
Linia 136: | Linia 138: | ||
{<math>licznik<s(i-1)</math>}{NIE} {wynik} | {<math>licznik<s(i-1)</math>}{NIE} {wynik} | ||
Teraz | Teraz przejd¼my do konstrukcji maszyny obliczaj±cej, czy <math>u\in S(i-1)</math> w sposób niedeterministyczny. Algorytm jest ca³kiem prosty i podobny do tego, w którym | ||
pokazywali¶my, ¿e REACHABILITY jest w NL. | |||
Zgadujemy | Zgadujemy sekwencjê <math>k-1</math> wierzcho³ków. Rozpoczynamy od <math>x</math>. Sprawdzamy, czy ka¿dy kolejny wierzcho³ek jest s±siadem poprzedniego (lub równy poprzedniemu) | ||
oraz czy w | oraz czy w koñcu dochodzimy do <math>u</math>. W ten sposób sprawdzimy (niedeterministycznie) wszystkie ¶cie¿ki d³ugo¶ci co najwy¿ej <math>i-1</math>. | ||
Poni¿ej zapis algorytmu dla sytuacji ¶cie¿ki d³ugo¶ci <math>k</math>: | |||
{<math>p_1:=x</math>} | {<math>p_1:=x</math>} | ||
Linia 150: | Linia 152: | ||
{<math>p_k=u</math>}{TAK} {NIE} | {<math>p_k=u</math>}{TAK} {NIE} | ||
To | To ju¿ koniec algorytmu. Krótka analiza wykazuje, ¿e w trakcie jego dzia³ania musimy pamiêtaæ jedynie skoñczon± liczbê | ||
wierzcho³ków i liczb wielko¶ci co najwy¿ej <math>n</math> zatem dzia³a on w pamiêci logarytmicznej. | |||
Przejd¼my zatem do wykorzystania maszyny do udowodnienia tezy naszego twierdzenia. We¼my jêzyk <math>L</math> nale¿±cy do NSPACE(<math>f(n)</math>), gdzie | |||
<math>f(n)\geqslant </math> log <math>n</math>, | <math>f(n)\geqslant </math> log <math>n</math>, gdy¿ <math>f(n)</math> jest konstruowalna pamiêciowo. Istnieje zatem maszyna niedeterministyczna <math>M</math> akceptuj±ca | ||
<math>L</math> w | <math>L</math> w pamiêci niedeterministycznej. Musimy pokazaæ, ¿e istnieje maszyna niedeterministyczna <math>\overline{M}</math> akceptuj±ca <math>\overline{L}</math> równie¿ | ||
w | w pamiêci <math>f(n)</math>. Bierzemy graf konfiguracji <math>M</math> dla s³owa wej¶ciowego <math>x</math>. Musimy stwierdziæ, czy nie istnieje ¶cie¿ka od | ||
konfiguracji | konfiguracji pocz±tkowej do akceptuj±cej. Wtedy bowiem <math>x\notin L</math> czyli <math>M'</math> ma zaakceptowaæ <math>x</math>. | ||
Oznaczmy | Oznaczmy konfiguracjê akceptuj±c± przez <math>y</math>. | ||
Liczymy zatem zbiór <math>S(n)</math> dla grafu konfiguracji przy pomocy algorytmu z pierwszej | Liczymy zatem zbiór <math>S(n)</math> dla grafu konfiguracji przy pomocy algorytmu z pierwszej czê¶ci dowodu. | ||
Je¶li algorytm zakoñczy siê wynikiem pozytywnym, to oznacza to, ¿e <math>s(n)</math> jest policzone | |||
poprawnie. | poprawnie. Je¶li zatem w trakcie przegl±dania nie zakwalifikowali¶my wierzcho³ka <math>y</math> do ¿adnego ze zbiorów | ||
<math>S(i)</math> to znaczy, | <math>S(i)</math> to znaczy, ¿e ''nie'' jest on osi±galny. | ||
W tej sytuacji maszyna <math>M'</math> | W tej sytuacji maszyna <math>M'</math> mo¿e zaakceptowaæ s³owo <math>x</math>, które | ||
nie | nie nale¿y do <math>L</math>, a tym samym pokazujemy, ¿e <math>L\in </math> coNSPACE <math>(f(n))</math>. | ||
}} | |||
==Klasy coNP i DP== | ==Klasy coNP i DP== | ||
Wprowadzili¶my ju¿ zarówno klasê NP jak i pojêcie dope³nieñ klas. Przyjrzyjmy siê bli¿ej klasie coNP. | |||
Klasa NP, jest to zbiór tych | Klasa NP, jest to zbiór tych jêzyków, dla których mo¿emy ³atwo weryfikowaæ przynale¿no¶æ s³ów. | ||
Klasa coNP natomiast, to zbiór tych | Klasa coNP natomiast, to zbiór tych jêzyków, dla których mo¿emy ³atwo weryfikowaæ, ¿e s³owo nie nale¿y do jêzyka. | ||
Podobnie jak dla NP i twierdzenia Fagina, | Podobnie jak dla NP i twierdzenia Fagina, mo¿na scharakteryzowaæ coNP jako zbiór w³asno¶ci teoriografowych wyra¿alnych | ||
w ''uniwersalnej'' logice drugiego | w ''uniwersalnej'' logice drugiego rzêdu. | ||
Oto | Oto przyk³ady problemów z klasy coNP: | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Problem TAUTOLOGY:<br> | Problem TAUTOLOGY:<br> | ||
Wej¶cie: formu³a logiczna <math>\phi</math> jak dla problemu SAT.<br> | |||
Wyj¶cie: czy ka¿de warto¶ciowanie spe³nia <math>\phi</math>? | |||
}} | }} | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Problem HAMILTON PATH COMPLEMENT:<br> | Problem HAMILTON PATH COMPLEMENT:<br> | ||
Wej¶cie: graf nieskierowany <math>G</math>.<br> | |||
Wyj¶cie: czy <math>G</math> nie zawiera ¶cie¿ki Hamiltona? | |||
}} | }} | ||
W | W powy¿szych problemach weryfikacja negatywna s³owa wej¶ciowego jest ³atwa, | ||
bo opiera | bo opiera siê na zgadniêciu warto¶ciowania niespe³niaj±cego lub ¶cie¿ki Hamiltona. | ||
Nietrudno | Nietrudno udowodniæ (patrz æwiczenie koñcowe), ¿e s± to problemy zupe³ne dla klasy coNP. | ||
Nie jest to nic | Nie jest to nic zaskakuj±cego, bowiem równie prosto mo¿na udowodniæ, | ||
¿e je¿eli <math>L</math> jest NP-zupe³ny, to jego dope³nienie <math>\overline{L}</math> jest coNP-zupe³ne. | |||
Jak wiele | Jak wiele pytañ w teorii z³o¿ono¶ci obliczeniowej równie¿ i to, czy NP=coNP pozostaje otwarte. | ||
Mo¿emy jedynie stwierdziæ, ¿e je¿eli P=NP, to NP=coNP, gdy¿ P jest zamkniêta na dope³nienie. | |||
Jednak | Jednak ju¿ implikacja w drug± stronê nie jest znana. Inna podobna implikacja to: | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Je¶li <math>L</math> jest coNP-zupe³ny i <math>L\in NP</math> to NP=coNP. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Poka¿ inkluzje w obie strony korzystaj±c z symetrii klas. | |||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Ustalmy <math>L</math> z klasy NP, który jest coNP- | Ustalmy <math>L</math> z klasy NP, który jest coNP-zupe³ny. | ||
We¼my dowolny <math>L'</math> z klasy coNP. | |||
Poniewa¿ <math>L</math> jest coNP-zupe³ny, wiêc <math>L'</math> redukuje siê do <math>L</math>, czyli | |||
<math>L'</math> | <math>L'</math> nale¿y do NP, bowiem redukcja jest procedur± deterministyczn±. | ||
Analogicznie, | Analogicznie, we¼my dowolny <math>L'</math> z NP. Wiemy, ¿e <math>\overline{L}</math> jest NP-zupe³ny, | ||
i | i nale¿y do coNP. Mo¿emy zatem sprowadziæ <math>L'</math> redukcj± do <math>\overline{L}</math>. | ||
Zatem <math>L'</math> | Zatem <math>L'</math> nale¿y do coNP. | ||
}} | </div>}}</div> | ||
Poni¿szy rysunek przedstawia relacje pomiêdzy poznanymi klasami i omawian± za chwilê klas± DP: | |||
{1cm} | {1cm} | ||
[width=10cm]{ZO-13-1-rys.jpg}<br> | [width=10cm]{ZO-13-1-rys.jpg}<br> | ||
Relacje | Relacje pomiêdzy klasami NP, coNP i DP | ||
{1cm} | {1cm} | ||
Oczywi¶cie przygl±daj±c siê wszystkim takim rysunkom nale¿y pamiêtaæ, ¿e mog± one w wielu miejscach | |||
kolapsowaæ. | |||
===Klasa DP=== | ===Klasa DP=== | ||
Zastanówmy | Zastanówmy siê nad nastêpuj±cym problemem: | ||
{{przyklad|[Uzupelnij]|| | {{przyklad|[Uzupelnij]|| | ||
Problem EXACT TSP:<br> | Problem EXACT TSP:<br> | ||
Wej¶cie: graf nieskierowany wa¿ony <math>G</math> i liczba <math>K</math> <br> | |||
Wyj¶cie: czy optymalna trasa komiwoja¿era dla <math>G</math> ma warto¶æ dok³adnie <math>K</math>? | |||
}} | }} | ||
Jest to wersja | Jest to wersja dok³adna znanego problemu optymalizacyjnego -- problemu komiwoja¿era. Wiemy ¿e wersja decyzyjna TSP(D) jest NP-zupe³na. | ||
Nietrudno | Nietrudno pokazaæ równie¿, ¿e EXACT TSP i TSP(D) s± wielomianowo równowa¿ne (æwiczenie koñcowe), tzn., ¿e je¶li jeden z nich ma rozwi±zanie w czasie | ||
wielomianowym to drugi | wielomianowym to drugi te¿. W tym rozdziale | ||
sklasyfikujemy | sklasyfikujemy z³o¿ono¶æ EXACT TSP dok³adniej przy pomocy klasy DP. Nie umiemy bowiem pokazaæ, ¿e EXACT TSP nale¿y do NP, wszak | ||
jak | jak po¶wiadczyæ i szybko zweryfikowaæ, ¿e d³ugo¶æ optymalnej trasy wynosi dok³adnie <math>K</math>? Widzimy, ¿e odpowied¼ na to pytanie wymaga | ||
stwierdzenia, | stwierdzenia, ¿e trasa ma d³ugo¶æ co najmniej <math>K</math> i co najwy¿ej <math>K</math>, co sugeruje pewne specyficzne po³±czenie problemu TSP(D) i jego dope³nienia. | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Klasa DP to zbiór | Klasa DP to zbiór jêzyków <math>L</math> takich, ¿e <math>L=L_1\cap L_2</math>, gdzie <math>L_1\in NP</math> natomiast <math>L_2 \in coNP</math>. | ||
}} | }} | ||
Przy tak postawionej definicji EXACT TSP | Przy tak postawionej definicji EXACT TSP nale¿y do DP. Jest on bowiem przeciêciem jêzyka TSP(D) i TSP(D) COMPLEMENT, tzn. koszt trasy wynosi dok³adnie | ||
<math>K</math>, gdy jest równy co | <math>K</math>, gdy jest równy co najwy¿ej <math>K</math> (to przynale¿no¶æ do TSP(D)) oraz co najmniej <math>K</math> (to przynale¿no¶æ s³owa do TSP(D) COMPLEMENT). | ||
Klasa DP posiada problemy | Klasa DP posiada problemy zupe³ne. Rozwa¿my problem nastêpuj±cy: | ||
{{przyklad|[Uzupelnij]|| | {{przyklad|[Uzupelnij]|| | ||
Problem SAT-UNSAT:<br> | Problem SAT-UNSAT:<br> | ||
Wej¶cie: formu³y logiczne <math>\phi</math> i <math>\psi</math> jak dla SAT.<br> | |||
Wyj¶cie: czy formu³a <math>\phi</math> jest spe³nialna, natomiast <math>\psi</math> niespe³nialna? | |||
}} | }} | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Udowodnij, | Udowodnij, ¿e problem SAT-UNSAT jest DP-zupe³ny. | ||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Skorzystaj z redukcji | Skorzystaj z redukcji jêzyka z NP oraz dope³nienia jêzyka z coNP do SAT. | ||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Najpierw | Najpierw poka¿my, ¿e SAT-UNSAT nale¿y do klasy DP. Musimy wskazaæ stosowne jêzyki <math>L_1</math> i <math>L_2</math> odpowiednio z klas NP i coNP. | ||
Wybieramy <math>L_1=\{(\phi,\psi):\phi</math> jest | Wybieramy <math>L_1=\{(\phi,\psi):\phi</math> jest spe³nialna <math>\}</math> oraz <math>L_1=\{(\phi,\psi):\psi</math> nie jest spe³nialna <math>\}</math>, o których | ||
mo¿na to ³atwo stwierdziæ. | |||
Przejd¼my do czê¶ci zwi±zanej z pokazaniem redukcji z dowolnego problemu z klasy DP. We¼my <math>L\in</math> DP. Wiemy, ¿e | |||
<math>L=L_1\cap L_2</math> i na mocy | <math>L=L_1\cap L_2</math> i na mocy w³asno¶ci klas NP i coNP istniej± redukcje <math>R_1</math> jêzyka <math>L_1</math> do SAT oraz <math>R2</math> | ||
dope³nienia jêzyka <math>L_2</math> do SAT (jako ¿e <math>L_2</math> jest w coNP). Definiujemy redukcjê jako <math>R(x)=(R_1(x),R_2(x))</math>. | |||
Na podstawie konstrukcji wiemy, | Na podstawie konstrukcji wiemy, ¿e <math>x\in L_1</math>, gdy <math>R_1(x)</math> jest spe³niona oraz <math>x\in L_2</math>, gdy <math>R_2(x)</math> jest nie spe³niona. | ||
zatem <math>x\in L_1 \cap L_2</math> gdy <math>R(x)\in</math>SAT-UNSAT. | zatem <math>x\in L_1 \cap L_2</math> gdy <math>R(x)\in</math>SAT-UNSAT. | ||
}} | </div>}}</div> | ||
Równie¿ wspomniany na pocz±tku problem EXACT TSP jest DP-zupe³ny. | |||
Mo¿na rozwa¿aæ tak¿e wiele innych wersji EXACT znanych problemów NP-zupe³nych, które okazuj± siê DP-zupe³ne. | |||
Klasa DP zawiera | Klasa DP zawiera tak¿e problemy DP-zupe³ne innego rodzaju: | ||
{{przyklad|[Uzupelnij]|| | {{przyklad|[Uzupelnij]|| | ||
Problem CRITICAL SAT:<br> | Problem CRITICAL SAT:<br> | ||
Wej¶cie: formu³a logiczna <math>\phi</math> jak dla SAT.<br> | |||
Wyj¶cie: czy formu³a <math>\phi</math> jest nie spe³nialna, natomiast usuniêcie dowolnej klauzuli sprawia, ¿e jest spe³nialna? | |||
}} | }} | ||
{{przyklad|[Uzupelnij]|| | {{przyklad|[Uzupelnij]|| | ||
Problem CRITICAL HAMILTON PATH:<br> | Problem CRITICAL HAMILTON PATH:<br> | ||
Wej¶cie: graf nieskierowany <math>G</math><br> | |||
Wyj¶cie: czy <math>G</math> nie ma ¶cie¿ki Hamiltona, natomiast dodanie dowolnej krawêdzi do <math>G</math> powoduje, ¿e ju¿ j± posiada? | |||
}} | }} | ||
==Maszyny | ==Maszyny alternuj±ce== | ||
W tym rozdziale przedstawimy ciekawe uogólnienie niedeterminizmu, zwane | W tym rozdziale przedstawimy ciekawe uogólnienie niedeterminizmu, zwane alternacj±. | ||
Przypomnijmy, | Przypomnijmy, ¿e maszyna niedeterministyczna akceptuje s³owo, gdy na którejkolwiek ze ¶cie¿ek | ||
obliczeñ trafi do stanu akceptuj±cego. | |||
Maszyna | Maszyna alternuj±ca ma wiêcej mo¿liwo¶ci. Ka¿dy z jej stanów jest oznaczony poprzez "AND" lub "OR", | ||
które nazywamy odpowiednio stanami uniwersalnymi i egzystencjalnymi. | które nazywamy odpowiednio stanami uniwersalnymi i egzystencjalnymi. | ||
Gdy maszyna jest w stanie typu "OR", to dokonuje akceptacji gdy dowolna ze | Gdy maszyna jest w stanie typu "OR", to dokonuje akceptacji gdy dowolna ze ¶cie¿ek obliczeñ wychodz±cych z niego akceptuje s³owo. | ||
Tak | Tak w³a¶nie dzia³aj± zawsze zwyk³e maszyny niedeterministyczne. | ||
Stany typu "AND" | Stany typu "AND" s± rozszerzaj± t± funkcjonalno¶æ. Maszyna dokonuje akceptacji bêd±c w takim stanie, gdy ''ka¿da'' ze ¶cie¿ek obliczeñ | ||
wychodz±cych z tego stanu jest akceptuj±ca. | |||
Miarê z³o¿ono¶ci czasowej i pamiêciowej maszyn alternuj±cych definiujemy zupe³nie tak jak dla maszyn niedeterministycznych, tzn. | |||
funkcja <math>f(n)</math> jest | funkcja <math>f(n)</math> jest miar± z³o¿ono¶ci czasowej, gdy ka¿da ze ¶cie¿ek obliczeñ ma d³ugo¶æ ograniczon± przez <math>f(n)</math> oraz z³o¿ono¶æ | ||
pamiêciow± <math>f(n)</math> gdy na ka¿dej ze ¶cie¿ek obliczeñ maszyna zu¿ywa co najwy¿ej <math>f(n)</math> pamiêci. | |||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Poprzez <math>\textsc{ATIME}(f(n))</math> oznaczamy zbiór | Poprzez <math>\textsc{ATIME}(f(n))</math> oznaczamy zbiór jêzyków <math>L</math> takich, ¿e s± akceptowane przez alternuj±c± maszynê Turinga <math>M</math> o z³o¿ono¶ci | ||
czasowej <math>f(n)</math>. | czasowej <math>f(n)</math>. | ||
}} | }} | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Poprzez <math>\textsc{ASPACE}(f(n))</math> oznaczamy zbiór | Poprzez <math>\textsc{ASPACE}(f(n))</math> oznaczamy zbiór jêzyków <math>L</math> takich, ¿e s± akceptowane przez alternuj±c± maszynê Turinga <math>M</math> o z³o¿ono¶ci | ||
pamiêciowej <math>f(n)</math>. | |||
}} | }} | ||
Wprowadzamy | Wprowadzamy te¿ skróty dla najpopularniejszych klas: | ||
* Klasa AP = ATIME <math>(n^k) = \bigcup_{j>0} </math> ATIME <math>(n^j)</math>, to klasa tych | * Klasa AP = ATIME <math>(n^k) = \bigcup_{j>0} </math> ATIME <math>(n^j)</math>, to klasa tych jêzyków, które mog± byæ akceptowane w alternuj±cym czasie wielomianowym, | ||
Nietrudno | * Klasa AL = ASPACE(log<math>n</math>), to klasa tych jêzyków, które mog± byæ akceptowane w alternuj±cej pamiêci logarytmicznej, | ||
<math>AP</math> zawiera w sobie <math>NP</math>. | |||
Nietrudno siê domy¶liæ, ¿e alternacja jest silniejsza ni¿ niedeterminizm z definicji dzia³ania maszyn. Wiemy zatem, w szczególno¶ci, ¿e | |||
<math>AP</math> zawiera w sobie <math>NP</math>. Poni¿sze æwiczenie pokazuje, ¿e o AP mo¿na powiedzieæ wiêcej: | |||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e AP zawiera w sobie klasê coNP. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Poka¿ ¿e problem coNP-zupe³ny TAUTOLOGY nale¿y do AP. | |||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Na mocy wskazówki | Na mocy wskazówki poka¿emy, ¿e TAUTOLOGY <math>\in</math> AP, a tym samym poniewa¿ AP jest zamkniêta na redukcje, to ca³a klasa coNP zawiera siê w AP. | ||
Maszyna dla TAUTOLOGY rozpoczyna | Maszyna dla TAUTOLOGY rozpoczyna dzia³anie od stanu uniwersalnego. Nastêpnie na ka¿dej ze ¶cie¿ek obliczeñ sprawdza inne warto¶ciowanie. | ||
Je¶li <math>\phi</math> jest spe³niona na danym warto¶ciowaniu, to obliczenie dochodzi do stanu akceptuj±cego. W ten sposób ze wzglêdu | |||
na swój tryb | na swój tryb dzia³ania, maszyna zaakceptuje <math>\phi</math>, gdy jest ona spe³niona dla ka¿dego warto¶ciowania, czyli, gdy jest tautologi± logiczn±. | ||
}} | </div>}}</div> | ||
To jednak nie wszystko co potrafi klasa AP. | To jednak nie wszystko co potrafi klasa AP. Znajduj± siê w niej jêzyki, o których nie wiemy czy nale¿± do NP lub coNP. | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Problem MIN-FORMULA:<br> | Problem MIN-FORMULA:<br> | ||
Wej¶cie: formu³a logiczna <math>\phi</math> jak dla problemu SAT.<br> | |||
Wyj¶cie: czy <math>\phi</math> jest minimalna, tzn. czy ¿adna krótsza formu³a nie jest jej równowa¿na? | |||
}} | }} | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e MIN-FORMULA nale¿y do AP. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Wykorzystaj dwa tryby alternacji. | Wykorzystaj dwa tryby alternacji. | ||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
W pierwszej | W pierwszej czê¶ci maszyna dzia³a w trybie "AND". Zgadujemy formu³ê <math>\psi</math> krótsz± ni¿ <math>\phi</math>, a nastêpnie | ||
przestawiamy | przestawiamy siê na tryb "OR". Teraz zgadujemy warto¶ciowanie <math>s</math>. Je¶li <math>\phi</math> i <math>\psi</math> s± rozró¿niane przez | ||
<math>s</math>, tzn. jedna z nich jest | <math>s</math>, tzn. jedna z nich jest spe³niona, a druga nie, to akceptujemy formu³ê <math>\phi</math>. | ||
Za³ó¿my nie wprost, ¿e formu³a nie jest minimalna, a mimo to zostaje zaakceptowana. | |||
Aby tak | Aby tak siê sta³o na ka¿dej ze ¶cie¿ek z pierwszego poziomu alternacji uniwersalnej maszyna musi zaakceptowaæ. | ||
Je¶li jednak formu³a nie jest minimalna, to istnieje krótsza od niej formu³a <math>\psi</math>, które jest jej równowa¿na. Na ¶cie¿ce obliczeñ | |||
rozwa¿aj±cej <math>\psi</math> maszyna w drugim poziomie alternacji musi znale¼æ warto¶ciowanie, które rozró¿nia <math>\phi</math> i <math>\psi</math> co jest | |||
niemo¿liwe, st±d uzyskujemy sprzeczno¶æ. | |||
}} | </div>}}</div> | ||
Teraz przedstawimy kilka relacji | Teraz przedstawimy kilka relacji pomiêdzy klasami obliczeñ alternuj±cych: | ||
{{twierdzenie|[Uzupelnij]|| | {{twierdzenie|[Uzupelnij]|| | ||
Nastêpuj±ce relacje s± prawdziwe: | |||
# Je¶li <math>f(n)\geqslant n</math> to ATIME <math>(f(n)) \subseteq </math> SPACE <math>(f(n))</math>, | |||
# Je¶li <math>f(n)\geqslant n</math> to SPACE <math>(f(n)) \subseteq </math> ATIME <math>(f^2(n))</math>, | |||
# | # Je¶li <math>f(n)\geqslant </math> log <math>n</math> to ASPACE <math>(f(n)) \subseteq </math> TIME <math>(c^{f(n)})</math>. | ||
# Je¶li <math>f(n)\geqslant </math> log <math>n</math> to ASPACE <math>(f(n)) \supseteq </math> TIME <math>(c^{f(n)})</math>. | |||
# | |||
}} | }} | ||
{{dowod|[Uzupelnij]|| | {{dowod|[Uzupelnij]|| | ||
Dowód | Dowód w³asno¶ci od 1 do 3 jest przedmiotem æwiczenia koñcowego. W³asno¶æ 4 wymaga trochê wiêcej pracy. | ||
Zauwa¿my, ¿e musimy symulowaæ maszynê dzia³aj±c± w czasie wyk³adniczym | |||
od | od dostêpnej nam pamiêci! Nie mamy zatem miejsca na potencjaln± ilo¶æ pamiêci, która mo¿e byæ potrzebna. | ||
Okazuje | Okazuje siê jednak, ¿e mo¿na sobie z tym poradziæ: | ||
We¼my dowoln± maszynê deterministyczn± <math>M</math> dzia³aj±c± w czasie <math>c^{f(n)}</math>. Bêdziemy symulowaæ jej obliczenia od koñca. | |||
Najpierw ustalamy, bez straty | Najpierw ustalamy, bez straty ogólno¶ci, ¿e jest tylko jedna koñcowa konfiguracja akceptuj±ca, np. z ca³kowicie pust± ta¶m± | ||
, | , g³owic± w komórce o numerze 1 i stanie <math>q_{acc}</math>. | ||
Mo¿emy przedstawiæ ca³e obliczenie w formie nastêpuj±cej tabelki przedstawiaj±cej w rzêdach kolejne zawarto¶ci | |||
ta¶my, a w kolumnach czas. Dla uproszczenia przyjmijmy, ¿e ta¶ma jest jedna, i ¿e pozycjê g³owicy notujemy specjalnym zapisem | |||
w tym miejscu | w tym miejscu pamiêci, które ona odczytuje (podobnie notujemy stan). | ||
W ten sposób | W ten sposób zawarto¶æ komórki <math>d</math> zale¿y tylko od zawarto¶ci komórek <math>a</math>, <math>b</math> i <math>c</math>: | ||
{1cm} | {1cm} | ||
[width=10cm]{ZO-13-2-rys.jpg}<br> | [width=10cm]{ZO-13-2-rys.jpg}<br> | ||
Zapis przebiegu | Zapis przebiegu obliczeñ | ||
{1cm} | {1cm} | ||
Teraz rozpoczynamy od dolnej | Teraz rozpoczynamy od dolnej czê¶ci tabeli, której zawarto¶æ znamy i chcemy sprawdziæ, czy obliczenie rozpoczê³o siê | ||
od pierwszego wiersza, który jest | od pierwszego wiersza, który jest wej¶ciem i którego zawarto¶æ te¿ znamy. | ||
Je¶li chcemy zweryfikowaæ warto¶æ komórki <math>d</math>, to w trybie "OR" zgadujemy zawarto¶æ komórek <math>a</math>, <math>b</math> i <math>c</math>. Nastêpnie w trybie | |||
"AND" weryfikujemy ich | "AND" weryfikujemy ich poprawno¶æ i zgodno¶æ przej¶cia od <math>a</math>, <math>b</math>, <math>c</math> do <math>d</math>. | ||
Ile | Ile pamiêci jest nam potrzebne? Musimy pamiêtaæ tylko wska¼niki do miejsc w wielkiej tabeli przedstawionej na rysunku, | ||
które sa rozmiaru log <math>(c^{f(n)})</math>, co jest | które sa rozmiaru log <math>(c^{f(n)})</math>, co jest rzêdu <math>f(n)</math>. | ||
}} | }} | ||
Dziêki wymienionym relacjom pomiêdzy klasami alternuj±cymi mo¿emy udowodniæ kilka dok³adnych równo¶ci pomiêdzy klasami, a to rzadka | |||
rzecz w teorii | rzecz w teorii z³o¿ono¶ci. Wiemy zatem, ¿e: | ||
* AL=P, | * AL=P, | ||
* APSPACE = EXP, | * APSPACE = EXP, | ||
* AP=PSPACE. | * AP=PSPACE. | ||
==Hierarchia wielomianowa== | ==Hierarchia wielomianowa== | ||
W tej | W tej czê¶ci zdefiniujemy ca³± hierarchiê klas ponad znanymi nam ju¿ P i NP, która stanowi pewne uogólnienie problematyki spotkanej w klasie DP. | ||
W poprzednich | W poprzednich rozdzia³ach zdefiniowali¶my pojêcie maszyny z wyroczni± na jêzyk <math>L</math> oznaczanej przez <math>M^L</math>. Przypomnijmy, ¿e jest to zwyk³a maszyna <math>M</math> | ||
z | z dodatkow± mo¿liwo¶ci± zadania pytania postaci "czy <math>x\in L</math>?" które kosztuje jedn± jednostkê czasu. Rozszerzenie tego pojêcia na klasy jest | ||
naturalne. Poprzez <math>P^{NP}</math> oznaczamy zbiór tych | naturalne. Poprzez <math>P^{NP}</math> oznaczamy zbiór tych jêzyków, które mog± byæ rozstrzygane przez maszyny z klasy <math>P</math> z wyroczni± na dowolny jêzyk z klasy <math>NP</math>. | ||
Ta klasa okazuje | Ta klasa okazuje siê byæ mocniejsza od DP, bowiem w DP mogli¶my zadañ pytanie tylko raz (dotycz±ce coNP, ale w sensie wyroczni dzia³a to jak pytanie do NP), | ||
a tutaj | a tutaj dowoln± liczbê razy i to na dodatek pytañ adaptywnych, tzn. | ||
takich, które | takich, które mog± zale¿eæ od wyników odpowiedzi na poprzednie z nich. Kolejn± interesuj±c± klas± jest <math>NP^{NP}</math>. Wszystkie te klasy | ||
daj± nam coraz wiêksze mo¿liwo¶ci, lecz oczywi¶cie nie wiadomo, czy s± to ¶ci¶le wiêksze klasy, choæ panuje takie przekonanie: | |||
{1cm} | {1cm} | ||
Linia 457: | Linia 466: | ||
{1cm} | {1cm} | ||
Postêpuj±c w ten sposób Meyer i Stockmeyer w latach 70 zdefiniowali ca³± hierarchiê klas: | |||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Hierarchia wielomianowa, to | Hierarchia wielomianowa, to ci±g klas indeksowany poprzez <math>i</math>:<br> | ||
* <math>\sum_0 P = \prod_0 P = \Delta_0 P = P</math> | * <math>\sum_0 P = \prod_0 P = \Delta_0 P = P</math> | ||
* <math>\Delta_{i+1} P = P^{\sum_i P},</math> dla <math>i>0</math>, | * <math>\Delta_{i+1} P = P^{\sum_i P},</math> dla <math>i>0</math>, | ||
* <math>\sum_{i+1} P = NP^{\sum_i P},</math> dla <math>i>0</math>, | * <math>\sum_{i+1} P = NP^{\sum_i P},</math> dla <math>i>0</math>, | ||
* <math>\prod_{i+1} P = coNP^{\sum_i P},</math> dla <math>i>0</math>. | * <math>\prod_{i+1} P = coNP^{\sum_i P},</math> dla <math>i>0</math>. | ||
Dodatkowo poprzez <math>PH</math> oznaczamy | Dodatkowo poprzez <math>PH</math> oznaczamy sumê wszystkich tych klas, czyli:<br> | ||
<math>PH=\bigcup_{i\geqslant 0} \sum_i P</math>. | <math>PH=\bigcup_{i\geqslant 0} \sum_i P</math>. | ||
}} | }} | ||
Poniewa¿ na poziomie zerowym wszystkie elementy hierarchii to P, wiêc na poziomie pierwszym, | |||
poniewa¿ taka wyrocznia nic nie daje, otrzymujemy <math>\Delta_1 P = P, \sum_1 P = NP, \prod_1 P = coNP</math>. | |||
Drugi poziom, to klasy<math>\Delta_2 P = P^{NP}, \sum_2 P = NP^{NP}, \prod_2 P = coNP^{NP}</math>. | Drugi poziom, to klasy<math>\Delta_2 P = P^{NP}, \sum_2 P = NP^{NP}, \prod_2 P = coNP^{NP}</math>. | ||
Warto | Warto zwróciæ uwagê, ¿e <math>\prod_i P</math> jest dope³nieniem <math>\sum_i P</math> na ka¿dym poziomie wprost z definicji. | ||
Zawieranie | Zawieranie siê poszczególnych elementów na jednym poziomie obrazuje poni¿szy rysunek: | ||
{1cm} | {1cm} | ||
Linia 484: | Linia 496: | ||
{1cm} | {1cm} | ||
Do tej pory | Do tej pory czêsto odwo³ywali¶my siê do odpowiednio¶ci pomiêdzy klas± NP a szczególnymi relacjami wielomianowo | ||
zrównowa¿onymi i rozstrzygalnymi. Przedstawimy teraz zgrabn± charakteryzacjê klas z hierarchii wielomianowej przy pomocy | |||
podobnego kryterium: | podobnego kryterium: | ||
{{twierdzenie|[Uzupelnij]|| | {{twierdzenie|[Uzupelnij]|| | ||
Niech <math>L</math> | Niech <math>L</math> bêdzie jêzykiem, <math>i>0</math>. Jêzyk <math>L</math> nale¿y do <math>\sum_i P</math> wtedy i tylko wtedy, gdy istnieje wielomianowo zrównowa¿ona i rozstrzygalna | ||
relacja <math>R</math> (<math>i+1</math>-argumentowa), taka, | relacja <math>R</math> (<math>i+1</math>-argumentowa), taka, ¿e <math>x \in L</math> dok³adnie wtedy, gdy | ||
<math>\exists{y_1}\forall{y_2}\exists{y_3}\ldots Q{y_i}</math> takie, | <math>\exists{y_1}\forall{y_2}\exists{y_3}\ldots Q{y_i}</math> takie, ¿e <math>R(x,y_1,\ldots,y_i)</math> jest spe³nione (<math>i</math>-ty kwantyfikator jest uniwersalny, gdy <math>i</math> jest | ||
parzyste, natomiast egzystencjalny, gdy <math>i</math> jest nieparzyste). | parzyste, natomiast egzystencjalny, gdy <math>i</math> jest nieparzyste). | ||
}} | }} | ||
Hierarchia wielomianowa jest | Hierarchia wielomianowa jest struktur± dosyæ wra¿liw± na kolapsy, tzn. równo¶ci klas na pewnym poziomie. Okazuje siê, ¿e wtedy przenosz± siê | ||
one automatycznie w | one automatycznie w górê: | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e je¿eli dla pewnego <math>i</math> zachodzi <math>\sum_i P = \prod_i P</math> to dla ka¿dego <math>j>i</math> zachodzi <math>\sum_j P = \prod_j P = \Delta_j P = \sum_i P</math>. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Poka¿, ¿e <math>\sum_{i+1} P = \sum P</math>. | |||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Poka¿emy równo¶æ podan± we wskazówce z za³o¿enia <math>\sum_i P = \prod_i P</math>. We¼my dowolny <math>L\in\sum_{i+1} P</math>. Z poprzedniego twierdzenia | |||
charakteryzuj±cego wiemy, ¿e istnieje relacja <math>i+1</math>-argumentowa <math>R_L</math> dla <math>L</math>. We¼my rzut relacji <math>R_L</math>, w którym pomijamy wspó³rzêdn± <math>y_1</math>. | |||
Jest to relacja | Jest to relacja odpowiadaj±ca pewnemu jêzykowi <math>L'</math> z <math>\prod_i P</math> (otrzymujemy to dziêki zastosowaniu negacji i dope³nienia jêzyka dla poprzedniego twierdzenia). W definicji tym razem jako pierwszy wystêpuje | ||
kwantyfikator uniwersalny. | kwantyfikator uniwersalny. | ||
Dziêki równo¶ci klas istnieje dla jêzyka <math>L'</math> <math>i</math>-argumentowa relacja <math>R_{L'}</math>, definiuj±ca go przy u¿yciu kwantyfikatora | |||
egzystencjalnego na | egzystencjalnego na pocz±tku. Dziêki tej zmianie, mo¿emy teraz zmieniæ <math>R_{L'}</math> tak, aby | ||
uwzglêdniæ usuniêt± wcze¶niej wspó³rzêdn± wspó³rzêdn± <math>y_1</math>, bez dodawania nowego kwantyfikatora, gdy¿ teraz jako pierwszy wystêpuje kwantyfikator | |||
egzystencjalny, co sprawia, | egzystencjalny, co sprawia, ¿e <math>L\in\sum_{i} P</math>. | ||
}} | </div>}}</div> | ||
Zachodzi | Zachodzi równie¿ podobny fakt. Otó¿, je¶li P=NP (albo tylko NP=coNP), to hierarchia kolapsuje ju¿ na pierwszym poziomie. | ||
Mo¿na by siê zastanowiæ, czy kolejne poziomy hierarchii wielomianowej s± interesuj±ce z punku widzenia problemów, które pozwalaj± one rozwi±zaæ. | |||
Okazuje | Okazuje siê, ¿e na ka¿dym poziomie hierarchii posiada ona problemy zupe³ne: | ||
{{definicja|[Uzupelnij]|| | {{definicja|[Uzupelnij]|| | ||
Problem QSAT <math>_i</math>:<br> | Problem QSAT <math>_i</math>:<br> | ||
Wej¶cie: formu³a logiczna <math>\phi</math> jak dla problemu SAT poprzedzona <math>i</math> naprzemiennymi grupami kwantyfikatorów egzystencjalnych i uniwersalnych: | |||
<math>\Phi=\exists{x_1}\forall{x_2}\exists{x_3}\ldots Q{x_i}\phi</math>.<br> | <math>\Phi=\exists{x_1}\forall{x_2}\exists{x_3}\ldots Q{x_i}\phi</math>.<br> | ||
Wyj¶cie: czy <math>\Phi</math> jest prawdziwa? | |||
}} | }} | ||
{{twierdzenie|[Uzupelnij]|| | {{twierdzenie|[Uzupelnij]|| | ||
Problem <math>QSAT_i</math> jest <math>\sum_i P</math>- | Problem <math>QSAT_i</math> jest <math>\sum_i P</math>-zupe³ny dla <math>i>0</math>. | ||
}} | }} | ||
Jednak pytanie czy istnieje problem PH- | Jednak pytanie czy istnieje problem PH-zupe³ny (czyli zupe³ny dla ca³ej hierarchii) jest otwarte i panuje przekonanie, ¿e tak nie jest, gdy¿: | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e je¶li istnieje problem PH-zupe³ny, to hierarchia zapada siê na pewnym poziomie. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Zauwa¿, ¿e problem zupe³ny musi nale¿eæ do konkretnego poziomu. | |||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Je¶li <math>L</math> jest zupe³ny dla PH, to <math>L</math> nale¿y do <math>\sum_i P</math> dla pewnego <math>i</math>. Wtedy jednak dowolny jêzyk <math>L'</math> z poziomu <math>\sum_{i+1} P</math> | |||
redukuje | redukuje siê do <math>L</math> w czasie wielomianowym. Poniewa¿ poziomy hierarchii s± zamkniête na redukcje, st±d <math>L'\in \sum_i P</math>, a w konsekwencji | ||
<math>\sum_{i+1} P=\sum_i P</math>. | <math>\sum_{i+1} P=\sum_i P</math>. | ||
}} | </div>}}</div> | ||
Jak silna jest | Jak silna jest ca³a hierarchia? Mo¿na ³atwo zauwa¿yæ, ¿e zawiera siê ona w znanej ju¿ nam klasie PSPACE, ze wzglêdu na fakt, ¿e mo¿na | ||
³atwo rozstrzygaæ w wielomianowej pamiêci relacje, charakteryzuj±ce problemy z PH, które opisywali¶my wcze¶niej. | |||
Jak nietrudno | Jak nietrudno siê domy¶liæ pytanie, czy PH=PSPACE jest otwarte. Bardzo interesuj±ce jest jednak, ¿e gdyby równo¶æ zachodzi³a, to | ||
poniewa¿ PSPACE zawiera problemy zupe³ne, to PH równie¿ by je zawiera³a, st±d zapad³a by siê na pewnym skoñczonym poziomie. St±d przekonanie, | |||
¿e PH zawiera siê silnie w PSPACE. | |||
Na koniec ciekawy rezultat autorstwa Seinosuke Tody (laureata | Na koniec ciekawy rezultat autorstwa Seinosuke Tody (laureata | ||
nagrody Gödel'a z roku 1998) | nagrody Gödel'a z roku 1998) zwi±zany z klas± PH. Pokaza³ on, ¿e | ||
<math>PH\subseteq P^{PP}</math>, czyli wyrocznia na | <math>PH\subseteq P^{PP}</math>, czyli wyrocznia na klasê <math>PP</math> jest | ||
niesamowicie silna i pozwala | niesamowicie silna i pozwala poch³on±æ tak misternie zbudowan± | ||
piramidê coraz silniejszych klas. | |||
== | ==Æwiczenia dodatkowe== | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Poka¿, ¿e problem TAUTOLOGY jest coNP-zupe³ny. | |||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Skorzystaj z faktu, | Skorzystaj z faktu, ¿e SAT jest NP-zupe³ny. | ||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
TAUTOLOGY | TAUTOLOGY nale¿y do coNP. We¼my dowolny inny problem <math>L</math> z coNP. Wiemy, ¿e <math>\overline{L}</math> nale¿y do NP, wiêc | ||
jest redukowalny do SAT - problemu NP- | jest redukowalny do SAT - problemu NP-zupe³nego, poprzez redukcjê, któr± oznaczymy jako <math>R</math>. Z definicji redukcji | ||
otrzymujemy, | otrzymujemy, ¿e <math>x\in \overline{L}</math> wtedy i tylko wtedy, gdy <math>R(x)</math> jest spe³nialna. Po zastosowaniu negacji mamy | ||
, | , ¿e <math>x\in L</math> wtedy i tylko wtedy, gdy <math>R(x)</math> jest nie spe³nialna, tzn. <math>\neg R(x)</math> jest tautologi±. Sprowadzili¶my zatem | ||
problem | problem przynale¿no¶ci do dowolnego jêzyka <math>L</math> z coNP do sprawdzania czy pewna formu³a jest tautologi±, co dowodzi | ||
coNP- | coNP-zupe³no¶ci problemu TAUTOLOGY. | ||
}} | </div>}}</div> | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Udowodnij | Udowodnij w³asno¶ci od 1 do 3 z twierdzenia [[##tw:arel|Uzupelnic tw:arel|]]. | ||
# Je¶li <math>f(n)\geqslant n</math> to ATIME <math>(f(n)) \subseteq </math> SPACE <math>(f(n))</math>, | |||
# Je¶li <math>f(n)\geqslant n</math> to SPACE <math>(f(n)) \subseteq </math> ATIME <math>(f^2(n))</math>, | |||
# | # Je¶li <math>f(n)\geqslant </math> log <math>n</math> to ASPACE <math>(f(n)) \subseteq </math> TIME <math>(c^{f(n)})</math>. | ||
}} | }} | ||
{{wskazowka|||<br> | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"><br> | ||
Ad. 1 i 3: zasymuluj | Ad. 1 i 3: zasymuluj maszynê alternuj±c± przy pomocy zwyk³ej.<br> | ||
Ad. 2: skorzystaj z idei | Ad. 2: skorzystaj z idei zaczerpniêtej z twierdzenia Savitcha.<br> | ||
}} | </div>}}</div> | ||
{{rozwiazanie||<br> | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"><br> | ||
Ad. 1:<br> | Ad. 1:<br> | ||
We¼my dowolny jêzyk <math>L\in</math> ATIME <math>(f(n))</math> akceptowany przez alternuj±c± maszynê Turinga <math>M</math>. | |||
Dokonamy symulacji przy pomocy deterministycznej maszyny w | Dokonamy symulacji przy pomocy deterministycznej maszyny w pamiêci <math>f(n)</math>. Wykonujemy algorytm | ||
rekurencyjnego | rekurencyjnego przegl±dania grafu konfiguracji w g³±b. W momencie powrotu z rekurencji z ostatniego potomka | ||
danego | danego wierzcho³ka decydujemy na podstawie typu "OR" lub "AND" i akceptacji potomków o tym czy dana konfiguracja | ||
jest | jest akceptuj±ca. G³êboko¶æ rekurencji to czas obliczeñ maszyny <math>M</math>, czyli <math>f(n)</math>. Na ka¿dy poziom rekurencji | ||
potrzeba nam jednak <math>f(n)</math>, aby | potrzeba nam jednak <math>f(n)</math>, aby zapamiêtaæ konfiguracjê, czyli ³±cznie <math>f^2(n)</math>. | ||
Mo¿emy jednak zaoszczêdziæ na pamiêci pamiêtaj±c tylko który z niedeterministycznych wyborów dokona³a <math>M</math> na danym poziomie | |||
rekurencji. Teraz aby | rekurencji. Teraz aby obliczyæ pe³n± konfiguracjê, bêdziemy musieli rozpocz±æ za ka¿dym razem obliczenia od pocz±tku | ||
dokonuj±c stosownych wyborów. Taka operacja mo¿e byæ jednak wykonana w pamiêci <math>f(n)</math>, st±d ca³a symulacja | |||
potrzebuje <math>f(n)</math> | potrzebuje <math>f(n)</math> pamiêci, a wiêc <math>L\in</math> SPACE <math>(f(n))</math>. | ||
Ad. 2:<br> | Ad. 2:<br> | ||
Tym razem mamy do dyspozycji | Tym razem mamy do dyspozycji maszynê dzia³aj±c± w pamiêci <math>f(n)</math> i chcemy j± zasymulowaæ przy pomocy maszyny alternuj±cej | ||
w czasie <math>f^2(n)</math>. Jak w twierdzeniu Savitcha | w czasie <math>f^2(n)</math>. Jak w twierdzeniu Savitcha odwo³amy siê do grafu konfiguracji maszyny rozmiaru <math>c^{f(n)}</math> i bêdziemy siê starali | ||
odpowiedzieæ na pytanie, czy istnieje ¶cie¿ka od konfiguracji pocz±tkowej do koñcowej. | |||
Procedura, która oblicza istnienie | Procedura, która oblicza istnienie ¶cie¿ki o d³ugo¶ci co najwy¿ej <math>n</math> ma do dyspozycji alternacjê i dokonuje tego w dwóch etapach. | ||
W pierwszym zgaduje | W pierwszym zgaduje wierzcho³ek po¶redni | ||
<math>t</math> na | <math>t</math> na ¶cie¿ce dzia³aj±c w trybie "OR". Nastêpnie prze³±cza siê w tryb uniwersalny "AND" i sprawdza rekurencyjnie, | ||
czy obydwie | czy obydwie czê¶ci ¶cie¿ki, d³ugo¶ci <math>n/2</math> poprzez odgadniêty wierzcho³ek <math>t</math> istniej±. | ||
Czas potrzebny do | Czas potrzebny do dzia³ania to g³êboko¶æ rekurencji, czyli log <math>(c^{f(n)})</math> co jest rzêdu <math>f(n)</math> przemno¿ony | ||
przez czas potrzebny do przetworzenia | przez czas potrzebny do przetworzenia ka¿dego kroku, który wynosi równie¿ <math>f(n)</math>, gdy¿ jest to rozmiar konfiguracji. £±cznie daje to czas<math>f^2(n)</math>. | ||
Zwróæmy uwagê, ¿e liczymy czas na ''jednej'' ¶cie¿ce obliczeñ, dziêki realizacji rekurencji przy pomocy alternacji! | |||
Ad. 3:<br> | Ad. 3:<br> | ||
We¼my dowolny jêzyk <math>L\in</math> ASPACE <math>(f(n))</math> akceptowany przez alternuj±c± maszynê Turinga <math>M</math>. | |||
Mamy do dyspozycji czas | Mamy do dyspozycji czas rzêdu wyk³adniczego wzglêdem <math>f(n)</math>, a wiêc mo¿emy wygenerowaæ ca³y graf konfiguracji | ||
obliczeñ maszyny <math>M</math> (który jak wiemy ma rozmiar <math>c^{f(n)}</math>, gdy <math>f(n)\geqslant </math> log <math>n</math>). | |||
Nastêpnie stosownie do typów "AND" i "OR" przegl±damy graf od konfiguracji koñcowych i decydujemy | |||
o akceptacji | o akceptacji s³owa wej¶ciowego. | ||
}} | </div>}}</div> | ||
{{cwiczenie|| | {{cwiczenie|| | ||
Udowodnij, | Udowodnij, ¿e problemy TSP(D) i EXACT TSP s± wielomianowo równowa¿ne. | ||
}} | }} | ||
{{wskazowka||| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{wskazowka ||| <div class="mw-collapsible-content" style="display:none"> | ||
Skorzystaj z problemu HAMILTON PATH. | Skorzystaj z problemu HAMILTON PATH. | ||
}} | </div>}}</div> | ||
{{rozwiazanie|| | <div class="mw-collapsible mw-made=collapsible mw-collapsed">{{rozwiazanie ||<div class="mw-collapsible-content" style="display:none"> | ||
Za³ó¿my, ¿e TSP(D) ma rozwi±zanie wielomianowe. Dziêki opisywanej ju¿ metodzie wyszukiwania binarnego mo¿emy | |||
odnale¼æ <math>K</math> - optymalny koszt dziêki temu, ¿e potrzebujemy zadaæ tylko logarytmiczn± liczbê pytañ wzglêdem <math>K</math>, | |||
czyli | czyli liniow± wzglêdem rozmiaru wej¶cia. | ||
Niewiele trudniejsza jest implikacja w | Niewiele trudniejsza jest implikacja w drug± stronê. Za³ó¿my, ¿e EXACT TSP ma rozwi±zanie wielomianowe. Metoda wyszukiwania | ||
binarnego tym razem zawodzi. Zgodnie ze | binarnego tym razem zawodzi. Zgodnie ze wskazówk± rozwi±¿emy najpierw HAMILTON PATH. Maj±c dany graf skierowany <math>G</math> w którym | ||
chcemy | chcemy znale¼æ ¶cie¿kê Hamiltona konstruujemy przyk³ad <math>G'</math> dla EXACT TSP. Je¶li krawêd¼ istnieje w <math>G</math> to w <math>G'</math> otrzymuje wagê | ||
1, | 1, je¶li nie istnieje w <math>G</math> to w <math>G'</math> wstawiamy j± z wag± 2. £atwo stwierdziæ, ¿e graf <math>G</math> ma ¶cie¿kê Hamiltona wtedy i tylko wtedy, | ||
gdy trasa | gdy trasa komiwoja¿era w <math>G'</math> ma koszt dok³adnie <math>n</math> -- rozmiar grafu. | ||
Poniewa¿ HAMILTON PATH jest NP-zupe³ny, wiêc istnieje redukcja TSP(D) do HAMILTON PATH, a tym samym sk³adaj±c redukcje otrzymamy algorytm | |||
wielomianowy dla TSP(D). | wielomianowy dla TSP(D). | ||
}} | </div>}}</div> | ||
==Testy | ==Testy koñcowe== |
Wersja z 20:36, 27 lip 2006
Przedmiot & Z³o¿ono¶æ obliczeniowa
Modu³ & 13
Tytu³ & Pamiêæ logarytmiczna i hierarchia wielomianowa
Opracowanie & Przemys³aw Broniek
{ Syllabus}
Pamiêæ logarytmiczna i hierarchia wielomianowa
- klasy L, NL i coNL,
- Twierdzenie Immermana-Szelepcsényi'ego,
- klasy coNP i DP,
- maszyny alternuj±ce,
- hierarchia wielomianowa.
Klasy L, NL i coNL
W tym rozdziale zajmiemy siê klasami z³o¿ono¶ci, w których dajemy bardzo restrykcyjne wymagania odno¶nie zu¿ywanej pamiêci, a mianowicie ograniczamy jej ilo¶æ przez funkcjê logarytmiczn±. Przypomnijmy:
- Klasa L = SPACE(log), to klasa tych jêzyków, które mog± byæ akceptowane w deterministycznej pamiêci logarytmicznej,
- Klasa NL = NSPACE(log), to klasa tych jêzyków, które mog± byæ akceptowane w niedeterministycznej pamiêci logarytmicznej,
- Klasa coNL = coNSPACE(log), to dope³nienie klasy tych jêzyków, które mog± byæ akceptowane w niedeterministycznej pamiêci logarytmicznej,
Na podstawie nastêpnego rozdzia³u i twierdzenia Immermana-Szelepcsényi'ego dowiemy siê, ¿e NL=coNL . Natomiast pytanie czy L=NL pozostaje wci±¿ problemem otwartym.
Przyjrzymy siê teraz problemom zupe³nym w klasie NL. Zupe³no¶æ definiujemy przy pomocy redukcji w pamiêci logarytmicznej, gdy¿ jak wiemy, wszystkie z powy¿szych klas s± zawarte w klasie P (chocia¿ nie wiemy, czy ¶ci¶le). Dopuszczenie redukcji wielomianowej zniwelowa³oby jakiekolwiek ró¿nice pomiêdzy jêzykami, gdy¿ sama redukcja mia³aby moc obliczeniow± pozwalaj±c± rozwi±zaæ wszystkie problemy z tych klas. Poni¿szy problem okazuje siê byæ NL-zupe³ny:
Definicja [Uzupelnij]
Problem REACHABILITY:
Wej¶cie: Graf skierowany oraz wierzcho³ki i .
Wyj¶cie: Czy istnieje ¶cie¿ka od do w ?
Ćwiczenie
Bardzo ciekawy rezultat, który zbli¿y³ nas do odpowiedzi na pytanie czy L=NL, uzyska³ w 2004 Reingold. Pokaza³ on, ¿e problem UNDIRECTED REACHABILITY, czyli osi±galno¶æ w grafie nieskierowanym nale¿y do klasy L.
Twierdzenie Immermana-Szelepcsényi'ego
Ten rozdzia³ po¶wiêcony jest bardzo ciekawemu i ca³kiem m³odemu wynikowi udowodnionemu niezale¿nie przez Neila Immermana i Róberta Szelepcsényi'ego w roku 1987, za który otrzymali w 1995 nagrodê Gödel'a.
Twierdzenie mówi o tym, ¿e klasy niedeterministyczne z³o¿ono¶ci pamiêciowej s± zamkniête na dope³nienie:
Twierdzenie [Uzupelnij]
Dowód [Uzupelnij]
Klasy coNP i DP
Wprowadzili¶my ju¿ zarówno klasê NP jak i pojêcie dope³nieñ klas. Przyjrzyjmy siê bli¿ej klasie coNP. Klasa NP, jest to zbiór tych jêzyków, dla których mo¿emy ³atwo weryfikowaæ przynale¿no¶æ s³ów. Klasa coNP natomiast, to zbiór tych jêzyków, dla których mo¿emy ³atwo weryfikowaæ, ¿e s³owo nie nale¿y do jêzyka.
Podobnie jak dla NP i twierdzenia Fagina, mo¿na scharakteryzowaæ coNP jako zbiór w³asno¶ci teoriografowych wyra¿alnych w uniwersalnej logice drugiego rzêdu.
Oto przyk³ady problemów z klasy coNP:
Definicja [Uzupelnij]
Problem TAUTOLOGY:
Wej¶cie: formu³a logiczna jak dla problemu SAT.
Wyj¶cie: czy ka¿de warto¶ciowanie spe³nia ?
Definicja [Uzupelnij]
Problem HAMILTON PATH COMPLEMENT:
Wej¶cie: graf nieskierowany .
Wyj¶cie: czy nie zawiera ¶cie¿ki Hamiltona?
W powy¿szych problemach weryfikacja negatywna s³owa wej¶ciowego jest ³atwa, bo opiera siê na zgadniêciu warto¶ciowania niespe³niaj±cego lub ¶cie¿ki Hamiltona.
Nietrudno udowodniæ (patrz æwiczenie koñcowe), ¿e s± to problemy zupe³ne dla klasy coNP. Nie jest to nic zaskakuj±cego, bowiem równie prosto mo¿na udowodniæ, ¿e je¿eli jest NP-zupe³ny, to jego dope³nienie jest coNP-zupe³ne.
Jak wiele pytañ w teorii z³o¿ono¶ci obliczeniowej równie¿ i to, czy NP=coNP pozostaje otwarte. Mo¿emy jedynie stwierdziæ, ¿e je¿eli P=NP, to NP=coNP, gdy¿ P jest zamkniêta na dope³nienie. Jednak ju¿ implikacja w drug± stronê nie jest znana. Inna podobna implikacja to:
Ćwiczenie
Poni¿szy rysunek przedstawia relacje pomiêdzy poznanymi klasami i omawian± za chwilê klas± DP:
{1cm}
[width=10cm]{ZO-13-1-rys.jpg}
Relacje pomiêdzy klasami NP, coNP i DP
{1cm}
Oczywi¶cie przygl±daj±c siê wszystkim takim rysunkom nale¿y pamiêtaæ, ¿e mog± one w wielu miejscach kolapsowaæ.
Klasa DP
Zastanówmy siê nad nastêpuj±cym problemem:
Przykład [Uzupelnij]
Problem EXACT TSP:
Wej¶cie: graf nieskierowany wa¿ony i liczba
Wyj¶cie: czy optymalna trasa komiwoja¿era dla ma warto¶æ dok³adnie ?
Jest to wersja dok³adna znanego problemu optymalizacyjnego -- problemu komiwoja¿era. Wiemy ¿e wersja decyzyjna TSP(D) jest NP-zupe³na. Nietrudno pokazaæ równie¿, ¿e EXACT TSP i TSP(D) s± wielomianowo równowa¿ne (æwiczenie koñcowe), tzn., ¿e je¶li jeden z nich ma rozwi±zanie w czasie wielomianowym to drugi te¿. W tym rozdziale sklasyfikujemy z³o¿ono¶æ EXACT TSP dok³adniej przy pomocy klasy DP. Nie umiemy bowiem pokazaæ, ¿e EXACT TSP nale¿y do NP, wszak jak po¶wiadczyæ i szybko zweryfikowaæ, ¿e d³ugo¶æ optymalnej trasy wynosi dok³adnie ? Widzimy, ¿e odpowied¼ na to pytanie wymaga stwierdzenia, ¿e trasa ma d³ugo¶æ co najmniej i co najwy¿ej , co sugeruje pewne specyficzne po³±czenie problemu TSP(D) i jego dope³nienia.
Definicja [Uzupelnij]
Klasa DP to zbiór jêzyków takich, ¿e , gdzie natomiast .
Przy tak postawionej definicji EXACT TSP nale¿y do DP. Jest on bowiem przeciêciem jêzyka TSP(D) i TSP(D) COMPLEMENT, tzn. koszt trasy wynosi dok³adnie , gdy jest równy co najwy¿ej (to przynale¿no¶æ do TSP(D)) oraz co najmniej (to przynale¿no¶æ s³owa do TSP(D) COMPLEMENT).
Klasa DP posiada problemy zupe³ne. Rozwa¿my problem nastêpuj±cy:
Przykład [Uzupelnij]
Problem SAT-UNSAT:
Wej¶cie: formu³y logiczne i jak dla SAT.
Wyj¶cie: czy formu³a jest spe³nialna, natomiast niespe³nialna?
Ćwiczenie
Równie¿ wspomniany na pocz±tku problem EXACT TSP jest DP-zupe³ny. Mo¿na rozwa¿aæ tak¿e wiele innych wersji EXACT znanych problemów NP-zupe³nych, które okazuj± siê DP-zupe³ne.
Klasa DP zawiera tak¿e problemy DP-zupe³ne innego rodzaju:
Przykład [Uzupelnij]
Problem CRITICAL SAT:
Wej¶cie: formu³a logiczna jak dla SAT.
Wyj¶cie: czy formu³a jest nie spe³nialna, natomiast usuniêcie dowolnej klauzuli sprawia, ¿e jest spe³nialna?
Przykład [Uzupelnij]
Problem CRITICAL HAMILTON PATH:
Wej¶cie: graf nieskierowany
Wyj¶cie: czy nie ma ¶cie¿ki Hamiltona, natomiast dodanie dowolnej krawêdzi do powoduje, ¿e ju¿ j± posiada?
Maszyny alternuj±ce
W tym rozdziale przedstawimy ciekawe uogólnienie niedeterminizmu, zwane alternacj±. Przypomnijmy, ¿e maszyna niedeterministyczna akceptuje s³owo, gdy na którejkolwiek ze ¶cie¿ek obliczeñ trafi do stanu akceptuj±cego.
Maszyna alternuj±ca ma wiêcej mo¿liwo¶ci. Ka¿dy z jej stanów jest oznaczony poprzez "AND" lub "OR", które nazywamy odpowiednio stanami uniwersalnymi i egzystencjalnymi.
Gdy maszyna jest w stanie typu "OR", to dokonuje akceptacji gdy dowolna ze ¶cie¿ek obliczeñ wychodz±cych z niego akceptuje s³owo. Tak w³a¶nie dzia³aj± zawsze zwyk³e maszyny niedeterministyczne.
Stany typu "AND" s± rozszerzaj± t± funkcjonalno¶æ. Maszyna dokonuje akceptacji bêd±c w takim stanie, gdy ka¿da ze ¶cie¿ek obliczeñ wychodz±cych z tego stanu jest akceptuj±ca.
Miarê z³o¿ono¶ci czasowej i pamiêciowej maszyn alternuj±cych definiujemy zupe³nie tak jak dla maszyn niedeterministycznych, tzn. funkcja jest miar± z³o¿ono¶ci czasowej, gdy ka¿da ze ¶cie¿ek obliczeñ ma d³ugo¶æ ograniczon± przez oraz z³o¿ono¶æ pamiêciow± gdy na ka¿dej ze ¶cie¿ek obliczeñ maszyna zu¿ywa co najwy¿ej pamiêci.
Definicja [Uzupelnij]
Poprzez Parser nie mógł rozpoznać (nieznana funkcja „\textsc”): {\displaystyle \textsc{ATIME}(f(n))} oznaczamy zbiór jêzyków takich, ¿e s± akceptowane przez alternuj±c± maszynê Turinga o z³o¿ono¶ci czasowej .
Definicja [Uzupelnij]
Poprzez Parser nie mógł rozpoznać (nieznana funkcja „\textsc”): {\displaystyle \textsc{ASPACE}(f(n))} oznaczamy zbiór jêzyków takich, ¿e s± akceptowane przez alternuj±c± maszynê Turinga o z³o¿ono¶ci pamiêciowej .
Wprowadzamy te¿ skróty dla najpopularniejszych klas:
- Klasa AP = ATIME ATIME , to klasa tych jêzyków, które mog± byæ akceptowane w alternuj±cym czasie wielomianowym,
- Klasa AL = ASPACE(log), to klasa tych jêzyków, które mog± byæ akceptowane w alternuj±cej pamiêci logarytmicznej,
Nietrudno siê domy¶liæ, ¿e alternacja jest silniejsza ni¿ niedeterminizm z definicji dzia³ania maszyn. Wiemy zatem, w szczególno¶ci, ¿e zawiera w sobie . Poni¿sze æwiczenie pokazuje, ¿e o AP mo¿na powiedzieæ wiêcej:
Ćwiczenie
To jednak nie wszystko co potrafi klasa AP. Znajduj± siê w niej jêzyki, o których nie wiemy czy nale¿± do NP lub coNP.
Definicja [Uzupelnij]
Problem MIN-FORMULA:
Wej¶cie: formu³a logiczna jak dla problemu SAT.
Wyj¶cie: czy jest minimalna, tzn. czy ¿adna krótsza formu³a nie jest jej równowa¿na?
Ćwiczenie
Teraz przedstawimy kilka relacji pomiêdzy klasami obliczeñ alternuj±cych:
Twierdzenie [Uzupelnij]
Nastêpuj±ce relacje s± prawdziwe:
- Je¶li to ATIME SPACE ,
- Je¶li to SPACE ATIME ,
- Je¶li log to ASPACE TIME .
- Je¶li log to ASPACE TIME .
Dowód [Uzupelnij]
Dziêki wymienionym relacjom pomiêdzy klasami alternuj±cymi mo¿emy udowodniæ kilka dok³adnych równo¶ci pomiêdzy klasami, a to rzadka rzecz w teorii z³o¿ono¶ci. Wiemy zatem, ¿e:
- AL=P,
- APSPACE = EXP,
- AP=PSPACE.
Hierarchia wielomianowa
W tej czê¶ci zdefiniujemy ca³± hierarchiê klas ponad znanymi nam ju¿ P i NP, która stanowi pewne uogólnienie problematyki spotkanej w klasie DP.
W poprzednich rozdzia³ach zdefiniowali¶my pojêcie maszyny z wyroczni± na jêzyk oznaczanej przez . Przypomnijmy, ¿e jest to zwyk³a maszyna z dodatkow± mo¿liwo¶ci± zadania pytania postaci "czy ?" które kosztuje jedn± jednostkê czasu. Rozszerzenie tego pojêcia na klasy jest naturalne. Poprzez oznaczamy zbiór tych jêzyków, które mog± byæ rozstrzygane przez maszyny z klasy z wyroczni± na dowolny jêzyk z klasy .
Ta klasa okazuje siê byæ mocniejsza od DP, bowiem w DP mogli¶my zadañ pytanie tylko raz (dotycz±ce coNP, ale w sensie wyroczni dzia³a to jak pytanie do NP), a tutaj dowoln± liczbê razy i to na dodatek pytañ adaptywnych, tzn. takich, które mog± zale¿eæ od wyników odpowiedzi na poprzednie z nich. Kolejn± interesuj±c± klas± jest . Wszystkie te klasy daj± nam coraz wiêksze mo¿liwo¶ci, lecz oczywi¶cie nie wiadomo, czy s± to ¶ci¶le wiêksze klasy, choæ panuje takie przekonanie:
{1cm}
[width=10cm]{ZO-13-3-rys.jpg}
Klasy relatywne
{1cm}
Postêpuj±c w ten sposób Meyer i Stockmeyer w latach 70 zdefiniowali ca³± hierarchiê klas:
Definicja [Uzupelnij]
Hierarchia wielomianowa, to ci±g klas indeksowany poprzez :
- dla ,
- dla ,
- dla .
Dodatkowo poprzez oznaczamy sumê wszystkich tych klas, czyli:
.
Poniewa¿ na poziomie zerowym wszystkie elementy hierarchii to P, wiêc na poziomie pierwszym, poniewa¿ taka wyrocznia nic nie daje, otrzymujemy . Drugi poziom, to klasy. Warto zwróciæ uwagê, ¿e jest dope³nieniem na ka¿dym poziomie wprost z definicji. Zawieranie siê poszczególnych elementów na jednym poziomie obrazuje poni¿szy rysunek:
{1cm}
[width=10cm]{ZO-13-4-rys.jpg}
Hierarchia wielomianowa
{1cm}
Do tej pory czêsto odwo³ywali¶my siê do odpowiednio¶ci pomiêdzy klas± NP a szczególnymi relacjami wielomianowo zrównowa¿onymi i rozstrzygalnymi. Przedstawimy teraz zgrabn± charakteryzacjê klas z hierarchii wielomianowej przy pomocy podobnego kryterium:
Twierdzenie [Uzupelnij]
Niech bêdzie jêzykiem, . Jêzyk nale¿y do wtedy i tylko wtedy, gdy istnieje wielomianowo zrównowa¿ona i rozstrzygalna relacja (-argumentowa), taka, ¿e dok³adnie wtedy, gdy takie, ¿e jest spe³nione (-ty kwantyfikator jest uniwersalny, gdy jest parzyste, natomiast egzystencjalny, gdy jest nieparzyste).
Hierarchia wielomianowa jest struktur± dosyæ wra¿liw± na kolapsy, tzn. równo¶ci klas na pewnym poziomie. Okazuje siê, ¿e wtedy przenosz± siê one automatycznie w górê:
Ćwiczenie
Zachodzi równie¿ podobny fakt. Otó¿, je¶li P=NP (albo tylko NP=coNP), to hierarchia kolapsuje ju¿ na pierwszym poziomie.
Mo¿na by siê zastanowiæ, czy kolejne poziomy hierarchii wielomianowej s± interesuj±ce z punku widzenia problemów, które pozwalaj± one rozwi±zaæ. Okazuje siê, ¿e na ka¿dym poziomie hierarchii posiada ona problemy zupe³ne:
Definicja [Uzupelnij]
Problem QSAT :
Wej¶cie: formu³a logiczna jak dla problemu SAT poprzedzona naprzemiennymi grupami kwantyfikatorów egzystencjalnych i uniwersalnych:
.
Wyj¶cie: czy jest prawdziwa?
Twierdzenie [Uzupelnij]
Problem jest -zupe³ny dla .
Jednak pytanie czy istnieje problem PH-zupe³ny (czyli zupe³ny dla ca³ej hierarchii) jest otwarte i panuje przekonanie, ¿e tak nie jest, gdy¿:
Ćwiczenie
Jak silna jest ca³a hierarchia? Mo¿na ³atwo zauwa¿yæ, ¿e zawiera siê ona w znanej ju¿ nam klasie PSPACE, ze wzglêdu na fakt, ¿e mo¿na ³atwo rozstrzygaæ w wielomianowej pamiêci relacje, charakteryzuj±ce problemy z PH, które opisywali¶my wcze¶niej.
Jak nietrudno siê domy¶liæ pytanie, czy PH=PSPACE jest otwarte. Bardzo interesuj±ce jest jednak, ¿e gdyby równo¶æ zachodzi³a, to poniewa¿ PSPACE zawiera problemy zupe³ne, to PH równie¿ by je zawiera³a, st±d zapad³a by siê na pewnym skoñczonym poziomie. St±d przekonanie, ¿e PH zawiera siê silnie w PSPACE.
Na koniec ciekawy rezultat autorstwa Seinosuke Tody (laureata nagrody Gödel'a z roku 1998) zwi±zany z klas± PH. Pokaza³ on, ¿e , czyli wyrocznia na klasê jest niesamowicie silna i pozwala poch³on±æ tak misternie zbudowan± piramidê coraz silniejszych klas.
Æwiczenia dodatkowe
Ćwiczenie
Ćwiczenie
Ćwiczenie