Problem ograniczonego zatrzymania jest rozstrzygalny. Dlaczego ten konflikt z twierdzeniem Rice'a?


9

Jedno stwierdzenie twierdzenia Rice'a znajduje się na stronie 35 „Złożoności obliczeniowej: nowoczesne podejście” (Arora-Barak):

Funkcja częściowa od do to funkcja, która niekoniecznie jest zdefiniowana na wszystkich jej wejściach. Mówimy, że TM oblicza funkcję cząstkową jeżeli dla każdego na którym zdefiniowano , i dla każdego na którym nie zdefiniowano przechodzi w nieskończoną pętlę po wykonaniu na wejściu . Jeśli jest zbiorem funkcji częściowych, to definiujemy jako funkcję boolowską, która na wejściu wyjścia 1 iff{0,1}{0,1}M.faxfaM.(x)=fa(x)xfaM.xS.faS.αM.αoblicza częściowy funkcję . Twierdzenie Rice'a mówi, że dla każdej niebrywalnej funkcja nie jest obliczalna.S.S.faS.

Wikipedia stwierdza, że ​​języki ograniczonych urządzeń do pomiaru czasu są WYGODNE. Oczekuję, że ten język wygląda jak akceptuje mniej niż kroków . Więc niech będzie jakimś DTM, który decyduje o tym ograniczonym języku w czasie wykładniczym. Wygląda na to, że DTM decyduje o jakiejś właściwości WSZYSTKICH maszyn Turinga, więc moja intuicja podpowiada mi, że twierdzenie Rice'a wyklucza taką decyzję. Ale oczywiście oblicza całkowitą funkcję.{(α,x,n):M.αxn}M.M.

Czego mi brakuje w związku między tym językiem a twierdzeniem Rice'a?

Odpowiedzi:


13

Język

{(α,x,n):Mα accepts x in less than n steps}

nie jest zestawem indeksów, to znaczy nie ma formy

L.P.={M.M. jest TM, faP.. faM.=fa}

dla pewnego zbioru funkcji (częściowe rekurencyjne) , przy funkcję (częściowe) obliczony przez TM . Twierdzenie Rice'a zawiera stwierdzenia tylko o takim ; wiele „intuicyjnych” przeredagowań nie jest pomocnych. Zobacz także tutaj .P.faM.M.L.P.

Pamiętaj, że nie jest to tylko szczegół techniczny. Twierdzenie Rice'a nie ma zastosowania

L.={M.M. akceptuje M. w mniej niż M. kroki} ,

zarówno. Czy widzisz dlaczego?

Dla każdej maszyny w można łatwo skonstruować wiele maszyn, które akceptują ten sam język, ale pracować dłużej niż kroki, a tym samym nie są w . Zatem nie jest zestawem indeksów.L.M.L.L.

L. jest rozstrzygalne, używając tego samego argumentu, co w przypadku oryginalnego języka, który omawiamy.


+1. Zwłaszcza w przypadku hiperłącza, które prawdopodobnie również tutaj ma zastosowanie. Mimo to starałem się przedstawić „intuicyjną” analizę jako alternatywną odpowiedź.
Jirka Hanika,

6

Twierdzenie Rice'a mówi, że nie można nic powiedzieć o ostatecznym zachowaniu programu, gdy jest on uruchamiany do nieskończoności - bez względu na to, jak klasyfikujesz programy, będą dwa programy, które zbiegną się do tego samego ostatecznego zachowania (funkcja obliczona ), chociaż sklasyfikowałeś je inaczej.

Ale uruchomienie programów do nieskończoności jest niezbędne. Aby dowiedzieć się, co robią w pierwszej kolejnościn kroki, możesz po prostu symulować je po raz pierwszy nkroki, a następnie zakończ wydawanie werdyktu na temat zachowania programu. Podobna symulacja do nieskończoności nie działa, ponieważ jeśli symulowany program nigdy nie zakończy działania na symulowanym wejściu, klasyfikator również się rozejdzie, zamiast podać klasyfikację.


5

Po pierwsze, słowa w twoim języku nie są kodowaniem maszyn, zawierają więcej informacji, więc nie możesz bezpośrednio zastosować twierdzenia Rice'a. To powiedziawszy, twierdzenie Rice'a mówi o niemożności rozumowania funkcji obliczonej przez maszynę Turinga (mianowicie, czy leży ona w jakimś zbiorzeS.). W tym przypadku tak nie jest, ponieważ, jak wspomniał Raphael, istnieją dwie maszynyM.,M. którzy obliczają tę samą funkcję, ale jedna leży w twoim języku, a druga nie (tutaj ignoruję problem składniowy i zapominam o tym, że x,nsą częścią danych wejściowych). Chodzi o to, że oglądana tutaj właściwość jest mechaniczna, a nie semantyczna (maszyny mogą obliczać tę samą funkcję, ale w inny sposób).


Pierwszy argument jest formalny, ale poprawny. Drugi argument wprawia mnie w zakłopotanie (nie jestem pewien, czy mógłbym rygorystycznie zdefiniować lokalność / globalność; i nie wiem, co to znaczy obliczyć funkcję „z zestawu funkcji”).
Jirka Hanika,

Pierwszy argument jest rzeczywiście jedynie syntaktyczny, jak Raphael wspomniał w swojej odpowiedzi. Problem lokalny / globalny miał wskazywać na różnicę między rozumowaniem wyniku na pojedynczym wejściu a wszystkimi danymi wejściowymi (nie miałem tego na myśli w sensie formalnym, może oznaczać coś innego w innym kontekście). Obliczenie funkcji z danego zestawu oznacza po prostu pytanie, czy funkcja jest obliczana przezM.α jest w S..
Ariel,

Twierdzenie Rice'a nie wymaga rozumowania zachowania maszyny na wszystkich wejściach. Na przykład niemożliwe jest klasyfikowanie programów na podstawie tego, czy ostatecznie zaakceptują, gdy zostaną uruchomione na wejściu „5”. A raczej możesz zdefiniować taką klasyfikację, która ignoruje zachowanie większości danych wejściowych, ale klasyfikacja nadal nie jest rekurencyjna.
Jirka Hanika,

To było rzeczywiście mylące, ponieważ można to zdefiniować S. być zbiorem funkcji, które generują 1na niektórych ustalonych danych wejściowych. Dzięki za podniesienie problemu.
Ariel,

3

Twierdzenie Rice'a mówi, że dla każdego nietrywialnego zestawu L języków, zestaw maszyn Turinga, które rozpoznają język Ljest nierozstrzygalny. Wikipedia mówi, że określony język jest rozstrzygalny. Więc nie ma sprzeczności.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.