Convexidad y algoritmos eficientes.

8

[Editar 21 de julio de 2011: edité la pregunta para pedir más ejemplos]

Esta pregunta requiere una discusión documentada de o más ejemplos de una observación heurística.

Algunos problemas matemáticos que admiten algoritmos eficientes parecen ser de naturaleza convexa. Estoy pensando en programas lineales y semi-definidos y varios problemas combinatorios que se reducen a estos.

Primero, ¿hay otras familias de problemas que admitan algoritmos eficientes para el caso convexo / conjuntivo? (Estaría particularmente agradecido por ejemplos de procedimientos de decisión para teorías lógicas). Segundo, agradecería los consejos sobre artículos o secciones de artículos que discutan una opinión como "acechar bajo muchos algoritmos eficientes es una estructura convexa".

[Edición, 21 de julio de 2011: se agregó lo siguiente.]

Me gustaría agregar algunas aclaraciones. Lamento no haberlos incluido antes. Estoy interesado en problemas de decisión lógica. Me parece que existen procedimientos de decisión eficientes para el fragmento conjuntivo de varios problemas lógicos. Aquí hay dos ejemplos.

Los solucionadores eficientes para teorías de primer orden sin cuantificadores (como los solucionadores SMT para igualdad, igualdad con funciones no interpretadas, diferencia aritmética, etc.) generalmente tienen un solucionador eficiente para el fragmento conjuntivo y utilizan diversas técnicas para hacer frente a la disyunción y la negación. En el análisis estático de programas, las abstracciones comúnmente utilizadas (y eficientes) se basan en intervalos enteros, igualdades afines, octágonos o poliedros. En la abstracción basada en predicados y la verificación de programas, hay algo llamado abstracción cartesiana, que es intuitivamente tener conjunciones de predicados en lugar de combinaciones booleanas arbitrarias. Me parece que todos estos casos tratan de ganar eficiencia al explotar el fragmento conjuntivo del problema.

El fragmento conjuntivo de la teoría de primer orden de la aritmética lineal real puede expresar poliedros convexos. Es por eso que originalmente pregunté sobre programación convexa.

Me interesa conocer otros problemas o ejemplos en los que las soluciones eficientes (en el sentido teórico o práctico) se basan en un subproblema convexo o conjuntivo. Si hay otra condición general (Suresh mencionó la submodularidad) por favor mencione y los problemas cuyas soluciones explotan esa condición.

Vijay D
fuente
"invitaciones para pensar en voz alta" generalmente están marcadas como CW :). Tiene alguna idea sobre esto ?
Suresh Venkat
2
@Suresh, "invitaciones para pensar en voz alta" suena como un debate extendido, solicitar opinión, etc., probablemente más adecuado para el chat que el control de calidad, creo que esa parte debería cerrarse como argumentativa / no constructiva. Por otro lado, en mi humilde opinión, la parte de solicitud de referencia no necesita ser CW. Sugeriría eliminar la parte "pensar en voz alta".
Kaveh
2
He editado la frase problemática.
Vijay D
3
Una complicación en su pregunta es que el trabajo reciente sugiere que la submodularidad también es algo que conduce a algoritmos eficientes. Submodularidad, por supuesto, es una noción diferente a la convexidad
Suresh Venkat
2
La submodularidad es en realidad una especie de análogo discreto de convexidad. La extensión natural de una función submodular al cubo real es convexo. F:{0 0,1}norteRF^:[0 0,1]norteR
Aaron Roth

Respuestas:

10

Con respecto a la pregunta 1.

Los ejemplos que proporcionó, programas lineales y SDP (los cuales son programas lineales sobre conos convexos), se pueden generalizar a programas convexos: minimización de una función convexa sobre un conjunto convexo factible. Como está buscando 'otras familias de problemas' que sean eficientes gracias a la presencia de convexidad, lo más natural es descartar la parte de la función convexa, y solo mirar los conjuntos convexos. Este es el reino de la geometría convexa, y aquí hay muchos algoritmos.

Uno de los favoritos estándar es:

Martin Dyer, Alan Frieze, Ravi Kannan. Algoritmo de tiempo polinómico aleatorio para aproximar el volumen de cuerpos convexos .

La dificultad aquí es que la dimensión es (como debería ser) una parte de la entrada; Por otro lado, un algoritmo ingenuo muestrea puntos en la cuadrícula, que fija la dimensión en el exponente del tiempo de ejecución. La razón por la que la convexidad ayuda es intuitiva: la convexidad da resultados de separación, cosas como el lema de Farkas que dice que un punto está en un cono convexo cerrado, o puede separarlos con un hiperplano. La relevancia aquí es decir que sabe que algún punto está en el cuerpo convexo, mientras que una constelación de puntos a su alrededor no está en el cuerpo: desde aquí puede cortar una gran parte de la entrada y nunca molestarse en tomar muestras de ella. Quizás debería aclarar que el documento anterior hace la estimación al producir un buen algoritmo de muestreo dentro del cuerpo (los cuales son útiles). Lo último que revisé, todavía no hay un análogo determinista a esto; Simplemente busqué en Google para ver si el estado ha cambiado (parece que no), y recibí estas notas que tienen algunas referencias que pueden interesarle:http://www.cs.berkeley.edu/~sinclair/cs294/n16.pdf . Nunca tomé esta clase y solo miré brevemente, así que pido disculpas si hay algunos problemas, pero las referencias allí al menos parecen tener valor para usted.

Para obtener más ejemplos de algoritmos que explotan la geometría convexa, un lugar para buscar es la subsección 'Bibliografía y comentarios' que concluye cada sección (de cada capítulo) del libro de Jiri Matousek "Lectures on Discrete Geometry".

Otra cosa que se cita mucho, y que parece tener temas para usted (pero nunca he mirado más allá de la tabla de contenidos yo mismo; Matousek por otro lado es ... en mi otro lado), es "Algoritmos geométricos y combinatorios optimización "por Grotschel, Lovasz y Schrijver. (Sí, ese Lovasz.)

Creo que estas referencias tienen mucho para ti, así que pasaré a la siguiente pregunta.

Con respecto a la pregunta 2.

Si bien es definitivamente cierto que la convexidad es poderosa, no he visto un comentario como el que buscas, y creo que las personas son muy cuidadosas para comunicar ese sentimiento.

Tengo una anécdota sobre esto. Una forma en que las personas 'inyectan' convexidad en los problemas es simplemente ... aproximar / modelarlos con algo convexo. (Por ejemplo: reemplazar restricciones de rango con normas en la matriz, reemplazar enteros (no convexos y ni siquiera conectados) con conjuntos convexos de reales). Un texto de referencia para estas cosas es la "Optimización convexa" de Boyd & Vandenberghe. Pero una vez que estaba viendo los videos de Boyd, y alguien le hizo la pregunta "es convexo = eficiente", e inmediatamente dijo SVD. Tenga en cuenta que SVD puede escribirse como un problema de minimización de rango restringido. De todos modos, mi punto es que incluso Boyd es muy rápido para corregir un comentario como este.

Dicho esto, deseo compartir dos lugares donde me sorprendieron personalmente las estructuras convexas (los expertos pueden poner los ojos en blanco y quedarse dormidos aquí). Los primeros son los llamados problemas de 'suma de cuadrados', que son problemas de minimización sobre polinomios no convexos . Gracias a las propiedades de interpolación de los polinomios, puede volver a escribirlos como SDP. Hay algunas hermosas notas del curso sobre este tema de Pablo Parrilo; puedes encontrar esa y más información en su página web y alguna otra información en esta publicación de MO de Noah Stein: /mathpro/32533/is-all-non-convex-optimization-heuristic/32634#32634 .

Otro hermoso lugar está en familias exponenciales. Ahora, todo esto es "obvio" una vez que te das cuenta de que estas son soluciones para la entropía máxima (un problema de optimización convexa), pero es sorprendente la cantidad de estructura convexa que informa el comportamiento de las familias exponenciales (una referencia que me gusta aquí es el libro de Wainwright y Jordan sobre gráficos modelos). Esto a su vez da una justificación para algunas de las cosas que las personas hacen con este tipo de modelado.

matus
fuente
Estimado matus: Gracias por sus ejemplos y su atenta respuesta. Sin embargo, me preguntaba acerca de los problemas que son realmente diferentes de la programación convexa, preferiblemente discretos, donde aparece algún análogo de convexidad.
Vijay D
(siguiendo su edición) ¡Oh no! ¡Parece que extrañé totalmente lo que realmente querías! Lamentablemente, no tengo nada específico para su pregunta, pero puede interesarle la siguiente pregunta de MO: mathoverflow.net/questions/45558/the-logic-of-convex-sets .
matus