Definire un "problema" per essere un algoritmo accettare un numero naturale e tornando 0 o 1 che ritorna 1 su almeno un n ∈ N . Una tale n è chiamata "soluzione" di A
Definire un "risolutore di problemi universale" come algoritmo accetta un problema e restituisce una delle sue soluzioni. Ad esempio, U può funzionare eseguendo il ciclo su tutti i numeri naturali ed eseguendo il suo input su di essi fino a 1 risultati (deve solo fermarsi su input valido)
Sono interessato a esplorare i limiti prestazionali dei solutori di problemi universali
Dato a un risolutore di problemi universale e A un problema, indica t ( U , A ) il tempo impiegato da U per produrre output dopo aver accettato l'ingresso A
Un risolutore di problemi universale è chiamato "efficiente" quando per qualsiasi risolutore di problemi universale V , abbiamo
Qui dipende da V ma non dipende da A
Esistono solutori di problemi universali efficienti?
EDIT: ho capito che è possibile cambiare le definizioni di "problema" e "risolutore di problemi universale" in qualcosa di leggermente più elegante ed essenzialmente equivalente. Un "problema" è un algoritmo senza input che restituisce 0 o 1 (che si ferma). Un "risolutore universale di problemi" è un algoritmo che accetta un problema e ne restituisce il risultato. È più o meno una macchina di Turing universale
La vecchia definizione può essere ridotta a una nuova definizione, dato che dato un problema nel vecchio senso, possiamo costruire B un problema nel nuovo senso che applica semplicemente il banale risolutore di problemi universali di vecchio senso ad A (il risolutore descritto nel testo sopra )
La nuova definizione può essere ridotta alla vecchia definizione, dato che dato a un problema nel nuovo senso, possiamo costruire A un problema nel vecchio senso che calcola semplicemente B e confronta l'input con il risultato
L'esempio banale di un risolutore di problemi universale di nuovo senso è un algoritmo che esegue semplicemente il suo input