Dato l'interesse per questa domanda, ho pensato che potesse essere utile sottolineare in modo più esplicito il motivo per cui non dovremmo essere affatto sorpresi dalla risposta e cercare di dare una direzione per i perfezionamenti della domanda. Questo raccoglie e si espande su alcuni commenti. Mi scuso se questo è "ovvio"!
Considera l'insieme di stringhe della complessità di Kolmogorov :
Esistono al massimo tali stringhe, in quanto vi sono descrizioni di lunghezza . Ma nota che questo set è indecidibile per il generale (altrimenti, potremmo calcolare semplicemente ripetendo da a e controllando l'appartenenza a ). Inoltre, la funzione
cresce indiscutibilmente velocemente. È una variante della funzione di castoro indaffarato: qual è l'output più lungo di una macchina di Turing della lunghezza della descrizioneJ K ( n ) = { w : K ( w ) = n } . 2 n 2 n n n K ( w ) n = 1 | w | J K ( n ) g K ( n ) = max w ∈ J K ( n ) | w | n M M ′ Mn
JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)gK(n)=maxw∈JK(n)|w|
n? Se questo diventasse più lento di qualche funzione calcolabile, potremmo decidere il problema di arresto: dato un TM , costruisci che simula e stampa un ad ogni passo. Se la lunghezza della descrizione di è , allora: ferma al massimo a passi; o non si ferma.
MM'MM ′ n M g K ( n ) M1M'nMgK( n )M
Ora, alla domanda di Andrew, abbiamo che , dove è la lingua originale. Quindi l'unico modo per evitare che contenga input molto grandi in sarebbe se contiene solo stringhe molto non comprimibili. (Nota che, altrimenti, possiamo ignorare completamente la distinzione tra analisi del caso peggiore e dell'analisi del caso medio, perché abbiamo una media al massimo di stringhe ma la dimensione della stringa più grande sta crescendo più velocemente di qualsiasi funzione calcolabile di . )S I K ( n ) n S 2 n nioK( n ) = S∩ JK( n )SioK( n )nS2nn
Sento che è probabilmente impossibile costruire una non banale (cioè infinita) che contenga solo stringhe non comprimibili, eppure sia decidibile. Ma non lo so. Tuttavia, si spera che ciò dia intuizione sul perché non dovremmo sperare che la maggior parte delle lingue abbia più lento di una funzione calcolabile.f K nSfKn
Per fare un passo indietro, la domanda è di confrontare le prestazioni sugli input di lunghezza con le prestazioni sugli input che possono essere compressi alla lunghezza . Ma abbiamo nozioni di compressione che sono molto più trattabili (e meno potenti) della complessità di Kolmogorov. Un modo semplice è quello di dare un circuito di dimensione , che in ingresso il numero binario produce il bit di . Si noti che qui l'esplosione della dimensione dell'ingresso è al massimo esponenziale (un circuito di dimensione ha al massimo ingressi possibili).n n b b n n 2 nnnnBBwn2n
Quindi possiamo riformulare la domanda lasciando che
E definire analogo. La ragione della speranza qui è che la maggior parte delle stringhe richiedono un circuito grande quasi quanto la stringa stessa e che nessuna stringa è più grande esponenzialmente del circuito richiesto. Forse in questo caso potremmo trovare lingue in cui e sono simili asintoticamente.
ioC( n ) = { w ∈ S: il circuito più piccolo che specifica implicitamente w ha dimensione n } .
fCnfnfCn
Una domanda abbastanza strettamente correlata è la complessità di linguaggi impliciti come
IMPLICIT_SAT è NEXP-completo e di solito la versione implicita dei problemi NP-completi è NEXP-completa. Decidere IMPLICIT_SAT è almeno facile quanto usare semplicemente il circuito per scrivere tutto , quindi eseguire un algoritmo per SAT su . Quindi, se per SAT, ciò sembra vicino alla prova che IMPLICIT_SAT nel caso medio è decidibile quasi altrettanto rapidamente di SAT nel caso peggiore. Ma non so come si possa confrontare direttamente la tua nozione con le lingue implicite perché la nozione di "circuito più piccolo per
I M P L I C I T _ S A T ={ circuiti C: C specifica implicitamente w , w ∈ S A T } .
wwfCn=Θ(fn)w"non entra in gioco per le lingue implicite.
Spero che questo sia utile / interessante!
Non sono sicuro di un libro di testo che menziona problemi impliciti, ma qui ci sono alcune note di lezione: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf