Złożoność obliczeniowa/Wykład 14: Pamięć wielomianowa i złożoność wykładnicza: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Gracja (dyskusja | edycje)
Pitab (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
==Klasa PSPACE==


W tym module zajmiemy się klasą PSPACE, która, przypomnijmy, jest klasą tych języków, które są akceptowane przez maszynę deterministyczną w pamięci wielomianowej.
Na podstawie twierdzenia Savitcha wiemy jednak, że jest ona równa klasie NPSPACE, czyli języków, które są akceptowane przez maszynę niedeterministyczną w pamięci wielomianowej.
Klasa PSPACE posiada wiele naturalnych problemów zupełnych, które omawiamy w następnej części. Zupełność definiujemy przy pomocy wielomianowej redukcji jak w poprzednich rozdziałach.
==Problemy PSPACE-zupełne==
Najbardziej naturalny i pierwszy problem PSPACE-zupełny, który zdefiniujemy wywodzi się oczywiście z SAT:
{{definicja|2.1||
Problem <math>\textnormal{QSAT}</math>:<br>
Wejście: formuła logiczna <math>\phi</math> jak dla problemu SAT poprzedzona
dowolną liczbą naprzemiennych kwantyfikatorów: <math>\Phi=\exists{x_1}\forall{x_2}\exists{x_3}\ldots Q{x_k}\phi</math>.<br>
Wyjście: czy <math>\Phi</math> jest prawdziwa?
}}
Przypomnijmy, że na użytek hierarchii wielomianowej definiowaliśmy problem <math>\textnormal{QSAT}_i</math>, który mógł mieć <math>i</math> naprzemiennych
kwantyfikatorów, natomiast tutaj może być ich dowolna ilość. Fakt, że kwantyfikatory muszą występować na zmianę nie jest istotnym ograniczeniem, gdyż można kwantyfikować po zmiennych, które w formule nie występują. Problem ten w literaturze pojawia się też jako QBF (ang. Quantified Boolean Formula).
{{twierdzenie|2.2||
Problem <math>\textnormal{QSAT}</math> jest PSPACE-zupełny.
}}
{{dowod|||
W pierwszym kroku pokażmy, że QSAT należy do PSPACE. Weźmy dowolną formułę <math>\Phi=\exists{x_1}\forall{x_2}\exists{x_3}\ldots Q{x_k}\phi</math>.
Skonstruujemy algorytm rekurencyjny rozwiązujący powyższy problem. Podstawa rekurencji to sytuacja, w której <math>\Phi</math> nie zawiera kwantyfikatorów. W takiej sytuacji zakładamy, że wszystkie zmienne są uniwersalnie skwantyfikowane i sprawdzamy czy formuła jest prawdziwa poprzez rozważenie wszystkich możliwych wartościowań (po kolei w tej samej pamięci).
Teraz rozważmy <math>\Phi=\exists{x}\Phi'</math>. W tej sytuacji przeglądamy
możliwe wartościowania dla <math>x</math>. Ustalamy najpierw <math>x=0</math> i rozważamy formułę <math>\Phi'</math> z tak ustalonym <math>x</math>. Wywołujemy algorytm rekurencyjnie. Jeśli <math>\Phi'</math> okazuje się prawdziwa to i <math>\Phi</math> jest prawdziwa. W przeciwnym wypadku rozważamy <math>x=1</math>.
Analogicznie dzieje się, gdy <math>\Phi=\forall{x}\Phi'</math>. Tym razem dla
obu wartościowań <math>x</math> formuła <math>\Phi'</math> musi być prawdziwa (co ponownie sprawdzamy w sposób rekurencyjny), aby <math>\Phi</math> była prawdziwa. Cały algorytm działa w pamięci wielomianowej, bo głębokość rekurencji
jest liniowa.
Następnie pokażmy, że każdy problem z klasy PSPACE redukuje się do QSAT. Posłużymy się ideą podobną do tej z twierdzenia Savitcha, tzn. rozważmy osiągalność w grafie konfiguracji maszyny.
Weźmy dowolny język L z klasy PSPACE. Jest on akceptowany przez maszynę M działającą w pamięci wielomianowej. Chcemy na podstawie maszyny M i słowa <math>x</math> zbudować formułę <math>\Phi</math>, która będzie prawdziwa wtedy i tylko wtedy, gdy <math>x\in L</math>.
Przypomnijmy, że <math>x\in L</math> wtedy i tylko wtedy, gdy istnieje ścieżka
od konfiguracji początkowej do końcowej w grafie konfiguracji. Oznaczmy <math>|x|=n</math>. Każda konfiguracja ma rozmiar wielomianowy ze względu na <math>n</math>, zatem wszystkich konfiguracji jest rzędu <math>c^{n^k}</math>.
Naszym zadaniem jest zbudowanie formuły <math>PATH_i(x,y)</math>, która będzie
prawdziwa wtedy i tylko wtedy, gdy istnieje ścieżka od konfiguracji <math>x</math> do <math>y</math> zawierająca co najwyżej <math>2^i</math> wierzchołków. W naszej sytuacji logarytm długości ścieżki jest rzędu <math>n^k</math>. Odpowiedź na pytanie czy słowo należy do L otrzymamy rozważając prawdziwość <math>PATH_{n^k}(start,accept)</math>, gdzie <math>start</math> oznacza konfigurację początkową, a <math>accept</math> akceptującą.
Będziemy budować formułę <math>PATH_i(x,y)</math>, w której <math>\phi</math> jest w dysjunktywnej postaci normalnej (alternatywy implikantów), a nie
koniunktywnej postaci (koniunkcji alternatyw) jak wymaga tego SAT. Takie podejście jest technicznie łatwiejsze, natomiast pod koniec dowodu wyjaśnimy jak sobie z tym poradzić.
Konfiguracje <math>x</math> i <math>y</math> będziemy reprezentować poprzez <math>n^k</math> zmiennych binarnych. Na początku skonstruujemy <math>PATH_0(x,y)</math>. Nasza formuła musi kodować sytuację <math>x=y</math> lub <math>y</math> osiągalne z <math>x</math> przez M w jednym kroku. W dysjunktywnej postaci normalnej jest to możliwe do zakodowania przy użyciu <math>n^k</math> implikantów.
Teraz konstruujemy <math>PATH_{i+1}(x,y)</math> przy pomocy <math>PATH_i(x,y)</math>. Intuicyjnie można to zrobić następująco:
<center><math>PATH_{i+1}(x,y)=\exists{t}PATH_i(x,t)\wedge PATH_i(t,y),</math></center>
gdzie <math>t</math> to konfiguracja pośrednia kodowana przez nowy komplet <math>n^k</math> zmiennych. Niestety postępując w ten prosty sposób rozmiar
ostatecznej formuły będzie wykładniczy, gdyż na każdym poziomie formuła przyrasta dwukrotnie.
Rozwiążemy ten problem używając jednej kopii formuły <math>PATH_i(x,y)</math>.
Ten sprytny zabieg przedstawia się następująco:
<center><math>PATH_{i+1}(x,y)=\exists{t}\forall{p}\forall{q}(((x=p\wedge
t=q)\vee(t=p\wedge y=q))\Rightarrow PATH_i(p,q),</math></center>
gdzie <math>t,p,q</math> to stosowne komplety <math>n^k</math> używanych do zapisu konfiguracji. Używamy dwukrotnie formuły <math>PATH_i</math> co odpowiada w pewnym sensie pracy w tej samej pamięci. Łatwo sprawdzić, że powyższa formuła koduje to samo, co wykładnicza formuła przedstawiona wcześniej, jednak nad jej postacią musimy jeszcze popracować.
Pierwszy ruch to przesunięcie kwantyfikatorów z <math>PATH_i(x,y)</math> tak,
aby formuła była w postaci preneksowej (wszystkie kwantyfikatory na
początku). Można to jednak zrobić przesuwając je za istniejące
kwantyfikatory na podstawie prostych własności logicznych.
Następnie musimy doprowadzić część formuły bez kwantyfikatorów, czyli:
<center><math>(((x=p\wedge t=q)\vee(t=p\wedge y=q))\Rightarrow \phi_i</math></center>
do postaci dysjunktywnej tak, aby nie używać <math>\phi_i</math> dwukrotnie.
Powyższa formuła jest równoważna:
<center><math>(((x\neq p\vee t\neq q)\wedge(t\neq p\vee y\neq q))\vee
\phi_i(p,q),</math></center>
przy czym pierwszą część można ostatecznie zapisać przy pomocy 16 implikantów (w rzeczywistości <math>16n^{2k}</math>, gdyż przypomnijmy, że <math>x,y,p,t,q</math> odpowiadają <math>n^k</math> zmiennym binarnym).
W ten sposób zapisanie <math>PATH_{n^k}(x,y)</math> na każdym poziomie będzie
wymagało dopisania <math>16n^{2k}</math> implikantów oraz <math>3n^k</math>
kwantyfikatorów, a więc ostatecznie rozmiar całej formuły będzie wielomianowy.
Zredukowaliśmy dowolny język <math>L</math> z PSPACE do QSAT w wersji dysjunktywnej. Jest to jednak dopełnienie QSAT w wersji koniunktywnej. Stosując obustronne dopełnienie otrzymujemy redukcję dowolnego języka z coPSPACE do QSAT (w wersji koniunktywnej). Jednak PSPACE = coPSPACE, więc w rzeczywistości pokazana redukcja nam
wystarcza.
}}
Oto przykład dwóch innych problemów, których będziemy używać w dalszej części. Ich PSPACE-zupełność jest przedmiotem ćwiczenia końcowego:
{{definicja|2.3||
Problem IN PLACE ACCEPTANCE (akceptacja w miejscu)<br>
Wejście: maszyna M i słowo <math>x</math><br>
Wyjście: czy maszyna M akceptuje słowo <math>x</math> używając <math>|x|</math> pamięci?
}}
{{definicja|2.4||
Problem IN PLACE DIVERGENCE (rozbieżność w miejscu)<br>
Wejście: maszyna M<br>
Wyjście: czy maszyna M pętli się używając <math>|M|</math> pamięci?
}}
===Optymalizacja periodyczna===
Wśród problemów PSPACE-zupełnych znajdują się wersje ''periodyczne'' (inaczej okresowe) znanych problemów. Jako pierwszy rozważmy problem PERIODIC GRAPH COLORING. Polega on na kolorowaniu grafu periodycznego. Poniższy przykład powinien wszystko wyjaśnić:
[[ZO-14-0a-rys.jpg(Graf periodyczny)]]
Na powyższym rysunku widać nieskończony graf periodyczny i jego skończony zwięzły zapis. Krawędź oznaczona etykietą <math>+1</math> oznacza, że następuje połączenie pomiędzy wierzchołkami z grup odległych o 1. W takim zapisie możemy stosować również etykiety oznaczone większymi liczbami oraz liczbami ujemnymi.
Naszym zadaniem jest obliczenie liczby chromatycznej grafu periodycznego lub stwierdzenie czy jest mniejsza niż <math>k</math> dla wersji decyzyjnej. Dla powyższego grafu wynosi ona 2, mimo, iż graf jest nieskończony!
Podobnie można przedstawić problem PERIODIC SAT. Tym razem formuła jest nieskończona i periodyczna, natomiast w jej zwięzłym zapisie możemy stosować klauzule postaci <math>x\vee y_{+1}\vee \neg z</math>, w których <math>+1</math> oznacza powiązanie pomiędzy zmiennymi z sąsiednich grup. Podobnie jak w normalnym SAT pytamy o istnienie wartościowania spełniającego.
Analizowanie przedstawionych powyżej nieskończonych struktur może wydawać się zadaniem niewykonalnym, jednakże oba powyższe problemy okazują się być PSPACE-zupełne.
{{cwiczenie|2.5||
Udowodnij, że problem PERIODIC SAT jest PSPACE-zupełny.
}}
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka </span><div class="mw-collapsible-content" style="display:none"> Zauważ, że wartościowanie spełniające jest okresowe. Skorzystaj z problemu IN PLACE DIVERGENCE.
</div></div>
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie </span><div class="mw-collapsible-content" style="display:none"> Pokażmy najpierw że PERIODIC SAT należy do PSPACE. Załóżmy, że wartościowanie spełniające istnieje. Jest to nieskończony ciąg
wartościowań grup zmiennych <math>\ldots,X_i,X_{i+1},\ldots</math>. Rozmiary <math>X_i</math> odpowiadają zapisowi pojedynczej grupy zmiennych przedstawionym na wejściu (rozmiaru <math>n</math>).
Łatwo zauważyć, że sąsiednie grupy mogą być wartościowane na <math>2^{2n}</math> sposobów, stąd spełniające wartościowanie nieskończone posiada okres o długości co najwyżej tego rzędu, gdyż powtórzy się w nim ta sama para wartościowań sąsiednich grup zmiennych. To pozwala nam przejść od analizy formuł nieskończonych do tych o wykładniczej ilości grup zmiennych.
Wykorzystując maszynę niedeterministyczną zgadujemy wartościowanie wykładniczej długości dla kolejnych grup zmiennych <math>T_i</math> (w tej samej pamięci) sprawdzając na każdym etapie, czy jest spełniające w ramach grupy i odpowiedni fragment w przód i w tył na podstawie uogólnionych klauzul. Na podstawie równości NPSPACE i PSPACE otrzymujemy potrzebny algorytm.
Teraz pokażmy zupełność problemu. Zredukujemy wspomniany PSPACE-zupełny problem IN PLACE DIVERGENCE do PERIODIC SAT.
Bierzemy maszynę M i pytamy czy istnieje dla niej obliczenie nieskończone w miejscu. Kodujemy konfigurację maszyny w pojedynczej grupie zmiennych z problemu PERIODIC SAT. Wzorujemy się na dowodzie twierdzenia Cooka-Levina. Poprawne przejścia pomiędzy konfiguracjami kodujemy przy pomocy uogólnionych klauzul. Jeśli skonstruowana w taki sposób formuła periodyczna jest spełnialna, to w jednoznaczny sposób odpowiada to obliczeniu nieskończonemu maszyny w miejscu.
</div></div>
==Gry==

Wersja z 20:52, 9 sie 2006

Klasa PSPACE

W tym module zajmiemy się klasą PSPACE, która, przypomnijmy, jest klasą tych języków, które są akceptowane przez maszynę deterministyczną w pamięci wielomianowej.

Na podstawie twierdzenia Savitcha wiemy jednak, że jest ona równa klasie NPSPACE, czyli języków, które są akceptowane przez maszynę niedeterministyczną w pamięci wielomianowej.

Klasa PSPACE posiada wiele naturalnych problemów zupełnych, które omawiamy w następnej części. Zupełność definiujemy przy pomocy wielomianowej redukcji jak w poprzednich rozdziałach.

Problemy PSPACE-zupełne

Najbardziej naturalny i pierwszy problem PSPACE-zupełny, który zdefiniujemy wywodzi się oczywiście z SAT:

Definicja 2.1

Problem Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{QSAT}} :
Wejście: formuła logiczna ϕ jak dla problemu SAT poprzedzona dowolną liczbą naprzemiennych kwantyfikatorów: Φ=x1x2x3Qxkϕ.
Wyjście: czy Φ jest prawdziwa?

Przypomnijmy, że na użytek hierarchii wielomianowej definiowaliśmy problem Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{QSAT}_i} , który mógł mieć i naprzemiennych kwantyfikatorów, natomiast tutaj może być ich dowolna ilość. Fakt, że kwantyfikatory muszą występować na zmianę nie jest istotnym ograniczeniem, gdyż można kwantyfikować po zmiennych, które w formule nie występują. Problem ten w literaturze pojawia się też jako QBF (ang. Quantified Boolean Formula).

Twierdzenie 2.2

Problem Parser nie mógł rozpoznać (błąd składni): {\displaystyle \textnormal{QSAT}} jest PSPACE-zupełny.

Dowód

{{{3}}}

Oto przykład dwóch innych problemów, których będziemy używać w dalszej części. Ich PSPACE-zupełność jest przedmiotem ćwiczenia końcowego:

Definicja 2.3

Problem IN PLACE ACCEPTANCE (akceptacja w miejscu)
Wejście: maszyna M i słowo x
Wyjście: czy maszyna M akceptuje słowo x używając |x| pamięci?

Definicja 2.4

Problem IN PLACE DIVERGENCE (rozbieżność w miejscu)
Wejście: maszyna M
Wyjście: czy maszyna M pętli się używając |M| pamięci?

Optymalizacja periodyczna

Wśród problemów PSPACE-zupełnych znajdują się wersje periodyczne (inaczej okresowe) znanych problemów. Jako pierwszy rozważmy problem PERIODIC GRAPH COLORING. Polega on na kolorowaniu grafu periodycznego. Poniższy przykład powinien wszystko wyjaśnić:


ZO-14-0a-rys.jpg(Graf periodyczny)


Na powyższym rysunku widać nieskończony graf periodyczny i jego skończony zwięzły zapis. Krawędź oznaczona etykietą +1 oznacza, że następuje połączenie pomiędzy wierzchołkami z grup odległych o 1. W takim zapisie możemy stosować również etykiety oznaczone większymi liczbami oraz liczbami ujemnymi.

Naszym zadaniem jest obliczenie liczby chromatycznej grafu periodycznego lub stwierdzenie czy jest mniejsza niż k dla wersji decyzyjnej. Dla powyższego grafu wynosi ona 2, mimo, iż graf jest nieskończony!

Podobnie można przedstawić problem PERIODIC SAT. Tym razem formuła jest nieskończona i periodyczna, natomiast w jej zwięzłym zapisie możemy stosować klauzule postaci xy+1¬z, w których +1 oznacza powiązanie pomiędzy zmiennymi z sąsiednich grup. Podobnie jak w normalnym SAT pytamy o istnienie wartościowania spełniającego.

Analizowanie przedstawionych powyżej nieskończonych struktur może wydawać się zadaniem niewykonalnym, jednakże oba powyższe problemy okazują się być PSPACE-zupełne.

Ćwiczenie 2.5

Udowodnij, że problem PERIODIC SAT jest PSPACE-zupełny.

Wskazówka
Rozwiązanie

Gry