Złozoność obliczeniowa – klasówka 14 stycznia 2020
1. Czy język L = {ww
Rw | w ∈ {a, b}
∗} jest bezkontekstowy? Czy należy do klasy P?
2. Która z następujących inkluzji jest prawdziwa:
Nspace(n log n) ⊆ Dspace(2n
3) ⊆ Dspace(n
3) ⊆ Dtime(2
n4) ⊆ Dtime(2
n) ? 3. Udowodnić, że jeśli Dspace(2
n) ⊆ Exptime, to Expspace ⊆ Exptime, gdzie Expspace = S{Dspace(2
nk| k ∈ N} oraz Exptime = S{Dtime(2
nk| k ∈ N}.
Przykładowe rozwiązania
1: Ten język należy do klasy P a nawet do klasy Log. Żeby sprawdzić, czy słowo jest postaci wwRw można policzyć jego długość (musi to być liczba postaci 3k) a następnie użyć 3 liczników zmieniających się odpowiednio od 1 do k, od 2k do k +1 i od 2k +1 do 3k, żeby sprawdzić czy symbole o odpowiednich numerach są takie same. Całość wymaga czasu O(n2) i pamięci logarytmicznej.
Ale to nie jest język bezkontekstowy. Można to pokazać tak: gdyby L był bezkontekstowy, to także język L1= L ∩ a∗b∗a∗b∗= {anb2ka2nbk | n, k ∈ N} byłby bezkontekstowy. Do języka L1zastosujemy lemat o pompowaniu: niech N będzie odpowiednią stałą. Rozpatrzmy słowo a2Nb4Na4Nb2N ∈ L1. Powinniśmy je podzielić na 5 cześci uwvxy, w ten sposób, że wx 6= ε, |wvx| ≤ N oraz (między innymi) słowo uvy należy do L1.
Słowo wvx jest krótkie, więc części w i x muszą zawierać się w sąsiednich segmentach złożonych z liter a i b (lub odwrotnie – z liter b i a). Po usunięciu w i x liczba liter a i b w tych segmentach będzie za mała w stosunku do pozostałych segmentów, słowo uvy nie może więc być elementem języka L1. 2: Pierwsza tak, bo Nspace(n log n) ⊆ Dspace((n log n)2) oraz (n log n)2 ≤ n3. Druga oczywiście tak, bo stała nie ma znaczenia. Trzecia też tak, bo Dspace(n3) ⊆ S{Dtime(2cn3) | c > 0}, oraz 2cn3 ≤ 2n4 prawie wszędzie. Czwarta nie, bo iloraz wyrażenia 2nlog(2n) = n2n przez 2n4 zbiega w nieskończoności do zera.
3: Załóżmy, że Dspace(2n) ⊆ Exptime i niech L ∈ Expspace. To znaczy, że dla pewnego k ∈ N istnieje deterministyczna maszyna Turinga, rozpoznająca język L w pamięci 2nk. Rozpatrzmy język L0 = {w$|w|k−|w| | w ∈ L}. Elementami L0 są słowa postaci w$...$, długości |w|k. Ten język należy do klasy Dspace(2n), bo do rozpoznania czy dane słowo długości n ma postać w$...$, gdzie w ∈ L oraz n = |w|k, maszyna Turinga użyje pamięci 2|wk| = 2n. A zatem L0 ∈ Exptime, czyli istnieje deterministyczna maszyna M rozpoznająca L0 w czasie postaci 2n`, gdzie ` ∈ N. Skoro tak, to potrafimy zdefiniować maszynę N , która rozpozna język L w czasie 2nk·`. Dla danego w maszyna N naśladuje maszynę M działającą na słowie wejściowym w$...$ w czasie 2(|w|k)`) = 2|w|k·`. A zatem maszyna N działa w czasie 2nk·`.