Wariant funkcji bobra zajętego


9

Po przeczytaniu tego pytania „ Naturalne problemy RE nierozstrzygalne, ale nie pełne Turinga ” przyszedł mi do głowy następujący język:

Jeśli jest funkcją bobra zajętego (maksymalny osiągalny wynik wśród wszystkich zatrzymujących 2-symbolowych maszyn Turinga n-stanu opisanego powyżej typu, gdy jest uruchamiany na czystej taśmie), zdefiniuj funkcję:Σ(⋅)

BB(⟨M⟩)={1⟨M⟩ computes Σ(⋅)0 otherwise

Teraz zdefiniuj język:

L={⟨M⟩|⟨M⟩ halts and BB(⟨M⟩)=0}

Czy rekurencyjnie wyliczalny? (powinno być ponownie: po prostu symuluj równolegle M ze wszystkimi bazami TM tej samej długości, a jeśli zatrzymuje się i kolejne zatrzymuje się z wyższym wynikiem, dodaj M do wyliczenia).LMM′

Czy możemy zredukować problem zatrzymania do ? (wydaje się, że nie jest w stanie „uchwycić” zatrzymania zajętych bobrów)L


Czyliczba stanów? |⟨M⟩|
— Pål GD

Kiedy policzysz literę , która nie zatrzymuje się na ? nie może być RE, chyba że wyliczysz wszystkich jego członków, a procedura, którą opisałeś, wylicza tylko tych, którzy faktycznie się zatrzymali. MLL
— Steven Stadnicki

@ PålGD: tak, jest to liczba stanów (bez stanu wstrzymania)
— Vor

@StevenStadnicki: Domyślnie założyłem, że zawiera tylko maszyny, które zatrzymują się ... być może powinienem to wyjaśnić w pytaniu (pozwól mi trochę o tym pomyśleć, być może pytanie to będzie trywialne). L
— Vor

2
@Kaveh Nie jest to nawet obietnica - możesz po prostu zdefiniować (jak wierzę, że OP zamierzał) jako . LL={⟨M⟩|M halts∧BB(⟨M⟩)=0}
— Steven Stadnicki

Odpowiedzi:


3

Nie mogę uwierzyć, że nie widziałem tego wcześniej - ale tak, z wyrocznią dla możesz rozwiązać problem zatrzymania. Oczywiście wyrocznia dla daje nam „rekurencyjnie” wszystkie maszyny zatrzymujące bobry nie zajęte , więc pytanie brzmi „czy możemy rekurencyjnie dowiedzieć się w jakie są zajęte bobry?”. Zdefiniuj jako funkcję zliczania „drugiego najbardziej ruchliwego bobra”; to jest drugi najwyższy możliwy do uzyskania wynik spośród wszystkich zatrzymujących dwumaganiowe TM stanowych TM. Sztuczka polega na tym, że istnieje funkcja rekurencyjna taka, że (jest prawie pewne, żeLLLΣ2(n)nf()Σ(n)≤Σ2(f(n))f(n)=n+1załatwi sprawę, ale to wymaga wiedzy, że funkcja BB ściśle się zwiększa): biorąc pod uwagę maszynę o rozmiarze która drukuje 1 na swojej taśmie, a następnie zatrzymuje się, jest trochę i dwie maszyny o rozmiarze które drukują dokładnie 1s i dokładnie 1s odpowiednio na swoich taśmach - i dotyczy to maszyny „zajętej bobra” nawet jeśli nie nie znam wprost . Oznacza to, że ograniczenie dla funkcji „drugi zajęty bóbr” dla daje ograniczenie dla funkcji zajętego bobra naMnΣ(M)c>1≤cnΣ(M)Σ(M)+1M Mf(n)n; ale mając to, łatwo jest rozwiązać problem zatrzymania dla TM o rozmiarze - jeśli to powiedz, że zatrzymuje się; w przeciwnym razie znajdź najdłużej działającą maszynę o rozmiarze w (co można zrobić rekurencyjnie, ponieważ istnieje tylko skończona liczba maszyn o rozmiarze ) i symuluj na tyle kroków, ile potrzeba, aby ta maszyna postój. Jeśli nie zatrzyma się w tym czasie, prawdopodobnie nie może się zatrzymać.Mn⟨M⟩∈LMf(n)L≤f(n)MMM


Dzięki; zainspirowany twoją odpowiedzią znalazłem szybką (trywialną) -: bezpośrednią redukcję problemu zatrzymania w osobnej odpowiedzi.
— Vor

3

To jest przerobiona wersja dobrej odpowiedzi Stevena, z wyraźnym zmniejszeniem problemu Halting.

Biorąc pod uwagę build który uruchamia na a jeśli się zatrzyma, idzie na prawo od taśmy, zapisuje 0 i zatrzymuje.⟨M⟩,wM′Mw

Jeśli zatrzymuje się, ponieważ istnieje odpowiednik TM o tym samym rozmiarze, który zapisuje 1 i zatrzymuje się; więc możemy użyć decydatora dla aby sprawdzić, czy zatrzymuje się ( zatrzymuje się iff )M′BB(M′)=0LMwMwM′∈L

... okazało się, że pytanie jest rzeczywiście banalne :-)

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.