Se dice que el Método de Incompresibilidad simplifica el análisis de algoritmos para el caso promedio. Por lo que entiendo, esto se debe a que no hay necesidad de calcular todas las combinaciones posibles de entrada para ese algoritmo y luego derivar una complejidad promedio. En cambio, se toma una sola cadena incompresible como entrada. Como una cadena incompresible es típica, podemos suponer que esta entrada puede actuar como una aproximación precisa del caso promedio.
Estoy perdido con respecto a la aplicación real del Método de Incompresibilidad a un algoritmo. Por otro lado, no soy matemático, pero creo que esta teoría tiene aplicaciones prácticas en la programación diaria.
En última instancia, me gustaría aprender cómo puedo deducir el caso promedio de cualquier algoritmo dado, ya sea trivial o complejo. ¿Podría alguien demostrarme cómo se puede aplicar el método a un algoritmo simple? Por ejemplo, dada una cadena de entrada S, almacene todos los caracteres únicos en S, luego imprima cada uno individualmente:
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])
}
}
Suponga una búsqueda lineal para verificar si la matriz contiene un elemento.
El fragmento de código anterior es solo por el argumento. Los mejores algoritmos mediante los cuales se puede demostrar la teoría son aceptables, por supuesto.
Hice esta pregunta en StackOverflow ( https://stackoverflow.com/q/24619383/3813812 ) en julio de 2014, y he recibido algunos comentarios útiles, pero no una respuesta definitiva. Como señaló uno de los comentaristas, esta pregunta es más adecuada para Computer Science StackExchange, por lo que pregunto aquí hoy.
Algunas publicaciones que he revisado incluyen:
Una introducción a la complejidad de Kolmogorov y sus aplicaciones, por Ming Li y 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
Entre algunos otros recursos a los que no tengo enlaces disponibles.
Si mi comprensión de la aplicabilidad de la complejidad de Kolmogorov es inexacta o lo que pido no es práctico, agradecería una declaración con respecto al hecho.