Test Arka: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 18: | Linia 18: | ||
Jeśli <math>f(n)</math> jest konstruowalna pamięciowo, to <math>NSPACE(f(n))=coNSPACE(f(n))</math>. | Jeśli <math>f(n)</math> jest konstruowalna pamięciowo, to <math>NSPACE(f(n))=coNSPACE(f(n))</math>. | ||
}} | }} | ||
Linia 87: | Linia 82: | ||
}} | }} | ||
{{cwiczenie|| | |||
Pokaż, że problem REACHABILITY jest NL-zupełny. | Pokaż, że problem REACHABILITY jest NL-zupełny. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Zwróć uwagę na fakt, że problem REACHABILITY jest związany z wykonywaniem obliczeń przez maszynę Turinga. | Zwróć uwagę na fakt, że problem REACHABILITY jest związany z wykonywaniem obliczeń przez maszynę Turinga. | ||
}} | |||
{{rozwiazanie|| | |||
Pokażmy najpierw, że problem REACHABILITY należy do NL. | 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>. | 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>. | ||
Linia 114: | Linia 112: | ||
Nie potrzebujemy konstruować całego grafu, a jedynie stwierdzać, czy dwie konfiguracje są sąsiednie, co możemy zrobić | Nie potrzebujemy konstruować całego grafu, a jedynie stwierdzać, czy dwie konfiguracje są sąsiednie, co możemy zrobić | ||
w pamięci logarytmicznej. | w pamięci logarytmicznej. | ||
}} | |||
Bardzo ciekawy rezultat, który zbliżył nas do odpowiedzi na pytanie czy L=NL, uzyskał w 2004 Reingold. Pokazał on, że | Bardzo ciekawy rezultat, który zbliżył nas do odpowiedzi na pytanie czy L=NL, uzyskał w 2004 Reingold. Pokazał on, że | ||
Linia 243: | Linia 242: | ||
Jednak już implikacja w drugą stronę nie jest znana. Inna podobna implikacja to: | Jednak już implikacja w drugą stronę nie jest znana. Inna podobna implikacja to: | ||
{{cwiczenie|| | |||
Jeśli <math>L</math> jest coNP-zupełny i <math>L\in NP</math> to NP=coNP. | Jeśli <math>L</math> jest coNP-zupełny i <math>L\in NP</math> to NP=coNP. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Pokaż inkluzje w obie strony korzystając z symetrii klas. | Pokaż inkluzje w obie strony korzystając z symetrii klas. | ||
}} | |||
{{rozwiazanie|| | |||
Ustalmy <math>L</math> z klasy NP, który jest coNP-zupełny. | Ustalmy <math>L</math> z klasy NP, który jest coNP-zupełny. | ||
Linia 258: | Linia 260: | ||
i należy do coNP. Możemy zatem sprowadzić <math>L'</math> redukcją do <math>\overline{L}</math>. | i należy do coNP. Możemy zatem sprowadzić <math>L'</math> redukcją do <math>\overline{L}</math>. | ||
Zatem <math>L'</math> należy do coNP. | Zatem <math>L'</math> należy do coNP. | ||
}} | |||
Poniższy rysunek przedstawia relacje pomiędzy poznanymi klasami i omawianą za chwilę klasą DP: | Poniższy rysunek przedstawia relacje pomiędzy poznanymi klasami i omawianą za chwilę klasą DP: | ||
Linia 303: | Linia 306: | ||
}} | }} | ||
{{cwiczenie|| | |||
Udowodnij, że problem SAT-UNSAT jest DP-zupełny. | Udowodnij, że problem SAT-UNSAT jest DP-zupełny. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Skorzystaj z redukcji języka z NP oraz dopełnienia języka z coNP do SAT. | Skorzystaj z redukcji języka z NP oraz dopełnienia języka z coNP do SAT. | ||
}} | |||
{{rozwiazanie|| | |||
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. | 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 spełnialna <math>\}</math> oraz <math>L_1=\{(\phi,\psi):\psi</math> nie jest spełnialna <math>\}</math>, o których | 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 | ||
Linia 319: | Linia 325: | ||
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. | 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. | ||
}} | |||
Również wspomniany na początku problem EXACT TSP jest DP-zupełny. | Również wspomniany na początku problem EXACT TSP jest DP-zupełny. | ||
Linia 375: | Linia 382: | ||
<math>AP</math> zawiera w sobie <math>NP</math>. Poniższe ćwiczenie pokazuje, że o AP można powiedzieć więcej: | <math>AP</math> zawiera w sobie <math>NP</math>. Poniższe ćwiczenie pokazuje, że o AP można powiedzieć więcej: | ||
{{cwiczenie|| | |||
Pokaż, że AP zawiera w sobie klasę coNP. | Pokaż, że AP zawiera w sobie klasę coNP. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Pokaż że problem coNP-zupełny TAUTOLOGY należy do AP. | Pokaż że problem coNP-zupełny TAUTOLOGY należy do AP. | ||
}} | |||
{{rozwiazanie|| | |||
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. | 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. | ||
Linia 386: | Linia 396: | ||
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 | 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 działania, maszyna zaakceptuje <math>\phi</math>, gdy jest ona spełniona dla każdego wartościowania, czyli, gdy jest tautologią logiczną. | 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ą. | ||
}} | |||
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. | 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. | ||
Linia 395: | Linia 406: | ||
}} | }} | ||
{{cwiczenie|| | |||
Pokaż, że MIN-FORMULA należy do AP. | Pokaż, że MIN-FORMULA należy do AP. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Wykorzystaj dwa tryby alternacji. | Wykorzystaj dwa tryby alternacji. | ||
}} | |||
{{rozwiazanie|| | |||
W pierwszej części maszyna działa w trybie "AND". Zgadujemy formułę <math>\psi</math> krótszą niż <math>\phi</math>, a następnie | 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 się na tryb "OR". Teraz zgadujemy wartościowanie <math>s</math>. Jeśli <math>\phi</math> i <math>\psi</math> są rozróżniane przez | 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 | ||
Linia 410: | Linia 424: | ||
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 | 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ść. | niemożliwe, stąd uzyskujemy sprzeczność. | ||
}} | |||
Teraz przedstawimy kilka relacji pomiędzy klasami obliczeń alternujących: | Teraz przedstawimy kilka relacji pomiędzy klasami obliczeń alternujących: | ||
Linia 532: | Linia 547: | ||
one automatycznie w górę: | one automatycznie w górę: | ||
{{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>. | 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|[Uzupelnij]|| | |||
Pokaż, że <math>\sum_{i+1} P = \sum P</math>. | Pokaż, że <math>\sum_{i+1} P = \sum P</math>. | ||
}} | |||
{{rozwiazanie|| | |||
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 | 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>. | 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>. | ||
Linia 547: | Linia 565: | ||
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 | 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, że <math>L\in\sum_{i} P</math>. | egzystencjalny, co sprawia, że <math>L\in\sum_{i} P</math>. | ||
}} | |||
Zachodzi również podobny fakt. Otóż, jeśli P=NP (albo tylko NP=coNP), to hierarchia kolapsuje już na pierwszym poziomie. | Zachodzi również podobny fakt. Otóż, jeśli P=NP (albo tylko NP=coNP), to hierarchia kolapsuje już na pierwszym poziomie. | ||
Linia 566: | Linia 585: | ||
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ż: | 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|| | |||
Pokaż, że jeśli istnieje problem PH-zupełny, to hierarchia zapada się na pewnym poziomie. | Pokaż, że jeśli istnieje problem PH-zupełny, to hierarchia zapada się na pewnym poziomie. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Zauważ, że problem zupełny musi należeć do konkretnego poziomu. | Zauważ, że problem zupełny musi należeć do konkretnego poziomu. | ||
}} | |||
{{rozwiazanie|| | |||
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> | 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 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 | 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>. | ||
}} | |||
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 | 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 | ||
Linia 591: | Linia 614: | ||
==Ćwiczenia dodatkowe== | ==Ćwiczenia dodatkowe== | ||
{{cwiczenie|| | |||
Pokaż, że problem TAUTOLOGY jest coNP-zupełny. | Pokaż, że problem TAUTOLOGY jest coNP-zupełny. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Skorzystaj z faktu, że SAT jest NP-zupełny. | Skorzystaj z faktu, że SAT jest NP-zupełny. | ||
}} | |||
{{rozwiazanie|| | |||
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 | 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-zupełnego, poprzez redukcję, którą oznaczymy jako <math>R</math>. Z definicji redukcji | jest redukowalny do SAT - problemu NP-zupełnego, poprzez redukcję, którą oznaczymy jako <math>R</math>. Z definicji redukcji | ||
Linia 603: | Linia 629: | ||
problem przynależności do dowolnego języka <math>L</math> z coNP do sprawdzania czy pewna formuła jest tautologią, co dowodzi | problem przynależności do dowolnego języka <math>L</math> z coNP do sprawdzania czy pewna formuła jest tautologią, co dowodzi | ||
coNP-zupełności problemu TAUTOLOGY. | coNP-zupełności problemu TAUTOLOGY. | ||
}} | |||
{{cwiczenie|| | |||
Udowodnij własności od 1 do 3 z twierdzenia [[##tw:arel|Uzupelnic tw:arel|]]. | Udowodnij własności od 1 do 3 z twierdzenia [[##tw:arel|Uzupelnic tw:arel|]]. | ||
Linia 614: | Linia 640: | ||
# 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)) \subseteq </math> TIME <math>(c^{f(n)})</math>. | ||
<br> | }} | ||
{{wskazowka|[Uzupelnij]||<br> | |||
Ad. 1 i 3: zasymuluj maszynę alternującą przy pomocy zwykłej.<br> | Ad. 1 i 3: zasymuluj maszynę alternującą przy pomocy zwykłej.<br> | ||
Ad. 2: skorzystaj z idei zaczerpniętej z twierdzenia Savitcha.<br> | Ad. 2: skorzystaj z idei zaczerpniętej z twierdzenia Savitcha.<br> | ||
}} | |||
<br> | {{rozwiazanie||<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>. | Weźmy dowolny język <math>L\in</math> ATIME <math>(f(n))</math> akceptowany przez alternującą maszynę Turinga <math>M</math>. | ||
Linia 652: | Linia 681: | ||
Następnie stosownie do typów "AND" i "OR" przeglądamy graf od konfiguracji końcowych i decydujemy | Następnie stosownie do typów "AND" i "OR" przeglądamy graf od konfiguracji końcowych i decydujemy | ||
o akceptacji słowa wejściowego. | o akceptacji słowa wejściowego. | ||
}} | |||
{{cwiczenie|| | |||
Udowodnij, że problemy TSP(D) i EXACT TSP są wielomianowo równoważne. | Udowodnij, że problemy TSP(D) i EXACT TSP są wielomianowo równoważne. | ||
}} | |||
{{wskazowka|[Uzupelnij]|| | |||
Skorzystaj z problemu HAMILTON PATH. | Skorzystaj z problemu HAMILTON PATH. | ||
}} | |||
{{rozwiazanie|| | |||
Załóżmy, że TSP(D) ma rozwiązanie wielomianowe. Dzięki opisywanej już metodzie wyszukiwania binarnego możemy | 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>, | odnaleźć <math>K</math> - optymalny koszt dzięki temu, że potrzebujemy zadać tylko logarytmiczną liczbę pytań względem <math>K</math>, | ||
Linia 671: | Linia 704: | ||
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 | 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). | ||
}} | |||
==Testy końcowe== | ==Testy końcowe== |
Wersja z 13:47, 27 lip 2006
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{log}(f(n))}
Twierdzenie [Uzupelnij]
Twierdzenie [Uzupelnij]
(twierdzenie Immermana-Szelepcsényi'ego) Jeśli jest konstruowalna pamięciowo, to NSPACE(f(n))coNSPACE(f(n)).
Twierdzenie [Uzupelnij]
(twierdzenie Immermana-Szelepcsényi'ego) Jeśli jest konstruowalna pamięciowo, to .
{article}
{}{0.5cm} {}{0.8cm} {}{ -0.4cm} {}{ -0.4cm} {}{1mm} 14.6pt
{} {} {}
{proof}{ Dowód: }{} {hint}{ Wskazówka: }{} {sol}{ Rozwiązanie: }{}
{empty}
{ Informacje}
Przedmiot & Złożoność obliczeniowaModuł & 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
Wskazówka [Uzupelnij]
Zwróć uwagę na fakt, że problem REACHABILITY jest związany z wykonywaniem obliczeń przez maszynę Turinga.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Pokaż inkluzje w obie strony korzystając z symetrii klas.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Skorzystaj z redukcji języka z NP oraz dopełnienia języka z coNP do SAT.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Pokaż że problem coNP-zupełny TAUTOLOGY należy do AP.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Wykorzystaj dwa tryby alternacji.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Pokaż, że .
Rozwiązanie
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
Wskazówka [Uzupelnij]
Zauważ, że problem zupełny musi należeć do konkretnego poziomu.
Rozwiązanie
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
Wskazówka [Uzupelnij]
Skorzystaj z faktu, że SAT jest NP-zupełny.
Rozwiązanie
Ćwiczenie
Wskazówka [Uzupelnij]
Ad. 1 i 3: zasymuluj maszynę alternującą przy pomocy zwykłej.
Ad. 2: skorzystaj z idei zaczerpniętej z twierdzenia Savitcha.
<span id="
Ad. 1:
Weźmy dowolny język ATIME akceptowany przez alternującą maszynę Turinga .
Dokonamy symulacji przy pomocy deterministycznej maszyny w pamięci . Wykonujemy algorytm
rekurencyjnego przeglądania grafu konfiguracji w głąb. W momencie powrotu z rekurencji z ostatniego potomka
danego wierzchołka decydujemy na podstawie typu "OR" lub "AND" i akceptacji potomków o tym czy dana konfiguracja
jest akceptująca. Głębokość rekurencji to czas obliczeń maszyny , czyli . Na każdy poziom rekurencji
potrzeba nam jednak , aby zapamiętać konfigurację, czyli łącznie .
Możemy jednak zaoszczędzić na pamięci pamiętając tylko który z niedeterministycznych wyborów dokonała na danym poziomie 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 , stąd cała symulacja potrzebuje pamięci, a więc SPACE .
Ad. 2:
Tym razem mamy do dyspozycji maszynę działającą w pamięci i chcemy ją zasymulować przy pomocy maszyny alternującej
w czasie . Jak w twierdzeniu Savitcha odwołamy się do grafu konfiguracji maszyny rozmiaru i będziemy się starali
odpowiedzieć na pytanie, czy istnieje ścieżka od konfiguracji początkowej do końcowej.
Procedura, która oblicza istnienie ścieżki o długości co najwyżej ma do dyspozycji alternację i dokonuje tego w dwóch etapach. W pierwszym zgaduje wierzchołek pośredni na ścieżce działając w trybie "OR". Następnie przełącza się w tryb uniwersalny "AND" i sprawdza rekurencyjnie, czy obydwie części ścieżki, długości poprzez odgadnięty wierzchołek istnieją.
Czas potrzebny do działania to głębokość rekurencji, czyli log co jest rzędu przemnożony przez czas potrzebny do przetworzenia każdego kroku, który wynosi również , gdyż jest to rozmiar konfiguracji. Łącznie daje to czas. Zwróćmy uwagę, że liczymy czas na jednej ścieżce obliczeń, dzięki realizacji rekurencji przy pomocy alternacji!
Ad. 3:
Weźmy dowolny język ASPACE akceptowany przez alternującą maszynę Turinga .
Mamy do dyspozycji czas rzędu wykładniczego względem , a więc możemy wygenerować cały graf konfiguracji
obliczeń maszyny (który jak wiemy ma rozmiar , gdy log ).
Następnie stosownie do typów "AND" i "OR" przeglądamy graf od konfiguracji końcowych i decydujemy
o akceptacji słowa wejściowego.
" style="font-variant:small-caps">Rozwiązanie
Ćwiczenie
Wskazówka [Uzupelnij]
Skorzystaj z problemu HAMILTON PATH.
Rozwiązanie