Wersja skrócona: Dane wyjściowe maszyn są niepoprawne lub niepoprawne, są po prostu sprzeczne, co dowodzi, że maszyna początkowa, która decyduje, czy maszyna wejściowa zatrzymuje się na danym ciągu, czy nie może istnieć.
Wersja długa : Najpierw naszkicujemy dowód (lub przynajmniej jedną jego wersję - jest ich wiele).
- Załóżmy, że mamy Turingowi Maszyna , które określa, czy maszyna Turinga M postojów na wejściowej x , czy nie.H A L T (⟨ M⟩ , X )M.x
- Korzystanie skonstruować maszyny F L I P ( ⟨ M ⟩ , x ) , która wykorzystuje H A L T , aby sprawdzić, czy M zatrzymanie na X , czy nie, a nie odwrotnie, tzn M zatrzymywane na X , F L Pętle I P , jeśli M nie zatrzymuje się na x , F L I P zatrzymuje się.H A L TF L I P (⟨M⟩ , X )H.A L TM.xM.xF L I PM.xF L I P
- Wreszcie utworzyć TM (zabrakło dobre nazwy), które wykonuje się z opisem TM i biegnie F L I P z wejściem ( ⟨ M ⟩ , ⟨ M ⟩ ) , wysyłający co K L I Wyjścia P.C (⟨M⟩ )F L I P( ⟨ M⟩ , ⟨ M⟩ )F L I P
Należy zauważyć, że tak długo, jak istnieje decydujący , każdy z tych etapów jest prosty do wdrożenia; K L I P po prostu musi używać H A L T , aby sprawdzić, co robić, i C tylko powiela swoje wejście do przekazania do F L I P .H A L TF L I PH A L TdoF L I P
Sprzeczność pojawia się, gdy spojrzymy na to, co się dzieje, gdy prowadzimy . Albo C zatrzymuje się, gdy podaje się go jako dane wejściowe lub nie. H A L T zadecyduje o tym:C (⟨ C ⟩)doH A L T
- Jeśli zatrzymanie na wejściu ⟨ C ⟩ , H L T powie Y e y , ale F L I P będzie pętli tak C pętla, zaprzeczając H A L T .do⟨ C ⟩H A L TY e sF L I PdoH A L T
- Jeśli pętle na wejściu ⟨ C ⟩ , H L T powie N O , ale F L I P zostanie zatrzymane, tak C również zatrzymanie, zaprzeczając H A L T .do⟨ C ⟩H A L TN OFLIPCHALT
Ponieważ każdy z etapów budowy jest wyraźnie zdrowy, możemy jedynie stwierdzić, że nie może istnieć; skonstruowaliśmy przypadek, w którym bez względu na to, co mówi, H A L T nie może zdecydować, co wyprowadzić, tzn. problem jest nierozstrzygalny. Po prostu naprawdę trochę młotkując, H A L T nie może istnieć - to znaczy, że nie może być TM, która decyduje o problemie zatrzymania - ponieważ istnieje co najmniej jeden przypadek, który wyraźnie skonstruowaliśmy, w którym nie ma logicznie możliwa odpowiedź. Pamiętaj, że osoba podejmująca decyzję nie może podać złej odpowiedzi i musi coś przekazać, ale w przypadku, gdy skonstruowaliśmy, obie możliwe odpowiedzi są błędne.HALTHALTHALT
Omawiasz dwa różne znaczenia „sprzeczności”.
W twojej analogii maszyna A i jej odwrócona modyfikacja są ze sobą sprzeczne w tym sensie, że ich wyjścia są zawsze inne. (Na przykład mogą zaimplementować dwie funkcje testowe na liczbach całkowitych: „ x ≤ 5?” I „ x > 5?”). Z pewnością jedna rzecz „sprzeczność” może oznaczać w codziennym użyciu, ale nie jest to logiczne dowody.
W logicznych dowodach oznacza to coś silniejszego: coś, co jest po prostu niemożliwe. Np. Funkcja, która zwraca „prawda” na wszystkich wejściach powyżej 5, a „fałsz” na wszystkich wejściach mniejszych niż 10 - to jest sprzeczne w tym silniejszym znaczeniu, ponieważ, powiedzmy, 7, jej wynik musiałby być zarówno „prawdziwy” i „fałsz”, ale to nie to samo. Argument Turinga pokazuje, że program zatrzymania jest sprzeczny w silniejszym znaczeniu: zakładając, że prowadzi do czegoś, co jest niemożliwe, lub o którym wiadomo, że jest fałszywe.
źródło
Oto kolejny dowód, że problem zatrzymania jest nierozstrzygalny. Mówimy, że program wypisuje ciąg jeśli się zatrzymuje i wypisuje x . (Jeśli program nigdy się nie zatrzymuje, to nie wypisuje żadnego łańcucha.) Zdefiniuj f ( n ) jako długość najdłuższego łańcucha, który jest generowany przez program C o długości co najwyżej n .x x f(n) n
Załóżmy, że problem zatrzymania był rozstrzygalny. Następnie można obliczyć za pomocą programu C:f(m)
Oznacza to, że dla każdego z , można napisać program P m , że wyjścia F ( m ) + 1 zerami. Jaka jest długość P m ? Istnieje stały szablon programu C z symbolem zastępczym, który implementuje P m ; symbol zastępczy powinien być wypełniony stałą m . Określenie m zajmuje | m | znaki (tutaj | m | jest długością dziesiętnej reprezentacji m ), gdzie | m | ≈ log 10m Pm f(m)+1 Pm Pm m m |m| |m| m . Szablon przyjmuje pewną stałą liczbęznaków T , więc długość P m wynosi T + log 10 m . Jeśli wybierzemy m wystarczająco duże (wystarczyłoby m = 2 T ), otrzymamy T + log 10 m ≤ m , a zatem f ( m ) jest co najmniej rozmiarem ciągu wyjściowego o P m , tj. F ( m ) ≥ f ( m ) + 1|m|≈log10m T Pm T+log10m m m=2T T+log10m≤m f(m) Pm f(m)≥f(m)+1 . Doszliśmy do sprzeczności.
źródło