aiin112_s4_metodo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 31

0

Método Simplex

Beneventti González, D. (2022). Método Simplex. Universidad Andrés


Bello, Santiago, Chile.
1

Tabla de contenido

1. Método Simplex .......................................................................................................................................................... 2

1.1. Introducción .................................................................................................................................................. 2

1.2. Forma estándar ............................................................................................................................................ 2

1.3. Identificación de elementos .................................................................................................................... 3

1.4. Elección de una base .................................................................................................................................. 5

1.5. Relación entre puntos extremos (vértices del poliedro) y soluciones básicas ..................... 11

1.6. Forma canónica de un problema de programación lineal .......................................................... 12

1.7. Algoritmo de resolución ......................................................................................................................... 17

1.8. Ejemplo 1...................................................................................................................................................... 18

1.9. Ejemplo 2...................................................................................................................................................... 23

1.10. Cierre.............................................................................................................................................................. 29

Referencias bibliográficas .................................................................................................................................... 30


2

1 Método Simplex
1.1 Introducción

El método simplex es un método analítico de solución de problemas de programación lineal capaz de


resolver modelos más complejos sin restricción en el número de variables.

El método simplex es un método iterativo que permite ir mejorando la solución (x) en cada paso, es
decir, el método simplex parte en un vértice de la región factible y se va cambiando de vértice hasta
encontrar la solución óptima.

El método simplex cuenta con 2 formas de emplearse:

• Simplex matricial
• Simplex tabular

1.2 Forma estándar

Para ocupar el método simplex todo problema de programación lineal debe escribirse de forma
estándar, la cual consiste en transformar la función objetivo en minimización y las restricciones en
igualdades con las equivalencias antes vistas:

• La función de Maximización se transforma a Minimización multiplicándola por -1.


• Las restricciones de ≤ pasan a igualdad agregando una variable de holgura (+x).
• Las restricciones de ≥ pasan a igualdad agregando una variable de exceso (–x)
3

=Z Max 5 x1 +4 x2 Z = Min −5 x1 −4 x2
s. a : 6x1 +4 x2 ≤ 24 s. a : 6x1 +4 x2 + x3 =
24
x1 +2 x2 ≤ 6 x1 +2 x2 + x4 =
6

− x1 + x2 ≤ 1 − x1 + x2 + x5 =
1
x2 ≤ 2 x2 + x6 =2
x1 , x2 ≥ 0 x1 , x2 , x3 , x4 , x5 , x6 ≥ 0

1.3 Identificación de elementos

A partir de la forma estándar se pueden extraer el vector de costos (cT), el vector de variables (x) la matriz
A y el vector recursos (b) de cualquier modelo de programación lineal.

 Min cT x 
 
 s. a: Ax = b 
 x ≥ 0 

Retomando el ejemplo de Reddy Mikks se pueden identificar sus elementos:

Z = Min −5x1 −4 x2
s.a : 6 x1 +4 x2 + x3 = 24
x1 +2 x2 + x4 =6
− x1 + x2 + x5 =1
x2 + x6 =2
x1 , x2 , x3 , x4 , x5 , x6 ≥0
4

El vector x incluye a todas las variables del modelo:

 x1 
 
 x2 
 x3 
x= 
 x4 
 x5 
 
 x6 

El vector cT incluye los costos del modelo, el valor que acompaña a la variable en la función objetivo,
aquellas variables que no estén en la función objetivo se les considera un costo igual a 0:

cT = ( −5 −4 0 0 0 0 )

El vector b incluye los recursos del modelo, el valor que está al lado derecho de cada restricción (sin
considerar la naturaleza de las variables).

 24 
 
6
b= 
1
 
2

La matriz A incluye los parámetros de las restricciones del modelo, el valor que acompaña a cada
variable en cada una de las restricciones, se respeta el orden en el que fueron definidas las variables, el
signo de los parámetros, y en caso de que una variable no esté en una restricción se debe poner un 0.

6 4 1 0 0 0
 
1 2 0 1 0 0
A=
 −1 1 0 0 1 0
 
0 1 0 0 0 1
5

Nota: La matriz A y el vector de los costos (cT) debe ser escritas en el mismo orden que
fueron escritas las variables (x):

1.4 Elección de una base

Para el método simplex se utilizará el término de base:

Definición 1: sea el poliedro P = {x ϵ ℝn: Ax = b, x ≥ 0}. Una base B es un conjunto de m columnas


linealmente independientes de la matriz A, es decir, que expanden todo el espacio (de las columnas de A).

Definición 2: la matriz de base B es la submatriz obtenida desde A, formada por las columnas de la
base (respetando el orden en que se ha definido).

Es decir, una base es del tamaño de m x m, donde m es la cantidad de restricciones, la cual es una parte
de la matriz A, para saber que parte de A es, se definen una cantidad de m variables que componen la base,
y se deben extraer los valores de A según el orden en que se especifica la base.

Nota: Las bases tienen m cantidad de variables debido a que en los sistemas de ecuaciones
linealmente independientes una variable toma valor por ecuación, por tanto, en el
problema, m variables tomarán valor y las restantes tomarán valor 0, entonces la base
refleja aquellas variables del problema que tomarán valor.
6

Por ejemplo, considere la matriz A del problema de Reddy Mikks, la cual fue definida en el orden de x1,
x2, x3, x4, x5 y x6:

6 4 1 0 0 0
 
1 2 0 1 0 0
A=
 −1 1 0 0 1 0
 
0 1 0 0 0 1

Como tiene 4 restricciones, las bases deben estar compuestas por 4 variables, entonces si por ejemplo
se define una base (B1) con sus variables (x3, x1, x5, x2) se debe extraer desde A, respetando el orden de las
variables definida en la base, es decir, las columnas 3, 1, 5 y 2, la base quedaría:

1 6 0 4
 
 0 1 0 2
=B1 {x3 , x1 , x5 , x=
2 } → B1
 0 −1 1 1
 
0 0 0 1

Otros ejemplos de bases:

1 0 0 0
 
=B2 {x3 , x4 , x5 , x= 0 1 0 0
6 } → B2
0 0 1 0
 
0 0 0 1

6 4 0 0
 
1 2 0 1
= x4 } → B1 
B1 {x1 , x2 , x6 , =
 −1 1 0 0
 
0 1 1 0
7

Definición 3: la parte sobrante de la matriz A (las columnas no utilizadas en la base), será llamado como
el complemento R, por ejemplo:

1 6 0 4 0 0
   
0 1 0 2 1 0
= B1 
B1 {x3 , x1 , x5 , x2 } →= R {x4 , x6 } → 
; =
 0 −1 1 1 0 0
   
0 0 0 1 0 1

Definición 4: las variables que componen la base se llamarán variables básicas y serán expresadas
como xB, y las variables restantes serán llamadas variables no básicas y serán expresadas como xR.

=xB {=
x3 , x1 , x5 , x2 }; xR {x4 , x6 }

Por lo que el poliedro puede escribirse de la siguiente forma:

Ax = b   BxB + RxR =
b
⇔
x ≥ 0   xB , xR ≥ 0

Dado que B es no singular (sus columnas son linealmente independiente), puede escribir la siguiente
expresión equivalente:

BxB + RxR =
b

1) Multiplicar la inversa de la base (B.1) por la izquierda:

B −1 BxB + B −1 RxR =B −1b ⇔ xB + B −1 RxR =B −1b

2) Se reordena para dejar las variables básicas a la izquierda, ya que las variables de la base serán las
que tomarán valor, se busca despejarlas para conocer que valores tomarán:

xB B −1b − B −1 RxR
=
8

3) Como las variables no básicas tomarán valor 0 (propiedad de los sistemas LI), la expresión quedará:

xB = B −1b − B −1 R *0 ⇔ xB = B −1b

Volviendo al ejemplo de Reddy Mikks:

1 6 0 4 0 0  24 
     
0 1 0 2 1 0 6
=
xB {x3 , x1 , x5 , x2 } →
= B  ; =
xR {x4 , x6 } →
= R ; b= 
 0 −1 1 1 0 0 1
     
0 0 0 1 0 1 2

Para conocer el valor de las variables se deberá invertir la base y multiplicarla por el vector de los
recursos (b) (para invertir la base y multiplicar matrices pueden utilizar: https://matrixcalc.org/es/):

1) Invertir la matriz de la base:

1 6 0 4  1 −6 0 8
   
0 1 0 2 0 1 0 −2 
=B  = → B −1
 0 −1 1 1  0 1 1 −3 
   
0 0 0 1 0 0 0 1

2) Multiplicar la inversa de la base por el vector recursos:

 1 −6 0 8   24   4
    
0 1 0 −2   6  2
xB = B −1b → xB = B −1 =  → xB =  
0 1 1 −3   1  1
    
0 0 0 1  2   2

Se debe respetar el orden en que fueron definidas las variables en la base (𝑥𝑥3 , 𝑥𝑥1 , 𝑥𝑥5 , 𝑥𝑥2 ), por tanto, los
valores de las variables de esta base son: 𝑥𝑥3 = 4, 𝑥𝑥1 = 2, 𝑥𝑥5 = 1 y 𝑥𝑥2 = 2.
9

Dado lo anterior se establecen las siguientes definiciones:

Definición 5: sea una base B para un problema de programación lineal. La solución

 xB   B −1b 
=x =    , para el sistema BxB + RxR =
b es la solución básica asociada a la base B.
 xR   0 

Definición 6: sea una base B para un problema de programación lineal. Si la solución básica asociada
también cumple que x ≥ 0, se denomina solución básica factible.

1.4.1 Cantidad de bases y factibilidad

Se puede determinar la cantidad máxima de bases mediante la siguiente expresión:

n  n!
  =
 m  m !(n − m)!

Donde m es la cantidad de restricciones y n la cantidad de variables, por tanto, para el problema de


Reddy Mikks se tendría una cantidad de bases igual a:

6 6!
=  = 15
 4  4!(6 − 2)!

Las bases en esencia son los puntos en donde se cruzan las restricciones (los ejes, también se incluyen):
10

En la imagen hay 14 puntos, el faltante (ya que son 15 bases) es debido a la naturaleza de la restricción
4 (x ≤ 2). Tal restricción no corta en el eje x1 por tanto x1 puede tender al infinito en tal restricción y su base
asociada sería:

6 1 0 0
 
1 0 1 0
= , x5 } → B 
xB {x1 , x3 , x4 =
 −1 0 0 1
 
0 0 0 0

En donde se observa que la última fila está compuesta de 0, lo que se estaría diciendo que 0 = 2, lo que
es infactible. Siempre que quede una fila 0 indica que es una base infactible, por tanto, no sirve como
posible solución del problema.

Si consideramos ahora un punto que este fuera de la región factible, el vértice L por ejemplo, el cual se
encuentra en la coordenada (0, 3) y es la intersección del Recurso 2, por tanto las variables no básicas serían
x1 y x4 (en la intersección de un recurso su variable de holgura o exceso es igual a 0) ya que ambas valen 0,
por tanto, la base estaría compuesta por x2, x3, x5 y x6:

4 1 0 0
 
2 0 0 0
= , x6 } → B 
xB {x2 , x3 , x5=
1 0 1 0
 
1 0 0 1

A simple vista pareciera no haber problemas, ya que ninguna fila tiene solo valores 0, pero al calcular
sus valores (xB) se genera la infactibilidad al obtener variables negativas. Por naturaleza de las variables
deberían ser positivas:

 0 1/ 2 0 0   24   3
    
−1 −1  1 −2 0 0 6   12 
xB = B b → xB = B = → xB =
 0 −1/ 2 1 0 1   −2 
    
 0 −1/ 2 0 1 2   −1 
11

Más adelante se entrará en detalles de cómo escoger una base y cómo evitar caer en estas bases
infactibles.

1.5 Relación entre puntos extremos (vértices del poliedro) y


soluciones básicas

Se define el siguiente teorema fundamental.

Teorema. Sea P = {x ϵ ℝn: Ax = b, x ≥ 0}. Un punto 𝑥𝑥̅ ϵ P es solución básica factible, si y solo si 𝑥𝑥̅ es un
punto extremo (vértice de la región factible) del poliedro factible K.

Es decir, para buscar la solución óptima, basta con moverse entre soluciones básicas factibles
adyacentes.

Definición 7: dos soluciones básicas factibles 𝑥𝑥̅ 1 y 𝑥𝑥̅ 2 son adyacentes si sus bases asociadas difieren
en un elemento (columna), es decir, si una de las variables de la base cambia.

Si se divide el problema (en su forma estándar) en variables básicas y no básicas se tiene:

Min cT x Min cBT xB +cRT xR


s.a : Ax = b → s.a : BxB + RxR =b
x ≥0 xB , xR ≥0

Despejando 𝑥𝑥𝐵𝐵 de las restricciones se obtiene 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃 − 𝑩𝑩−𝟏𝟏 𝑹𝑹𝒙𝒙𝑹𝑹, el cual al reemplazarlo en la
función objetivo queda:

Min cBT ( B −1b − B −1 RxR ) + cRT xR


s.a : xB + B −1 RxR =
B −1b
xB , xR ≥ 0
12

Al reordenar las variables, queda:

Min cBT B −1b + ( cRT − cBT B −1 R ) xR


s.a : xB + B −1 RxR = B −1b
xB , xR ≥ 0

1.6 Forma canónica de un problema de programación lineal

Definición 8: sea B una base factible del problema, puede escribirse la forma canónica de un problema
de programación lineal, como:

Min cBT B −1b + ( cRT − cBT B −1 R ) xR


s.a : xB + B −1 RxR = B −1b
xB , xR ≥ 0

Lo que es útil, debido a que permite saber:

• cBT B −1b : el valor de la función objetivo en la base actual.

• B −1b : las coordenadas del vértice actual.

• (c T
R − cBT B −1 R ) : si es promisorio cambiar la base.

• B −1 R : qué cambio debe hacerse.

Volviendo al ejemplo de Reddy Mikks:

Z = Min −5 x1 −4 x2
s. a : 6x1 +4 x2 + x3 =24
x1 +2 x2 + x4 =6
− x1 + x2 + x5 =1
x2 + x6 =2
x1 , x2 , x3 , x4 , x5 , x6 ≥0
13

Si xB = {𝑥𝑥3 , 𝑥𝑥1 , 𝑥𝑥5 , 𝑥𝑥2 }, xR = {𝑥𝑥4 , 𝑥𝑥6 }, cBT =(0 −5 0 −4) (valor que acompaña a las variables básicas en

la función objetivo), cRT = (0 0) ( valor que acompaña a las variables no básicas en la función objetivo),

1 6 0 4 0 0
   
0 1 0 2 1 0
B= y R=
 0 −1 1 1 0 0
   
0 0 0 1 0 1

La forma canónica asociada a la base B = {𝑥𝑥3 , 𝑥𝑥1 , 𝑥𝑥5 , 𝑥𝑥2 } es:

Min cBT B −1b + ( cRT − cBT B −1 R ) xR


s.a : xB + B −1 RxR B −1b
=
xB , xR ≥0

Z = Min −18 +5 x4 −6 x6
x3 +2 x4 +8 x6 =4
x1 −1x4 −2 x6 =2
x5 −2 x4 −3 x6 =1
x2 +1x4 +1x6 =2
x3 , x1 , x5 , x2 , x4 , x6 ≥ 0

Los valores destacados (en verde) se denominan costos reducidos, e indican el cambio marginal del
valor de la función objetivo, si la variable respectiva aumenta su valor. Es decir, para este ejemplo conviene
que entre a la base la variable 𝑥𝑥6 ya que por cada unidad que tome la función objetivo mejora en 6
unidades. Por ejemplo, si entra a la base y toma valor 1 (𝑥𝑥6 = 1) la función objetivo será de -24, si entra a la
base y toma valor 2 (𝑥𝑥6 = 2) la función objetivo será de -30. En caso contrario, no conviene que entre a la
base 𝑥𝑥4 ya que como tiene valor positivo hará que la función empeore.

En caso de haber más de una variable no básica con costos reducidos negativos, conviene que entre a
la base la de costo reducido negativo de mayor magnitud (valor absoluto), ya que mejorará la función
objetivo en mayor magnitud.
14

Definición 9 (condición de optimalidad): una solución de un problema de programación lineal en


forma estándar es óptima si los costos reducidos asociados asociados a las variables no básicas son no
negativos.

Como la base siempre debe ser del tamaño de m x m, luego de determinar la variable que conviene
que entre a la base se debe determinar la variable que sale de la base.

Para determinar la variable que sale de la base, se debe observar la forma canónica:

Z = Min −18 +5 x4 −6 x6
x3 +2 x4 +8 x6 = 4
x1 −1x4 −2 x6 = 2
x5 −2 x4 −3 x6 = 1
x2 +1x4 +1x6 = 2
x3 , x1 , x5 , x2 , x4 , x6 ≥ 0

Si 𝑥𝑥6 entra a la base y toma valor positivo las coordenadas (lado derecho) cambiarán en función de los
valores destacados (en morado).

Algunas variables aumentarán sus coordenadas, otras disminuirán y puede que otras queden iguales.
Lo que se busca es saber que variable se hará 0 primero, y ella será la que salga de la base.

La primera variable en hacerse 0 será 𝑥𝑥3 ya que cuando 𝑥𝑥6 = 0,5, el lado derecho de la primera
restricción será 0, en la segunda restricción aumentará a 3, en la tercera restricción aumentará a 2,5 y en la
cuarta restricción disminuirá a 1,5. Por tanto, la variable 𝑥𝑥3 sale de la base y 𝑥𝑥6 la reemplaza, se debe
respetar el orden en que estaban las variables, por lo cual, la nueva base queda 𝑥𝑥𝐵𝐵 = {𝑥𝑥6 , 𝑥𝑥1 , 𝑥𝑥5 , 𝑥𝑥2 }.

Definición 10 (criterio de salida): sea B una base factible de un problema, y sea p el índice de la
variable no básica que entrará a la base. El índice de la variable básica que saldrá será q, dado por la
siguiente expresión:

 b 
q = arg  i 
i:Rip > 0  R ip 
15

En esencia, consiste en identificar cual será la variable que primero se hará 0. Para ello, se dividen los
valores actuales del lado derecho (𝑏𝑏𝑖𝑖 = 𝐵𝐵 −1 𝑏𝑏) por los valores que acompañan a la variable que va a entrar
𝑅𝑅𝑖𝑖𝑖𝑖 = 𝐵𝐵 −1 𝐴𝐴𝑝𝑝 , y como se vio en el ejemplo anterior, cuando 𝑅𝑅𝑖𝑖𝑖𝑖 es negativo, aumenta el lado derecho, por
lo que la variable no se hará 0, esto condiciona a que solo se tomen como divisor valores mayores 0 (0 se
indefine), por tanto, se puede reformar la expresión como la regla del mínimo cociente:


 B −1b 

min  

 ij 
a 

Tomando los valores del ejemplo anterior:

4 2 1 2
min   → min {0,5 −1 −0,33 2}
8 −2 −3 1

Dado que el mínimo valor positivo es 0,5, la variable que debe salir de la base es 𝑥𝑥3 .

Al hacer el cambio de base cambia su forma canónica, por tanto, se debe repetir el proceso de (i) invertir
la base, (ii) calcular los costos reducidos, para determinar si es la solución óptima, (iii) deterninar cuál es la
variable que entra y determinar la variable que sale. Por tanto, es un proceso iterativo que termina cuando
los costos reducidos de las variables no básicas son positivos.

Retomando el ejemplo de Reddy Mikks se puede ilustrar cómo opera el método simplex gráficamente:

Iteración 1: parte desde la base {𝑥𝑥3 , 𝑥𝑥4 , 𝑥𝑥5 , 𝑥𝑥6 } que se encuentra en el vértice F, se evalúan los costos
reducidos, se determina que debe entrar la variable x1, por tanto, se puede mover a los vértices (B {𝑥𝑥1 , 𝑥𝑥4 ,
𝑥𝑥5 , 𝑥𝑥6 }, G {𝑥𝑥3 , 𝑥𝑥1 , 𝑥𝑥5 , 𝑥𝑥6 }, N {𝑥𝑥3 , 𝑥𝑥4 , 𝑥𝑥1 , 𝑥𝑥6 } y el vértice indeterminado (base con fila de 0), {𝑥𝑥3 , 𝑥𝑥4 , 𝑥𝑥5 , 𝑥𝑥1 }), por
mínimo cociente se mueve al vértice B, se actualiza la base y se continua con la iteración 2.
16

Iteración 2: la base actual {𝑥𝑥1 , 𝑥𝑥4 , 𝑥𝑥5 , 𝑥𝑥6 }está en el vértice B, se evalúan los costos reducidos, se
determina que debe entrar la variable x2, por tanto, se puede mover a los vértices (K {𝑥𝑥2 , 𝑥𝑥4 , 𝑥𝑥5 , 𝑥𝑥6 }, C {𝑥𝑥1 ,
𝑥𝑥2 , 𝑥𝑥5 , 𝑥𝑥6 }, L {𝑥𝑥1 , 𝑥𝑥4 , 𝑥𝑥2 , 𝑥𝑥6 } y M {𝑥𝑥1 , 𝑥𝑥4 , 𝑥𝑥5 , 𝑥𝑥2 }), por mínimo cociente se mueve al vértice C, se actualiza la
base y se continua con la iteración 3.

Iteración 3: la base actual {𝑥𝑥1 , 𝑥𝑥2 , 𝑥𝑥5 , 𝑥𝑥6 } está en el vértice C, se evalúan los costos reducidos y como no
17

hay costos reducidos negativos es la solución óptima.

El ejemplo anterior permite mostrar que el método simplex parte desde un vértice de la región factible
y se va moviendo entre los vértices de ella hasta encontrar la solución óptima, y que la regla del mínimo
cociente sirve para moverse a vértices factibles, ya que en cada iteración se podía mover a vértices que
están fuera de la región factible, es por ello, que se debe respetar la regla y siempre escoger el mínimo
cociente positivo.

1.7 Algoritmo de resolución

Los pasos para resolver un problema de programación lineal mediante el método simplex se pueden
resumir en lo siguiente:

Paso 1. Escribir el problema en su forma estándar: se debe escribir el problema en su forma estándar,
es decir, pasar la función objetivo a minimización y las restricciones a igualdad.

Paso 2. Determinar la base B inicial, R, 𝒄𝒄𝑩𝑩 y 𝒄𝒄𝑹𝑹 : se define una base inicial, por convención se suele
escoger como base aquella compuesta por las variables de holgura. El complemento son las variables
restantes junto a sus columnas de la matriz A, 𝑐𝑐𝐵𝐵 son los valores que acompañan a las variables básicas en
la función objetivo y 𝑐𝑐𝑅𝑅 son los valores que acompañan a las variables no básicas en la función objetivo.
18

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

Paso 4. Determinar la solución básica factible asociada a la base.

𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃
Paso 5. Verificar criterio de optimalidad.

𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

Se calculan los costos reducidos de la función objetivo, si no hay costos reducidos negativos es la
solución óptima (𝑥𝑥𝐵𝐵 ) con valor de función objetivo = 𝑐𝑐𝐵𝐵𝑇𝑇 𝑥𝑥𝐵𝐵 . Si hay costos reducidos negativos continuar con
el Paso 6.

Paso 6. Determinar la variable que entra y sale de la base: la variable que entra es la que tiene el
costo reducido negativo de mayor magnitud y la variable que sale se determina con la regla del mínimo
cociente:

𝐵𝐵 −1 𝑏𝑏
min � �
����
𝑎𝑎𝚤𝚤𝚤𝚤

Paso 7. Actualizar la base y volver al paso 3.

1.8 Ejemplo 1

Resolver mediante el método simplex matricial el siguiente problema:

=Z Max 5x1 +2 x2
s. a : x1 +4 x2 ≤ 6
2 x1 + x2 ≤ 20
x1 , x2 ≥ 0
19

Paso 1. Escribir el problema en su forma estándar.

Se multiplica por -1 la función objetivo para pasar de Maximización a Minimización, y se agrega una
variable de holgura a las restricciones de ≤.

=Z Max 5x1 +2 x2 Z = Min −5x1 −2 x2


s. a : x1 +4 x2 ≤ 6 s. a : x1 +4 x2 + x3 = 6

2 x1 + x2 ≤ 20 2 x1 + x2 + x4 = 20
x1 , x2 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

Paso 2. Determinar la base B inicial, R, 𝒄𝒄𝑩𝑩 y 𝒄𝒄𝑹𝑹 .

Por convención, la base inicial será la compuesta por las variables de holgura (𝑥𝑥3 , 𝑥𝑥4 ).

1 0 T 1 4 T
xB ={ x3 x4 } ; B =  ; cB =( 0 0 ) ; xR ={ x1 x2 } ; R = ( 5 −2 )
 ; cB =−
0 1 2 1

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

Dado que la base forma la matriz identidad por propiedad, la inversa es la misma.

1 0 1 0
B=   B −1 =  
0 1 0 1

Paso 4. Determinar la solución básica factible asociada a la base. 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃

Se multiplica la inversa de la base por el vector de los recursos (b).

 1 0   6  1*6 + 0*12   6   x3 = 6 
=
xB   =   =   → 
 0 1  12   0*6 + 1*12  12   x4 = 12 
20

Nota: Al multiplicar matrices siempre se multiplican las filas de la primera matriz por las
columnas de la segunda matriz.

 a b  e   a *e + b* f 
   =  
 c d  f  c*e + d * f 

Paso 5. Verificar criterio de optimalidad. 𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

cR=
T
cRT − cBT B −1 R
 1 0  1 4
cRT =( −5 −2 ) − ( 0 0 )   
 0 1  2 1
1*1 + 0* 2 1* 4 + 0*1
cRT =( −5 −2 ) − ( 0 0 )  
 0*1 + 1* 2 0* 4 + 1*1
1 4
cRT =( −5 −2 ) − ( 0 0 )  
2 1
cRT =( −5 −2 ) − ( 0*1 + 0* 2 0* 4 + 0*1)
cRT =( −5 −2 ) − ( 0 0 )
( 5 −2 )
cRT =−

No es la solución óptima, ya que existen costos reducidos negativos. Se debe continuar con el siguiente
paso.

Paso 6. Determinar la variable que entra y sale de la base.

𝐵𝐵 −1 𝑏𝑏
min � �
����
𝑎𝑎𝚤𝚤𝚤𝚤

La variable que entra a la base es aquella de costo reducido de mayor magnitud, por lo que 𝑥𝑥1 debe
entrar a la base.
21

La variable que sale se determina con la regla del mínimo cociente, para ello se estima primero la
columna de la variable entrante en su forma canónica:

���
𝑨𝑨𝒋𝒋 = 𝑩𝑩−𝟏𝟏 𝑨𝑨𝒋𝒋

 1 0  1  1*1 + 0* 4   1 
=A1 =    =   
 0 1  2   0*1 + 1* 2   2 

Luego, se divide el valor de cada variable básica (Paso 4) por los valores de la columna de la variable
entrante en su forma canónica (no olvidar que si el denominador es negativo o 0 no se consideran).

 6 12 
min   = min {6 6}
1 2 

Como se obtuvieron dos valores iguales, se puede escoger al azar cual variable sale, se escoge el
segundo valor, por tanto 𝑥𝑥4 sale de la base.

Paso 7. Actualizar la base y volver al paso 3.

La variable entrante reemplaza a la variable saliente en el mismo lugar en el que estaba, y se actualizan
la base y los demás valores.

1 1 T 0 4 T
xB ={ x3 x1} ; B =  ; cB =( 0 −5 ) ; xR ={ x4 x2 } ; R =  ; cB =( 0 −2 )
0 2 1 1

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

1 1  1 −1/ 2 
B=   B −1 =  
0 2  0 1/ 2 

Se puede invertir la matriz utilizando el método del determinante, gauss-jordan o alguna calculadora
online que invierta matrices.
22

Paso 4. Determinar la solución básica factible asociada a la base. 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃

Se multiplica la inversa de la base por el vector de los recursos (b).

 1 −1/ 2  6   1*6 − 1/ 2*12   0   x3 = 0 


=
xB   =   =   → 
 0 1/ 2 12   0*6 + 1/ 2*12   6   x1 = 6 

Cuando una variable básica toma valor 0, indica que es una solución degenerada, en este caso no
influye en nada, pero hay otros casos que si podría generar un problema, esto se verá más adelante.

Paso 5. Verificar criterio de optimalidad. 𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

cR=
T
cRT − cBT B −1 R
 1 −1/ 2  0 4
cRT= (0
−2 ) − ( 0 −5 )   
 0 1/ 2  1 1
 1*0 − 1/ 2*1 1* 4 − 1/ 2*1 
cRT= ( 0 −2 ) − ( 0 −5 )  
 0*0 + 1/ 2*1 0* 4 + 1/ 2*1
 −1/ 2 7 / 2 
cRT= (0
−2 ) − ( 0 −5 )  
 1/ 2 1/ 2 
cRT= ( 0 −2 ) − ( 0* −1/ 2 − 5*1/ 2 0*7 / 2 − 5*1/ 2 )
c=
T
R ( 0 −2 ) − ( −5 / 2 −5 / 2 )
c T
R = ( 5 / 2 1/ 2 )

Dado que no hay costos reducidos negativos, es la solución óptima. Los valores óptimos de las variables
son: 𝑥𝑥1∗ = 6, 𝑥𝑥2∗ = 0, 𝑥𝑥3∗ = 0, 𝑥𝑥4∗ = 0, con una función objetivo igual a:

0
Z=cBT xB → Z =(0 −5)   → Z * =−30
6

Nota: Las variables no básicas siempre toman valor 0, por ello directamente x2 y x4 son iguales a 0.

Las variables 𝑥𝑥3 y 𝑥𝑥4 toman valor 0, lo que indica que el primer recurso y el segundo recurso se utilizan
por completo.
23

1.9 Ejemplo 2

Resolver mediante simplex matricial el siguiente problema.

=Z Max 400x1 +200 x2 +300 x3


s. a : 4x1 + 2 x2 + x3 ≤ 16
x1 + 2x2 + 2 x3 ≤ 40
x1 + x2 + x3 ≤ 20
x1 , x2 , x3 ≥ 0

Desarrollo:

Paso 1. Escribir el problema en su forma estándar.

Se multiplica por -1 la función objetivo para pasar de Maximización a Minimización, y se agrega una
variable de holgura a las restricciones de ≤.

Z =Min −400x1 −200 x2 −300 x3


s. a : 4x1 + 2 x2 + x3 + x4 = 16
x1 + 2x2 + 2 x3 + x5 = 40
x1 + x2 + x3 + x6 = 20
x1 , x2 , x3 , x4 , x5 , x6 ≥0

Paso 2. Determinar la base B inicial, R, 𝒄𝒄𝑩𝑩 y 𝒄𝒄𝑹𝑹 .

Por convención la base inicial será la compuesta por las variables de holgura.

1 0 0
 
=xB { x4=x5 x6 } ; B =0 1 0  ; cBT ( 0 0 0 ) ;
0 0 1
 
4 2 1
  T
{ x1 x2 x3} ; R =
xR =  1 2 2  ; cB =( −400 −200 −300 )
1 1 1
 
24

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

Dado que la base forma la matriz identidad por propiedad, la inversa es la misma.

1 0 0
 
B −1 =  0 1 0 
0 0 1
 

Paso 4. Determinar la solución básica factible asociada a la base. 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃

Se multiplica la inversa de la base por el vector de los recursos (b).

 1 0 0   16   16   x4 = 16 
      
xB =  0 1 0   40  =  40  →  x5 = 40 
 0 0 1   20   20   x = 20 
      6 

Paso 5. Verificar criterio de optimalidad. 𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

1 0 0 4 2 1
c =
T
R( −400 −200 −300 ) − ( 0 0 0 )  0 
1 01 2 2

0 0 1   1 1 1 

4 2 1
( −400 −200 −300 ) − ( 0 0 0 )  1
cR =
T
2 2

1 1 1 

( −400 −200 −300 ) − ( 0 0 0 )
cRT =
( −400 −200 −300 )
cRT =

No es la solución óptima, ya que existen costos reducidos negativos. Se debe continuar con el siguiente
paso.

Paso 6. Determinar la variable que entra y sale de la base.

𝐵𝐵 −1 𝑏𝑏
min � �
𝑎𝑎𝚤𝚤𝚤𝚤
����
25

La variable que entra a la base es aquella de costo reducido de mayor magnitud (-400), por lo que 𝑥𝑥1
debe entrar a la base.

La variable que sale se determina con la regla del mínimo cociente, para ello se estima primero la
columna de la variable entrante en su forma canónica:

���
𝑨𝑨𝒋𝒋 = 𝑩𝑩−𝟏𝟏 𝑨𝑨𝒋𝒋

 1 0 0  4  1* 4 + 0*1 + 0*1  4


      
A1=  0 1 0  1 =  0* 4 + 1*1 + 0*1= 1
 0 0 1  1   0* 4 + 0*1 + 1*1 1
      

Luego, se divide el valor de cada variable básica (Paso 4) por los valores de la columna de la variable
entrante en su forma canónica (no olvidar que si el denominador es negativo o 0 no se consideran).

16 40 20 
min   = min {4 40 20}
4 1 1

El mínimo valor positivo (4) corresponde a la variable 𝑥𝑥4 , por tanto, sale de la base.

Paso 7. Actualizar la base y volver al paso 3.

La variable entrante reemplaza a la variable saliente en el mismo lugar en el que estaba, y se actualizan
la base y los demás valores.

4 0 0
 
xB = { x1 x5 x6 } ; B =  1 1 0  ; cBT = ( −400 0 0 ) ;
1 0 1 

1 2 1
 
xR ={ x4 x2 x3 } ; R = 0 2 2  ; cBT =( 0 −200 −300 )
0 1 1 

26

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

 1/ 4 0 0 
−1  
B =  −1/ 4 1 0 
 −1/ 4 0 1 
 

Se puede invertir la matriz utilizando el método del determinante, gauss-jordan o alguna calculadora
online que invierta matrices.

Paso 4. Determinar la solución básica factible asociada a la base. 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃

Se multiplica la inversa de la base por el vector de los recursos (b).

 1/ 4 0 0   16   4   x1 = 4 
      
xB =
 −1/ 4 1 0   40  =
 36  →  x5 =
36 
 −1/ 4 0 1   20   16   x = 
       6 16 

Paso 5. Verificar criterio de optimalidad. 𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

 1/ 4 0 01 2 1
  
c= ( 0 −200 −300 ) − ( −400 0 0 )  −1/ 4
T
R 1 00 2 2
 −1/ 4 0 1   0 1 1 

 1/ 4 1/ 2 1/ 4 
c=
T
R ( 0 −200 −300 ) − ( −400 0 0 )  −1/ 4 3 / 2 7 / 4

 −1/ 4 1/ 2 3 / 4 

cRT =( 0 −200 −300 ) − ( −100 −200 −100 )
=cRT (10 0 0 −200 )

No es la solución óptima, ya que existe un costo reducido negativo. Se debe continuar con el siguiente
paso.
27

Paso 6. Determinar la variable que entra y sale de la base.

𝐵𝐵 −1 𝑏𝑏
min � �
𝑎𝑎𝚤𝚤𝚤𝚤
����

La variable que entra a la base es aquella de costo reducido de mayor magnitud (-200), por lo que 𝑥𝑥3
debe entrar a la base.

La variable que sale se determina con la regla del mínimo cociente, para ello se estima primero la
columna de la variable entrante en su forma canónica:

���
𝑨𝑨𝒋𝒋 = 𝑩𝑩−𝟏𝟏 𝑨𝑨𝒋𝒋

 1/ 4 0 0  1   1/ 4*1 + 0* 2 + 0*1   1/ 4 
      
A3 =
 −1/ 4 1 0  2  =
 −1/ 4*1 + 1* 2 + 0*1 =
7 / 4
      
 −1/ 4 0 1  1   −1/ 4*1 + 0* 2 + 1*1  3 / 4 

Luego, se divide el valor de cada variable básica (Paso 4) por los valores de la columna de la variable
entrante en su forma canónica (no olvidar que si el denominador es negativo o 0 no se consideran).

 4 36 16 
min   = min {16 30,85 21,33}
1/ 4 7/4 3/ 4

El mínimo valor positivo (16) corresponde a la variable 𝑥𝑥1 , por tanto, sale de la base. Una variable que
entra en una iteración puede volver a salir, así que no es un error que 𝑥𝑥1 salga, es algo que puede ocurrir.

Paso 7. Actualizar la base y volver al paso 3.

La variable entrante reemplaza a la variable saliente en el mismo lugar en el que estaba, y se actualizan
la base y los demás valores.
28

1 0 0
 
xB = { x3 x5 x6 } ; B =  2 1 0  ; cBT = ( −300 0 0 ) ;
1 0 1 

1 2 4
 
xR ={ x4 x2 x1} ; R = 0 2 1  ; cBT =( 0 −200 −400 )
0 1 1 

Paso 3. Calcular la inversa de la base 𝑩𝑩−𝟏𝟏 .

 1 0 0
−1 
B =  −2 1 0 
 −1 0 1 
 

Paso 4. Determinar la solución básica factible asociada a la base. 𝒙𝒙𝑩𝑩 = 𝑩𝑩−𝟏𝟏 𝒃𝒃

Se multiplica la inversa de la base por el vector de los recursos (b).

 1 0 0  16  16   x3 = 16 
      
xB =
 −2 1 0  40  =
 8  →  x5 =
8
 −1 0 1  20   4   x = 
      6 4 

Paso 5. Verificar criterio de optimalidad. 𝒄𝒄�𝑻𝑻𝑹𝑹 ≥ 0; 𝒄𝒄�𝑻𝑻𝑹𝑹 = 𝒄𝒄𝑻𝑻𝑹𝑹 − 𝒄𝒄𝑻𝑻𝑩𝑩 𝑩𝑩−𝟏𝟏 𝑹𝑹

1 0 01 2 4
c=
T
R ( 0 −200 −400 ) − ( −300 0 0 )  −2 
1 00 2 1

 0 1   0 1 1 
 −1
1 2 4 
c=
T
R ( 0 −200 −400 ) − ( −300 0 0 )  −2 −2 −7 

 −1 −3 3 / 4 

cRT =( 0 −200 −300 ) − ( −300 −600 −1200 )
cRT = ( 30 0 400 800 )
29

Dado que no hay costos reducidos negativos, es la solución óptima. Los valores óptimos de las variables
son: 𝑥𝑥1∗ = 0, 𝑥𝑥2∗ = 0, 𝑥𝑥3∗ = 16, 𝑥𝑥4∗ = 0, 𝑥𝑥5∗ = 8 y 𝑥𝑥6∗ = 4 , con una función objetivo igual a:

16 
Z=c xB → Z =
T
B ( −300 0 0 )  8  → Z * =−4800
4
 

La variable 𝑥𝑥4 toma valor 0 por tanto el recurso 1 se utiliza por completo, la variable 𝑥𝑥5 toma valor 8 por
tanto en el recurso 2 sobran 8 unidades, y la variable 𝑥𝑥6 toma valor 4 por tanto en el recurso 3 sobran 4
unidades.

1.10 Cierre

En resumen:

• Las bases factibles caracterizan a los vértices del poliedro.


• Las variables que toman valor se denominan variables básicas y las que toman valor 0 variables no
básicas.
• Dada una base factible se puede obtener la matriz de la base y sus coordenadas (valor que toman las
variables).
• La forma canónica de una base permite saber el valor de la función objetivo, las coordenadas de la base,
los costos reducidos, que variable debe entrar y que variable debe salir.
• Los costos reducidos indican cuánto mejora o empeora la función objetivo por cada unidad que tome
la variable si entra a la base, por tanto, la solución es óptima cuando los costos reducidos son mayores
o iguales a 0.
• La regla del mínimo cociente permite saber a qué vértice se puede mover para que siga siendo una
base factible.
• Por convención, la base inicial estará compuesta por las variables de holgura.
30

Referencias bibliográficas

Hillier, F. S., & Lieberman, G. J. (2010). Solución de problemas de programación lineal: método simplex. En
Introducción a la investigación de operaciones (9na Edición, pp. 81-101). McGraw-Hill.

Lüer, Armin. (2022). Clases 11 y 13 Investigación de Operaciones. Universidad Andrés Bello. Santiago.

Taha, H. A. (2012). Método simplex y análisis de sensibilidad (9na Edición, pp. 76-85). Pearson.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy