

En informática teórica , el análisis suavizado es una forma de medir la complejidad de un algoritmo . Desde su introducción en 2001, el análisis suavizado se ha utilizado como base para una considerable cantidad de investigaciones, para problemas que abarcan desde programación matemática , análisis numérico , aprendizaje automático y minería de datos . [1] Puede brindar un análisis más realista del desempeño práctico (por ejemplo, tiempo de ejecución, tasa de éxito, calidad de aproximación) del algoritmo en comparación con el análisis que utiliza escenarios de peor caso o de caso promedio.
El análisis suavizado es un híbrido entre el análisis del peor de los casos y el análisis del caso promedio que hereda las ventajas de ambos. Mide el rendimiento esperado de los algoritmos bajo ligeras perturbaciones aleatorias de las entradas del peor de los casos. Si la complejidad suavizada de un algoritmo es baja, entonces es poco probable que el algoritmo tarde mucho tiempo en resolver casos prácticos cuyos datos están sujetos a ligeros ruidos e imprecisiones. Los resultados de complejidad suavizada son resultados probabilísticos sólidos, que indican aproximadamente que, en cada vecindario suficientemente grande del espacio de entradas, la mayoría de las entradas son fácilmente solucionables. Por lo tanto, una complejidad suavizada baja significa que la dureza de las entradas es una propiedad "frágil".
Aunque la complejidad del peor de los casos ha sido ampliamente exitosa para explicar el desempeño práctico de muchos algoritmos, este estilo de análisis arroja resultados engañosos para una serie de problemas. La complejidad del peor de los casos mide el tiempo que lleva resolver cualquier entrada, aunque es posible que las entradas difíciles de resolver nunca surjan en la práctica. En tales casos, el tiempo de ejecución del peor de los casos puede ser mucho peor que el tiempo de ejecución observado en la práctica. Por ejemplo, la complejidad del peor de los casos de resolver un programa lineal utilizando el algoritmo símplex es exponencial, [2] aunque el número observado de pasos en la práctica es aproximadamente lineal. [3] [4] El algoritmo símplex es de hecho mucho más rápido que el método del elipsoide en la práctica, aunque este último tiene una complejidad del peor de los casos de tiempo polinomial .
El análisis de casos promedio se introdujo por primera vez para superar las limitaciones del análisis de casos peores. Sin embargo, la complejidad resultante de los casos promedio depende en gran medida de la distribución de probabilidad que se elija sobre la entrada. Las entradas reales y la distribución de las entradas pueden ser diferentes en la práctica de las suposiciones realizadas durante el análisis: una entrada aleatoria puede ser muy diferente de una entrada típica. Debido a esta elección del modelo de datos, un resultado teórico de caso promedio podría decir poco sobre el rendimiento práctico del algoritmo.
El análisis suavizado generaliza tanto el análisis del peor de los casos como el del caso promedio y hereda las ventajas de ambos. Su objetivo es ser mucho más general que la complejidad del caso promedio, pero al mismo tiempo permite demostrar límites de complejidad bajos.
Historia
La ACM y la Asociación Europea de Informática Teórica otorgaron el Premio Gödel 2008 a Daniel Spielman y Shanghua Teng por desarrollar el análisis suavizado. El nombre Análisis Suavizado fue acuñado por Alan Edelman . [1] En 2010 Spielman recibió el Premio Nevanlinna por desarrollar el análisis suavizado. El artículo JACM de Spielman y Teng "Análisis suavizado de algoritmos: por qué el algoritmo simplex suele tardar un tiempo polinomial" también fue uno de los tres ganadores del Premio Fulkerson 2009 patrocinado conjuntamente por la Sociedad de Programación Matemática (MPS) y la Sociedad Matemática Americana (AMS).
Ejemplos
Algoritmo simplex para programación lineal
El algoritmo simplex es un algoritmo muy eficiente en la práctica y es uno de los algoritmos dominantes para la programación lineal en la práctica. En problemas prácticos, el número de pasos que da el algoritmo es lineal en relación con el número de variables y restricciones. [3] [4] Sin embargo, en el peor de los casos teóricos, se necesitan exponencialmente muchos pasos para la mayoría de las reglas pivote analizadas con éxito. Esta fue una de las principales motivaciones para desarrollar el análisis suavizado. [5]
Para el modelo de perturbación, suponemos que los datos de entrada están perturbados por el ruido de una distribución gaussiana . Para fines de normalización, suponemos que los datos no perturbados satisfacen para todas las filas de la matriz El ruido tiene entradas independientes muestreadas de una distribución gaussiana con media y desviación estándar . Establecemos . Los datos de entrada suavizados consisten en el programa lineal
- maximizar
- sujeto a
- .
Si el tiempo de ejecución de nuestro algoritmo sobre los datos está dado por entonces la complejidad suavizada del método simplex es [6]
Este límite se cumple para una regla pivote específica llamada regla del vértice de sombra. La regla del vértice de sombra es más lenta que las reglas pivote más utilizadas, como la regla de Dantzig o la regla de la arista más empinada [7], pero tiene propiedades que la hacen muy adecuada para el análisis probabilístico. [8]
Búsqueda local para optimización combinatoria
Varios algoritmos de búsqueda local tienen malos tiempos de ejecución en el peor de los casos, pero funcionan bien en la práctica. [9]
Un ejemplo es la heurística 2-opt para el problema del viajante de comercio . Puede requerir exponencialmente muchas iteraciones hasta encontrar una solución localmente óptima, aunque en la práctica el tiempo de ejecución es subcuadrático en el número de vértices. [10] La razón de aproximación , que es la razón entre la longitud de la salida del algoritmo y la longitud de la solución óptima, tiende a ser buena en la práctica, pero también puede ser mala en el peor de los casos teóricos.
Una clase de instancias de problemas puede darse por puntos en la caja , donde sus distancias por pares provienen de una norma . Ya en dos dimensiones, la heurística 2-opt podría tomar exponencialmente muchas iteraciones hasta encontrar un óptimo local. En este contexto, se puede analizar el modelo de perturbación donde los vértices se muestrean independientemente de acuerdo con distribuciones de probabilidad con función de densidad de probabilidad . Para , los puntos se distribuyen uniformemente. Cuando es grande, el adversario tiene más capacidad para aumentar la probabilidad de instancias de problemas difíciles. En este modelo de perturbación, el número esperado de iteraciones de la heurística 2-opt, así como las razones de aproximación de la salida resultante, están limitadas por funciones polinómicas de y . [10]
Otro algoritmo de búsqueda local para el cual el análisis suavizado fue exitoso es el método k-means . Dados los puntos en , es NP-difícil encontrar una buena partición en grupos con pequeñas distancias por pares entre puntos en el mismo grupo. El algoritmo de Lloyd es ampliamente utilizado y muy rápido en la práctica, aunque puede tomar iteraciones en el peor de los casos para encontrar una solución localmente óptima. Sin embargo, asumiendo que los puntos tienen distribuciones gaussianas independientes , cada una con expectativa en y desviación estándar , el número esperado de iteraciones del algoritmo está limitado por un polinomio en , y . [11]
Véase también
Referencias
- ^ ab Spielman, Daniel ; Teng, Shang-Hua (2009), "Análisis suavizado: un intento de explicar el comportamiento de los algoritmos en la práctica" (PDF) , Comunicaciones de la ACM , 52 (10), ACM: 76–84, doi :10.1145/1562764.1562785, S2CID 7904807
- ^ Amenta, Nina ; Ziegler, Günter (1999), "Productos deformados y sombras máximas de politopos", Contemporary Mathematics , 223 , American Mathematical Society: 10–19, CiteSeerX 10.1.1.80.3241 , doi :10.1090/conm/223, ISBN 9780821806746, Sr. 1661377
- ^ ab Shamir, Ron (1987), "La eficiencia del método simplex: una encuesta", Management Science , 33 (3): 301–334, doi :10.1287/mnsc.33.3.301
- ^ ab Andrei, Neculai (2004), "Andrei, Neculai. "Sobre la complejidad del paquete MINOS para programación lineal", Estudios en Informática y Control , 13 (1): 35–46
- ^ Spielman, Daniel ; Teng, Shang-Hua (2001), "Análisis suavizado de algoritmos", Actas del trigésimo tercer simposio anual de la ACM sobre teoría de la computación , ACM, págs. 296–305, arXiv : cs/0111050 , Bibcode :2001cs.......11050S, doi :10.1145/380752.380813, ISBN 978-1-58113-349-3, S2CID1471
{{citation}}: CS1 maint: date and year (link) - ^ Dadush, Daniel; Huiberts, Sophie (2018), "Un análisis suavizado y amigable del método símplex", Actas del 50.° Simposio Anual ACM SIGACT sobre Teoría de la Computación , págs. 390–403, arXiv : 1711.05667 , doi : 10.1145/3188745.3188826, ISBN 9781450355599, Número de identificación del sujeto 11868079
{{citation}}: CS1 maint: date and year (link) - ^ Borgwardt, Karl-Heinz; Damm, Renate; Donig, Rudolf; Joas, Gabriele (1993), "Estudios empíricos sobre la eficiencia promedio de las variantes simplex bajo simetría de rotación", ORSA Journal on Computing , 5 (3), Operations Research Society of America: 249–260, doi :10.1287/ijoc.5.3.249
- ^ Borgwardt, Karl-Heinz (1987), El método simplex: un análisis probabilístico, Algoritmos y combinatoria, vol. 1, Springer-Verlag, doi :10.1007/978-3-642-61578-8, ISBN 978-3-540-17096-9
- ^ Manthey, Bodo (2021), Roughgarden, Tim (ed.), "Análisis suavizado de la búsqueda local", Más allá del análisis del peor caso de los algoritmos , Cambridge: Cambridge University Press, págs. 285-308, doi : 10.1017/9781108637435.018, ISBN 978-1-108-49431-1, S2CID 221680879 , consultado el 15 de junio de 2022
- ^ ab Englert, Matthias; Röglin, Heiko; Vöcking, Berthold (2007), "Análisis probabilístico y del peor caso del algoritmo 2-Opt para el TSP", Actas del decimoctavo simposio anual ACM-SIAM sobre algoritmos discretos , 68 : 190–264, arXiv : 2302.06889 , doi : 10.1007/s00453-013-9801-4
- ^ Arthur, David; Manthey, Bodo; Röglin, Heiko (2011), "Análisis suavizado del método k-Means" (PDF) , Journal of the ACM , 58 (5): 1–31, doi :10.1145/2027216.2027217, S2CID 5253105