Dualidad (optimización)

La dualidad , o principio de dualidad , es el principio por el cual los problemas de optimización pueden ser considerados desde dos puntos de vista, como un problema directo o como un problema dual . La solución del problema dual da la cota inferior del problema directo (al minimizar) [1] . Sin embargo, en el caso general, los valores de las funciones objetivo de las soluciones óptimas de los problemas directo y dual no necesariamente coinciden. La diferencia en estos valores, si se observa, se denomina brecha de dualidad . Para problemas de programación convexa , la brecha de dualidad es igual a cero cuando se cumplen las condiciones de regularidad de las restricciones .

Problema dual

Por lo general, el término "problema dual" implica el problema dual lagrangiano , pero también se utilizan otros problemas duales, como el problema dual de Wolfe y el problema dual de Fenchel . El problema de Lagrange dual se obtiene generando un Lagrangiano , usando multiplicadores de Lagrange no negativos para añadir restricciones a la función objetivo, y minimizando el Lagrangiano con respecto a algunas variables del problema directo. Tal solución da las variables del problema directo como funciones de multiplicadores de Lagrange, que se denominan variables duales, por lo que el nuevo problema se convierte en el problema de maximizar la función objetivo con respecto a las variables duales bajo las restricciones generadas sobre las variables duales ( al menos la no negatividad).

En general, dado el par dual [2] de un espacio convexo local separable y una función , podemos definir el problema directo como encontrar , tal que, en otras palabras,  es el mínimo (límite inferior exacto) de la función .

Si hay restricciones, se pueden incorporar a la función si ponemos , donde  está la función indicadora . Sea ahora (para otro par dual ) una función de perturbación tal que [3] .

La brecha de dualidad  es la diferencia entre los lados derecho e izquierdo de la desigualdad

donde  es la función conjugada de ambas variables, y significa el supremo (límite superior exacto) [3] [4] [5] .

Brecha de dualidad

La brecha de dualidad es la diferencia entre los valores de cualquier solución al problema primario y los valores de cualquier solución al problema dual. Si  es el valor óptimo del problema dual y  es el valor óptimo del problema directo, la brecha de dualidad es . Este valor siempre es mayor o igual a 0. La brecha de dualidad es cero si y solo si hay una fuerte dualidad . De lo contrario, la discontinuidad es estrictamente positiva y se produce una dualidad débil [6] .

En los problemas de optimización numérica, a menudo se utiliza otra "brecha de dualidad", que es igual a la diferencia entre cualquier solución dual y el valor de una iteración admisible, pero no localmente óptima, para el problema directo. La alternativa "brecha de dualidad" expresa la discrepancia entre el valor de la solución factible actual, pero no localmente óptima, para el problema primario y el valor del problema dual. El valor del problema dual es igual, bajo la condición de regularidad de las restricciones, al valor del debilitamiento convexo del problema directo, donde el debilitamiento convexo surge como resultado de reemplazar el conjunto no convexo de soluciones factibles con su conjunto cerrado. casco convexo y reemplazando la función no convexa por su cierre convexo , es decir, con una función cuyo epígrafe es un convexo cerrado por cierre de la función objetivo original del problema directo [7] [8] [9] [10] [11 ] [12] [13] [14] [15] [16] [17] .

Caso lineal

Los problemas de programación lineal  son problemas de optimización en los que la función objetivo y las restricciones son ​​lineales. En el problema directo, la función objetivo es una combinación lineal de n variables. Hay m restricciones, cada una de las cuales limita la combinación lineal de n variables desde arriba. El objetivo es maximizar el valor de la función objetivo bajo restricciones. La solución  es un vector (lista) de n valores que da el valor máximo de la función objetivo.

En el problema dual, la función objetivo es una combinación lineal de m valores que son los lados derechos de las m restricciones del problema primal. Hay n restricciones duales, cada una de las cuales limita una combinación lineal de m variables duales desde abajo.

Relación entre problemas primarios y duales

En el caso lineal, en el problema directo, desde cada punto del óptimo local que satisface todas las restricciones, existe una dirección o subespacio de direcciones, y el movimiento en esta dirección aumenta la función objetivo. Se dice que un movimiento en cualquiera de esas direcciones reduce la brecha entre una solución factible (o un plan factible ) y una de las restricciones. Una posible solución inválida es una solución que viola una o más restricciones.

En el problema dual, los elementos del vector dual se multiplican por columnas que corresponden a las restricciones del problema primal. La perturbación del vector dual en el problema dual es equivalente a revisar el límite superior del problema primal. Al resolver el problema dual, se busca el límite superior mínimo, es decir, el vector dual cambia de tal manera que se reduzca la brecha entre la solución factible y el óptimo real.

Para obtener más información sobre la conexión entre los problemas primal y dual, consulte el artículo " Problemas duales de programación lineal ".

Interpretación económica

Si entendemos nuestro problema de programación lineal primal como un problema clásico de "asignación de recursos", su problema dual puede interpretarse como un problema de " estimación de recursos " .

Caso no lineal

En la programación no lineal, las restricciones no son necesariamente lineales. Sin embargo, se aplican muchos de los principios del caso lineal.

Para garantizar que el máximo global de un problema no lineal se pueda definir fácilmente, el enunciado del problema a menudo requiere que las funciones sean convexas y tengan conjuntos compactos de niveles inferiores (es decir, conjuntos en los que la función toma un valor inferior a algún nivel). .

Esta es la condición de Karush-Kuhn-Tucker . Demostraron las condiciones necesarias para determinar el óptimo local de problemas no lineales. Hay condiciones adicionales (condición de regularidad de las restricciones) que son necesarias para determinar la dirección hacia la solución óptima . Aquí, la solución óptima es una de las óptimas locales, que pueden no ser globales.

Principio estricto de Lagrange: dualidad de Lagrange

Si un problema de programación no lineal se da en la forma estándar

minimizar
bajo condiciones

con dominio que tiene un interior no vacío, la función de Lagrange se define como

Los vectores y se denominan variables duales o vectores de multiplicadores de Lagrange asociados al problema. La función dual de Lagrange se define como

La función dual g es cóncava incluso si el problema inicial no es convexo, ya que es el mínimo puntual de las funciones afines. La función dual da cotas inferiores para el valor óptimo del problema original. Para cualquiera y cualquiera que tengamos .

Si se cumplen las condiciones de regularidad de la restricción , como la condición de Slater , y el problema original es convexo, entonces tenemos dualidad estricta , es decir, .

Problemas convexos

Para un problema de minimización convexo con restricciones - desigualdades,

minimizar
bajo condiciones

El problema dual lagrangiano es

maximizar
bajo condiciones

donde la función objetivo es la función dual de Lagrange. Si se sabe que las funciones y son continuamente diferenciables, entonces el mínimo está en los puntos donde el gradiente es cero. Una tarea

maximizar
bajo condiciones

se llama el problema de Wolfe dual. Esta tarea puede ser computacionalmente difícil, ya que la función objetivo no es convexa en las coordenadas . Además, la restricción generalmente no es lineal, por lo que el problema de Wolfe dual suele ser un problema de optimización no convexo. En todo caso, existe una dualidad débil [18] .

Historia

Según George Danzig , el teorema de la dualidad para la optimización lineal fue presentado como una conjetura por John von Neumann inmediatamente después de que Danzig introdujera el problema de programación lineal. Von Neumann notó que usó información de su teoría de juegos y sugirió que un juego matricial de suma cero de dos personas es equivalente a un problema de programación lineal. Una prueba rigurosa de este hecho fue publicada por primera vez en 1948 por Albert Tucker y su grupo [19] .

Véase también

Notas

  1. Boyd, Vandenberghe, 2004 .
  2. El par dual es un triple , donde  es un espacio vectorial sobre un campo ,  es el conjunto de todas las aplicaciones lineales , y el tercer elemento es una forma bilineal .
  3. 1 2 Boţ, Wanka, Grad., 2009 .
  4. Csetnek, 2010 .
  5. Zălinescu, 2002 , pág. 106–113.
  6. Borwein, Zhu, 2005 .
  7. Ahuja, Magnanti, Orlín, 1993 .
  8. Bertsekas, Nedic, Ozdaglar, 2003 .
  9. Bertsekas, 1999 .
  10. Bertsekas, 2009 .
  11. Bonnans, Gilbert, Lemaréchal, Sagastizábal, 2006 , p. xiv+490.
  12. Hiriart-Urruty, Lemaréchal, 1993 , p. xviii+417.
  13. Hiriart-Urruty, Lemaréchal, 1993 , p. xviii+346.
  14. Lasdon, 2002 , pág. XIII+523.
  15. Lemarechal, 2001 , pág. 112–156.
  16. Minoux, 1986 , pág. xxviii+489.
  17. Shapiro, 1979 , pág. xvi+388.
  18. Geoffrion, 1971 , pág. 1–37.
  19. Nering y Tucker 1993 , pág. prólogo de Danzig.

Literatura

Libros

Artículos

Lecturas adicionales