Si dice che il metodo di incomprimibilità semplifichi l'analisi degli algoritmi per il caso medio. Da quello che ho capito, questo è perché non è necessario calcolare tutte le possibili combinazioni di input per quell'algoritmo e quindi derivare una complessità media. Invece, una singola stringa incomprimibile viene presa come input. Poiché una stringa incomprimibile è tipica, possiamo supporre che questo input possa agire come un'approssimazione accurata del caso medio.
Mi sono perso per quanto riguarda l'applicazione effettiva del metodo di incomprimibilità a un algoritmo. A parte questo, non sono un matematico, ma penso che questa teoria abbia applicazioni pratiche nella programmazione quotidiana.
Alla fine, vorrei imparare come posso dedurre il caso medio di un determinato algoritmo, sia esso banale o complesso. Qualcuno potrebbe dimostrarmi come applicare il metodo a un semplice algoritmo? Ad esempio, data una stringa di input S, archivia tutti i caratteri univoci in S, quindi stampali singolarmente:
void uniqueChars(String s) {
char[] chars = chars[ s.length() ]
int free_idx = 0;
for (int i = 0; i < s.length(); i++) {
if (! s[i] in chars) {
chars[free_idx] = s[i]
free_idx++;
}
}
for (int i = 0; i < chars.length(); i++) {
print (chars[i])
}
}
Supponiamo una ricerca lineare per verificare se l'array contiene un elemento.
Lo snippet di codice sopra riportato è solo a scopo di discussione. Ovviamente sono accettabili algoritmi migliori per dimostrare la teoria.
Ho fatto questa domanda su StackOverflow ( https://stackoverflow.com/q/24619383/3813812 ) nel luglio 2014 e ho ricevuto alcuni commenti utili ma non una risposta definitiva. Come ha sottolineato uno dei commentatori, questa domanda è più adatta per Computer Science StackExchange, quindi chiedo qui oggi.
Alcune pubblicazioni che ho esaminato includono:
Un'introduzione alla complessità di Kolmogorov e alle sue applicazioni, di Ming Li e Paul MB Vitányi
https://www.cs.duke.edu/~reif/courses/complectures/Li/KC-Lecture1.pdf
http://www.detectingdesign.com/PDF%20Files/Kolmogorov%20Complexity%202.pdf
Tra le poche altre risorse a cui non ho collegamenti a portata di mano.
Se la mia comprensione dell'applicabilità della complessità di Kolmogorov è imprecisa o ciò che chiedo non è pratico, apprezzerei una dichiarazione in merito al fatto.