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 .
Si fuera semi-definido positivo, entonces todo sería agradable, convexo y fácil, y podríamos resolver el problema en tiempo polinómico.
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.
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 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.
fuente
Respuestas:
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 xyo0 0 yo1 yo ∈ yo0 0 Xyo= 0 yo ∈ yo1 Xyo= 1 X~ X
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~ re 0 < x~< 1
Para este fin, tomamos la diferenciación de la función objetivo para obtener
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 ( 3nortepoli ( n ) ) norte 3norte norte
fuente