Por deseo de OP, aquí está la respuesta matemática. SE enlazo en mi comentario anterior.
Tal vez valga la pena hablar de dónde viene el dual en un problema de ejemplo. Esto llevará un tiempo, pero espero que el dual no parezca tan misterioso cuando hayamos terminado.
Suponga que tiene un problema primario como sigue.
Primal=⎧⎩⎨⎪⎪⎪⎪⎪⎪max 5x1−6x2 s.t. 2x1−x2=1 x1+3x2≤9 x1≥0⎫⎭⎬⎪⎪⎪⎪⎪⎪
Ahora, supongamos que queremos usar las restricciones del primal como una forma de encontrar un límite superior en el valor óptimo del primal. Si multiplicamos la primera restricción por , la segunda restricción por , y las sumamos, obtenemos para el lado izquierdo y para el lado derecho. Dado que la primera restricción es una igualdad y la segunda es una desigualdad, esto implica
Pero como , también es cierto que , y entonces
Por lo tanto, es un límite superior en el valor óptimo del problema primario.
919(2x1−x2)+1(x1+3x2)9(1)+1(9)19x1−6x2≤18.
x1≥05x1≤19x15x1−6x2≤19x1−6x2≤18.
18
Sin embargo, seguramente podemos hacerlo mejor que eso. En lugar de adivinar y como multiplicadores, dejemos que sean variables. Por lo tanto, estamos buscando multiplicadores e para forzar91y1y2
5x1−6x2≤y1(2x1−x2)+y2(x1+3x2)≤y1(1)+y2(9).
Ahora, para que se mantenga este par de desigualdades, ¿qué tiene que ser cierto sobre y ? Tomemos las dos desigualdades de una en una.y1y2
La primera desigualdad :5x1−6x2≤y1(2x1−x2)+y2(x1+3x2)
Tenemos que rastrear los coeficientes de las variables y separado. Primero, necesitamos que el coeficiente total en el lado derecho sea al menos . Obtener exactamente sería genial, pero como , cualquier cosa mayor que también satisfaría la desigualdad para . Matemáticamente hablando, esto significa que necesitamos .x1x2x155x1≥05x12y1+y2≥5
Por otro lado, para garantizar la desigualdad para la variable , necesitamos que el coeficiente total en el lado derecho sea exactamente . Dado que podría ser positivo, no podemos ir por debajo de , y dado que podría ser negativo, no podemos ir por encima de (ya que el valor negativo para cambiaría la dirección de la desigualdad). Entonces, para que la primera desigualdad funcione para la variable , tenemos que tener .x2x2−6x2−6x2−6x2x2−y1+3y2=−6
La segunda desigualdad :
y1(2x1−x2)+y2(x1+3x2)≤y1(1)+y2(9)
Aquí tenemos que rastrear las variables e separado. Las variables provienen de la primera restricción, que es una restricción de igualdad. No importa si es positivo o negativo, la restricción de igualdad aún se mantiene. Por lo tanto, tiene restricciones en el signo. Sin embargo, la variable proviene de la segunda restricción, que es una restricción menor o igual que. Si multiplicáramos la segunda restricción por un número negativo que cambiaría su dirección y la cambiaría a una restricción mayor o igual. Para mantener nuestro objetivo de limitar el objetivo primordial, no podemos permitir que eso suceda. Entonces ely1y2y1y1y1y2y2La variable no puede ser negativa. Por lo tanto, debemos tener .y2≥0
Finalmente, queremos hacer que el lado derecho de la segunda desigualdad sea lo más pequeño posible, ya que queremos el límite superior más ajustado posible en el objetivo primario. Por lo tanto, queremos minimizar .y1+9y2
Al poner todas estas restricciones en y juntas, encontramos que el problema de usar las restricciones de primal para encontrar el mejor límite superior en el objetivo primario óptimo implica resolver el siguiente programa lineal:y1y2
Minimize y1+9y2subject to 2y1+y2−y1+3y2y2≥5=−6≥0.
Y ese es el dual.
Probablemente valga la pena resumir las implicaciones de este argumento para todas las formas posibles de primal y dual. La siguiente tabla está tomada de la p. 214 de
Introducción a la Investigación de Operaciones , 8ª edición, por Hillier y Lieberman. Se refieren a esto como el método SOB, donde SOB significa Sensible, Odd o Bizarre, dependiendo de la probabilidad de encontrar esa restricción particular o restricción variable en un problema de maximización o minimización.
Primal Problem Dual Problem
(or Dual Problem) (or Primal Problem)
Maximization Minimization
Sensible <= constraint paired with nonnegative variable
Odd = constraint paired with unconstrained variable
Bizarre >= constraint paired with nonpositive variable
Sensible nonnegative variable paired with >= constraint
Odd unconstrained variable paired with = constraint
Bizarre nonpositive variable paired with <= constraint