¿El análisis suavizado encontró su camino en el análisis principal de algoritmos? ¿Es común que los diseñadores de algoritmos apliquen análisis suavizados a sus algoritmos?
¿El análisis suavizado encontró su camino en el análisis principal de algoritmos? ¿Es común que los diseñadores de algoritmos apliquen análisis suavizados a sus algoritmos?
Respuestas:
Podría estar equivocado, pero veo el análisis suavizado como una forma de explicar el comportamiento en la práctica de los algoritmos que tienen malas garantías teóricas (simplex, k-means, etc.). No estoy seguro de lo que significaría usar un análisis suavizado en la práctica, excepto para justificar el uso de una heurística particular con un mal desempeño en el peor de los casos ("Mi heurística tiene un comportamiento blah blah en el peor de los casos, pero un análisis suavizado indica que lo hará hacerlo bien en la práctica, etc. "
La forma en que las personas analizan los algoritmos en el mundo real es muy diferente de la academia. Mientras que en la academia el objetivo es encontrar un límite superior probablemente correcto en el tiempo de ejecución, en la vida real el objetivo es comprender cómo funciona el algoritmo y qué ajustes pueden mejorar el tiempo de ejecución. Hay dos métodos principales que están prohibidos en la academia pero que se usan en la práctica:
Dicho esto, no creo que sea muy común analizar un algoritmo en la práctica, aparte de agregar texto de relleno en una publicación académica relacionada. La atención se centra en la ingeniería de software o en la optimización de bajo nivel, según el tema.
Finalmente, el análisis suavizado es una heurística que se puede usar para explicar por qué los algoritmos funcionan mejor en la práctica de lo que sugeriría su peor caso, es decir, porque algunas de las entradas son "aleatorias" en algún sentido. Esta heurística se puede usar para aproximar el comportamiento del algoritmo si se usa el método de aproximación.