Ecco un semplice argomento per dimostrare che sono indecidibili, cioè non ci sono algoritmi per verificare se un determinato algoritmo è ottimale per quanto riguarda il tempo di esecuzione o l'utilizzo della memoria.
Riduciamo il problema dell'arresto su nastro bianco al tuo problema di ottimizzazione del tempo di esecuzione.
Lascia che sia una data macchina di Turing. Sia N la seguente macchina di Turing:M
n M n M n 2 nN : sull'input
1. Esegui su nastro vuoto per (al massimo) passaggi.
2. Se non si interrompe in passaggi, eseguire un ciclo di dimensioni , quindi restituire NO.
3. In caso contrario, restituire SÌ.n
Mn
Mn2n
Esistono due casi:
Se non si arresta sul nastro vuoto, la macchina verrà eseguita per passaggi sull'input . Quindi il suo tempo di esecuzione è . In questo caso, ovviamente non è ottimale.N Θ ( 2 n ) n Θ ( 2 n ) NMNΘ(2n)nΘ(2n)N
Se ferma su nastro bianco, la macchina verrà eseguita per un numero costante di passaggi per tutte le abbastanza grandi , quindi il tempo di esecuzione è . In questo caso, è ovviamente ottimale.N n O ( 1 ) NMNnO(1)N
In breve:
M halts on blank tape ⇔N is optimial
Inoltre, dato il codice per , possiamo calcolare il codice perM . Pertanto abbiamo una riduzione dal problema di arresto su nastro vuoto al problema di ottimalità del tempo di esecuzione. Se potessimo decidere se una data macchina di Turing N fosse ottimale, potremmo usare la riduzione di cui sopra per verificare se una data macchina M si ferma su nastro bianco. Dal momento che l'arresto su nastro bianco non è definibile, anche il problema è indecidibile.NNM
Un argomento simile può essere utilizzato per lo spazio, ovvero è anche impossibile decidere se una determinata macchina di Turing sia ottimale per quanto riguarda lo spazio che utilizza.
Anche un'affermazione più forte è vera: non possiamo decidere se una determinata funzione calcolabile è un limite superiore alla complessità temporale del calcolo di una determinata funzione calcolabile. Allo stesso modo per lo spazio. Vale a dire anche la teoria della complessità di base non può essere automatizzata dagli algoritmi (che può essere considerata una buona notizia per i teorici della complessità;).