Il nostro PC funziona come Turing Machine?


8

Il nostro PC funziona come Turing Machine? Il modello di una macchina di Turing è costituito da un infinito nastro di memoria, che significa stati infiniti. Ma supponiamo che se il nostro PC ha 128 MB di memoria e 30 GB di disco avrebbe 256 ^ 30128000000 stati e quindi, ha stati finiti.

So che possiamo scrivere un tipo di programma che, se durante l'esecuzione esauriamo la memoria, richiederà di scambiare il disco di memoria con un disco di memoria vuoto e riprendere l'esecuzione.

Ma cosa succede se non scambiamo il disco di memoria, in questo caso è giusto considerare il PC come FA ?


si noti che anche il disco [grande] è finito e quindi il calcolo basato su di esso può essere rappresentato tecnicamente come un FSM. molto simile a questa altra domanda Turing completa e potenza computazionale
vzn

Un computer non è limitato alla memoria interna; può usare anche memoria esterna.
reinierpost,

No, funziona come una macchina von Neumann. Anche,25630128000000è più vicino all'infinito di quanto ci si possa aspettare.
Andrej Bauer,

Le macchine di Turing non hanno necessariamente una quantità infinita di memoria. Hanno solo una quantità sufficiente di memoria per fare qualsiasi cosa tu voglia fare. Se ti limiti ad arrestare i programmi, una macchina di Turing potrebbe anche avere una memoria finita. In entrambi i casi, la quantità di memoria che una macchina turing utilizzerà in qualsiasi momento è limitata, anche se probabilmente in aumento. Anche i computer in rete hanno una quantità limitata, ma probabilmente di quantità crescente di memoria.
DanielV,

Risposte:


11

Hai ragione sul fatto che i computer fisici hanno una memoria limitata e quindi non sono completi di Turing. Esistono altri modi in cui la teoria della computabilità non è un buon modello per il calcolo: non tiene conto dei vincoli di tempo e memoria. La teoria della complessità è stata inventata (forse) come una rappresentazione più realistica dell'informatica, ma l'IMHO soffre di problemi simili (ma più sottili).

D'altra parte, per studiare matematicamente le capacità e i limiti dell'informatica, dobbiamo usare un'astrazione non vincolata. Ciò rende possibile l'analisi. Allo stesso modo, nella meccanica statistica ipotizziamo che il numero di elementi (atomi o molecole) sia così grande, che il comportamento sia vicino al limite (ovvero, lasciamo che il numero di elementi tenda all'infinito). Lo studio dell'informatica da una prospettiva asintotica presenta vantaggi simili, ma a volte è fuorviante. Ecco alcuni esempi di quest'ultimo:

  1. Nella crittografia, gli algoritmi esponenziali sono talvolta fattibili. Se scegliamo parametri di sicurezza errati, la nostra crittografia potrebbe essere insicura anche se "dimostrabilmente sicura".
  2. Gli algoritmi a tempo polinomiale dovrebbero rappresentare un calcolo efficiente e fattibile, ma molti di essi non sono fattibili. Ad esempio, nella pratica non vengono utilizzati gli algoritmi di moltiplicazione della matrice più sofisticati.
  3. La moderna teoria della complessità è ossessionata dalle prestazioni nel caso peggiore e non è in grado di analizzare algoritmi euristici utilizzati nella pratica. I problemi NP-difficili sono considerati irrealizzabili, ma vengono sempre risolti nella pratica.

Un problema a parte è che i computer reali non funzionano affatto come le macchine di Turing. Funzionano come macchine RAM, che sono un'astrazione migliore per l'effettiva elaborazione.


4

Penso che tu abbia già dato la risposta da solo. Se l'aspetto principale di cui ti preoccupi è la (in) finezza degli stati, allora una Macchina di Turing in quanto tale esiste solo come "un dispositivo ipotetico".

Indipendentemente dalla quantità di memoria che fornirai al tuo PC, sarà sempre limitato, quindi puoi trovare un programma che verrà eseguito su una "vera" Turing Machine, ma non su questo PC a causa del nastro limitato.

http://en.wikipedia.org/wiki/Turing_machine#Comparison_with_real_machines


Le macchine di Turing hanno un numero potenzialmente infinito di stati, ma una macchina di Turing universale può simulare qualsiasi macchina di Turing, mentre allo stesso tempo ha un numero fisso di stati.
Yuval Filmus,

7
@YuvalFilmus Penso che tu sia confuso tra stati e configurazioni. Tutte le macchine Turing hanno un numero limitato di stati, ma a causa della loro memoria illimitata che può essere in infinite configurazioni. Anche le Universal TM hanno solo molti stati finiti, ma potrebbero aver bisogno di memoria illimitata per simulare la loro macchina di input.
adrianN,

1

All'epoca dell'invenzione delle macchine Turing, i computer erano donne che eseguivano calcoli su carta straccia. Questa è la nozione di calcolo espresso dalle macchine di Turing. Il loro nastro non fa parte di loro più di quanto la carta di scarto sia parte di una persona che esegue calcoli.

Questo è ancora un buon modello per il calcolo basato su computer perché i limiti delle risorse nei computer sono generalmente piuttosto grandi. I modelli di calcolo intrinsecamente finiti diventano utili solo quando il numero di stati possibili è molto piccolo.


-1

Un moderno computer è Turing completo, generalmente questo termine viene utilizzato ad eccezione del dispositivo di archiviazione infinito. In pratica, la memoria può essere piuttosto lunga. Ad esempio, oltre ad essere approssimatori di funzioni universali, si dice che le reti neurali ricorrenti con memoria (e in esecuzione ripetutamente) siano Turing complete. In effetti, Neural Turing Machines porta questa idea a un livello che deduce ulteriormente semplici algoritmi.


Come risponde alla domanda?
Raffaello
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.