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(2n⋅poly(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(3n⋅poly(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


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 0yo1yo∈yo0 0Xyo=0 0yo∈yo1Xyo=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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.