2012-03-10 12 views
5

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

+0

Może przenieść się do teoretycznej informatyki? Czy to zadanie domowe? –

+0

Czy nie jest to problem "czy dwa równoważne automaty"? NP-trudne? –

+0

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. –

Odpowiedz

2

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.

+0

Huh ... interesujące. Czy powiedziałbyś, że ten język L jest rekurencyjnie przeliczalny? –

+0

Zaktualizowałem odpowiedź, aby odpowiedzieć na pytanie rekursywnie przeliczalne. To był naprawdę zabawny problem :) –

+0

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? –

Powiązane problemy