Ragioni storiche per l'adozione di Turing Machine come modello primario di calcolo.


44

Comprendo che il modello di Turing è diventato lo "standard" nel descrivere il calcolo. Sono interessato a sapere perché questo è il caso, ovvero perché il modello TM è diventato più ampiamente utilizzato rispetto ad altri modelli teoricamente equivalenti (per quanto ne sappia), ad esempio la recursione μ di Kleene o il calcolo Lambda (ho capito che il primo non è apparso fino a dopo e il secondo non è stato originariamente progettato specificamente come modello di calcolo, ma mostra che esistevano alternative sin dall'inizio).

Tutto quello a cui riesco a pensare è che il modello TM rappresenta più da vicino i computer che abbiamo effettivamente rispetto alle sue alternative. È questa l'unica ragione?


1
mentre non sono direttamente sullo stesso argomento, le domande cstheory.stackexchange.com/questions/625/… e cstheory.stackexchange.com/questions/1117/… esplorano la relazione tra TM e il calcolo , e hanno alcune storie storiche elementi. λ
Suresh Venkat,

Sì, ho visto quelli. Comprendo abbastanza bene le storie letterali delle varie teorie, ma sono più interessato agli sviluppi nel tempo che hanno portato alle attuali "preferenze" nel campo, se vuoi.
Evan,

2
In realtà ci sono modelli che sono (probabilmente) più vicini ai computer reali, vedi questa domanda . Generalmente il modello migliore dipende dalle esigenze e differiscono da un'area all'altra.
Kaveh,

Risposte:


46

Ciò sembra essere vero nel contesto di (alcune aree) dell'informatica, ma non in generale.

Una delle ragioni ha a che fare con la tesi della Chiesa. Il motivo principale è che alcuni esperti come Godel non pensavano che gli argomenti che precedenti / altri modelli di calcolo catturano esattamente il concetto intuitivo di calcolo fossero convincenti. Ci sono vari argomenti, Church ne ha avuti alcuni, ma non hanno convinto Godel. D'altra parte l'analisi di Turing è stato convincente per Godel così è stato accettato come il modello per il calcolo efficace. Le equivalenze tra diversi modelli sono state dimostrate in seguito (penso da Kleene).

λμ

μλ. Vedi anche questi articoli di Viggo Stoltenberg-Hansen e John V. Tucker I , II .)

Alcune risorse per ulteriori letture:

Robert I. Soare ha una serie di articoli sulla storia di questi sviluppi, personalmente mi piace quello nel Manuale della teoria della calcolabilità. puoi trovare di più controllando i riferimenti in quel documento.

Un'altra buona risorsa è l' articolo sulla computabilità di Neil Immerman su SEP, vedi anche l' articolo di tesi Church-Turing di B. Jack Copeland.

Le opere raccolte da Godel contengono molte informazioni sulle sue opinioni. Le introduzioni speciali ai suoi articoli sono estremamente ben scritte.

" Metamathematics " di Kleene è un libro molto carino.

Infine, se non sei ancora soddisfatto controlla gli archivi della mailing list FOM , e se non riesci a trovare una risposta nell'archivio invia un'email alla mailing list.


Per favore fatemi sapere se ho qualcosa di sbagliato.
Kaveh,

1
Caspita, questa è un'ottima informazione. Grazie per le risorse, le controllerò (stavo pianificando di leggere la metamatematica - mi metterò in coda).
Evan,

Prego, spero di non aver sbagliato. :)
Kaveh,

C'è stato un recente discorso di Robert Soare all'INI. A quanto ho capito, la ragione principale per il passaggio al modello di Turing e la calcolabilità dalle funzioni ricorsive e dalla teoria della ricorsione per lui è la seguente: è difficile capire e lavorare nella teoria della ricorsione al punto in cui nessuno stava capendo cosa stava succedendo tranne alcuni, la modifica alla calcolabilità ha reso molto più semplice la comprensione e il rilancio dell'area.
Kaveh,

19

Vorrei indebolire l'affermazione secondo cui le TM sono il modello primario di calcolo, o almeno puntano verso un'altra dimensione della domanda. Chiaramente le TM sono dominanti nelle parti più informatiche e algoritmicamente orientate all'informatica, ma nella teoria e nella pratica del linguaggio di programmazione non sono particolarmente dominanti. Ci sono vari motivi per questo, ma forse il più importante è che TM o programmi in esecuzione su TM (diversamente da lambda-calculi o process-calculi) non sono costruiti in modo algebrico. Ciò rende difficile sviluppare teorie del tipo, che sono state il fondamento della teoria del linguaggio di programmazione.


2
Inoltre, i programmi TM noti anche come tabelle di transizione non sono realmente leggibili umanamente.
Raffaello,

13

Una delle cose belle delle macchine di Turing è che lavorano su stringhe anziché su numeri naturali o termini lambda, perché l'input e l'output di molti problemi possono essere naturalmente formulati come stringhe. Non so se questo conta come una ragione "storica" ​​oppure no.


13

Oltre al fatto che le macchine di Turing sono un modello convincente di calcolo su carta e penna (la "nozione intuitiva di calcolo"), penso che possiedano una serie di caratteristiche che sono spesso utili, in particolare quando si dimostrano teoremi su di loro:

  • sono facili da descrivere formalmente e hanno una semantica operativa semplice;
  • è facile dare una definizione concreta della loro complessità temporale e spaziale;
  • modelli più realistici (e complessi) di computer elettronici, come le macchine ad accesso casuale, possono essere simulati da TM con un sovraccarico polinomiale e viceversa.

A volte la facilità di descrizione sembra ostacolare l'utilità delle TM, poiché le descrizioni possono rapidamente trasformarsi in spiegazioni in inglese se non stai attento (almeno, se non sto attento ... Certo, sono un principiante).
Evan,

I tuoi motivi non escludono le macchine di registro, ad esempio.
Raffaello,

Bene, ciò dipende dalla nozione precisa di "macchina registri" che consideri. Ad esempio, coloro che hanno solo operazioni di incremento, decremento e salto non possono simulare TM in tempo polinomiale.
Antonio E. Porreca,

1
λλ

Sono dalla parte del PL, ma il lambda-calcolo puro non è un modello ovvio di calcolo aritmetico (si pensi alla funzione precedente). In lambda-calcolo hai meno nella definizione, ma ci vuole più sforzo per capire le implicazioni della definizione.
Blaisorblade,

0

È stato il primo ad avere un impatto e quindi è stato stabilito, soprattutto nella teoria della complessità. Questa è una ragione debole, ma le persone lavorano in questo modo. Lavoriamo prima sui vecchi problemi aperti invece di dichiararne di nuovi.


8
"Lavoriamo prima sui vecchi problemi aperti invece di dichiararne di nuovi". <- Penso che sia vero il contrario, specialmente in un campo in cui le vecchie domande sono estremamente difficili. Ad esempio, ci sono relativamente poche persone che lavorano nella complessità del circuito (anche se forse ce ne saranno altre ora!). Le persone devono lavorare su problemi che possono risolvere per pubblicare; questo genera un flusso costante di problemi risolvibili appena dichiarati.
Aaron Sterling,

Ero un po 'frettoloso nelle mie parole lì. Sento che spesso le persone preferiscono attenersi a un modello consolidato piuttosto che costruirne uno nuovo (e dimostrarne le proprietà di base) se non vi è una ragione schiacciante per questo. Quella sensazione potrebbe essere off, ovviamente. In particolare, ci sono ovviamente persone che cacciano le modelle in primo luogo.
Raffaello,

Bene, il calcolo lambda è arrivato per primo. Ma Turing ha dimostrato che le macchine Turing modellano accuratamente le basi degli umani facendo calcoli; questo è stato fatto solo per il calcolo lambda quando si dimostra l'equivalenza. Inoltre, questa equivalenza è vera solo per il calcolo del primo ordine: cstheory.stackexchange.com/q/1117/989 - i dati di ordine superiore non esistono realmente sulla carta. Non esiste nemmeno nelle memorie del computer, ma può essere perfettamente simulato.
Blaisorblade,
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.