Esiste una prova più intuitiva dell'indecidibilità del problema di arresto rispetto alla diagonalizzazione?


30

Comprendo la prova dell'indecidibilità del problema di arresto (fornita ad esempio nel libro di testo di Papadimitriou), basata sulla diagonalizzazione.

Mentre la prova è convincente (capisco ogni passaggio di essa), non mi è intuitivo nel senso che non vedo come qualcuno la deriverebbe, a partire dal solo problema.

Nel libro, la dimostrazione è la seguente: "supponiamo che risolva il problema di arresto su un ingresso , ovvero, decida se la macchina di Turing ferma per l'ingresso . Costruisci una macchina di Turing che accetta una macchina di Turing come input , esegue e inverte l'output. " Quindi continua a mostrare che non può produrre un risultato soddisfacente.MHM;xMxDMMH(M;M)D(D)

È la costruzione apparentemente arbitraria di , in particolare l'idea di nutrire con se stesso, e quindi con se stesso, per cui mi piacerebbe avere un'intuizione. Cosa ha portato le persone a definire quei costrutti e questi passaggi in primo luogo?DMD

Qualcuno ha una spiegazione su come qualcuno potrebbe ragionare nell'argomento della diagonalizzazione (o qualche altra prova), se non conoscessero quel tipo di argomento per cominciare?

Addendum dato il primo giro di risposte:

Quindi le prime risposte sottolineano che dimostrare l'indecidibilità del problema di arresto era qualcosa basato sul precedente lavoro di Cantor e Russell e sullo sviluppo del problema della diagonalizzazione, e che partire da "zero" significherebbe semplicemente dover riscoprire tale argomento.

Giusto. Tuttavia, anche se accettiamo l'argomento della diagonalizzazione come un dato ben compreso, trovo ancora che vi sia un "divario di intuizione" da esso al problema di arresto. La prova di Cantor della numerazione dei numeri reali trovo in realtà abbastanza intuitiva; Il paradosso di Russell lo è ancora di più.

Quello che ancora non capisco è che cosa potrebbe motivare qualcuno a definire sulla base di s' 'auto-applicazione' , e poi di nuovo si applicano a se stessa. Ciò sembra essere meno correlato alla diagonalizzazione (nel senso che l'argomento di Cantor non aveva qualcosa di simile), sebbene ovviamente funzioni bene con la diagonalizzazione una volta definite.D(M)MM;MD

PS

@babou ha riassunto ciò che mi preoccupava meglio di me stesso: "Il problema con molte versioni della prova è che le costruzioni sembrano essere estratte da un cappello magico".


3
Considera la possibilità che qualsiasi prova dell'esistenza di insiemi non numerabili debba essere in qualche modo controintuitiva, anche se ci abituiamo al fatto che siano corretti . Considera anche la possibilità che questa domanda (se correttamente riformulata) appartenga a math.stackexchange.com .
André Souza Lemos,

4
Cantor ha trovato l'argomento della diagonalizzazione e ora non possiamo disimpararlo: Aus dem Paradies, das Cantor uns geschaffen, soll uns niemand vertreiben können .
Hendrik Jan

1
Dopo ulteriori riflessioni, devo chiederti perché pensi che sia così diverso dal paradosso di Russell. Il paradosso di Russell sembra addirittura lo stesso se usiamo la notazione per indicare X S (cioè pensiamo agli insiemi come funzioni i cui valori sono o ). Quindi il paradosso di Russell è definire e quindi considerare . S(X)XStruefalseD(M) = not M(M)D(D)

1
La diagonalizzazione è una tecnica standard . Certo c'è stato un tempo in cui non era noto ma è stato standard per molto tempo, quindi la tua discussione è semplicemente dovuta alla tua ignoranza (non voglio essere scortese, è un dato di fatto: non lo sapevi tutte le altre prove che usano una tale tecnica e quindi la trovano strana la prima volta che la vedi. Quando la hai vista 50 volte probabilmente sarai in grado di capire come può essere applicata in una nuova situazione).
Bakuriu,

1
Forse leggeresti il ​​mio scambio di commenti con Luke Mathieson (seguendo la sua risposta). La sua risposta spiega storicamente perché Turing ha usato l'auto-applicazione (una cosa che chiedi nella tua domanda). Questo sembra essere praticamente il modo in cui i matematici hanno percepito i problemi in quel momento. La mia risposta cerca di dare una prova molto semplice che non la usa (o almeno mostra che non è essenziale) che è un'altra cosa che chiedi, abbastanza diversa. Forse, potrei renderlo ancora più semplice rispetto alla mia risposta. Perché gli insegnanti usano ancora la prova di Turing è un problema sociologico e pedagogico (?!). cc @HendrikJan
Babou

Risposte:


18

Nella tua modifica scrivi:

Quello che ancora non capisco è che cosa potrebbe motivare qualcuno per definire sulla base di M s' 'auto-applicazione' M ; M , quindi applica nuovamente D a se stesso. Ciò sembra essere meno correlato alla diagonalizzazione (nel senso che l'argomento di Cantor non aveva qualcosa di simile), sebbene ovviamente funzioni bene con la diagonalizzazione una volta definite.D(M)MM;MD

Un riassunto "popolare" comune della prova di Turing dice qualcosa del genere:

"Se avessimo una macchina che potrebbe decidere se un altro ferma macchina di Turing o no, potremmo usare questo per costruire un'altra macchina D che, data una macchina di Turing M , sarebbe fermare se e solo se M ha fatto non battuta d'arresto. Ma poi ci siamo potrebbe passare D come input a se stesso e quindi ottenere un paradosso: questa macchina si fermerebbe se e solo se non si fermasse! "MHDMMD

Ora, è facile intuire che la sintesi di cui sopra copre un dettaglio importante: l'arresto della Turing machine dipende anche dal suo input, che non abbiamo specificato! Ma questo problema può essere risolto abbastanza facilmente: dobbiamo solo avere D raccogliere alcuni input adatto x M per ciascun ingresso della macchina M , prima di passare a entrambi M H .MDxMMMH

Qual è la scelta adatta per , dato che alla fine vogliamo derivare una contraddizione? Bene, una scelta naturale è suggerita direttamente dalla prova "handwavy" sopra, dove alla fine otteniamo la contraddizione eseguendo la macchina D su se stessa.xMD

Pertanto, affinché il comportamento di sia davvero paradossale in questo caso, cioè quando viene invocato come D ( D ) , ciò che vogliamo è che l'arresto di D ( M ) dipenda dal comportamento di M quando viene invocato come M ( M ) . In questo modo, otterremo la contraddizione che vogliamo impostando M = D .DD(D)D(M)M M(M)M=D

Intendiamoci, questa non è l'unica scelta; avremmo anche potuto derivare la stessa contraddizione costruendo, diciamo, una macchina tale che D ( M ) si ferma se e solo se M ( D ) (anziché M ( M ) ) non si ferma. Ma, mentre è chiaro che la macchina D può duplicare facilmente il suo input prima di passarlo a M H , non è del tutto evidente come costruire una macchina D che invocherebbe M H con il proprio codice come input. Quindi, usando questoDD(M)M(D)M(M)DMHDMH invece di D complicherebbe inutilmente la prova e la renderebbe meno intuitiva.DD


1
Caspita, hai davvero criticato la mia domanda! Questo è esattamente il tipo di storia che stavo cercando! Continuo a leggere tutto, ma sembra che questa sarebbe la risposta accettata. Grazie!
user118967,

18

Può darsi semplicemente che sia sbagliato pensare che qualcuno possa ragionare su questa argomentazione senza fare una discussione simile prima o poi, in un contesto "più semplice".

Ricorda che Turing conosceva la dimostrazione diagonale di Cantor dell'incountabilità dei reali. Inoltre, il suo lavoro fa parte di una storia della matematica che include il paradosso di Russell (che utilizza un argomento di diagonalizzazione) e il primo teorema di incompletezza di Gödel (che utilizza un argomento di diagonalizzazione). In effetti, il risultato di Gödel è profondamente correlato alla prova dell'indecidibilità del problema Halting (e quindi della risposta negativa al problema Entscheidungs ​​di Hilbert).

Quindi la mia tesi è che la tua domanda è in un certo senso mal fondata e che non puoi raggiungere il problema Halting senza passare prima il resto (o qualcosa di molto simile). Mentre mostriamo queste cose agli studenti senza passare attraverso la storia, se tu fossi un matematico che lavora sembra improbabile che passi da nulla a Turing Machines senza nulla in mezzo - il punto centrale di tutto ciò era di formalizzare il calcolo, un problema che molte persone avevano ho lavorato per decenni a quel punto.

Cantor non usò nemmeno la diagonalizzazione nella sua prima prova della pluralità dei reali, se prendiamo le date di pubblicazione come un'approssimazione di quando pensava all'idea (non sempre una cosa affidabile), gli ci vollero circa 17 anni da sapere già che i reali erano innumerevoli, per elaborare l'argomento della diagonalizzazione.

In riferimento alla "auto-applicazione" nella dimostrazione da te menzionata, questa è anche parte integrante del paradosso di Russell (che dipende interamente dall'auto-riferimento), e il primo teorema di incompletezza di Gödel è come la versione potenziata del paradosso di Russell . La prova dell'indecidibilità del problema di Halting è così fortemente informata dal lavoro di Gödel che è difficile immaginare di arrivarci senza di essa, quindi l'idea di "auto-applicazione" fa già parte delle conoscenze di base necessarie per arrivare al problema di Halting . Allo stesso modo, il lavoro di Gödel è una rielaborazione del paradosso di Russell, quindi non ci si arriva senza l'altro (si noti che Russell non è stato il primo ad osservare un paradosso come questo, quindi i prototipi dell'argomento di diagonalizzazione sono stati inseriti nella logica formale da circa 600BCE). Sia il lavoro di Turing che quello di Gödel (i pezzi di cui stiamo parlando qui) possono essere visti come dimostrazioni sempre più potenti dei problemi con l'auto-riferimento e di come si sta incorporando in matematica. Quindi, ancora una volta, è molto difficile suggerire che queste idee a livello di Turing stavano affrontandoa priori , furono il culmine del lavoro di millenni in parti di filosofia, matematica e logica.

Questo autoreferenzialità fa anche parte dell'argomento di Cantor, semplicemente non è presentato in un linguaggio così innaturale come il lavoro più fondamentalmente logico di Turing. La diagonalizzazione di Cantor può essere riformulata come una selezione di elementi dal set di potenze di un set (essenzialmente parte del Teorema di Cantor). Se consideriamo l'insieme di reali (positivi) come sottoinsiemi dei naturali (nota che non abbiamo davvero bisogno delle cifre da ordinare per farlo funzionare, rende solo una presentazione più semplice) e affermiamo che c'è un surrogato dai naturali a i reali, quindi possiamo produrre un elemento del gruppo di potere (cioè un reale) che non è nell'immagine del surjection (e quindi derivare una contraddizione) prendendo questo elemento come l'insieme di naturali che non sono nel loro immagine sotto il surjection. Una volta che lo esprimiamo in questo modo,


2
Sì, sembra che il punto centrale di Turing sia stato quello di ricreare la circolarità (da cui deriva la diagonalizzazione) usando le macchine, al fine di introdurre un'idea astratta del tempo , con la quale parlare della finezza in un modo nuovo.
André Souza Lemos,

Forse puoi illuminarmi, poiché non ho familiarità con alcune di queste prove. Posso capire che queste prove possono essere integrate usando l'auto-referenziazione. Posso persino credere (anche se potrebbe aver bisogno di una prova) che c'è sempre qualche auto-riferimento da trovare in qualunque struttura sia costruita allo scopo. Ma non vedo la necessità di usarlo esplicitamente per condurre la prova alla sua conclusione. Puoi riformulare l'argomento di Cantor in quel modo, ma non è necessario. E non vedo il motivo per cui devi farlo per l'arresto del problema. Potrei aver perso un passo, ma quale?
babou,

Per rendere più chiara la mia precedente osservazione, la domanda originale è : " Esiste una prova più intuitiva dell'indecidibilità del problema di arresto ... ". Sto omettendo la fine, poiché la mia sensazione è che il PO si lamenta principalmente della mancanza di intuizione. Credo che ci sia davvero una prova più intuitiva, non usando l'autoreferenzialità. Potresti pensare che usare quella prova sia pedagogicamente poco saggio (in quanto non correlato al lavoro di Russell e Gödel), ma se risponde alla domanda posta, che senso ha respingerla. Sembra che tu stia negando la domanda piuttosto che rispondervi.
babou,

@babou Penso che il problema qui sia che stiamo rispondendo a diverse domande. L'OP non è stato ben formulato al riguardo, immagino. La domanda ripetuta nel corpo del PO mi sembra essere "come mai qualcuno ha mai pensato all'argomento della diagonalizzazione per dimostrare ..." (parafrasato ovviamente), e che "le costruzioni sembrano essere estratte da un cappello magico" .
Luke Mathieson,

@babou, anche per elaborare un po ', con una tastiera adeguata, non penso che in un modo o nell'altro sia necessariamente pedagogicamente utile (dipenderebbe fortemente dal contesto). In effetti, per la maggior parte dei corsi CS moderni, probabilmente è meglio farlo senza l'argomentazione di diagonalizzazione, la maggior parte degli studenti CS non è più abbastanza matematicamente incline a conoscere il background che renderebbe più facile la comprensione, ma stavo sicuramente rispondendo al domanda che ha posto fine al testo originale del corpo: ...
Luke Mathieson

9

L'autoapplicazione non è un ingrediente necessario della dimostrazione

In poche parole

Se esiste una macchina di Turing che risolve il problema di arresto, da quella macchina possiamo costruire un'altra macchina di Turing L con un comportamento di arresto (funzione caratteristica di arresto) che non può essere il comportamento di arresto di qualsiasi macchina di Turing.HL

Il paradosso basato sulla funzione auto-applicata (chiamato L in questa risposta - scusate le incoerenze della notazione) non è un ingrediente necessario della dimostrazione, ma un dispositivo utilizzabile con la costruzione di una contraddizione specifica, nascondendo ciò che sembra essere il "reale scopo "della costruzione. Questo è probabilmente il motivo per cui non è intuitivo.DL

Sembra più diretto dimostrare che esiste un numero illimitato di comportamenti di arresto (non più delle macchine di Turing), che possono essere definiti come funzioni di arresto caratteristiche associate a ciascuna macchina di Turing. Si può definire costruttivamente una funzione di arresto caratteristica non presente nell'elenco, e costruire da essa, e da una macchina che risolve il problema di arresto, una macchina L che ha quella nuova funzione di arresto caratteristica. Ma poiché, per costruzione, non è la caratteristica funzione di arresto di una macchina di Turing, L non può esserlo. Poiché L è costruito da H usando le tecniche di costruzione della macchina di Turing, H non può essere una macchina di Turing.HLLLHH

L'auto-applicazione di a se stesso, usata in molte prove, è un modo per mostrare la contraddizione. Funziona solo quando l'impossibile funzione di arresto caratteristico è costruita dalla diagonale dell'elenco di Turing ha permesso funzioni di arresto caratteristico, capovolgendo questa diagonale (scambiando 0 e 1 ). Ma ci sono infiniti altri modi per costruire una nuova caratteristica funzione di arresto. Quindi la non-Turing-ness non può più essere evidenziata con un paradosso bugiardo (almeno non semplicemente). La costruzione ad auto-applicazione non è intuitiva perché non è essenziale, ma sembra liscia quando viene estratta dal cappello magico.L01

Fondamentalmente, non è una macchina di Turing perché è progettata dall'inizio per avere un comportamento di arresto che non è quello di una macchina di Turing e che può essere mostrato più direttamente, quindi in modo più intuitivo.L

Nota : può darsi che, per qualsiasi scelta costruttiva della funzione di arresto caratteristico impossibile, vi sia un riordino calcolabile dell'enumerazione della macchina di Turing in modo che diventi la diagonale (non lo so). Ma, imho, questo non cambia il fatto che l'auto-applicazione è una tecnica di prova indiretta che nasconde un fatto più intuitivo e interessante.

Analisi dettagliata delle prove

Non sarò storico (ma grazie a quelli che lo sono, mi diverto), ma sto solo cercando di lavorare sul lato intuitivo.

Penso che la presentazione di @vzn , che ho incontrato molto tempo fa (avevo dimenticato), in realtà è piuttosto intuitiva e spiega persino il nome diagonalizzazione. Lo sto ripetendo nei dettagli solo perché sento che @vzn non ha enfatizzato abbastanza la sua semplicità.

Il mio scopo è di avere un modo intuitivo per recuperare la prova, conoscendo quella di Cantor. Il problema con molte versioni della dimostrazione è che le costruzioni sembrano essere estratte da un cappello magico.

La prova che do non è esattamente la stessa della domanda, ma è corretta, per quanto posso vedere. Se non ho commesso un errore, è abbastanza intuitivo dal momento che potrei recuperarlo dopo più anni di quanto mi importi, lavorando su questioni molto diverse.

Il caso dei sottoinsiemi di (Cantor)N

SjCj(i)1iSj0

TT[i,j]=Cj(i)

DD(i)=T[i,i]¯

D

DN

Questo è certamente, secondo la domanda iniziale, abbastanza intuitivo. Possiamo rendere intuitiva la prova del problema dell'arresto?

Il caso del problema di arresto (Turing)

MjHj(i)1Mji0

TT[i,j]=Hj(i)

DD(i)=T[i,i]¯

D

D

THj

HH(i,j)Hj(i)

HLDLHL(i)H(i,i)H(i,i)1L(i)

LHDLH

Ho deliberatamente imitato la prima prova e sono entrato in piccoli dettagli

La mia sensazione è che i passaggi vengano naturalmente in questo modo, specialmente se si considera la prova di Cantor ragionevolmente intuitiva.

Il primo elenca i costrutti litigiosi. Quindi si prende e modifica la diagonale come un modo conveniente di toccarli tutti per ottenere un comportamento non giustificato, quindi si ottiene una contraddizione esibendo un oggetto che ha il comportamento non giustificato ... se alcune ipotesi dovessero essere vere: esistenza di l'enumerazione di Cantor e l'esistenza di un oracolo di arresto calcolabile per Turing.

DTTLDL(i)HH(i,i)

Confronto con la "altra" prova

LD

Lo costruiamo solo in modo tale che abbia una caratteristica funzione di arresto che non corrisponda a nessuna macchina di Turing, e ne ricaviamo direttamente una contraddizione. Questo ci dà la libertà di non usare la diagonale (per quello che vale).

LjLL=MjLL(jL)T[jL,jL]=H(jL,jL)=1L(jL)L(jL)T[jL,jL]=H(jL,jL)=0L(jL)LL non può essere una macchina di Turing perché è costruita per avere una caratteristica funzione di arresto che non è quella di una macchina di Turing.

Un aspetto secondario è che questa solita dimostrazione sarebbe molto più dolorosa se non scegliessimo la diagonale, mentre l'approccio diretto usato sopra non ha alcun problema. Se ciò possa essere utile, non lo so.


Molto bello grazie! Sembra che in qualche modo sei riuscito a aggirare le costruzioni auto-applicate che ho trovato fastidioso. Ora mi chiedo perché la gente li abbia trovati necessari in primo luogo.
user118967,

@utente118967 Ho provato a sottolineare che l'uso della diagonale non è molto importante. Tutto quello che vuoi è definire una caratteristica funzione di arresto che sia diversa da tutte quelle elencate nella tabella e che sia calcolabile da quelle elencate, a condizione che abbiamo un oracolo di arresto. Esistono infinite funzioni di arresto caratteristiche. Ora ciò non sembra così visibile nella solita dimostrazione, e può darsi che alcuni costrutti di quella dimostrazione sembrino arbitrari semplicemente perché lo sono, come scegliere la diagonale nella dimostrazione sopra. È solo semplice, non essenziale.
babou,

@utente118967 Ho aggiunto e un'introduzione che sintetizza l'analisi delle varie prove. Completa il confronto tra prove (con e senza auto-applicazione) che viene fornito alla fine. Non so se ho eliminato la diagonalizzazione come richiesto :) (penso che sarebbe ingiusto dirlo), ma suggerisco come eliminare l'evidente diagonale. E la prova non usa l'auto-applicazione, che sembra un trucco inutile, ma dall'aspetto fluido, che nasconde quello che può sembrare un problema più importante, il comportamento di arresto.
babou,

@ user118967 Per rispondere al tuo primo commento e dopo aver letto la risposta più votata, sembra che la motivazione principale sia il collegamento con il lavoro di Russell e Gödel. Ora non ho idea se sia davvero essenziale per quello scopo, e la variante di auto-applicazione delle costruzioni può certamente essere studiata per lo scopo, ma non vedo il punto di imporlo a tutti. Inoltre, la prova più diretta sembra più intuitiva e fornisce lo strumento per analizzare ulteriormente la versione auto-applicante. Allora perche?
babou,

Sì, tendo ad essere d'accordo con te su questo.
user118967

8

C'è anche una prova di questo fatto che usa un paradosso diverso, il paradosso di Berry, che ho sentito da Ran Raz.

B(n)nS(n)nB(n)S(n)

Considera il seguente programma:

  1. n

  2. L

  3. L

B(n)nO(logn)nO(logn)ClognNClogNNNB(N)B(N)

La stessa idea può essere usata per dimostrare i teoremi di incompletezza di Gödel, come mostrato da Kritchman e Raz .


Forse è nel documento che cito o nella monografia classica Kolmogorov Complexity di Li e Vitányi.
Yuval Filmus,

A proposito, pensi che questo metodo fornisca un attacco al problema NP vs CoNP?
Mohammad Al-Turkistany,

No. Al momento tali problemi sono al di là di noi.
Yuval Filmus,

n

nnn

6

C'è un'idea più generale coinvolta qui chiamata "teorema della ricorsione" che può essere più intuitivo: le macchine di Turing possono usare la loro descrizione (e quindi eseguire se stessi). Più precisamente, c'è un teorema:

Per qualsiasi macchina Turing T, esiste una macchina Turing Rche calcola R(x) = T(R;x).

Se avessimo una macchina di Turing in grado di risolvere il problema di arresto, quindi usando l'idea sopra descritta, possiamo facilmente costruire una varietà di macchine di turing "bugiardo": ad esempio in notazione simile a un pitone,

def liar():
    if halts(liar):
        return not liar()
        # or we could do an infinite loop
    else:
        return True

L'argomento più complicato consiste essenzialmente nel provare a farlo direttamente senza fare appello al teorema della ricorsione. Cioè, sta ripetendo una ricetta per costruire funzioni "autoreferenziali". ad esempio, dato una macchina di Turing T, ecco una ricetta per costruire un Rsoddisfacente

R(x) = T(R; x)

Innanzitutto, definire

S(M; x) = T(M(M; -); x)

dove M(M; -), ciò che intendo veramente è che calcoliamo (usando la descrizione di M) e inseriamo una descrizione di una macchina di Turing che, in input y, valuta M(M; y).

Ora, osserviamo che se ci colleghiamo Sa se stesso

S(S; x) = T(S(S; -); x)

otteniamo la duplicazione che vogliamo. Quindi se impostiamo

R = S(S; -)

Poi abbiamo

R(x) = T(R; x)

come desiderato.


Il primo paragrafo non corrisponde al teorema che citi, che conosco con il nome di teorema smn.
Raffaello

@Raphael: nel mio libro di testo si chiama teorema della ricorsione. :( Il mio breve tentativo su google non è riuscito a trovare nomi alternativi.

Nessun problema; forse ti capisco male o ci sono nomi diversi per la stessa cosa. Detto questo, la tua frase "Le macchine di Turing possono usare la propria descrizione" non è supportata dal teorema che citi. In effetti, penso che sia sbagliato: se la funzione calcolata da una TM dipendesse dal suo indice, come sarebbero tutte le infinite TM che calcolano la stessa funzione?
Raffaello

TliarTruenot liar()False

TRR(x)=T(R;x)TRR(x)=T(R;x)

5

la prova di Turing è abbastanza simile alla prova di Cantors secondo cui la cardinalità dei reali ("plural") è più grande della cardinalità dei razionali ("numerabile") perché non possono essere messi in corrispondenza dell'1-1 ma questo non è notato / sottolineato in moltissimi riferimenti (qualcuno ne conosce qualcuno?). (iirc) un prof di CS una volta ha mostrato questo anno fa in classe (non sono sicuro di dove l'abbia preso lui stesso). in Cantors prova si può immaginare una griglia con dimensione orizzontale della n esima cifra del numero e la dimensione verticale del n esimo numero del set.

la costruzione della prova arresto Turing è abbastanza simile tranne che i contenuti della tabella sono Halt / Nonhalt per 1/0 invece, e l'asse orizzontale è n esimo ingresso, e l'asse verticale è n esimo programma per computer. in altre parole, la combinazione di programmi per computer e input è numerabile, ma la tabella / matrice infinita non è numerabile in base a una costruzione di un simulatore di macchina universale che può "capovolgere" un arresto a un caso non inalterante supponendo che esista una macchina rilevatore di arresto (quindi reductio ad absurdam ) .

alcune prove del fatto che Turing avesse in parte in mente la costruzione di Cantors è che il suo stesso articolo con la prova ininterrotta parla di numeri calcolabili come (lungo le linee di) numeri reali con cifre calcolabili.


Inoltre, esiste davvero un modo molto "intuitivo" di vedere l'indecidibilità, ma richiede molta più matematica per capire (l'intuizione di un neofita è molto diversa dall'intuizione di un esperto). i matematici considerano il problema dell'arresto e le divinità dimostrano identiche prove attraverso un teorema a punto fisso di Lawvere, ma questo è un fatto avanzato non molto accessibile agli studenti "ancora". vedi problema con l'arresto, insiemi incontestabili, problema matematico comune? Informatica teorica e anche link collegato per
refs

3

A questo punto vale la pena notare il lavoro di Emil Post a cui è (giustamente) attribuito il merito di essere un co-scopritore dei risultati di base della calcolabilità, sebbene purtroppo sia stato pubblicato troppo tardi per essere considerato un co-scopritore della soluzione al problema di Entscheidungs . Ha certamente partecipato all'elaborazione della cosiddetta tesi di Church-Turing .

La posta era motivata da considerazioni molto filosofiche, vale a dire i limiti teorici della capacità umana di calcolare o persino ottenere risposte precise in modo coerente . Ha ideato un sistema, ora chiamato Post sistemi canonici , i cui dettagli non sono importanti, che ha affermato potrebbe essere usato per risolvere qualsiasi problema che possa essere risolto in modo così semplice mediante la manipolazione di simboli . È interessante notare che ha esplicitamente considerato gli stati mentali come parte della "memoria" in modo esplicito, quindi è probabile che almeno abbia considerato il suo modello di calcolo come un modello di pensiero umano nella sua interezza.

Il problema di Entscheidungs ​​considera la possibilità di usare un tale mezzo di calcolo per dire, determinare la teorema di qualsiasi proposizione esprimibile nel sistema di Principia Mathematica . Ma il PM era un sistema esplicitamente progettato per essere in grado di rappresentare tutto il ragionamento matematico e, per estensione (almeno all'epoca, quando il Logicismo era ancora in voga) tutto il ragionamento umano!

Quindi non sorprende quindi rivolgere l'attenzione di un tale sistema ai sistemi canonici Post stessi, proprio come la mente umana, attraverso le opere di Frege, Russel e i logici della svolta del secolo aveva rivolto la loro attenzione alla facoltà di ragionamento della stessa mente umana.

Quindi è chiaro a questo punto che l'autoreferenzialità, o la capacità dei sistemi di descrivere se stessi, era un argomento piuttosto naturale nei primi anni '30. In effetti, David Hilbert sperava di "avviare" il ragionamento matematico stesso, fornendo una descrizione formale di tutta la matematica umana, che poi avrebbe potuto dimostrarsi matematicamente coerente!

Una volta ottenuto il passo nell'utilizzare un sistema formale per ragionare su se stesso, è un salto e un salto dai soliti paradossi autoreferenziali (che hanno una storia piuttosto antica ).

Poiché si presume che tutte le affermazioni in Principia siano "vere" in un certo senso metafisico, e Principia può esprimere

il programma prestituisce il risultato truesull'inputn

se esiste un programma per decidere tutti i teoremi in quel sistema, è abbastanza semplice esprimere direttamente il paradosso del bugiardo:

questo programma si trova sempre.

può essere espresso da

Il programma prestituisce sempre l'opposto di ciò che il principia matematica dice pche tornerà.

La difficoltà sta nel costruire il programma p. Ma a questo punto, è piuttosto naturale considerare la frase più generale

Il programma prestituisce sempre l'opposto di ciò che il PM dice qche tornerà.

per alcuni arbitrari q. Ma è facile da costruire p(q)per ogni dato q! Calcola solo ciò che PM prevede che verrà prodotto e restituisci la risposta opposta. Non possiamo semplicemente sostituire qda pa questo punto però, dal momento pprende qcome input, e qnon lo fa (non tiene ingresso). Cambiamo la nostra frase in modo che p fa prendere l'input:

Il programma prestituisce il contrario di ciò che dice PM q(r)tornerà.

Arg! Ma ora pprende 2 pezzi di input: qe r, mentre qrichiede solo 1. Ma aspetta: vogliamo pcomunque in entrambi i posti, quindi rnon è un nuovo pezzo di informazione, ma solo lo stesso pezzo di dati, vale a dire q! Questa è l'osservazione critica.

Quindi finalmente abbiamo

Il programma prestituisce il contrario di ciò che dice PM q(q)tornerà.

Dimentichiamoci di questo sciocco affare "dice il PM", e otteniamo

Il programma p(q)restituisce il contrario di ciò q(q)che tornerà.

Questo è un programma legittimo a condizione che abbiamo un programma che ci dice sempre cosa q(q)ritorna . Ma ora che abbiamo il nostro programma p(q), siamo in grado di sostituire qda pe ottenere il paradosso del nostro bugiardo.

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.