Die Inkomprimierbarkeitsmethode soll die Analyse von Algorithmen für den Durchschnittsfall vereinfachen. Soweit ich weiß, müssen nicht alle möglichen Eingabekombinationen für diesen Algorithmus berechnet und dann eine durchschnittliche Komplexität abgeleitet werden. Stattdessen wird eine einzelne inkompressible Zeichenfolge als Eingabe verwendet. Da eine inkompressible Zeichenfolge typisch ist, können wir davon ausgehen, dass diese Eingabe als genaue Annäherung an den Durchschnittsfall dienen kann.
Ich bin verloren in Bezug auf die tatsächliche Anwendung der Inkomprimierbarkeitsmethode auf einen Algorithmus. Abgesehen davon bin ich kein Mathematiker, denke aber, dass diese Theorie praktische Anwendungen in der täglichen Programmierung hat.
Letztendlich möchte ich lernen, wie ich den Durchschnittsfall eines bestimmten Algorithmus ableiten kann, sei es trivial oder komplex. Könnte mir bitte jemand zeigen, wie die Methode auf einen einfachen Algorithmus angewendet werden kann? Speichern Sie beispielsweise bei einer Eingabezeichenfolge S alle eindeutigen Zeichen in S und drucken Sie jedes einzeln aus:
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])
}
}
Nehmen Sie eine lineare Suche an, um zu überprüfen, ob das Array ein Element enthält.
Das obige Code-Snippet dient nur der Argumentation. Bessere Algorithmen, mit denen die Theorie demonstriert werden kann, sind natürlich akzeptabel.
Ich habe diese Frage im Juli 2014 auf StackOverflow ( https://stackoverflow.com/q/24619383/3813812 ) gestellt und einige hilfreiche Kommentare erhalten, aber keine eindeutige Antwort. Wie einer der Kommentatoren betonte, ist diese Frage besser für Computer Science StackExchange geeignet, daher frage ich heute hier.
Einige Literatur, die ich überprüft habe, enthält:
Eine Einführung in die Kolmogorov-Komplexität und ihre Anwendungen von Ming Li und 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
Neben einigen anderen Ressourcen, zu denen ich keine Links habe.
Wenn mein Verständnis der Anwendbarkeit der Kolmogorov-Komplexität ungenau ist oder das, was ich verlange, unpraktisch ist, würde ich eine diesbezügliche Aussage begrüßen.