Un programa cónico es la receta más económica posible para optimizar de forma convexa: un objetivo lineal, una restricción afín, y la exigencia de que la solución viva en un cono. Toda su riqueza está en qué cono elijas. Aquí montamos el primal, el dual, y la relación entre ambos.
Los ingredientes
Fijamos dos espacios reales con producto interior, y (piensa en de algún espacio). Necesitamos:
- un cono convexo cerrado ;
- un mapa lineal ;
- dos vectores, y .
Es importante que el cuerpo de escalares sea : aunque los operadores tengan entradas complejas, es un espacio vectorial real, y la teoría de dualidad se apoya en ello.
El problema primal
Con esos ingredientes, el problema primal es
Un que cumple ambas restricciones es factible; el mayor valor alcanzable de es el valor óptimo primal. La programación lineal es el caso ; la semidefinida, el caso .
El adjunto
Para escribir el dual necesitamos una pieza: el adjunto (mapa) de . Es el único mapa lineal que traslada el producto interior de un lado al otro:
Si representas por una matriz, es su transpuesta conjugada. Para superoperadores es la misma idea, un nivel más arriba.
El problema dual
El problema dual asociado se construye con el adjunto y con el cono dual del artículo anterior:
Aquí es libre (no vive en ningún cono), pero la holgura debe caer en el cono dual . Es exactamente donde el trabajo geométrico del Artículo 01 rinde fruto.
Dualidad débil, en tres líneas
La dualidad débil dice que cualquier valor dual factible acota por arriba a cualquier valor primal factible. Toma un primal factible y un dual factible. Entonces
donde el primer paso usa , el segundo la definición del adjunto, y el último que y — que es justo lo que significa el cono dual. Por tanto
El valor primal nunca supera al dual. La diferencia se llama brecha de dualidad, y siempre es no negativa. La pregunta interesante —¿cuándo llega a cero?— es el tema del Artículo 04.
Ejemplos resueltos
Problema. Toma , cono , mapa hacia , con y . Resuelve el primal y el dual y comprueba que coinciden.
Primal. «maximizar sujeto a , ». La restricción obliga a repartir una unidad entre y ; como vale el doble, conviene poner todo el peso ahí: , con valor .
Dual. El adjunto de es , y el ortante es autodual, así que la condición es , es decir y . El dual es «minimizar sujeto a », con óptimo y valor .
Comprobación. Valor primal valor dual: no hay brecha.
Problema. En el mismo programa, toma un par no óptimo pero factible: en el primal e en el dual. Verifica la dualidad débil y que la brecha es exactamente .
Valores: y , así que ✓. La brecha es . Y por la cuenta del artículo,
Coincide. Fíjate en que ambos factores son «buenos»: y , por eso su producto interior es — la brecha nunca puede ser negativa.
Ejercicios
Comprueba que la desigualdad de dualidad débil no usa en ningún momento que sea autodual — solo la definición de cono dual. ¿Qué propiedad exacta de y hace falta en el último paso?
Solución
Solo se usa que y que , junto con la definición para , . No hace falta autodualidad ni ninguna condición de regularidad: la dualidad débil es gratuita. La autodualidad de se usará más adelante solo para reconocer que el dual de una SDP es otra SDP.
Especializa el programa cónico a , , con para una matriz . Escribe el dual explícitamente y reconoce el par primal-dual de la programación lineal.
Solución
El primal es «maximizar sujeto a , ». El adjunto de es , y como el ortante es autodual, la condición es . El dual queda «minimizar sujeto a » — el par primal-dual estándar de la programación lineal.