Qual è la differenza tra RAM e TM?


10

Nell'analisi dell'algoritmo, ipotizziamo un generico Random Access Machine (RAM) a un processore. Per quanto ne so, la macchina RAM non è più efficiente della macchina Turing. Tutti gli algoritmi possono essere implementati nella macchina di Turing. Quindi le mie domande sono:

  • Se la macchina di Turing è efficiente quanto la macchina RAM, allora perché non stiamo assumendo la macchina di Turing per l'analisi dell'algoritmo?

  • Qual è la differenza tra RAM e TM?

Risposte:


13

Le macchine di Turing non sono efficienti quanto le macchine RAM. Una macchina RAM può accedere a una posizione di nastro arbitraria in . Una macchina di Turing non può. Una macchina RAM può eseguire l'aritmetica in (con alcune restrizioni). Una macchina di Turing non può.O(1)O(1)

Le macchine di Turing simulano polinomialmente le macchine RAM, ovvero, per alcune costanti , qualsiasi macchina RAM in esecuzione nel tempo può essere simulata da una macchina di Turing in esecuzione nel tempo . (La costante è abbastanza ragionevole, circa , a seconda del modello della macchina di Turing.)cO(nk)O(nck)2


1
Grazie Yuval. Adesso capisco che la RAM è più veloce della macchina di Turing. Ma perché 2?
tanmoy,

Ne ottengo poiché è (approssimativamente) il tempo impiegato ingenuamente per simulare l'accesso casuale. Potrei sbagliarmi qui. 2
Yuval Filmus

2
Dovresti dare un'occhiata alle macchine ad accesso casuale limitate nel tempo di Cook , in cui è dimostrato esattamente il sovraccarico nella simulazione di un modello con un altro.
Clément,

Solo una domanda veloce: se un problema ha un algoritmo tempo polinomiale sul modello RAM, posso dire che ha un algoritmo tempo polinomiale sul modello TM? O in alternativa, se un problema ha un algoritmo a tempo polinomiale sul modello RAM, posso dire che è in P? ΠΠΠΠ
drzbir,

1
@Azzo Hai ragione, c'è un problema in P se ha un algoritmo di tempo polinomiale nel modello RAM se ha un algoritmo di tempo polinomiale nel modello di macchina di Turing.
Yuval Filmus,
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.