Está en la página 1de 57

PROGRAMAS PRIMAL Y DUAL

2° Aplicación de Sistemas de Ecuaciones Lineales


SIMPLEX DUAL
Del latín dualĭtas, el término dualidad señala la
existencia de dos fenómenos o caracteres diferentes en
una misma persona o en un mismo estado de cosas. En
el ámbito de la filosofía y la teología, se conoce como
dualismo a la doctrina que postula la existencia de dos
principios supremos independientes, antagónicos e
irreductibles.

En este sentido, las nociones del bien y del mal son un


ejemplo de dualidad. Ambas pueden definirse por
oposición y hacen referencia a dos esencias
completamente distintas. Materia-espíritu y realismo-
idealismo son otras muestras de conceptos que
conforman una dualidad.
En este caso, todo el conjunto de doctrinas
dualistas existentes y que, como hemos
mencionado, parten de esa diferenciación entre
el Bien y el Mal tienen una serie de rasgos en
común. Así, por ejemplo, nos encontramos con
el hecho de que el Bien siempre se identifica
con la luz y también con el espíritu. Por su
parte, el Mal se asocia en todo momento con la
oscuridad, con lo que es la parte corporal y
también con el propio Diablo.
SUMA – RESTA

MULTIPLICACIÓN - DIVISIÓN

POTENCIACIÓN – RADICACIÓN

FUNCIÓN EXPONENCIAL – FUNCIÓN LOGARÍTMI

DERIVACIÓN - INTEGRACIÓN
 Todo programa matemático existe asociado a
otro denominado dual.

 Dado el Programa lineal P:


 Max Z=cx
 Sujeto a, Ax ≤b, x ≥0

 Entonces el Programa dual D es:


 Min W=b´y
 Sujeto a: A’y ≥c’, y≥ 0
 Hallar el dual del siguiente programa Primal:
 Max z= 4x1 + 3x2
 Sujeto a
 X1 + 5x2 ≤ 10
 2x1 + 3x2≤ 15
 X1, x2 ≥ 0
 Min w = 10y1 + 15y2
 Sujeto a
 Y1 + 2 y2 ≥ 4
 5y1 + 3y2≥ 3
 Y1, y2 ≥ 0
 Max z= 7x1 + 2 x2 + 3 x3
 Sujeto a
 X1 + 8 x2 + 9 x3 ≤ 100
 5 x1 – x2 – x3 ≤ 10
 16 x1 + x2 + x3 ≤ 150
 4x1 – 20 x2 -30 x3 ≤ 90
 X1, x2, x3 ≥ 0
 Min w = 100 y1 + 10 y2 + 15 y3 + 90 y4
 Sujeto a
 Y1 + 5 y2 + 10 y3 + 4 y4 ≥ 7
 8 y1 – y2 + y3 – 20 y4 ≥ 2
 9 y1 – y2 + y3 – 30 y4 ≥ 3
 yj≥0, j=1,2,3,4
 Max z = 4 x1 + 3 x2
 Sujeto a
 9 x1 + 7 x2 ≤ 100
 8 x1 + 6 x2 ≤ 75
 2 x1 + 5 x2 ≤ 50
 X1, x2 ≥ 0
 Si Xo es una solución factible del programa P,
Yo es una solución factible del dual D,
entonces Zo =cXo ≤ b’Yo = Wo
 DEMOSTRACIÓN
 Y’oAXo ≤ Y’ob=b’Yo = Wo, pues Yo ≥ 0
 Como Yo es una sol. Fact. de D
 A’Yo ≥ c’ < ----- > Y’oA ≥ c
 Zo = cXo ≤ Y’oAXo ≤ Y’ob = b’Yo = Wo
 SI Xo, Yo son soluciones factibles de P y D
respectivamente y si cXo = b’Yo, entonces Xo
es solución óptima de P y Yo es solución
óptima de D
 En los problemas de ingeniería,
administración, comercio, etc, el programa
primal tiene una interpretación concreta por
cuanto las variables que intervienen tienen
significado económico o físico y con uso de
los conceptos anteriores y del cálculo
difererencial deducimos el programa dual.

 Una Cía produce radios y televisores, cada
radio se vende con ganancias de 30 soles y
cada TV con ganancia de 50.
 Ambos productos deben pasar por los
departamentos A y B. Mensualmente se
dispone 20 h del departamento A y 14 del B
 Cada radio requiere 1 hora de A y 1 hora de
B, cada TV requiere 2 horas de A y 1 hora de
B. Cuál es programa de producción que
maximiza la ganancia?
 X = nº de unidades del producto 1
Y = nº de unidades del producto 2
G = 30 X + 50Y
nº de unidades disponibles del recurso 1=20
nº de unidades disponibles del recurso 2=14
 Sujeto a
 X+ 2Y ≤ 20 (debido al Dpto A)
 X + Y ≤14 (debido al Dpto B)
 X, Y ≥ 0
Z = valor unit del recurso 1 (valor de 1 h en A
W = valor unit del recurso 2 (valor de 1 h de B
 Entonces el valor mínimo del dual es R=540
 Si el recurso 1 se aumenta de 20 a 21,
entonces la nueva solución óptima es Y=7,
X=7, de tal modo que G=560
 Zo=∆G/∆b1=(560-540)/(21-20) =20
 Si el recurso 2 se aumenta de 14 a 15
(dejando b1 en 20), la nueva solución del
primal es Y=5, X=10, G= 550, entonces
 Wo= ∆G/∆b2= (550 -540)/(15-14) =10
 El óptimo del dual es Yo = (20,10), R =540
 Teorema 3.- Si el Primal es de la forma:
 Max Z=cx
 Sujeto a, Ax = b, x ≥0

 Entonces el Programa dual D es:


 Min W=b´y
 Sujeto a: A’y ≥c, y sin restricciones
 Si el Primal es de la forma:
 Max Z=cx
 Sujeto a, Ax < b, x ≥0

 Entonces el Programa dual D es:


 Min W=b´y
 Sujeto a: A’y ≥c, y ≥ 0
 Si el Programa Primal es de la forma:
 Max Z=cx
 Sujeto a, Ax = b, x sin restricciones

 Entonces el Programa dual D es:


 Min W=b´y
 Sujeto a: A’y = c, y sin restricciones
 Primal Dual
 Maximización Minimización
 i-ésima restric ≤ i-ésima variable
yi≥0
 Xo es una solución factible del Primal, Xo es
óptima sss existe Yo una solución factible del
dual D tal que cXo = b’Yo
 EJ.- PRIMAL: max Z = 2 x1 + 5 x2
 Sujeto a
 2 x1 + 3 x2 ≤ 30
 X2 ≤ 6
 X1, x2 ≥ 0

 EL DUAL es
Min W = 30 y1 + 6 y2
 Sujeto a
 2y1 ≥ 2,
 3 y1 + y2 ≥ 5
 y1, y2 ≥ 0
 A) Un programa lineal tiene una solución óp
tima finita sss el primal y el dual tiene
soluciones factibles.
 B) si el primal tiene un máximo no acotado,
entonces el dual no tiene solución factible.
 C) si el dual no tiene solución factible, pero
el primal si, entonces el primal tiene un
máximo acotado.
Este método se aplica cuando hay por lomenos
una restricción ≥
 Condición de factibilidad.- la variable que
sale es la variable que tiene el valor más
negativo. (Los empates se rompen
arbitrariamente) si todas las variables básicas
son no negativas el proceso termina y se
alcanza la solución factible (óptima).
 La variable que entra se elige de entre las
variables no básicas de los cocientes de los
coeficientes de la ecuación z entre los
coeficientes correspondientes a la ecuación
asociada a la variable que sale. Ignore los
cocientes asociados a denominadores
positivos o cero (rompa los empates arbitrar).
Si todos los denominadores son cero o
positivos el problema no tiene ninguna
solución factible.
 Min Z = 2 x1 + x2, sujeto a
 3 x1 + x2 ≥ 3
 4 x1 + 3 x2 ≥ 6
 X1 + 2 x2 ≤ 3
 X1, x2 ≥ 0
 Se estandariza
 Max z = -2 x1 - x2, sujeto a
 -3 x1 – x2 + x3 = -3
 - 4 x1 -3 x2 +x4 = -6
 X1 + 2 x2 + x5 = 3
 Xj ≥ 0
x1 x2 x3 x4 x5 b base
-3 -1 1 0 0 -3 x3
-4 -3 0 1 0 -6 x4
1 2 0 0 1 3 x5
-2 -1 0 0 0 0
;clear;
p(‘ iteración 1, sale x4, ingresa x2’);
[-3 -1 1 0 0 -3; -4 -3 0 1 0 -6; 1 2 0 0 1 3; -2 -1 0 0 0 0]
2,:)=A(2,:)/A(2,2);
1,:)=A(1,:) -A(2,:)*A(1,2);
3,:)=A(3,:) -A(2,:)*A(3,2);
4,:)=A(4,:) -A(2,:)*A(4,2)
 La variable que sale es x4 ya que tiene el
valor más negativo -6, para la variable que
entra los cocientes son:
 Variable x1 x2 x3 x4 x5
 Ecuación z -2 -1 0 0 0
 {-2/-4 -1/-3}
 Entra x2, de tal modo que el Pibot es:
 A(2,:) = A(2,: )/A(2,2); y el resto de filas
juegan con éste Pibot, así:
 A(1,: )=A(1,: ) – A(2,: )*A(1,2)
x2 x3 x4 x5 b bas
7 0 1.00 -0.33 0 -1.00 x3
3 1.00 0 -0.33 0 2.00 x2
7 0 0 0.67 1.00 -1.00 x5
7 0 0 -0.33 0 2.00 Z
50 0 NaN 1.00 NaN 1.00

Iteración 2, Sale x3, entra x4, Pibot es A1’);


=A(1,: )/A(1,4);
=A(2,: ) – A(1,: )*A(2,4);
=A(3,: ) – A(1,: )*A(3,4);
=A(4,: ) – A(1,: )*A(4,4)
1 x2 x3 x4 x5 b
00 0 -3.00 1.00 0 3.00 X4
00 1.00 -1.00 0 0 3.00 X2
.00 0 2.00 0 1.00 -3.00 X5
.00 0 -1.00 0 0 3.00 Z
20 NaN 0.33 0 NaN 1.00
sp(’iteración3, Sale X5, ingresa X1’);
3,: )=A(3,: )/A(3,1);
1,: )=A(1,: ) – A(3,: )*A(1,1);
2,: )=A(2,: ) – A(3,: )*A(2,1);
4,: )=A(4,: ) – A(3,: )*A(4,1)
x1 x2 x3 x4 x5 b
0 0 -1.00 1.00 1.00 -0.00 X4
0 1.00 0.20 0 0.60 1.20 X2
1.00 0 -0.40 0 -0.20 0.60 X1
0 0 -0.60 0 0.20 2.40 Z
No habiendo negativos en la columna, se tiene
óptimos:
X1=0.6, X2=1.2, Z=2.4
 Sujeto a 2x1 + 4x2 + 2x3 ≥ 10
 3x1 – 3x2 + 9x3 = 12
 x1, x2, x3 ≥ 0
 Expresamos el modelo en formato estándar
 Max Z = -2x1 – 2x2 – 3x3
 Sujeto a: 2x1 + 4x2 + 2x3 – h1 = 10
 3x1 – 3x2 + 9x3 – h2 =12

 Max Z = -2x1 – 2x2 – 3x3
 Sujeto a: - 2x1 - 42 – 2x3 + h1 = -10
 - 3x1 + 3x2 – 9x3 + h2 =- 12
 Tabla 1
x1 x2 x3 h1 h2 sol básicas
-2 -4 -2 1 0 -10 h1
-3 3 -9 0 1 -12 h2
-2 -2 -3 0 0 0
Q 2/3 -2/3 3/9 0 0 0 Z
Sale h2, Ingresa X3, A(2,: )=A(2,: )/A(2,3);
A(1,: )=A(1,:) – A(2,: )/A(1,3);
 A(3,: )=A(3,:) – A(2,: )/A(3,3);
x1 x2 x3 h1 h2 sol base
-6.00 0 -14.00 1.00 1.33 -26.00 h1
-1.00 1.00 -3.00 0 0.33 -4.00 X3
-4.00 0 -9.00 0 0.67 -8.00
Q 2/3 -2/3 1/3 NaN 0
Iteración 1
 Sale h1, ingresa X3, A(1,: )=A(1,: )/A(1,3);
 A(2,:)= A(2,:)-A(2,:)*A(2,3);
 A(3,:)=A(3,:)- A(2,:)*A(3,3)
 Sale h1 y entra x2, por lo cual obtenemos
 Cj -2 -2 -3 0 0 xb
 Cb x1 x2 x3 h1 h2 sol bas
 -2 2/7 1 0 -3/14 1/21 11/7 x2
 -3 3/7 0 1 -1/14 -2/21 13/7 x3
 Z -13/7 1 -3 -9/14 4/21
 Ej -1/7 0 0 -9/14 -4/21 -61/7 Z
Paso 1: Se lleva el modelo a su forma estándar. En
nuestro ejemplo esto se logra agregando variables
de exceso en cada una de las restricciones (3
primeras: S1, S2, S3, respectivamente). Luego, se
multiplica cada fila de las restricciones por -1 de
modo de disponer una solución básica inicial
(infactible) en las variables de exceso S1, S2 y S3
ar;
5 -2 -1 1 0 0 -200; -7.5 -3 -1 0 1 0 -150; -5 -2 -1 0 0 1 -120; 315 110 50 0 0

teración 1');disp('sale S1, ingresa A');


=A(1,: )/ A(1,1);
=A(2,:)-A(1,:)*A(2,1);
=A(3,:)-A(1,:)*A(3,1);
=A(4,:)- A(1,:)*A(4,1)
,:)./A(1,:)
teración 2');disp('sale S2, ingresa B');
=A(2,: )/ A(2,2);
=A(1,:)-A(2,:)*A(1,2);
=A(3,:)-A(2,:)*A(3,2);
=A(4,:)- A(2,:)*A(4,2)
,:)./A(2,:)
teración 3');disp('sale S3, ingresa C');
=A(3,: )/ A(3,3);
=A(1,:)-A(3,:)*A(1,3);
=A(2,:)-A(3,:)*A(2,3);
=A(4,:)- A(3,:)*A(4,3)
,:)./A(3,:)
Se selecciona el lado derecho "más negativo" lo cual
indicará cuál de las actuales variables básicas deberá
abandonar la base. En el ejemplo el lado derecho más
negativo se encuentra en la primera fila, por tanto S1
deja la base. Para determinar cual de las actuales
variables no básicas (A, B, C) entrará a la base se busca
el mínimo de {-Yj/aij} donde aij es el coeficiente de la
respectiva variable no básica en la fija i (del lado
derecho más negativo, marcado en verde) y donde Yj
es el costo reducido de la respectiva variable no básica.
De esta forma se obtiene: Min {-315/-15, -110/-2, -
50/-1} = 21, donde el pivote (marcado en rojo) se
encuentra al hacer el primer cuociente, por tanto A
entra a la base.
Se actualiza la tabla anterior siguiendo un
procedimiento similar al utilizado en el Método
Simplex. En el ejemplo se debe dejar a la
variable A como básica y S1 como no básica.
La tabla que resulta es la siguiente:
A B C S1 S2 S3 b b
15.00 -2.00 -1.00 1.00 0 0 -200.00
-7.50 -3.00 -1.00 0 1.00 0 -150.00
-5.00 -2.00 -1.00 0 0 1.00 -120.00
-315.00 -110.00 - 50.00 0 0 0 0
p(‘Iteración 1, sale S1, ingresa A’);
1,: )=A(1,: )/ A(1,1);
2,:)=A(2,:)-A(1,:)*A(2,1);
3,: )=A(3,:)-A(1,:)*A(3,1);
4,:)=A(4,:)- A(1,:)*A(4,1)
A B C S1 S2 S3 b

1 2/15 1/15 -1/15 0 0 40/3

0 -2 -1/2 -1/2 1 0 -50

0 -4/3 -2/3 -1/3 0 1 -160/3

0 68 29 21 0 0 -4.200
-1 1 0 0 -200; -7.5 -3 -1 0 1 0 -150; -5 -2 -1 0 0 1 -120; 315 110 5

ción 1');disp('sale S1, ingresa A');


1,: )/ A(1,1);
,:)-A(1,:)*A(2,1);
3,:)-A(1,:)*A(3,1);
,:)- A(1,:)*A(4,1)
A(1,:)
ción 2');disp('sale S3, ingresa B');
3,: )/ A(3,2);
,:)-A(2,:)*A(1,2);
2,:)-A(2,:)*A(2,2);
,:)- A(2,:)*A(4,2)
A(2,:)
B C S1 S2 S3 b
0 0.03 -0.10 0.07 0 10.00
1.00 0.25 0.25 -0.50 0 25.00
0 -0.33 0.00 -0.67 1.00 -20.00
0 12.00 4.00 34.00 0 -5900.00

‘Iteración 3, Sale S3, ingresa C’);


-2 -1 1 0 0 -200; -7.5 -3 -1 0 1 0 -150; -5 -2 -1 0 0 1 -120; 315 110 50 0 0 0 0];
ación 1');disp('sale S1, ingresa A');
A(1,: )/ A(1,1);
(2,:)-A(1,:)*A(2,1);
A(3,:)-A(1,:)*A(3,1);
(4,:)- A(1,:)*A(4,1)
./A(1,:)
ación 2');disp('sale S2, ingresa B');
A(2,: )/ A(2,2);
(1,:)-A(2,:)*A(1,2);
A(3,:)-A(2,:)*A(3,2);
(4,:)- A(2,:)*A(4,2)
./A(2,:)
ación 3');disp('sale S3, ingresa C');
A(3,: )/ A(3,3);
(1,:)-A(3,:)*A(1,3);
A(2,:)-A(3,:)*A(2,3);
(4,:)- A(3,:)*A(4,3)
Paso 4: Continuar las iteraciones y siguiendo el
mismo procedimiento hasta disponer de una
solución básica factible, se obtiene la siguiente
tabla final:

A B C S1 S2 S3 b

1 0 0 -1/10 0 1/10 8

0 1 0 1/4 -1 3/4 10

0 0 1 0 2 -3 60

0 0 0 4 10 36 -6.620
es A=8, B=10, C=60 (marcado en verde) con
valor óptimo V(P)=6.620 (marcado en rojo - se
obtiene con signo cambiado). También es
interesante notar que los costos reducidos de
las variables artificiales S1, S2 y S3 (marcado
en amarillo), corresponde a la solución óptima
del modelo presentado en el tutorial de solver,
esto dado que dicho modelo resulta ser
el problema dual de nuestro ejemplo.
Para llevar el problema anterior a la forma estándar
se requiere agregar 2 variables de exceso no
negativas para la restricción 1 y 2, que llamaremos
respectivamente X4 y X5. De esta forma el
problema en su formato estándar queda definido
por:
 ¿Cómo continuar con las iteraciones del Método
Simplex?. Antes de ello es necesario disponer de
una solución básica factible inicial. En este
contexto si quisiéramos
usar X4 y X5 como variables básicas (y en
consecuencia X1, X2 y X3 como variables no
básicas) se requiere que X4 y X5 sean mayores o
iguales a cero, sin embargo, sus coeficientes en
las respectivas filas son negativos y por
tanto no se dispone de la identidad (matriz
con “1” como diagonal y el resto de coeficientes
igual a cero).
 En consecuencia para formar la identidad
podemos multiplicar por “-1” la fila 1 y 2,
obteniendo lo siguiente:
Ahora X4 y X5 son variables básicas y adoptan los
valores de -1 y -3/2, respectivamente, lo que
claramente no satisface las condiciones de no
negatividad para las variables de decisión, es
decir, no corresponde a una solución básica
factible.
Sin embargo, en esta instancia podemos aplicar
el Método Simplex Dual como alternativa de
resolución. Para ello seleccionaremos una variable
que deje la base y adoptaremos como criterio de
selección aquella variable básica asociada al lado
derecho “más negativo” (con esto se busca
favorecer la rapidez de convergencia).
 Luego para determinar que variable entra a la base
realizamos un mínimo cuociente entre el negativo del
costo reducido de las variables no básicas y las
entradas estrictamente menores a cero para las
variables no básicas en la fila 2 (fila asociada al lado
derecho más negativo).
 Es decir: Min{-160/-2; -120/-2; -280/-2}=60 ==>
el cuociente mínimo se alcanza en la segunda
columna asociada a la variable no básica X2, por
tanto dicha variable entra a la base.
 En cada iteración del Método Simplex Dual se escoge
un lado derecho con valor negativo, identificando la
respectiva variable básica primal, quien deja la base.
 Finalmente se realiza una iteración realizando las
operaciones filas que sean necesarias, de modo de
ingresar X2 a la base al mismo tiempo que X5 deja la
sólo X4=-1/4 lo que no satisface la condición de ser
una solución básica factible. Por lo tanto realizamos
una nueva iteración, en este caso sacando de la base a
la variable X4 y calculamos el mínimo cuociente: Min{-
40/-1; -160/-3; -60/-1/2}=40 ==> el cuociente
mínimo está en la primera columna por tanto la
variable X1 entra a la base.
Las variables básicas ahora son X1=1/4 y X2=1/2
(que cumplen las condiciones de no negatividad).
Adicionalmente el costo reducido de las variables
no básicas también es mayor o igual a cero, por
tanto estamos frente a la solución óptima del probl
 el valor óptimo es V(P)=100 que se obtendría
al evaluar la solución óptima del problema en
la función objetivo, sin embargo, en el
procedimiento dicho valor se obtiene con
signo cambiado.
 El ejemplo anterior nos permitió apreciar
cómo a través del Método Simplex Dual se
puede abordar la resolución de un modelo de
Programación Lineal que luego de ser llevado
a la forma estándar no provee una solución
básica factible inicial.

También podría gustarte