Aplicaciones teóricas para algoritmos de aproximación

21

Últimamente comencé a buscar algoritmos de aproximación para problemas NP-difíciles y me preguntaba sobre las razones teóricas para estudiarlos. (La pregunta no pretende ser inflamatoria, solo tengo curiosidad).

Del estudio de los algoritmos de aproximación ha surgido una teoría realmente hermosa: la conexión entre el teorema de PCP y la dureza de la aproximación, la conjetura de UGC, el algoritmo de aproximación de Goeman-Williamson, etc.

Sin embargo, me preguntaba sobre el punto de estudiar algoritmos de aproximación para problemas como el vendedor ambulante, el vendedor ambulante asimétrico y otras variantes, varios problemas en el diseño de mecanismos (por ejemplo, en subastas combinatorias), etc. ¿Han sido útiles estos algoritmos de aproximación en otras partes de la teoría? en el pasado o se estudian exclusivamente por su propio bien?

Nota: no estoy preguntando acerca de ninguna aplicación práctica ya que, hasta donde yo sé, en el mundo real, se aplican principalmente heurísticas en lugar de algoritmos de aproximación y las heurísticas rara vez se informan por algún conocimiento obtenido al estudiar los algoritmos de aproximación para problema.

Anon1234
fuente
44
No estoy seguro de entender la pregunta. ¿Cuáles son las "razones teóricas" para estudiar cualquier materia teórica?
Jeffε
1
Creo que quiere decir "completar el etc." en el párrafo 2
Huck Bennett
2
¿Está mal si eso es lo que estoy haciendo y nunca me hice la pregunta? ¡Solo pensé que los algoritmos de aproximación se veían geniales!
Gopi
1
Creo que la motivación es la misma que para estudiar la dureza de la aproximación: comprender la complejidad exacta de varios problemas. El algoritmo Goemans-Williamson va de la mano con la dureza de los juegos únicos de hacerlo mejor que el factor de aproximación GW.
Aaron Roth
1
No estoy seguro si su último párrafo es justo. Los algoritmos de aproximación son interesantes porque son una forma sugerida de lidiar con la intratabilidad de problemas como TSP. Es posible que muchos de ellos no se usen directamente en la práctica en la forma original, pero son útiles para saber qué probar. Puede decir lo mismo sobre los algoritmos exactos, muchos de ellos nunca se usan directamente en la práctica, hay muchos problemas de ingeniería que deben tenerse en cuenta al usar cualquier algoritmo en la práctica. Muchos problemas en la práctica no necesitan algoritmos exactos y los usuarios estarán completamente felices
Kaveh

Respuestas:

21

Estoy totalmente en desacuerdo con el último párrafo. Las declaraciones generales como esa no son útiles. Si observa documentos en muchas áreas de sistemas, como redes, bases de datos, inteligencia artificial, etc., verá que en la práctica se utilizan muchos algoritmos de aproximación. Hay algunos problemas para los cuales uno desea respuestas muy precisas; por ejemplo, una aerolínea interesante para optimizar la programación de su flota. En tales casos, las personas usan diversas heurísticas que requieren un tiempo de cálculo considerable pero obtienen mejores resultados que los que puede proporcionar un algoritmo de aproximación genérico.

Ahora por algunas razones teóricas para estudiar algoritmos de aproximación. Primero, ¿qué explica el hecho de que la mochila es muy fácil en la práctica, mientras que la coloración de gráficos es bastante difícil? Ambos son NP-Hard y poli-tiempo reducibles entre sí. En segundo lugar, al estudiar algoritmos de aproximación para casos especiales de un problema, se puede determinar qué clases de instancias pueden ser fáciles o difíciles. Por ejemplo, sabemos que muchos problemas admiten un PTAS en gráficos planos y sin gráficos menores, mientras que son mucho más difíciles en gráficos generales arbitrarios. La idea de aproximación impregna el diseño moderno de algoritmos. Por ejemplo, las personas usan algoritmos de transmisión de datos y sin la lente de aproximación es difícil de entender / diseñar algoritmos porque incluso los problemas simples no pueden resolverse exactamente.

Chandra Chekuri
fuente
12

S2pagsZPAGSPAGSnortePAGS

Markus Bläser
fuente
9

También estoy en desacuerdo con la "nota", al menos en esta generalidad. En relación con esto, ¿alguien sabe si la charla de premios Kanellakis de David Johnson está disponible en algún lugar?

Además, una vez que nos damos cuenta de que todos los problemas NP-hard son equivalentes con respecto a la complejidad del peor de los casos de soluciones exactas, es muy natural preguntar sobre la complejidad de encontrar soluciones aproximadas. Y Chandra hace un gran punto sobre el cambio de perspectiva que los algoritmos de aproximación aportan al diseño del algoritmo.

O(Iniciar sesiónnorte)

Sasho Nikolov
fuente
8

Las mejores heurísticas son realmente algoritmos de aproximación. Los algoritmos de aproximación más bellos son simplemente heurísticas "estúpidas" que funcionan. Por ejemplo, búsqueda local de agrupación, agrupación codiciosa (González), una por el precio de dos, varios algoritmos codiciosos, etc., etc.

Por lo tanto, estudiar algoritmos de aproximación se trata realmente de comprender qué heurísticas son algoritmos de aproximación garantizados. La esperanza es que la investigación sobre algoritmos de aproximación cree dos tipos de fertilización cruzada:

  • Mueva las ideas que funcionan desde la heurística a las herramientas de diseño de algoritmos. Del mismo modo, mueva ideas del diseño de algoritmos a heurísticas / algoritmos que funcionen bien en la práctica.
  • Fertilización cruzada entre una persona que acaba de graduarse y un puesto.

En resumen, el mundo no es exacto, las entradas no son exactas, las funciones de destino optimizadas por varios problemas de algoritmos no son exactas y, en el mejor de los casos, representan una aproximación difusa de lo que uno quiere, y los cálculos no son exactos. ¿Por qué alguien aprendería algoritmos exactos? (Respuesta: Porque los algoritmos exactos son realmente buenos algoritmos de aproximación).

En el mundo real, hay muy pocos algoritmos exactos: debe usar la aproximación para ser remotamente relevante ...

Sariel Har-Peled
fuente
4

Tratar problemas con variables continuas es muy molesto con algoritmos exactos. Por ejemplo, ¿qué significa especificar los pesos de borde de una instancia de TSP con números reales exactos?

Cuando permitimos algoritmos FPTAS para estos problemas, podemos cuantificar estos parámetros en enteros. Esto hace que el problema se comporte mucho mejor (puede usar máquinas Turing estándar), pero incurre en un pequeño error.

David Harris
fuente