Calcoli deterministici e non deterministici

Per capire la classe P e NP, per prima cosa dovremmo conoscere il modello computazionale. Quindi, in questo capitolo discuteremo due importanti modelli computazionali.

Calcolo deterministico e classe P

Macchina di Turing deterministica

Uno di questi modelli è la macchina di Turing deterministica a nastro singolo. Questa macchina è composta da un controllo a stati finiti, una testina di lettura-scrittura e un nastro a due vie con sequenza infinita.

Di seguito è riportato il diagramma schematico di una macchina di Turing deterministica a nastro singolo.

Un programma per una macchina di Turing deterministica specifica le seguenti informazioni:

  • Un insieme finito di simboli del nastro (simboli di input e un simbolo vuoto)
  • Un insieme finito di stati
  • Una funzione di transizione

Nell'analisi algoritmica, se un problema è risolvibile in tempo polinomiale da una macchina di Turing deterministica a nastro, il problema appartiene alla classe P.

Calcolo non deterministico e classe NP

Macchina di Turing non deterministica

Per risolvere il problema computazionale, un altro modello è la Macchina di Turing non deterministica (NDTM). La struttura di NDTM è simile a DTM, tuttavia qui abbiamo un modulo aggiuntivo noto come modulo di ipotesi, che è associato a una testina di sola scrittura.

Di seguito è riportato il diagramma schematico.

Se il problema è risolvibile in tempo polinomiale da una macchina di Turing non deterministica, il problema appartiene alla classe NP.