Risolutore di problemi universale efficiente?


12

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 AA1nNnA

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)UU1

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 AUAt(U,A)UA

Un risolutore di problemi universale è chiamato "efficiente" quando per qualsiasi risolutore di problemi universale V , abbiamoUV

t(U,A)<t(V,A)+tV

Qui dipende da V ma non dipende da AtVVA

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 )ABA

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 risultatoBAB

L'esempio banale di un risolutore di problemi universale di nuovo senso è un algoritmo che esegue semplicemente il suo input

Risposte:


5

Non esiste un efficiente risolutore di problemi universale. Intuitivamente, U dovrebbe avere l'autonomia (quasi) ottimale per qualsiasi problema decisionale decidibile; mentre il teorema della velocità dice che ci sono problemi di decisione decidibili che non hanno un algoritmo ottimale (nemmeno in un senso molto mite). Per formalizzare questo:

gSSDTIME(t)SDTIME(t)tg(t(n))<t(n)

Ug(n)=22nASAiAi=A(i)U~(i)=U(Ai)AAiO(logi)BS22TIME(B)<TIME(U~)2TIME(B)<TIME({U(Ai)})

VAiB(i)A(i)B(i)

cAit(U,Ai)>t(V,Ai)+c

U

[1] Oded Goldreich, complessità computazionale, una prospettiva concettuale, teorema 4.8. Anche il capitolo 4.2.1.2 è rilevante.


Ottima soluzione, grazie!
Vanessa,

12

t(U,A)<sVt(V,A)+tVsV1

AsV


1
U

1
sVV

sVtVV

1
Non capisco come. A proposito, se ho aggiunto che la condizione V è chiaramente un risolutore di problemi universale, sarebbe possibile eliminare il termine A dipendente eseguendo solo algoritmi che possono essere dimostrati essere risolutori di problemi universali
Vanessa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.