Programa lineal dual

De Wikipedia, la enciclopedia libre

El dual de un programa lineal (PL) dado es otro PL que se deriva del PL original (el primal) de la siguiente forma:

  • Cada variable en el PL primal se convierte en una restricción en el PL dual;
  • Cada restricción en el PL primal se convierte en una variable PL dual;
  • La función objetivo se invierte – maximizar en el PL primal se convierte en minimizar en el PL dual y viceversa.

Construyendo el PL dual[editar]

Dado un PL primal, el siguiente algoritmo puede ser utilizado para construir su PL dual. El PL primal está definido por:

  • Un conjunto de variables:
  • Para cada variable , le corresponde un signo de restricción – tiene que ser no negativo (), no positivo () o irrestrica .
  • Una función objetivo:
  • Una lista de restricciones. Cada restricción es: donde el símbolo antes de puede ser o o .

El PL dual se construye como sigue:

  • Cada restricción en el primal se convierte en una variable en el dual, por lo que hay variables: .
  • El constreñimiento de señal de cada variable dual es "opuesto" al signo de su primal constreñimiento. Por lo que “” se convierte en , “” se convierte en y “” se convierte en .
  • La función objetiva dual es
  • Cada variable primal se convierte en una restricción dual, por lo que hay restricciones. El coeficiente de una variable dual en la restricción dual es el coeficiente de su variable primal en su restricción primal, por lo que cada restricción es: donde el símbolo antes de es similar a la restricción en variable en el PL primal, por lo que se convierte en “”, se convierte en “” y se convierte en “”.

De este algoritmo, es fácil de ver que el dual del dual es el primal.

Formulación vectorial[editar]

Si todas las restricciones tienen el mismo signo, es posible representar el algoritmo de arriba en una manera más corta utilizando matrices y vectores. La siguiente tabla muestra la relación entre varios tipos de PL primales y duales.

Primal Dual Nota
Maximizar sujeto a Minimizar sujeto a Es llamado problema dual "simétrico"
Maximizar sujeto a Minimizar sujeto a Es llamado problema dual “asimétrico”
Maximizar sujeto a Minimizar sujeto a

Los teoremas duales[editar]

En lo siguiente, suponga que el PL primal es "maximizar sujeto a [restricciones]" y el PL dual es "minimizar sujeto a [restricciones]".

Dualidad débil[editar]

El teorema de dualidad débil dice que para cada solución factible del primal y cada solución factible del dual: . En otras palabras,, el valor objetivo en cada solución factible del dual es un superior-atado en el valor objetivo del primal, y valor objetivo en cada solución factible del primal es un más bajo-atado en el valor objetivo del dual. Esto implica:

En particular, si el primal es no acotado entonces el dual no tiene solución factible y si el dual es no acotado entonces el primal no tiene solución factible.

Dualidad fuerte[editar]

El teorema de dualidad fuerte dice que si uno de los dos problemas tiene una solución óptima entonces también el otro, además

El teorema de dualidad fuerte es más difícil de demostrar; las demostraciones normalmente utilizan el teorema de dualidad débil como una sub-rutina.

Ejemplos[editar]

Considere el PL primal con dos variables y una restricción:

Aplicando el algoritmo de arriba obtenemos el siguiente PL dual con una variable y dos restricciones:

Programa no factible[editar]

Un PL puede ser no acotado o no factible. La teoría de la dualidad menciona que:

  • Si el primal es no acotado entonces el dual es no factible;
  • Si el dual es no acotado entonces el primal es no factible.

Sin embargo, es posible para ambos (el dual y el primal) ser no factibles. Aquí es un ejemplo:

Véase también[editar]