Un modello più vicino ai calcolatori reali rispetto alle MT.
La RAM è dotata di una memoria con accesso a indirizzamento diretto. L’accesso non necessita quindi di scorrimento delle celle. Le istruzioni di un programma usano normalmente come sorgente il primo operando e come destinazione
NB: SUB= 1 decrementa N[0] di 1
Nota che se nella ram non usa $$ allora è garantito che la memoria necessaria all'esecuzione del programma è finita. In caso di $$ l'indirizzo di memoria su cui la RAM lavora può dipendere dall'input.
La complessità spaziale di una
Il criterio a costo costante presuppone che ogni operazione necessita una 'singola unità' di tempo.
Il criterio a costo logaritmico invece presuppone che l'operazione non sia a costo costante ma abbia un costo proporzionale ai 'bit'. Con il criterio a costo costante una somma tra due numeri di 8 bit diremo che occupa circa 1 unità di tempo. A costo logaritmico invece
Costo log per principali operazioni:
- read, load
$\rightarrow$ $log(n)$ - add, sum
$\rightarrow$ $log(n)$ - mul, div
$\rightarrow$ $log^2(n)$
Se un problema è risolvibile mediante il modello
$M_1$ con complessità (spaziale o temporale)$C_1(n)$ , allora è risolvibile da un qualsiasi altro modello (Turing-completo)$M_2$ con complessità$C_2(n)\le \pi(C_1(n))$ , dove$\pi (\dot \space)$ un opportuno polinomio.
Ad esempio
La
Quando un linguaggio è regolare ognuna dei modelli di calcolo (MT o RAM) possono simulare un automa a stati finiti con il proprio organo di controllo: questo ci spiega che qualsiasi problema formulato con un linguaggio regolare è risolvibile da un algoritmo in