Powiedzmy, że istnieją maszyny Turinga M1, M2, M3, języki, które uznają, odpowiednio, L (M1), L (M2) i L (M3). Następujący język L = {(M1, M2, M3): L (M1), L (M2) i L (M3) nie są równe} Czy język jest rozstrzygalny? Rekursywnie przeliczalne? Albo nie?Rozstrzygalność i rekursywna enumerability
Odpowiedz
Niech M M i, być maszyna, która symuluje uruchomiony jakiś inny maszynowy M i na wejściu I
i zwraca true
jeśli M i ostatecznie przystaje na I
i pętle zawsze inaczej.
Niech M ∞ będzie trywialną maszyną, która po prostu zapętla się na zawsze.
Następnie (M M i, że M ∞ M ∞) jest L IFF M ı postojów na wejściu I
.
Zmniejsza to rozstrzygalność problemu zatrzymania do rozstrzygalności L, a zatem L jest nierozstrzygalny.
=============
Następnie niech udowodnić, że L nie jest rekurencyjnie przeliczalny przez sprzeczności.
Załóżmy, że L jest rekurencyjnie przeliczalny, więc istnieje Maszyna Turinga M takie, że jeśli M i, M j i M k są trzy Maszyna Turinga, których odpowiednie języki nie są sobie równe, a następnie M będzie w końcu wypluł potrójny (M i, M j, M k).
Rozważmy teraz modyfikację M, zwaną M ', która jest definiowana przez przyjęcie M i dodanie wartości (M, M', M ') do L (M'). Ważne pytanie, które należy zadać, to czy (M, M ', M') znajduje się w L? Cóż, jeśli (M, M ', M') jest w L, to L (M) nie może być równe L (M ') (w przeciwnym razie nie pasowałoby do definicji L), więc L (M) nie może zawierać (M, M ', M') (ponieważ jest to jedyna modyfikacja, którą wprowadziliśmy). I odwrotnie, jeśli (M, M ', M') nie ma w L, to L (M)! = L (M ') (ponieważ dodaliśmy tę flankę do L (M')), więc musi ona być w L (M), ponieważ języki nie są równe.
Tak więc doszliśmy do paradoksu, który sugeruje, że M nie może istnieć, a zatem L nie jest rekurencyjnie przeliczalne.
Huh ... interesujące. Czy powiedziałbyś, że ten język L jest rekurencyjnie przeliczalny? –
Zaktualizowałem odpowiedź, aby odpowiedzieć na pytanie rekursywnie przeliczalne. To był naprawdę zabawny problem :) –
Twoje rozwiązanie jest bardzo interesujące, dużo się uczę o rekursywnej enumerability i decidability.Cieszę się, że dobrze się z tym bawiłeś. Mam jednak jedno pytanie, jeśli język nie jest RE, czy to automatycznie nie oznacza, że jest nierozstrzygalny? Czy może czegoś brakuje? –
Może przenieść się do teoretycznej informatyki? Czy to zadanie domowe? –
Czy nie jest to problem "czy dwa równoważne automaty"? NP-trudne? –
Myślę, że problem równoważności maszyny Turinga mówi, że języki muszą być równe? W takim przypadku jest to nierozstrzygalne. W tym pytaniu języki nie są równe. –