Relazione tra Turing Machine e calcolo Lambda?


49

Esiste una relazione tra la Macchina di Turing e il calcolo di Lambda - o si sono verificati nello stesso momento?


7
Puoi elaborare la tua domanda? Entrambi i modelli hanno lo stesso potere computazionale (entrambi sono in grado di esprimere la famiglia di funzioni ricorsive), cioè sono Turing completi. Vedi: en.wikipedia.org/wiki/Turing_completeness
Joel Rybicki,


Questa è una bella domanda!
Tayfun paga il

Risposte:


31

Il calcolo lambda è più antico del modello di macchina di Turing, apparentemente risalente al periodo 1928-1929 (Seldin 2006), ed è stato inventato per incapsulare l'idea di una funzione schematica di cui la Chiesa aveva bisogno per una logica fondamentale che ha ideato. Non è stato inventato per catturare la nozione generale di funzione calcolabile, e in effetti una versione tipizzata più debole avrebbe servito meglio i suoi scopi.

Sembra essere secondario allo scopo del fatto che il calcolo inventato dalla Chiesa si sia rivelato completo di Turing, sebbene in seguito Church abbia usato il calcolo lambda come base per quelle che ha chiamato le funzioni effettivamente calcolabili (1936), a cui Turing fece appello nel suo documento .

La semplice teoria dei tipi di Church (1940) fornisce una teoria delle funzioni più moderata e tipizzata che è sufficiente per esprimere la sintassi della logica di ordine superiore ma non esprime tutte le funzioni ricorsive. Questa teoria può essere vista come più in sintonia con la motivazione originale della Chiesa.

Riferimenti

  • Chiesa (1936). Un problema irrisolvibile nella teoria dei numeri elementare. American Journal of Mathematics 58: 345—363.
  • Chiesa (1940). Una formulazione della semplice teoria dei tipi . Journal of Symbolic Logic 5 (2): 56—68.
  • Seldin (2006). La logica di Curry e Church . Nel Manuale di History of Logic, vol.5: Logic from Russell to Church , p. 819-874. Olanda settentrionale: Amsterdam.

Nota Questa risposta è stata sostanzialmente rivista a causa delle obiezioni di Kaveh e Sasho. Raccomando la sequenza temporale di Wikipedia suggerita da Kaveh, Tesi di Storia della Chiesa-Turing , che ha alcune citazioni scelte da articoli seminali.


2
Church ha affermato che il calcolo lambda cattura la notazione intuitiva della funzione calcolabile prima del documento di Turing, ecco perché si chiama Tesi della Chiesa. L'idea di catturare la nozione generale di funzioni calcolabili risale al passato (ad es. Le funzioni ricorsive generali di Godel), e Church stava cercando di catturarla.
Kaveh,

5
Penso che sia fuorviante affermare che l'equivalenza dei modelli è un incidente completo. Mi sembra che Church e Turing abbiano iniziato a catturare nozioni correlate, anche se non era immediatamente ovvio che le nozioni fossero in realtà correlate. Diresti che è "un incidente completo" che l'integrazione e l'anti-differenziazione di Riemann siano strettamente correlate?
Sasho Nikolov,

@Kaveh: Secondo Seldin (2006) La logica di Church and Curry , gli scopi e la sintassi del calcolo lambda furono sviluppati nel periodo 1928-1929, ben prima che Church fosse a conoscenza della nozione generale di funzione ricorsiva. La mia risposta trarrebbe beneficio da una sequenza temporale, ma non ho tempo di metterlo insieme in questo momento.
Charles Stewart,

1
@Charles: la chiesa era a Gottinga 1927-1928. Era sicuramente a conoscenza di ciò che stava accadendo sulla teoria delle funzioni ricorsive e sul programma di Hilbert. Il risultato di Ackermann su una funzione ricorsiva non primitiva è dello stesso anno. La chiesa stava cercando di costruire una base per la matematica. Tutto ciò è accaduto prima del giornale di Turing. Vedere questo . Kleene ha dimostrato l'equivalenza delle funzioni ricorsive generali e della funzione definibile prima del lavoro di Turing. Il tuo ultimo paragrafo è fuorviante poiché dà la sensazione che lo fosseroλ
Kaveh,

1
@Charles, come ho scritto, sono d'accordo sul fatto che la motivazione originale di Church era quella di costruire una fondazione (qualcosa come il sistema di Frege) (AFAIK), ma l'ha anche considerato un modello di calcolo prima del lavoro di Turing. Non credo che la risposta debba essere cancellata, la revisione del secondo paragrafo dovrebbe andare bene. (la ragione per cui ho commentato è che in questi ultimi tempi la gente sottovaluta il lavoro della Chiesa rispetto alla calcolabilità).
Kaveh,

26

Vorrei solo sottolineare che, sebbene il calcolo lambda e le macchine di Turing calcolino entrambe la stessa classe di funzioni teoriche dei numeri, non sono esattamente equivalenti in ogni modo immaginabile. Ad esempio, nella teoria della realizzabilità ci sono affermazioni che possono essere realizzate da una macchina di Turing ma non dal calcolo lambda. Una di queste affermazioni è la tesi formale della Chiesa, che afferma:

f:nun'tnun't e n K (T(e,n,K)U(K,f(n)))

Tcfeffccf. Questo non può essere fatto (posso spiegare perché, se lo fai come domanda separata).


4
TEX

Andrej, l'articolo di Wikipedia utilizza un diverso ordine di parametri che stai utilizzando, il secondo argomento è l'input e il terzo è il codice di arresto del calcolo, il primo argomento è il codice della macchina. Immagino tu stia affermando CT, l'ho modificato in base a vDT88.
Kaveh,

fλfλ

@Kaveh: Penso che sia stato il contrario, ma mi chiedo anche perché non sia naturale avere anche un output dello stesso tipo dell'input nel caso del calcolo lambda.
Abel Molina,

1
f:RR2NNN

11

Sono collegati sia matematicamente che storicamente.

Il calcolo lambda fu sviluppato nel 1928-1929 dalla chiesa Alonzo (pubblicato nel 1932).

La macchina Turing fu sviluppata tra il 1935 e il 1937 da Alan Turing (pubblicata nel 1937).

Alan Turing era il Ph.D. della Alonzo Church studente a Princeton dal 1936 al 1938.

Le macchine di Turing e il calcolo lambda sono equivalenti in termini di potenza computazionale: ciascuno può simulare efficacemente l'altro.


6

Il problema di Entscheidungs è uno dei 23 famosi problemi proposti dal matematico David Hilbert.

Nel 1936 e nel 1937 Alonzo Church e Alan Turing, rispettivamente, pubblicarono articoli indipendenti che mostravano l'impossibilità di decidere algoritmicamente se le affermazioni in aritmetica sono vere o false, e quindi una soluzione generale al problema di Entscheidungs ​​è impossibile.

Ciò è stato fatto da Alonzo Church nel 1936 con il concetto di "calcolabilità effettiva" basato sul suo calcolo λ e da Alan Turing nello stesso anno con il suo concetto di macchine di Turing. Successivamente è stato riconosciuto che si tratta di modelli equivalenti di calcolo. - Wikipedia

Quindi le macchine di calcolo lambda e di Turing non sono solo strettamente correlate ma sono modelli equivalenti di calcolo .

Ti potrebbe piacere anche leggere The Annotated Turing: una visita guidata attraverso il documento storico sulla computabilità di Alan Turing e la macchina di Turing di Charles Petzold . Questo libro raccoglie alcune informazioni interessanti sull'argomento.


4

Le macchine di Turing e Lambda Calculus sono due modelli che catturano la nozione di algoritmo (calcolo meccanico). Il calcolo Lambda è stato inventato dalla Chiesa per eseguire calcoli con funzioni. È la base dei linguaggi di programmazione funzionale. Fondamentalmente, ogni problema che è calcolabile (decidibile) dalle macchine di Turing è anche calcolabile usando il calcolo Lambda. Quindi, sono due modelli equivalenti di calcolo (fino a fattori polinomiali) ed entrambi cercano di catturare la potenza di qualsiasi calcolo meccanico.

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.