La prova di indecidibilità del problema Halting tradisce invertendo i risultati?


12

Ho difficoltà a capire il problema di arresto di Turing.

La sua prova presuppone che esista una macchina magica grado di determinare se un computer si fermerebbe o si riavvierebbe per sempre per un dato input. Quindi colleghiamo un'altra macchina che inverte l'output e abbiamo una contraddizione e quindi H non può esistere.HH

La mia preoccupazione è che sembra che stiamo dicendo che una risposta è sbagliata perché l'abbiamo invertita. Come analogia, se esiste una macchina chiamata tale che genera una risposta corretta su alcuni ingressi e una risposta errata su altri. Quindi colleghiamo un'altra macchina che inverte il risultato di A in modo che la combinazione delle due macchine sia in contraddizione con la definizione di A. Le due macchine ora generano risposte errate per gli input che A è definito per produrre risposte corrette ed emette risposte corrette per input che A è definito per produrre risposte errate. Questo sarebbe chiamato una contraddizione, e quindi non esiste una macchina che produce una risposta corretta su alcuni input e risposte errate su altri?AAAAA

Risposte:


20

Versione breve: gli output delle macchine non sono corretti o errati, sono solo contraddittori, il che dimostra che la macchina iniziale che decide se la macchina di input si ferma sulla stringa data o no non può esistere.

Versione lunga : prima disegneremo la prova (o almeno una versione di essa - ce ne sono molte).

  1. Supponiamo di avere una macchina di Turing che decide se le macchine di Turing M ferma sull'ingresso x oppure no.HALT(M,x)Mx
  2. Utilizzando si costruisce una macchina F L I P ( M , x ) che utilizza H A L T per verificare se M ferma su x oppure no, poi fa il contrario, cioè se M ferma su x , F L I P loop, se M non si ferma su x , F L I P si ferma.HALTFLIP(M,x)HALTMxMxFLIPMxFLIP
  3. Infine creiamo un TM (I finito i nomi buoni), che prende la descrizione di una MT e corre F L I P con ingresso ( M , M ) , outputting qualunque F L I Uscite P.C(M)FLIP(M,M)FLIP

È importante notare che finché esiste il decisore , ciascuno di questi passaggi è semplice da implementare; F L I P Deve solo usare H A L T controlla cosa fare, e C solo duplica il suo ingresso passi a F L I P .HALTFLIPHALTCFLIP

La contraddizione nasce quando guardiamo a ciò che accade quando si corre . O C arresta quando si dato come input o meno. H A L T deciderà questo:C(C)CHALT

  • Se ferma sull'ingresso C , H A L T dirà Y e s , ma poi F L I P si ciclo, dunque C cappio volontà, contraddicendo H A L T .CCHALTYesFLIPCHALT
  • Se loop sull'ingresso C , H A L T dirà N o , ma poi F L I P arresterà, quindi C anche fermata, contraddicendo H A L T .CCHALTNoFLIPCHALT

Poiché ciascuno dei passaggi della costruzione è chiaramente corretto, possiamo solo concludere che non può esistere; abbiamo costruito un caso in cui, indipendentemente da ciò che dice, H A L T non può decidere cosa produrre, cioè il problema è indecidibile. Giusto per martellare un po 'sul punto, H A L T non può esistere - cioè non può esserci una TM che decide il problema di arresto - perché c'è almeno un caso che abbiamo costruito esplicitamente dove non c'è logicamente possibile risposta. Ricorda che un decisore non è autorizzato a produrre la risposta sbagliata e deve produrre qualcosa, ma nel caso in cui abbiamo costruito, entrambe le possibili risposte sono sbagliate.HALTHALTHALT


La tua definizione della macchina non ha senso perché non accetta nessuno degli input che M accetta. Quindi come può funzionare? CM
AleksandrH,

7

Stai discutendo due diversi significati di "contraddire".

Nella tua analogia, la macchina A e la sua modifica capovolta si contraddicono a vicenda solo nel senso che le loro uscite sono sempre diverse. (Ad esempio, potrebbero implementare due funzioni di test su numeri interi, " x ≤ 5?" E " x > 5?") Questa è certamente una cosa che "contraddire" può significare nell'uso quotidiano, ma non è ciò che si intende in termini logici prove.

Nelle prove logiche, significa qualcosa di più forte: qualcosa che è semplicemente impossibile. Ad esempio una funzione che restituisce "vero" su tutti gli ingressi più di 5 e "falso" su tutti gli ingressi meno di 10 - questo è contraddittorio in questo senso più forte, perché, diciamo, 7, il suo output dovrebbe essere sia "vero" e "falso", ma quelli non sono gli stessi. L'argomentazione di Turing mostra che il programma di interruzione è contraddittorio in senso più forte: supponendo che porti a qualcosa di impossibile, o già noto per essere falso.


2

xxf(n)n

f(m)

mm

mPmf(m)+1PmPmmm|m||m|m|m|log10mTPmT+log10mmm=2TT+log10mmf(m)Pmf(m)f(m)+1. Abbiamo raggiunto una contraddizione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.