El dual de un programa lineal (PL) dado es otro PL que se deriva del PL original (el primal ) de la siguiente manera esquemática:
El teorema de dualidad débil establece que el valor objetivo del PL dual en cualquier solución factible es siempre un límite del objetivo del PL primal en cualquier solución factible (límite superior o inferior, dependiendo de si se trata de un problema de maximización o minimización). De hecho, esta propiedad de límite se cumple para los valores óptimos de los PL duales y primales.
El teorema de dualidad fuerte establece que, además, si el primal tiene una solución óptima, entonces el dual también tiene una solución óptima, y los dos óptimos son iguales . [1]
Estos teoremas pertenecen a una clase más amplia de teoremas de dualidad en optimización . El teorema de dualidad fuerte es uno de los casos en los que la brecha de dualidad (la brecha entre el óptimo del primal y el óptimo del dual) es 0.
Supongamos que tenemos el programa lineal:
Maximizar c T x sujeto a A x ≤ b , x ≥ 0.
Nos gustaría construir un límite superior para la solución. Por lo tanto, creamos una combinación lineal de las restricciones, con coeficientes positivos, de modo que los coeficientes de x en las restricciones sean al menos c T . Esta combinación lineal nos da un límite superior para el objetivo. Las variables y del PL dual son los coeficientes de esta combinación lineal. El PL dual intenta encontrar coeficientes que minimicen el límite superior resultante. Esto da el siguiente PL: [1] : 81–83
Minimizar b T y sujeto a A T y ≥ c , y ≥ 0
Este LP se llama el dual del LP original.
El teorema de dualidad tiene una interpretación económica. [2] [3] Si interpretamos el LP primal como un problema clásico de " asignación de recursos ", su LP dual puede interpretarse como un problema de "valoración de recursos".
Consideremos una fábrica que está planificando su producción de bienes. Sea su programa de producción ( cantidad de bien que se fabrica ), sea la lista de precios de mercado (una unidad de bien se puede vender por ). Las restricciones que tiene son (no puede producir bienes negativos) y restricciones de materia prima. Sea la materia prima de la que dispone y sea la matriz de costos de materiales (producir una unidad de bien requiere unidades de materia prima ).
Entonces, la maximización de ingresos restringida es el LP primario:
Maximizar c T x sujeto a A x ≤ b , x ≥ 0.
Ahora, consideremos otra fábrica que no tiene materia prima y desea comprar todo el stock de materia prima de la fábrica anterior. Ofrece un vector de precios de (una unidad de materia prima por ). Para que se acepte la oferta, debería ser el caso de que , ya que de lo contrario la fábrica podría ganar más dinero produciendo un determinado producto que vendiendo la materia prima utilizada para producir el bien. También debería ser , ya que la fábrica no vendería ninguna materia prima con precio negativo. Entonces, el problema de optimización de la segunda fábrica es el PL dual:
Minimizar b T y sujeto a A T y ≥ c , y ≥ 0
El teorema de dualidad establece que la brecha de dualidad entre los dos problemas de PL es al menos cero. En términos económicos, significa que si a la primera fábrica se le ofrece comprar todo su stock de materia prima, a un precio por artículo de y , de modo que A T y ≥ c , y ≥ 0, entonces debería aceptar la oferta. Obtendrá al menos tantos ingresos como los que podría obtener produciendo bienes terminados.
El teorema de dualidad fuerte establece además que la brecha de dualidad es cero. Con dualidad fuerte, la solución dual es, económicamente hablando, el "precio de equilibrio" (ver precio sombra ) para la materia prima que una fábrica con matriz de producción y stock de materia prima aceptaría como materia prima, dado el precio de mercado para los bienes terminados . (Tenga en cuenta que puede no ser único, por lo que el precio de equilibrio puede no estar completamente determinado por , , y .)
Para entender por qué, pensemos en lo siguiente: si los precios de las materias primas son tales que, para algunos , la fábrica compraría más materias primas para producir más del bien , puesto que los precios son "demasiado bajos". Por el contrario, si los precios de las materias primas satisfacen , pero no minimizan , la fábrica ganaría más dinero vendiendo su materia prima que produciendo bienes, puesto que los precios son "demasiado altos". A un precio de equilibrio , la fábrica no puede aumentar sus beneficios comprando o vendiendo materias primas.
El teorema de dualidad también tiene una interpretación física. [1] : 86–87
En general, dado un LP primario, se puede utilizar el siguiente algoritmo para construir su LP dual. [1] : 85 El LP primario se define por:
El LP dual se construye de la siguiente manera.
A partir de este algoritmo, es fácil ver que el dual del dual es el primordial.
Si todas las restricciones tienen el mismo signo, es posible presentar la receta anterior de forma más breve utilizando matrices y vectores. La siguiente tabla muestra la relación entre varios tipos de valores primarios y duales.
A continuación, supongamos que el LP primal es "maximizar c T x sujeto a [restricciones]" y el LP dual es "minimizar b T y sujeto a [restricciones]".
El teorema de dualidad débil dice que, para cada solución factible x del primal y cada solución factible y del dual: c T x ≤ b T y . En otras palabras, el valor objetivo en cada solución factible del dual es un límite superior del valor objetivo del primal, y el valor objetivo en cada solución factible del primal es un límite inferior del valor objetivo del dual. Aquí hay una prueba para el PL del primal "Maximizar c T x sujeto a A x ≤ b , x ≥ 0":
La dualidad débil implica:
máx x c T x ≤ mín y b T y
En particular, si el primal no tiene límites (desde arriba), entonces el dual no tiene solución factible, y si el dual no tiene límites (desde abajo), entonces el primal no tiene solución factible.
El teorema de dualidad fuerte dice que si uno de los dos problemas tiene una solución óptima, también la tiene el otro y que los límites dados por el teorema de dualidad débil son estrictos, es decir:
máx x c T x = mín y b T y
El teorema de dualidad fuerte es más difícil de demostrar; las demostraciones suelen utilizar el teorema de dualidad débil como subrutina.
Una prueba utiliza el algoritmo simplex y se basa en la prueba de que, con la regla pivote adecuada, proporciona una solución correcta. La prueba establece que, una vez que el algoritmo simplex termina con una solución para el LP primario, es posible leer de la tabla final una solución para el LP dual. Por lo tanto, al ejecutar el algoritmo simplex, obtenemos soluciones tanto para el LP primario como para el dual simultáneamente. [1] : 87–89
Otra prueba utiliza el lema de Farkas . [1] : 94
1. El teorema de dualidad débil implica que encontrar una única solución factible es tan difícil como encontrar una solución factible óptima . Supongamos que tenemos un oráculo que, dado un PL, encuentra una solución factible arbitraria (si existe alguna). Dado el PL "Maximizar c T x sujeto a A x ≤ b , x ≥ 0", podemos construir otro PL combinando este PL con su dual. El PL combinado tiene x e y como variables:
Maximizar 1
sujeto a A x ≤ b , A T y ≥ c , c T x ≥ b T y , x ≥ 0, y ≥ 0
Si el PL combinado tiene una solución factible ( x , y ), entonces por dualidad débil, c T x = b T y . Por lo tanto, x debe ser una solución máxima del PL primario e y debe ser una solución mínima del PL dual. Si el PL combinado no tiene una solución factible, entonces el PL primario tampoco tiene una solución factible.
2. El teorema de dualidad fuerte proporciona una "buena caracterización" del valor óptimo de un PL, ya que nos permite demostrar fácilmente que algún valor t es el óptimo de algún PL. La prueba se realiza en dos pasos: [4] : 260–261
Consideremos el LP primal, con dos variables y una restricción:
La aplicación de la receta anterior da como resultado el siguiente LP dual, con una variable y dos restricciones:
Es fácil ver que el máximo del PL primario se alcanza cuando x 1 se minimiza a su límite inferior (0) y x 2 se maximiza a su límite superior bajo la restricción (7/6). El máximo es 4 ⋅ 7/6 = 14/3.
De manera similar, el mínimo del LP dual se alcanza cuando y 1 se minimiza a su límite inferior bajo las restricciones: la primera restricción da un límite inferior de 3/5 mientras que la segunda restricción da un límite inferior más estricto de 4/6, por lo que el límite inferior real es 4/6 y el mínimo es 7 ⋅ 4/6 = 14/3.
De acuerdo con el teorema de dualidad fuerte, el máximo del primal es igual al mínimo del dual.
Utilizamos este ejemplo para ilustrar la prueba del teorema de dualidad débil. Supongamos que, en el PL primario, queremos obtener un límite superior para el objetivo . Podemos usar la restricción multiplicada por algún coeficiente, digamos . Para cualquier obtenemos: . Ahora, si y , entonces , por lo que . Por lo tanto, el objetivo del PL dual es un límite superior para el objetivo del PL primario.
Consideremos un agricultor que puede cultivar trigo y cebada con una provisión fija de tierra L , fertilizante F y pesticida P. Para cultivar una unidad de trigo, se deben utilizar una unidad de tierra, unidades de fertilizante y unidades de pesticida. De manera similar, para cultivar una unidad de cebada, se deben utilizar una unidad de tierra, unidades de fertilizante y unidades de pesticida.
El problema principal sería que el agricultor decidiera cuánto trigo ( ) y cebada ( ) cultivar si sus precios de venta son y por unidad.
En forma de matriz esto se convierte en:
Para el problema dual, supongamos que una junta de planificación fija los precios unitarios de y para cada uno de estos medios de producción (insumos). La tarea de la junta de planificación es minimizar el costo total de adquisición de las cantidades fijas de insumos y, al mismo tiempo, proporcionar al agricultor un precio unitario mínimo para cada uno de sus cultivos (productos), S 1 para el trigo y S 2 para la cebada. Esto corresponde al siguiente PL:
En forma de matriz esto se convierte en:
El problema primario se ocupa de las cantidades físicas. Con todos los insumos disponibles en cantidades limitadas y suponiendo que se conocen los precios unitarios de todos los productos, ¿qué cantidades de productos se deben producir para maximizar los ingresos totales? El problema dual se ocupa de los valores económicos. Con garantías mínimas para todos los precios unitarios de los productos y suponiendo que se conoce la cantidad disponible de todos los insumos, ¿qué esquema de precios unitarios de los insumos se debe establecer para minimizar el gasto total?
A cada variable del espacio primario le corresponde una desigualdad a satisfacer en el espacio dual, ambas indexadas por tipo de salida. A cada desigualdad a satisfacer en el espacio primario le corresponde una variable del espacio dual, ambas indexadas por tipo de entrada.
Los coeficientes que delimitan las desigualdades en el espacio primario se utilizan para calcular el objetivo en el espacio dual, cantidades de entrada en este ejemplo. Los coeficientes utilizados para calcular el objetivo en el espacio primario delimitan las desigualdades en el espacio dual, precios unitarios de salida en este ejemplo.
Tanto el problema primal como el dual utilizan la misma matriz. En el espacio primal, esta matriz expresa el consumo de cantidades físicas de insumos necesarias para producir cantidades fijas de productos. En el espacio dual, expresa la creación de valores económicos asociados con los productos a partir de precios unitarios de insumos fijos.
Como cada desigualdad puede ser reemplazada por una igualdad y una variable de holgura, esto significa que cada variable primaria corresponde a una variable de holgura dual, y cada variable dual corresponde a una variable de holgura primaria. Esta relación nos permite hablar de holgura complementaria.
Un PL también puede ser ilimitado o inviable. La teoría de la dualidad nos dice que:
Sin embargo, es posible que tanto el dual como el primordial sean inviables. He aquí un ejemplo:
Existe una estrecha relación entre los problemas de programación lineal, las ecuaciones propias y el modelo de equilibrio general de von Neumann. La solución de un problema de programación lineal puede considerarse como un vector propio generalizado.
Las ecuaciones propias de una matriz cuadrada son las siguientes:
donde y son los vectores propios izquierdo y derecho de la matriz cuadrada , respectivamente, y es el valor propio.
Las ecuaciones propias anteriores para la matriz cuadrada se pueden extender al modelo de equilibrio general de von Neumann: [5] [6]
donde los significados económicos de y son los precios de equilibrio de varios bienes y los niveles de actividad de equilibrio de varios agentes económicos, respectivamente.
El modelo de equilibrio de von Neumann se puede ampliar aún más al siguiente modelo de equilibrio estructural con y como funciones con valores matriciales: [7]
donde el significado económico de es el nivel de utilidad de los distintos consumidores. Un caso especial del modelo anterior es
Esta forma del modelo de equilibrio estructural y los problemas de programación lineal a menudo se pueden convertir entre sí, es decir, las soluciones a estos dos tipos de problemas suelen ser consistentes.
Si definimos , , , , entonces el modelo de equilibrio estructural se puede escribir como
Ilustremos el modelo de equilibrio estructural con el pequeño ejemplo que analizamos anteriormente. En este ejemplo, tenemos , y .
Para resolver el modelo de equilibrio estructural, obtenemos [8]
Estos son consistentes con las soluciones a los problemas de programación lineal.
Sustituimos los resultados del cálculo anterior en el modelo de equilibrio estructural, obteniendo
El teorema de corte mínimo de flujo máximo es un caso especial del teorema de dualidad fuerte: la maximización del flujo es el LP primario y la minimización del corte es el LP dual. Consulte Teorema de corte mínimo de flujo máximo#Formulación de programa lineal .
Otros teoremas relacionados con gráficos pueden demostrarse utilizando el teorema de dualidad fuerte, en particular, el teorema de König . [9]
El teorema Minimax para juegos de suma cero se puede demostrar utilizando el teorema de dualidad fuerte. [1] : sub.8.1
A veces, puede resultar más intuitivo obtener el programa dual sin mirar la matriz del programa. Consideremos el siguiente programa lineal:
Tenemos m + n condiciones y todas las variables son no negativas. Definiremos m + n variables duales: y j y s i . Obtenemos:
Como se trata de un problema de minimización, nos gustaría obtener un programa dual que sea una cota inferior del primal. En otras palabras, nos gustaría que la suma de todos los miembros del lado derecho de las restricciones fuera la máxima bajo la condición de que para cada variable primal la suma de sus coeficientes no exceda su coeficiente en la función lineal. Por ejemplo, x 1 aparece en n + 1 restricciones. Si sumamos los coeficientes de sus restricciones obtenemos a 1,1 y 1 + a 1,2 y 2 + ... + a 1,;;n;; y n + f 1 s 1 . Esta suma debe ser como máximo c 1 . Como resultado, obtenemos:
Tenga en cuenta que en nuestros pasos de cálculo asumimos que el programa está en formato estándar. Sin embargo, cualquier programa lineal puede transformarse a formato estándar y, por lo tanto, no es un factor limitante.
detallada sobre el modelo de equilibrio general y el programa lineal dual en R.