Utente:AmaliaSantocchio/sandbox

Tempo e Spazio nella Computazione modifica

La teoria della complessità modifica

La teoria della complessità analizza le risorse necessarie a risolvere un problema; le più importanti sono:

  • tempo, cioè il numero di passaggi in un calcolo prima che la macchina si fermi;
  • spazio, cioè la capacità di immagazzinare dati di un calcolatore e, in un macchina di Turing, il numero di celle visitate.

Un altro approccio consiste nella misura della complessità di un oggetto in base alla grandezza del più piccolo programma che è in grado di descriverlo.

Notazioni tecniche modifica

Definiamo:

  •   un alfabeto finito
  •   il numero finito di elementi di  
  • Problema un sottoinsieme di  
  • Istanza un elemento di  
  • Grandezza di un istanza  , e la indichiamo con  , la sua lunghezza
  •   una macchina di Turing
  •   una funzione da   in  ; la funzione è calcolabile da   se per ogni stringa   appartenente ad  ,   si arresta sul valore  
  •   problema risolvibile se esiste un   tale da riuscire a calcolare  , la funzione caratteristica di  

Computabilità modifica

I problemi risolvibili possono essere classificati in base al tempo e allo spazio richiesti per la loro risoluzione. Sia  una funzione calcolabile,   una stringa ed   una macchina di Turing in grado di calcolarla; si dice che   è calcolabile in un tempo  dopo un certo numero di passaggi indicato con   e calcolato moltiplicando una costante  e  . Quindi  è una funzione calcolabile se esiste una macchina di Turing tale che data una stringa   si fermi dopo   riquadri sul suo nastro.

Sia  un problema; si dice che esso sia risolvibile:

  • in un tempo   se la sua funzione caratteristica è calcolabile in un tempo  ;
  • in uno spazio  se la sua funzione caratteristica è calcolabile in un tempo  .

Esempi modifica

Siano  un alfabeto composto da due simboli  ,  l'insieme finito delle stringhe composte di  e  ,  il problema definito lasciando le stringhe palindrome di  ; questo problema è risolvibile in un tempo  controllando che la prima e l'ultima lettera siano uguali ed eliminandole fino ad azzerare le lettere o lasciarne solo una. Un algoritmo necessita di un numero di passaggi pari a   per risolvere il problema, per qualche  .

La tabella della verità è risolvibile in uno spazio  e nel tempo  .

Problemi risolvibili in un tempo polinomiale modifica

La classe dei problemi risolvibili in un tempo polinomiale è una tra le più complesse.

Una funzione   è calcolabile in un tempo polinomiale se esiste un polinomio   per cui   è calcolabile in un tempo  .

un problema è risolvibile in un tempo polinomiale se se la sua funzione caratteristica è calcolabile in un tempo polinomiale.