Está en la página 1de 19

MODELOS DE DECISIÓN

Teoría del método simplex


Dualidad
El termino dualidad señala la existencia de dos
fenómenos o caracteres diferentes en un mismo estado.
En este sentido, las nociones del bien y el mal son un
ejemplo de dualidad; la filosofía china también cuenta
con los conceptos del yin y el yang para resumir la
dualidad de todo lo que existe en el universo.

Dentro de la investigación de operaciones, el concepto


de dualidad desempeña un papel importante tanto en la
teoría como en la practica. Todo modelo de
programación lineal esta asociado a otro modelo llamado
modelo dual; al modelo de programación inicial también
se le conoce como modelo primal.
Entre otras cosas, las estructuras duales permiten:

• Resolver problemas lineales que tienen mas


restricciones que actividades. Por ejemplo, el grado de
dificultad para resolver un programa lineal por medio
de una computadora que esta en función del numero
de filas de la matriz A y no en el numero de columnas,
al aplicar la dualidad a un problema primario donde m
> n, se obtiene otro problema lineal donde el numero
de columnas m < n. Una vez que se resuelve el
problema primario, de manera automática se soluciona
su correspondiente dual o viceversa.
• Hacer interpretaciones económicas de las soluciones
optimas de los problemas de programación lineal.
• Concebir nuevos algoritmos para solucionar problemas de
redes de optimización.
• Generar métodos como el dual simplex para realizar
análisis de sensibilidad de los programas de programación
 
Para poder entender el concepto de dualidad debemos
lineal.
referirnos al tema de matriz transpuesta.
Podemos decir que la matriz A transpuesta, que se conoce con
la simbología , es aquella en donde las columnas se
transforman en filas o viceversa.
Ejemplo: Si tenemos la siguiente matriz:
Cuestiones importantes que se deben tomar en cuenta:

• Cuestión 1. Si el primal es un problema de


maximización, su dual será un problema de
minimización o viceversa.

• Cuestión 2. Los coeficientes de la función objetivo del


problema primal se convierten en los coeficientes del
vector de disponibilidad del problema dual.

• Cuestión 3. Los coeficientes del vector de disponibilidad


del problema original se convierten en los coeficientes
de la función objetivo (vector de costo o precio) del
problema dual.
• Cuestión 4. Los coeficientes de las restricciones del
problema primal serán la matriz de coeficientes del
dual.

• Cuestión 5. Los signos de desigualdad del


problema dual son contrarios a los del primal.

 
• Cuestión 6. Si el primal tiene m restricciones y n
variables, el dual tendrá n restricciones y m
variables. Así, las variables del primal se convierten
en nuevas variables del dual.
Donde:
C = constante
x = variable
Cx = función objetivo
En la figura siguiente se ilustra quien es A; B; C para,
posteriormente, convertirse en su dual.

Estructura de un
problema dual.
Primal Dual
Min Z = 15x1 + 12x2 Max G = 3y1 + 5y2
Sujeto a: x1 + 2x2 ≥ 3 Sujeto a: y1 + 2y2 ≤ 15
2x1 – 4x2 ≤ 5 2y1 – 4y2 ≥ 12
xi ≥ yi ≥ 0
0
Note que xi = x1, x2, …, xn
según las variables utilizadas

Primal Dual
Min Z = x1 + 3x2 + Max J = 7y1 + 12y2 + 5y3
2x3a: 3x1 – x2 + 2x3 ≤ 7
Sujeto Sujeto a: 3y1 + 2y2 – 2y3 ≥ 1
2x1 – 4x2 ≥ 12 –y1 – 4y2 + 3/2y3 ≤ 3
–2x1 + 3/2 x2 + 4x3 ≤ 2y1 + 4y3 ≥ 2
5 xi ≥ yi ≥ 0
0
Ejemplo 1:

considere el siguiente modelo de programación lineal

𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=𝟐 𝑿 𝟏 +𝑿 𝟐


 

S/A
Restricciones
 
3
 
6
 
2
𝑿 𝟏 , 𝑿 𝟐 ≥𝟎
 
Transformando el modelo de la forma primal a dual
𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=𝟐 𝑿 𝟏 +𝑿 𝟐
 
Dual
 
3
𝑭.𝑶.𝒁 ( 𝒎𝒂𝒙 )=𝟑 𝑿 𝟏 +𝟔 𝑿 𝟐+𝟐 𝑿 𝟑
 

 
 
6 3
 
2  
1
Restricción 1 Restricción 2 F.O

Transformando el modelo de la forma general a forma estándar

𝒁  −𝟑 𝑿 𝟏 −𝟔 𝑿 𝟐 −𝟐 𝑿 𝟑 =𝟎
 
3
 
1
Introducir los valores del modelo de la forma estándar a la tabla simplex.

𝒁  −𝟑 𝑿 𝟏 −𝟔 𝑿 𝟐 −𝟐 𝑿 𝟑 =𝟎
 
3
 
1

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -3 -6 -2 0 0 0

R1 F2 0 3 4 1 1 0 2
R2 F3 0 1 3 2 0 1 1

El valor de Z que se elija indicara la columna que se debe y se


llamara columna pivote o columna de entrada.
 
En la tabla se puede observarse que es la variable de entrada.
Se determina la variable de salida mediante la división de la columna
solución de las restricciones entre la columna pivote o de entrada.

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -3 -6 -2 0 0 0

R1 F2 0 3 4 1 1 0 2 2 ÷  4 ¿  1/2
R2 F3 0 1 3 2 0 1 1 1 ÷  3 ¿  1/3

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -3 -6 -2 0 0 0

R1 F2 0 3 4 1 1 0 2
R2 F3 0 1 3 2 0 1 1

Observe que los resultados son 1/2 y 1/3, por lo que se elige el
valor positivo mas pequeño sin tomar en cuenta valores
negativos o ceros.
Es muy importante que el pivote tome el valor 1; si este no
tiene dicho valor, conviértalo a 1 dividiendo todo el renglón
entre el valor que hace 1 el pivote, en este caso vamos a
dividir a F3/3
Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -3 -6 -2 0 0 0

R1 F2 0 3 4 1 1 0 2
R2 F3 0 1૚૜ 13 2૛૜ 0 1૚૜ 1૚૜

F 3= F3/3

0/3=0  
1/3= 3/3=1 2/3=2/3

0/3=0  
1/3= 1/3=1/3

Después de hacer uno al pivote, dividiendo la F3 entre 3 sustituimos


los valores nuevos en F3.
F1= F1 + 6F3
Haciendo 0 a -6 que se encuentra en F1
* 1 +6(0) = 1

Z R *  -3 + 6() = -1
ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛
* -6 + 6(1) = 0
Z F1 1 -3
-1 -6
0 -2
2 0 0
2 0
2
*  -2 + 6() = 2
R1 F2 0 3 4 1 1 0 2
* 0 + 6(0) = 0
૚ ૛ ૚ ૚
R2 F3 0 1 0 ૜ *  0 + 6() =
૜ ૜ ૜

Sustituyendo los datos encontrados en la nueva F1 *  0 + 6() = 2

F2 = F2 - 4F3
Haciendo 0 a 4 que se encuentra en F2
* 0 - 4(0) = 0
Z R  * 3 - 4 () =
ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛
Z F1 1 -1 0 2 0 2 2 * 4 - 4(1) = 0
 * 1 - 4() = -
R1 F2
F2 0 3૞૜ 40 -1


1 െ


0 2૛૜
૚ ૛ ૚ ૚ * 1 - 4(0) = 1
R2 F3 0 1 0 ૜
૜ ૜ ૜  * 0 - 4() = -
Sustituyendo los datos encontrados en la nueva F2  * 2 - 4() =
Se vuelve elegir columna Z, y se determina la variable de salida
mediante la división de la columna solución de las restricciones entre la
columna pivote o de entrada.
Z ࢄ૚૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -1 0 2 0 2 2

2/3 ÷

૞૞ ૞૞ ૝૝ ૛
R1 F2 0 ૜
૜૜
0 -െ૜ 1 െ
૜૜ ૜ ¿
  5/3   2/5

1/3 ÷

  1/3 ¿  1
૚ ૛ ૚
R2 F3 0 ૚ 1 0 ૜

૜ ૜ ૜

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -1 0 2 0 2 2
૞ ૞ ૝૝ ૛
R1 F2 0 ૜
0 െ

1 െ
૜૜ ૜
૚ ૛ ૚ ૚
R2 F3 0 1 0 ૜
૜ ૜ ૜

Observe que los resultados son 2/5 y 1, por lo que se elige el


valor positivo mas pequeño sin tomar en cuenta valores
negativos o ceros.
 
Es muy importante que el pivote tome el valor 1; si este no
tiene dicho valor, conviértalo a 1 multiplicando todo el renglón
entre el valor que hace 1 el pivote, en este caso vamos a
multiplicar a F2 por .

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
Z F1 1 -1 0 2 0 2 2
૝૝૝ ૛
R1 F2 0 1૞૜ 0 െ

-1 1૜ െ
െ૞
૜૜૞ ૞

૜ ૞
૚ ૛ ૚ ૚
R2 F3 0 1 0 ૜
૜ ૜ ૜

F2 = F2 x 3/5

0 x 3/5=0  =1  0 x = 0  - = -1

 1 x =  - x = -  =
 
Después de hacer uno al pivote, multiplicando F2 por sustituimos los
valores nuevos en F2.
F1 = F1 + F2
Haciendo 0 a -1 que se encuentra en F1
* 1 - (0) = 1
Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R *  -1 + () = 0
૚૝
૟ ૚૛ * 0 + (0) = 0
Z F1 1 -1
0 0 21 0૜ 2

2
૞ ૞
૝૝ ૛ *  2 + () = 1
R1 F2 0 1 0 -1 ૜

૞૞ ૞

૚ ૛ ૚ ૚ *  0 + () ) =
R2 F3 0 1 0 ૜
૜ ૜ ૜ *  2 + (- ) =

Sustituyendo los datos encontrados en la nueva F1 *  2 + () =


𝟏 𝟑

 Haciendo 0 a que se encuentra en F3 F3 = F3 - / F2

 * 0 - (0) = 0
Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R  * - () =
૜ ૚૝
૟ ૚૛
Z F1 1 0 0 1 ૞ ૞  * 1 - (0) = 1
૞ ૞
૝૝ ૛
R1 F2 0 1 0 -1 ૜

૞૞
 * - () = 1
૞ ૞

R2 F3 0 0૚૜ 1 1૛૜ 0
૚૝ ૚
૜૚  * 0 - () = -
૚૞
૞ ૜
૚૞
૞ ૜

 * - (- ) =
Sustituyendo los datos encontrados en la nueva F3
 * - () =
Resumiendo la información se obtiene la tabla siguiente:

Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
૜ ૟ ૚૛
Z F1 1 0 0 1 ૞ ૞

Note que ya F2 0 1 0 -1 ૜ ૝ ૛
R1 െ
૞ ૞ ૞
son ceros ૜ ૚
R2 F3 0 0 1 1 ૚

૞ ૞

   
Z =  = =  = 0

Comprobando respuesta
 
𝟐 𝟏
𝑭.𝑶.𝒁 ( 𝒎𝒂𝒙 )=𝟑 +𝟔 +𝟐(𝟎)
𝟓 𝟓
  Z(max) =
𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=𝟐 𝑿 𝟏 +𝑿 𝟐
 
Dual
 
3
𝑭.𝑶.𝒁 ( 𝒎𝒂𝒙 )=𝟑 𝑿 𝟏 +𝟔 𝑿 𝟐+𝟐 𝑿 𝟑
 

 
 
6 3
 
2  
1
Restricción 1 Restricción 2 F.O

𝟑 Z ࢄ૚ ࢄ૛ ࢄ૜ ࡿ૚ ࡿ૛ R
 
𝑿 𝟏=
𝟓 Z F1 1 0 0 1 ૜ ૟ ૚૛
૞ ૞ ૞
  𝟔
𝑿 𝟐= R1 F2 0 1 0 -1 ૜

૝ ૛
𝟓 ૞ ૞ ૞

  𝟏𝟐 R2 F3 0 0 1 1 ૚ ૜ ૚
𝒁= ૞ ૞
𝟑 𝟔

𝟓  

𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=𝟐 𝑿 𝟏 +𝑿  𝟐


  𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=𝟐 +
𝟏𝟐 𝟓 𝟓
𝑭.𝑶.𝒁 ( 𝒎𝒊𝒏 )=
𝟓

También podría gustarte