Non possiamo produrre la complessità di Kolmogorov?


28

Risolviamo una codifica senza prefisso delle macchine di Turing e una macchina di Turing universale che sull'ingresso (codificato come codice privo di prefisso di seguito da ) genera qualunque uscita sull'ingresso (possibilmente entrambi corrono per sempre). Definire la complessità di Kolmogorov di , , come la lunghezza del programma più breve tale che .( T , x ) T x T x x K ( x ) p U ( p ) = xU(T,x)TxTxxK(x)pU(p)=x

Esiste una macchina di Turing tale che per ogni input emette un numero interoche è diverso dalla complessità di Kolmogorov di , cioè ma ?TxT(x)|x|xT(x)K(x)lim inf|x|T(x)=

Le condizioni sono necessarie, perché

(a) se T(x)|x|, quindi sarebbe facile generare un numero che è banalmente diverso da K(x) perché è più grande di |x|+cU ,

(b) se lim inf|x|T(x)<C è permesso, allora possiamo semplicemente produrre 0 (o qualche altra costante) per quasi tutti i numeri, "fortunatamente" indovinando il massimo (finitamente molti numeri) che valutano a 0 (a qualche altra costante) e producono lì qualcos'altro. Possiamo persino garantire lim sup|x|T(x)= producendo qualcosa come 2logn per x=2n .

Nota anche che il nostro lavoro sarebbe facile se sappiamo che T(x) non è suriettivo, ma si sa poco su questo, quindi la risposta potrebbe dipendere da U , anche se dubito che lo farebbe.

So che le relazioni sono molto studiate in generale, ma

Qualcuno ha mai fatto una domanda simile in cui il nostro obiettivo è quello di dare un algoritmo che fa non di output alcuni parametri?

La mia motivazione è questo problema http://arxiv.org/abs/1302.1109 .


5
Dipende dalla tua codifica, poiché, come menzionato nell'argomento sulla suriettività di ti colleghi, potrebbe essere il caso che siano validi solo i programmi di lunghezza pari. Quindi, per rendere la tua domanda non banale, devi avere più ipotesi sulla codifica. pKp
Denis,

2
Alla tua seconda domanda: si. Dato un numero intero , lascia che denoti la -esima macchina di Turing. Una funzione diagonalmente non ricorsiva (o DNR) è una funzione tale che per tutti gli interi , . (Cioè, se ferma su , allora , e altrimenti può essere arbitrario.) Questi sono stati studiati un po 'di recente nella computabilità / calcolabile comunità di casualità. Google "in diagonale non ricorsivo" per trovare documenti su questo. [ M ] M f : NN M [ M ] ( M ) f ( M ) [ M ] M f ( M ) [ M ] ( M ) f ( M )M[M]Mf:NNM[M](M)f(M)[M]Mf(M)[M](M)f(M)
Joshua Grochow

1
@Denis: penso che ti sbagli. Secondo la mia definizione di macchine di Turing universali fornita nel primo paragrafo, tutte le lunghezze possono essere programmi validi.
domotorp,

3
Alcune volte fa ho pensato (invano) a una versione apparentemente più semplice: (dis) dimostrando che per abbastanza grande , per tutti . K ( x ) | x | / 2 x x 0x0K(x)|x|/2xx0
Marzio De Biasi,

1
@Ricky: Va bene, non ho restrizioni sulla codifica delle macchine Turing, solo sui programmi, che puoi leggere nel primo paragrafo.
domotorp,

Risposte:


7

La domanda può essere riformulata come se , e come sottolinea Denis nei commenti questo è falso per alcune codifiche. Ecco un'affermazione più debole e una tentata prova di ciò che non dipende da alcun dettaglio della codifica, ma assumerò un linguaggio binario per semplicità:liminf|x||T(x)K(x)|=0

Sia una funzione calcolabile che soddisfi e . Quindi . Informalmente, se esiste un target attorno alla complessità di Kolmogorov di ogni stringa che si allarga senza limiti, nessuna funzione calcolabile può evitare di colpirla. 0 T ( x ) | x | lim inf | x | T ( x ) = lim inf | x | | T ( x ) - K ( x ) | < T:{0,1}N0T(x)|x|liminf|x|T(x)=liminf|x||T(x)K(x)|<

Per vedere questo, sia un numero casuale -bit, ovvero e . Per tutti esiste una tale casuale . Si noti inoltre che ci sono un numero infinito di valori di che , questo risulta dalle condizioni poste su . Ora lascia che sia la stringa più piccola tale che . Chiaramente esiste una costante tale che , perché eb 0 n < 2 b K ( n ) b b n b | { T ( x ) = b } | 2 b T x n th T ( x ) = b c 1 K ( x ) > b - c 1 K ( n ) b n xnb0n<2bK(n)bbnb|{T(x)=b}|2bTxnthT(x)=bc1K(x)>bc1K(n)bnpuò essere calcolato da . E c'è una costante tale che , poiché anche è delimitato dall'alto solo da una costante maggiore di , e può essere calcolato da . Quindi , e abbiamo un numero infinito di scelte per (quelle con una preimmagini di cardinalità almeno ), dando un numero infinito di valori per , quindi abbiamo finito.x K ( x ) < b + c 2 K ( n ) b x n | K ( x ) - T ( x ) | < c 1 + c 2 b 2 b xc2K(x)<b+c2K(n)bxn|K(x)T(x)|<c1+c2b2bx

Un'implicazione è che per alcuni , infinitamente spesso. Quindi si potrebbe dire che non possiamo non produrre qualcosa che non sia la complessità di Kolmogorov! T ( x ) = K ( x ) + ccZT(x)=K(x)+c


1
Bene, penso che dovrebbe funzionare. Naturalmente, potrebbero non esserci stringhe con , quindi forse vuoi richiedere , giusto? f ( x ) bf(x)=bf(x)b
domotorp,

1
Deve essere modo che sia calcolabile da . Quindi, suppongo che si debba scegliere modo che o giù di stringhe. Presumibilmente, le ipotesi dovrebbero implicare che ci sono infiniti molti di questi (anche se al momento non lo vedo del tutto). (Per quanto ne so, le ipotesi non sono state usate in nessun altro modo.)n x b , n b 2 b + 1 bf(x)=bnxb,n b2b+1b
Emil Jeřábek sostiene Monica

1
Sì, in effetti questo è necessario. Ma la dimostrazione è facile per contraddizione: se è sempre se , quindi guardando qualsiasi intervallo , possiamo concludere che almeno le stringhe sono mappate su , quindi infinitamente molti, che contraddice . b > b 0 b 0 < b B B - b 0b 0 lim inf = <2bb>b0b0<bBBb0b0lim inf=
domotorp,

Ciò di cui parla Denis non si applica al modo in cui ho definito l'universalità nella prima riga della mia domanda. Anche la sua osservazione è banale, non ho idea del perché così tante persone abbiano votato a favore del suo commento. Ma purtroppo, anche la risposta errata di Peter ha ricevuto così tanti voti positivi, sto perdendo fiducia in questo sito ...
domotorp,

Non importa come vengono codificate le TM, purché i miei criteri sulla TM universale siano soddisfatti, quindi il commento di Denis non è corretto. Se fosse dichiarato come un commento su un altro modello, sarebbe una cosa diversa. Comunque, invece di pensarci, proviamo a vedere se possiamo rafforzare la tua idea ...
domotorp,

3

Penso che i seguenti lavori. Userò per la complessità di KolmogorovC(x)

  • Assegna a un limite di tempo (ad esempio, una funzione esponenziale della lunghezza del programma di input) e chiama il risultato . Se un programma supera il timebound, entra in un ciclo infinito.t U t U tUtUtUt
  • Sia il programma più breve per su . Si noti che è calcolabile.x t C tCt(x)xtCt
  • Lascia che restituisca , a meno che questo valore non sia uguale anel qual caso restituisce 0. A meno che sia l'output del programma vuoto, nel qual caso restituisce 1.C t ( x ) + 1 | x | XT(x)Ct(x)+1|x|x
  • Poiché , sarà sempre diverso da . La logica del passaggio precedente si occupa dei casi limite.T ( x ) C ( x )C(x)Ct(x)T(x)C(x)
  • Ut funziona come un codice per tutte le stringhe, quindi ha un limite all'infinito inferiore.

un paio di commenti, la teoria KC in un'interpretazione alternativa (ma equivalente) afferma quanto segue: quasi tutte le stringhe sono già nella loro rappresentazione ottimale ( rispetto a un dato modello) tranne molte stringhe che possono essere trasformate in una rappresentazione ottimale (minimo) scritto su un dato modello di calcolo (o TM). In questo senso quasi tutti i programmi generano rappresentazioni di stringhe ottimali, ma queste non sono note (o calcolabili) a priori
Nikos M.

Perché avrai? T(x)|x|
domotorp,

@domotorp Tecnicamente abbiamo dove è la lunghezza del programma di stampa più breve. Naturalmente, questa costante è presente anche per (e in effetti, a meno che il programma di stampa non sia veramente lento, è la stessa costante). c C ( x )T(x)|x|+ccC(x)
Peter,

Ma questo è ciò che rende l'intera domanda interessante! Avrei potuto chiedere qualsiasi funzione invece di, ad esempio, , il mio unico obiettivo era eliminare soluzioni simili alla tua. | x | / 2 + 99|x||x|/2+99
domotorp,

@domotrop Capisco, quindi vuoi forzare a non essere un limite superiore a . È più interessante ...C ( x )T(x)C(x)
Peter,
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.