Sunteți pe pagina 1din 6

2.2.

6 METODO SIMPLEX (George Dantzig, 1947)

Existen varias formas de resolver un modelo de programación lineal. El metodo mas


comunmente usado es el metodo simplex. Este metodo encuentra la solución óptima de un
modelo de PL, evaluando la función objetivo, en cada vértice de la región factible.

METODOLOGIA

Nótese que en modelos de dos variables en cualquier intersección de dos


restricciones, hay dos variables que toman valor igual a cero. Por tanto para conocer el valor
de las otras variables se debe resolver el sistema de m restricciones con m variables.

Una manera sencilla de encontrar una SOLUCION BASICA

FACTIBLE es identificar una matriz identidad en las restricciones del modelo

escrito en forma estándar. Las variables asociadas con esta matriz identidad son las VARIABLES
BASICAS

X1 X2 S1 S2 S3

0.05 0.05 1 0 0 X1 1100

0.05 0.10 0 1 0 X2 = 1800


0 1
0.10 0.05 0 S1 2000

3x5 S2 3x1
S3

5x1

En cada paso del algoritmo se resuelven simultáneamente las m ecuaciones que


conforman un vértice para identificarlo. Se verifica si el vértice es el óptimo, si no lo es,
se pasa a otro vértice adyacente.

El algoritmo asegura que en el siguiente vértice, la funcion objetivo no tendrá un valor


peor que en el vértice anterior

2.2.6.1 METODO SIMPLEX -ALGEBRAICO

PROCEDIMIENTO
1. Encontrar una Solucion Basica Factible inicial Expresando el modelo en forma
estándar identificando las columnas de una matriz identidad de m x m.

2. Expresar las variables basicas y la funcion objetivo en funcion de las


variables No basicas

3. Verificar Optimalidad

La solución es óptima si:

La función objetivo no puede mejorar de valor al incrementar el valor


de cualquiera de las Variables No Basicas

4. Identificar Nuevas variables básica y No básica

Nueva VB : la VNB que mejora más la función objetivo.

Nueva VNB: la VB que se hace igual a 0 al tomar la


nueva VB el máximo valor posible.

5. Regresar al paso 2.

EJEMPLO
En forma original: En Forma estándar:

Máx Z = 10x1 + 14x2 sujeto a: 4x1 Máx Z = 10x1 + 14x2 + 0s1 + 0s2 sujeto a:
+ 6x2 ≤ 24 2x1 + 6x2 ≤ 20 4x1 + 6x2 + 1s1 + 0s2 = 24
x1 , x 2 ≥ 0
2x1 + 6x2 + 0s1 + 1s2 = 20 x1 , x2 , s 1 , s2 ≥
0

Inicio:

Base (VB’s) VNB’s


s1 = 24 x1 = 0 Z=0

s2 = 20 x2 = 0

Expresar VB’s y Z en función de VNB (del modelo en forma estándar )


S1 = 24 - 4x1 - 6x2

S2 = 20 - 2x1 - 6x2 (1)

Z = 0 + 10x1 + 14x2 No estamos sobre el vértice óptimo !

Variable que entra a la base es x2

Variable que sale de la base es:

S1 = 24 - 6x2 ≥ 0 x2 ≤ 4

S2 = 20 - 6x2 ≥ 0 x2 ≤ 3.33 x2 entra a la base con valor x2 =

3. 33
( s2 = 0 es la variable que sale )

1ra iteración:

Base (VB’s) VNB’s

s1 = 4 x1 = 0 Z = 46.66
x2 = 3.33 s2 = 0

Expresar VB’s y Z en función de VNB (comenzar de (1) )

X2 = (20 - 2x1 - s2 ) / 6 = 3.33 - 0.33x1 - 0.166s2


S1 = 24 - 4x1 - 6 (1/6 (20 - 2x1 - s2 )) = 4 - 2x1 + s2
1
Z = 0 + 10 x1 + 14 ( /6 (20 - 2x1 - s2 )) = 46.6 + 5.33 x1 - 2.33 s2

No estamos sobre el vértice óptimo !

Variable que entra a la base es x1

Variable que sale de la base es:


X2 = 3.33 - 0.33x1 ≥ 0 X1 ≤ 10

S1 = 4 - 2x1 ≥ 0 X1 ≤ 2 x1 entra a la base con valor x1 = 2

( s1 = 0 es la variable que sale )

2da iteración:

Base (VB’s) VNB’s

x1 = 2 s1 = 0 Z = 57.33

x2 = 2.66 s2 = 0

Expresar VB’s y Z en función de VNB

X1 = (4 + s2 - s1 ) / 2 = 2 + 0.50s2 - 0.5s1

X2 = 3.33 - 0.33 ( 2 +.50s2 - 0.5s1 )-0.16s2 = 2.66 - 0.33s2 + 0.16s1

Z = 46.66 + 5.33 (2 +0.50s2 - 0.5s1) -2.33s2 = 57.3 + 0.33s2 - 2.66 s1

No estamos sobre el vértice óptimo !


Variable que entra a la base es s2
Variable que sale de la base:

X1 = 2 + 0.50s2 ≥ 0 s2 ≥ - 4

X2 = 2.66 - 0.33s2 ≥ 0 s2 ≤ 8 s2 entra a la base con valor s2 = 8


( X2 = 0 es la variable que sale )

3ra iteración:

Base (VB’s) VNB’s


x1 = 6 s1 = 0 Z = 60
s2 = 8 x2 = 0

Expresar VB’s y Z en función de VNB


S2 = (2.66 - x2 + 0.166s1 ) / 0.33 = 8 - 3x2 + 0.50 s1

X1 = 2 + 0.50 (8 - 3x2 + 0.5s1 ) - 0.5s1 = 6 - 1.5x2 - 0.25 s1

Z = 57.33 + 0.33 (8 - 3x2 + 0.5s1) - 2.66s1 = 60 - x2 - 2.50 s1

estamos sobre el vértice óptimo!

2.2.6.1 METODO SIMPLEX - MATRICIAL

El método simplex matricial se puede aplicar siguiendo los siguientes pasos

1. Encontrar una Solucion Basica Factible inicial Expresando el modelo en forma


estándar identificando las columnas de una matriz identidad de m x m.
(esto define a XB, CB y B)

2. Calcular B-1 , B-1b y B-1N

3. Expresar XB y Z en función de las variables no básicas.

XB = B-1b - B-1N XN

Z = CBT B-1 b + [CNT - CBT B-1 N ] XN

4. Verificar la condición de optimalidad ([CNT - CBT B-1N ] ≤ 0 para max Z)

5. Si la condición de optimalidad no se cumple se debe seleccionar

 la nueva variable básica NVB

(aquella con el mejor valor en [CNT - CBT B-1N]

 la nueva variable no básica


(la que toma valor cero cuando la NVB toma el max valor posible)

2.2.6.2 METODO SIMPLEX -TABULAR

PROCEDIMIENTO

1. Encontrar una Solucion Basica Factible inicial


Convirtiendo las m restricciones en igualdades e identificando las columnas de una matriz
identidad de m x m.
2. Construir la Tabla Inicial y verificar Optimalidad (ver paso 5)

3. Identificar Nuevas Variable Básica (NVB) y Nueva variable No Básica

NVB : máx valor positivo de Cj - Zj (maximizacion)

NVNB: dividir bj entre los coeficientes positivos de la columna de NVB.

La NVNB se encuentra en el renglón que tiene el menor cociente.

4. Actualizar la Tabla

- Identificar elemento Pivote

- Nuevos valores en el renglón de NVB se obtienen al dividir el renglón que sale entre
el pivote

- Otros renglones se obtienen por:


Nuevo renglon = Renglon anterior -

[elemento en columna del pivote] x renglon de NVB

- Calcular Zj como la suma de productos de CB por las tasas de sustitucion

5. Verificar Optimalidad (maximización)

La base es óptima si todos los valores de Cj - Zj son cero o negativos.

6. Volver al paso 3

S-ar putea să vă placă și