Esiste un'analogia fisica con la Turing Machine?


27

Recentemente nella mia classe CS sono stato presentato alla Turing Machine.

Dopo la lezione, ho trascorso oltre 2 ore a cercare di capire qual è la relazione tra un nastro e una macchina.

Ero completamente inconsapevole dell'esistenza di nastri per computer o di come i nastri e le macchine interagivano fino ad oggi. Non riesco ancora a capire perché una macchina legga i nastri, ma uno scanner è forse un concetto più vicino alla macchina di Turing in cui la carta è considerata un nastro e tutto ciò che va all'interno di uno scanner è ciò che farebbe una macchina di Turing.

Ma in ogni caso, l'idea di una macchina di Turing non è abbastanza arcaica? Abbiamo così tanti dispositivi fisici (piuttosto che ipotetici) nel nostro ufficio o nel nostro salotto che sembrano fare ciò che fa la Turing Machine.

Qualcuno può fornire un esempio migliore attingendo alla realtà in modo da catturare le funzionalità essenziali di questa ipotetica concezione?


1
Se vuoi capire perché una macchina legge i nastri, leggi fin dai primi giorni dell'informatica. Ad esempio, puoi vedere nastri di carta in questa foto di Colosso .
Peter Taylor,

4
Naturalmente ci sono vere macchine di Turing! Anche uno fatto di Lego!
john_leo,

3
Domanda correlata . Si noti che i nastri (finiti) erano ampiamente utilizzati nel calcolo fino all'arrivo dei dischi rigidi.
Raffaello

1
L'argomento Chinese Room ( en.wikipedia.org/wiki/Chinese_room ) potrebbe aiutarti a capire. Ho avuto lo stesso problema con le macchine da turismo quando sono entrato per la prima volta in CS, e la Sala cinese era il ponte di cui avevo bisogno per arrivarci. Inoltre, lo scopo di una Macchina da Tournig è consentire ai matematici di continuare a provare cose interessanti su CS. Non è pensato per essere un vero computer.
Sevensevens,

2
@slebetman Questo potrebbe essere un po 'esoterico per qualcuno che ha appena familiarizzato con Turing Machines, ma il nastro in una Turing Machine non ha accesso casuale; è un accesso sequenziale. Ci vogliono n turni per portare la testa in una cella e spazi di distanza. Lo dico solo perché, mentre lo spazio delle cose calcolabili non cambia, il tempo necessario per calcolarle lo fa. Questo tipo di risultati (ad esempio, è possibile simulare una macchina a 2 nastri con una macchina a 1 nastro, è possibile simulare la RAM con una macchina a 1 nastro, ecc. E con solo un aumento del tempo polinomiale, ecc.) Sono esercizi importanti in corsi di calcolabilità.
Joshua Taylor,

Risposte:


24

Le macchine di Turing sono uno dei modelli di calcolo "originali" completi di Turing, insieme al calcolo e alle funzioni ricorsive definite in modo ricorsivo. Oggi in molte aree dell'informatica teorica viene utilizzato un modello diverso, la macchina RAM, che è molto più vicina ai computer reali. Poiché entrambi i modelli sono p-equivalenti (si simulano a vicenda con un ingrandimento polinomiale), dal punto di vista di domande come P vs. NP, entrambi i modelli sono equivalenti.λ


38

AFAIK the Turing Machine è modellata sull'idea di un essere umano con carta e penna. L'umano ha un certo stato nel cervello, guarda la carta come la macchina guarda il nastro e scrive qualcosa sulla carta o si sposta per guardare in un posto diverso, proprio come la macchina.

La TM è arcaica come l'aritmetica dei numeri naturali di Peano. La TM è inutile per il calcolo pratico, e ovviamente non è pensata per essere utilizzata per questo. È solo un modo semplice per assiomatizzare il calcolo in modo che possiamo ragionare su ciò che è calcolabile e cosa non lo è - proprio come l'aritmetica di Peano è utile per definire dai primi principi quali sono i numeri naturali e quali sono le loro proprietà - ma sarebbe ridicolo prova a fare l'aritmetica manipolando i numeri di Peano a mano secondo le definizioni teoriche.

Basti pensare a quanto sarebbe difficile dimostrare teoremi diversi dalla teoria della complessità e della computabilità (ad esempio, dimostrare che il problema di Halting è indecidibile), se dovessi dimostrarli usando la semantica del linguaggio di programmazione C ++ invece della Macchina di Turing. Le tue prove sarebbero ridicole o impossibili - ridicole quanto la dimostrazione dell'associatività della moltiplicazione dei numeri naturali usando il metodo della scuola elementare applicato agli interi decimali come la tua definizione di cosa sia la moltiplicazione.


5
Bella risposta. Nel documento originale di Turing ha persino derivato la sua definizione della macchina da come un essere umano calcolerebbe qualcosa.
john_leo,

1
Ri: C ++, questo può divertire: port70.net/~nsz/c/c%2B%2B/turing.pdf
Daniel Earwicker

8

Molti modelli di calcolo completi di Turing molto diversi sono fisicamente realizzabili (fino a considerare l'infinito come valore illimitato). Pertanto, non è questo il punto per scegliere un modello.

La risposta di @jkff è appropriata nel notare che la Macchina di Turing è intesa come un dispositivo teorico allo scopo matematico di studiare la computabilità e la provabilità (che si presentano in realtà nel contesto del problema di Entscheidungs di Hilbert ). Ma non è del tutto preciso nei motivi della scelta di un semplice formalismo.

Dimostrare in linea di principio il problema di Halting non è molto più difficile con modelli più avanzati. In effetti, le nostre "prove" sono spesso solo la costruzione di una soluzione. Non andiamo molto negli argomenti reali (molto noiosi) che queste costruzioni siano corrette. Ma chiunque scriva un interprete per un linguaggio completo di Turing fa come qualsiasi costruzione una macchina universale. Bene, C può essere un po 'complicato e potremmo volerlo semplificare un po' per tale scopo.

L'importanza di avere un modello semplice risiede molto più nell'uso che può essere fatto del modello, che nello stabilire le sue proprietà (come il problema di Halting, per prendere l'esempio dato da @jkff).

In genere, il grande teorema sono spesso teoremi che possono essere espressi in modo molto semplice e sono applicabili a una vasta gamma di problemi. Ma non sono necessariamente teoremi che sono facili da dimostrare.

Nel caso della MT, l'importanza della semplicità è perché molti risultati sono stabiliti riducendo il problema Halting, o altri problemi di MT, a problemi a cui siamo interessati (come ambiguty di linguaggi senza contesto), stabilendo così limiti intrinseci alla risoluzione questi problemi.

In effetti, sebbene molto intuitivo (che è probabilmente la ragione principale della sua popolarità), il modello TM spesso non è abbastanza semplice per l'uso in tali prove. Questo è uno dei motivi per l'importanza di alcuni altri modelli, anche più semplici, come il problema della corrispondenza post , meno intuitivo da analizzare, ma più facile da usare. Questo perché questi modelli computazionali vengono spesso utilizzati per dimostrare risultati negativi (che risale al problema originale di Entscheidungs).

Tuttavia, quando vogliamo dimostrare risultati positivi, come l'esistenza di un algoritmo per risolvere un determinato problema, la TM è un dispositivo troppo semplicistico. È molto più semplice considerare modelli avanzati in modalità come il computer RAM , o un computer con memoria associativa , o uno di molti altri modelli, o anche semplicemente uno dei tanti linguaggi di programmazione.

Quindi il modello TM viene solo come punto di riferimento, in particolare per l'analisi della complessità, data la complessità di ridurre questi modelli al modello TM (generalmente polinomiale). La semplicità del modello TM conferisce quindi molta credibilità alle misure di complessità (al contrario, per fare un esempio estremo, alle riduzioni del Lambda-calcolo).

In altre parole, il modello TM è spesso troppo semplicistico per la progettazione e lo studio di algoritmi (risultati positivi) e spesso troppo complesso per lo studio della calcolabilità (risultati negativi).

Ma sembra essere nel posto giusto per fungere da collegamento centrale per connettere tutto insieme, con il grande vantaggio di essere piuttosto intuitivo.

Per quanto riguarda le analogie fisiche, non c'è motivo di scegliere un modello piuttosto che un altro. Molti modelli di calcolo completo di Turing sono fisicamente realizzabili (fino a limiti illimitati per l'infinito di memoria), dal momento che non c'è motivo di considerare un computer insieme al suo software meno fisico di un computer "nudo". Dopotutto, il software ha una rappresentazione fisica, che fa parte del computer programmato. Quindi, dal momento che tutti i modelli di calcolo sono equivalenti da quel punto di vista, potremmo anche sceglierne uno che sia conveniente per l'organizzazione della conoscenza.


Forse è un'osservazione poco simpatica, ma la prima frase non è vera poiché puoi sempre andare verso l'alto. Esistono diversi modelli di iper-computazione che sono modelli di calcolo completi di Turing ma che non sono fisicamente realizzabili.
Nikolaj-K,

Grazie. Non ci ho mai pensato, ma immagino che possa essere giusto, poiché l'ipercomputazione può sempre essere indebolita con altri mezzi. Come pensi che dovrebbe essere dichiarato, dal momento che presumo tu abbia capito cosa intendevo dire?
babou,

1
Sì, non sono solo cose come macchine del tempo non deterministiche o infinite. Una macchina Turing che dopo il passaggio 7 del calcolo si trasforma in un elefante, mangia una ciotola di Spaghetti, costruisce un'altra macchina Turing e procede con il passaggio 8 del calcolo originale ... è anche un valido modello di calcolo completo Turing. Qualunque cosa, non penso che dovresti risolverlo.
Nikolaj-K,

" Qualsiasi modello di calcolo completo di Turing è fisicamente realizzabile. " Beh, no, al contrario, in realtà. In effetti, nessun modello completo di Turing può mai essere costruito fisicamente, perché non possiamo costruire nulla di infinito. Quindi tutti i modelli di calcolo "realizzati fisicamente" sono nella migliore delle ipotesi modelli di automi limitati lineari o meno.
RBarryYoung,

@RBarryYoung Se hai avuto la pazienza di leggere l'intera risposta, potresti aver notato che nell'ultimo paragrafo, chiarisco che questo è "fino alla sconfinatezza per l'infinito della memoria". La prima frase era intesa come introduzione. Pensi che sia inappropriato non dare un fatto così noto nell'introduzione? È vero che provare ad analizzare in modo più approfondito il ruolo del modello TM apre la mia risposta a più critiche. Hai visto qualcos'altro che non va nella mia risposta?
babou,

5

Immagina un nuovo arrivato alla geometria che chiede:

Esiste un'analogia fisica con il triangolo?

L'idea di un triangolo non è del tutto arcaica? Abbiamo così tante forme fisiche (piuttosto che ipotetiche) nel nostro ufficio o nel nostro salotto che sembrano fare ciò che fa il triangolo.

Cosa risponderesti?

Potresti dire che queste domande rivelano due idee sbagliate fondamentali sui triangoli:

  1. "I triangoli sono puramente ipotetici." Sbagliato! Mentre sono entità matematiche, ideali platonici e ipotetici in questo senso, i triangoli sono reali : possiamo effettivamente costruirli nel mondo reale. Certo, ciò che costruiamo non sarà mai un triangolo perfetto, ma la nostra teoria matematica su di essi si applica al mondo reale, le leggi che possiamo derivare si applicano alle forme nel mondo reale, la teoria può essere utilizzata come base per la progettazione, costruire e misurare forme nel mondo reale; questa è la ragione per cui la teoria è stata sviluppata in primo luogo.
  2. "I triangoli sono inutili perché non descrivono le forme che normalmente usiamo."Sbagliato! Descrivere le forme reali che trovi nel mondo reale non è il loro scopo. Se l'intero ufficio o soggiorno non contiene un singolo triangolo, ciò non significa che il concetto di triangolo sia irrealistico o obsoleto e che sarebbe meglio sostituirlo con qualcos'altro. Il loro scopo principale è come un costrutto elementare da cui tutte le forme più complesse possono essere costruite in linea di principio - e per le quali possiamo quindi derivare leggi che si applicano alle forme in generale. Ragionare sui triangoli ci permette di ragionare sulle forme in generale. Il tuo soggiorno è soggetto alle stesse leggi che abbiamo derivato per i triangoli e la nostra conoscenza di queste leggi è stata utilizzata, direttamente o indirettamente, per costruirlo. Il soggiorno probabilmente non ha un singolo triangolo al suo interno, figuriamoci uno perfetto, ma non ci interessa trovare triangoli lì; noi possiamo. tuttavia, costruisci una descrizione delle forme lì dentro approssimandole con triangoli, e questa - triangolazione - è una cosa popolare e utile da fare. Quindi i triangoli sono elementi costitutivi per aiutarci a pensare alle forme in generale.

Lo stesso vale per le macchine di Turing.

È passato così tanto tempo da quando mi è stata introdotta la geometria, non riesco davvero a ricordare se qualche nuovo arrivato abbia effettivamente queste idee sbagliate sui triangoli. Ma quando si tratta di macchine di Turing, ho incontrato queste idee sbagliate per tutto il tempo . Tante volte, in effetti, sembra che ci sia qualcosa di fondamentalmente sbagliato nel modo in cui viene loro insegnato. Forse un approccio show and tell è in ordine!

Quindi, per completezza:

  1. "Le macchine di Turing sono puramente ipotetiche." Sbagliato! Mentre sono entità matematiche, ideali platonici e ipotetici in questo senso, le macchine di Turing sono reali : possiamo effettivamente costruirle nel mondo reale. Certo, ciò che costruiamo non sarà mai una macchina di Turing perfetta, ma la nostra teoria matematica su di loro si applica al mondo reale, le leggi che possiamo derivare si applicano ai dispositivi di calcolo nel mondo reale, la teoria può essere utilizzata come base per progettare, costruire e misurare dispositivi di calcolo nel mondo reale; questa è la ragione per cui la teoria è stata sviluppata in primo luogo.
  2. "Le macchine di Turing sono inutili perché non descrivono i dispositivi informatici che usiamo normalmente."Sbagliato! Descrivere i dispositivi di calcolo reali che trovi nel mondo reale non è il loro scopo. Se l'intero back office o lo studio di home entertainment non contiene una singola Turing Machine, ciò non significa che il concetto di Turing Machine sia irrealistico o obsoleto e che sarebbe meglio sostituirlo con qualcos'altro. Il loro scopo principale è come un costrutto elementare da cui tutti i dispositivi di calcolo più complessi possono essere costruiti in linea di principio - e per i quali possiamo quindi derivare leggi che si applicano alle forme in generale. Il ragionamento su Turing Machines ci consente di ragionare sui dispositivi di calcolo in generale. L'hardware e il software del tuo computer sono soggetti alle stesse leggi che abbiamo derivato per Turing Machines e la nostra conoscenza di queste leggi è stata utilizzata, direttamente o indirettamente, per costruirle, anche se probabilmente non ci sono dentro una sola macchina di Turing. Sono le leggi a cui siamo interessati.

1
Potresti estendere questa discussione sui triangoli al caso dei tesseratti . Sento che i triangoli dovrebbero essere opposti a entità meno ovviamente fisiche.
babou,

1
Ho riso quando ho letto la domanda, perché a me è sembrato esattamente ridicolo quanto affermare che i triangoli sono arcaici. L'informatica è fondamentalmente matematica; non invecchia e non diventa obsoleto. Risposta molto ben scritta; +1.
Wildcard il

Non vedo la rilevanza di un tesseract, ma potrebbe essere un miglioramento utilizzare un qualche tipo di procedura o macchina, ad esempio maglieria o una macchina per maglieria . Una macchina di Turing in realtà non descrive un oggetto ma un processo (configurabile, graduale).
reinierpost,

3

L'analogia fisica che Turing sembra aver in mente è un computer che risolve problemi con la matita, la carta e la gomma. Dovresti capire che nel 1936 un "computer" era una persona impiegata per il calcolo. Naturalmente nel 1936 la maggior parte dei computer avrebbe usato l'aggiunta di macchine, ma Turing non le menziona dal momento che sono inessenziali. Ecco cosa dice, per quanto riguarda il nastro, nel tentativo di giustificare che "i numeri" calcolabili "[cioè quelli che una macchina di Turing potrebbe calcolare] includono tutti i numeri che sarebbero naturalmente considerati calcolabili"

Il calcolo avviene normalmente scrivendo alcuni simboli su carta. Possiamo supporre che questo documento sia diviso in quadrati come il libro aritmetico di un bambino. Nell'aritmetica elementare viene talvolta utilizzato il carattere bidimensionale della carta. Ma un tale uso è sempre evitabile, e penso che sarà concordato che il carattere bidimensionale della carta non è essenziale per il calcolo. Presumo quindi che il calcolo sia effettuato su carta monodimensionale, cioè su un nastro diviso in quadrati.

Sebbene il computer non sia più un mestiere, l'ultima volta che ho controllato, ai bambini veniva ancora insegnato a eseguire algoritmi usando carta e matita come supporto di memorizzazione. Quindi, sebbene questa analogia possa sembrare antiquata o addirittura arcaica, non è ancora obsoleta.

Per ulteriori informazioni, consultare Numeri calcolabili con un'applicazione al problema entscheidungs , in particolare le sezioni 1 e 9.


Joe Weizenbaum ha usato un'altra analogia fisica per la spiegazione: i token su un rotolo di carta igienica.
Jerry101

1

@jkff ha l'idea che the Turing Machine is modeled on the idea of a human with a pen and papernon sia del tutto corretto. Ma ci sono molte situazioni in cui può essere considerato corretto.

Pensa all'umano come una macchina di Turing sotto una certa proiezione degli stati. In altre parole, se vedi un essere umano solo durante le sue ore di lavoro, quindi durante le sue ore di lavoro compie determinati compiti. Queste attività sono le attività di base per il lavoro.

Se non ti interessa la sua vita personale, ciò che fa a casa, nella sua stanza, ecc. Quindi puoi considerare questo come proiettare la sua funzione di transizione in una nuova funzione di transizione in cui gli stati non legati al lavoro vengono ignorati. In altre parole, puoi saltare tutti gli stati e le attività che non hanno nulla a che fare con la tua preoccupazione e prospettiva.

In questo modello, quindi la macchina di Turing è modellata su un essere umano con una penna, la carta fa un compito fisso (cioè vista in una prospettiva fissa). Il nastro è ciò che scrive sul foglio (ignorando tutti i fogli o scrivendo su alcuni fogli che non scrive per l'attività)

Ora, se si prendono in considerazione altri compiti che svolge, ciò che si ha è l'unione di molte macchine di Turing in un essere umano. Ma cosa succede se cambia lavoro e fa un compito diverso. Quindi il suo stato cerebrale cambia in una diversa macchina di Turing quando viene vista in una prospettiva diversa in tempi diversi.

Se vuoi una buona risposta alla tua domanda, penso che Yuval Filmus abbia risposto bene. Usa il modello RAM. Insisti.

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.