Mówimy, że maszyna Turinga jest śmiertelna, jeśli M zatrzymuje się przy każdej początkowej konfiguracji (w szczególności zawartość taśmy i stan początkowy mogą być dowolne). Czy każdy język rekurencyjny jest rozpoznawany przez śmiertelną Maszynę Turinga? (tzn. jeśli istnieje baza TM, która akceptuje L , istnieje również śmiertelna baza TM, która akceptuje L )
computability
Marcin Kotowski
źródło
źródło
Odpowiedzi:
Oto dwa wyniki cytowane w Charles E. Hughes „Nierozstrzygalność skończonej zbieżności dla konkatenacji, wstawiania i ograniczonych tasowania operatorów” :
Twierdzenie 3 : Klasa śmiertelnych maszyn Turinga jest dokładnie klasą maszyn Turinga o stałym czasie pracy.
st wszystkich początkowych konfiguracji, C , M zatrzymanie w ciągu nie więcej niż s etapów }doo n s t T= { M. ∃ s do M. s }
Więc myślę, że możemy czerpać następujące: podany śmiertelny maszyna Turinga , niech M ' , y mieć odpowiedni czas na stałym TM i jej czas pracy. Język rozpoznawany przez M zamiast alfabetu Σ = { 0 , 1 } to dokładnie:M. M.′, s M. Σ = { 0 , 1 }
Zatem klasa języków rozpoznawana przez śmiertelne maszyny Turinga jest odpowiednim podzbiorem klasy zwykłych języków. Na przykład możesz użyć aby oszukać za każdym razem TM.L={(0|1)∗1∗}
Sprawy stają się interesujące, gdy próbujemy zdecydować, czy maszyna Turinga jest śmiertelna, ponieważ musimy zmierzyć się z dowolną (skończoną) początkową taśmą i stanem.
Twierdzenie 4 : zbiór śmiertelnych maszyn Turinga jest rekurencyjnie wyliczalny.
źródło
Myślę, że jest. Musimy wykonać dla każdego L an M, który to zaakceptuje, w taki sposób, aby wszystkie jego ruchy były rejestrowane na taśmie i po każdym „głównym kroku” sprawdza, czy wszystkie jego kroki do tego momentu były naprawdę prawidłowe. Poniżej daję szkic, jak taka maszyna powinna być wykonana (która może zawierać drobne błędy, ale główny pomysł powinien być w porządku).
Oznacz maszynę, która akceptuje L przez T. Teraz opisujemy M. Najpierw kopiujemy x na osobnej taśmie pamięci. Następnie, gdy T wykona ruch, zapisujemy go na taśmie pamięci, po x. Następnie kopiujemy całą zawartość taśm T na dodatkowe taśmy robocze i sprawdzamy, czy od konfiguracji początkowej T naprawdę przejdzie do obecnego stanu po krokach zapisanych na taśmie pamięci. Jeśli nie, zatrzymamy się. Jeśli tak, kontynuujemy.
źródło