Algoritmos exactos para programación cuadrática no convexa

13

Esta pregunta trata sobre problemas de programación cuadrática con restricciones de caja (box-QP), es decir, problemas de optimización de la forma

  • minimizar sujeto a .f(x)=xTAx+cTxx[0,1]n

Si fuera semi-definido positivo, entonces todo sería agradable, convexo y fácil, y podríamos resolver el problema en tiempo polinómico.A

Por otro lado, si tuviéramos la restricción de integralidad , podríamos resolver fácilmente el problema en el tiempo O (2 ^ n \ cdot \ mathrm {poly} (n )) por fuerza bruta. A los fines de esta pregunta, esto es razonablemente rápido.x{0,1}nO(2npoly(n))

Pero, ¿qué pasa con el caso continuo no convexo? ¿Cuál es el algoritmo más rápido conocido para los box-QP generales?

Por ejemplo, ¿podemos resolver esto en un tiempo moderadamente exponencial, por ejemplo, O(3npoly(n)) , o la complejidad del peor de los algoritmos más conocidos es algo mucho peor?


Antecedentes: tengo algunos QP de caja bastante pequeños que realmente me gustaría resolver, y me sorprendió un poco ver cuán mal funcionan algunos paquetes de software comercial, incluso para valores muy pequeños de . Empecé a preguntarme si hay una explicación TCS para esta observación.n

Jukka Suomela
fuente
1
¿Puedes resolver exactamente incluso para PSD ? La solución puede ser irracional, ¿no? Si está dispuesto a perder aditivo tal vez se pueda obtener un algoritmo de tiempo exponencial haciendo una búsqueda de fuerza bruta sobre una cuadrícula suficientemente fina. Solo una sugerencia vaga. ϵAϵ
Chandra Chekuri
La desventaja es que la "base" del exponente sería algo así como , pero tal vez la ingeniería de cuadrícula inteligente puede ayudar para " " pequeñon1/ /ϵnorte
Suresh Venkat
@ChandraChekuri: las aproximaciones están perfectamente bien si puede lograr, por ejemplo, . Sin embargo, la fuerza bruta sobre una grilla tan fina no es factible. ϵ=10-9 9
Jukka Suomela
Mediante la eliminación del cuantificador en campos cerrados reales, siempre es posible resolver estos sistemas exactamente.
2
Si se permite , puede optimizar la función en cada una de las caras del cubo simplemente escribiendo los criterios de optimización de primer orden. O(3norte)
Yoshio Okamoto

Respuestas:

12

Una solución óptima yace en alguna cara. Entonces, podemos pasar por todas las caras del cubo y encontrar todos los puntos estacionarios en cada una de las caras.

Aquí hay un procedimiento más concreto. Una cara del cubo puede caracterizarse por dos conjuntos de índices disjuntos e . Para , arreglamos , y para arreglamos . Deje que consista en las entradas restantes no fijadas de . Esta fijación convierte la función objetivo en la siguiente forma:I 1 i I 0 x i = 0 i I 1 x i = 1 ˜ x xI0 0yo1yoyo0 0Xyo=0 0yoyo1Xyo=1X~X

X~UN~X~+C~X~+re,

con y apropiadas , y alguna constante , y queremos encontrar los puntos estacionarios de esta función con la condición de que .˜ c d0< ˜ x <1UN~C~re0 0<X~<1

Para este fin, tomamos la diferenciación de la función objetivo para obtener

12UN~X~+C~=0.

Resolver este sistema de ecuaciones lineales le da los puntos estacionarios, los candidatos para soluciones óptimas. Los revisamos todos, verificamos la condición y elegimos uno con el valor objetivo mínimo.

La complejidad general del tiempo es algo así como ya que el número de caras del cubo es y un sistema de ecuaciones lineales se puede resolver en tiempo polinómico. La complejidad del espacio es polinomial en .n 3 n nO(3norteescuela politécnica(norte))norte3nortenorte

Yoshio Okamoto
fuente
1
¿Por qué una solución óptima se encuentra en alguna cara con una no convexa ? F
cody
@cody: Eso se debe a que cada politopo es la unión disjunta de sus caras.
Yoshio Okamoto
¿Qué pasa si es cúbico o cuártico? ¿Esta propiedad todavía se mantiene? F
cody
@cody: La propiedad aún se mantiene, pero necesitamos resolver una ecuación algebraica de grado más de uno. Me temo que esto no es trivial para los casos multivariados.
Yoshio Okamoto