Sunteți pe pagina 1din 15

INSTITUTO TECNOLOGICO SUPERIOR DE MASCOTA

UNIDAD I
METODO SIMPLEX
ASESOR: IIA BRENDA YERANIA ORTEGA FLORES
MATERIA: INVESTIGACION DE IPERACIONES
ALUMNO: ISRAEL RIVAS ALVAREZ

Mascota, Jalisco, Mxico.

Fecha 16 de Octubre del 2013

1
Ing. Israel Rivas Alvarez

El algoritmo Simplex.
Es un procedimiento iterativo que permite ir mejorando la solucin a cada paso. El
proceso concluye cuando no es posible seguir mejorando ms dicha solucin. Partiendo
del valor de la funcin objetivo en un vrtice cualquiera, el mtodo consiste en buscar
sucesivamente otro vrtice que mejore al anterior. La bsqueda se hace siempre a
travs de los lados del polgono(o de las aristas del poliedro, si el nmero de variables
es mayor). Cmo el nmero de vrtices y de aristas) es finito, siempre se podr
encontrar la solucin.
El mtodo del simplex se basa en la siguiente propiedad: si la funcin objetivo, f, no
toma su valor mximo en el vrtice A, entonces hay una arista que parte de A, a lo largo
de la cual f aumenta.

El mtodo del simplex se utiliza, sobre todo, para resolver problemas de programacin
lineal en los que intervienen tres o ms variables.
El lgebra matricial y el proceso de eliminacin de Gauss-Jordan para resolver un
sistema de ecuaciones lineales constituyen la base del mtodo simplex.

Fue desarrollado en 1947 por el Doctor George B. Dantzig.

Mediante su aplicacin es posible resolver problemas lineales con n variables y n


restricciones.

Se aplica a problemas tanto de Maximizacin como de Minimizacin.

El algoritmo Simplex inicia en el origen y se desplaza por los bordes del rea de
soluciones factibles evaluando cada esquina de esta, hasta encontrar la solucin
ptima.

Actualmente existe en el mercado mltiple software para la solucin de problemas


de programacin lineal que aplica este algoritmo, como QSA, QSB, STORM, LINGO,
TORA, AMPL, AB:POM, etc.

En 1984 Narendra Karmarkar cre un nuevo mtodo alternativo para la solucin de


problemas de programacin lineal, conocido como el algoritmo de Karmarkar o del
punto central.

Este algoritmo inicia situndose en el punto central del rea de soluciones factibles,
desde donde evala cada esquina de esta, hasta encontrar la solucin ptima.

2
Ing. Israel Rivas Alvarez

Ya existe software en el mercado que utiliza este algoritmo, ya que es relativamente


ms veloz y de mayor capacidad para manejar ms variables y restricciones que el
algoritmo Simplex.

Aplicacin del algoritmo Simplex:


Problemas solo con restricciones
del tipo

Mtodo Simplex convencional

Problemas con restricciones de


los tipos = y/o

Mtodo de la Gran M
Mtodo de las 2 Fases

Desarrollo del algoritmo Simplex.


Para resolver un problema de programacin lineal por medio del algoritmo Simplex, se
deben desarrollar los tres pasos descritos a continuacin:

1
Obtener la
forma SIMPLEX ESTNDAR del
modelo de programacin lineal

2
Colocar la forma SIMPLEX
ESTNDAR del modelo en la
TABLA SIMPLEX

3
Aplicar el
ALGORITMO SIMPLEX

1. Obtencin de la forma SIMPLEX ESTNDAR.


a) Convertir las restricciones a ecuaciones:
A todas y cada una de las restricciones del tipo se les suma una variable de
holgura ( Si ).
A todas y cada una de las restricciones del tipo = se les suma una variable
artificial ( Ri ).
A todas y cada una de las restricciones del tipo se les resta una variable de
exceso ( Si ) y adems se les suma una variable artificial ( Ri ).
3
Ing. Israel Rivas Alvarez

b) Todas las variables de holgura y de exceso se suman a la Funcin Objetivo con


coeficiente cero.
c) Todas las variables de artificiales ( Ri ) se suman a la Funcin Objetivo con un
coeficiente diferente de cero (mtodos de la gran M y de las 2 fases).

2. La TABLA SIMPLEX.
Rengln Cj

C1

Sn

Cn

Variables de la Funcin Objetivo

Recursos
R1
.

S1

Coeficiente

Variables
Bsicas

Coeficientes de las variables de la Funcin Objetivo

Coeficientes de las variables de las restricciones

Rn

Rengln Zj

Valor de Z

Rengln Cj - Zj
Nota: Este formato de la tabla SIMPLEX, puede variar de un libro a otro y de un software a otro; ya que
cada autor utiliza el formato que ms se le facilita.

3. Algoritmo SIMPLEX.
a) Calcular el rengln Zj, multiplicando los coeficientes de las variables bsicas por los
coeficientes de cada variable de las restricciones y sumando algebraicamente por
columna.
b) Calcular el rengln Cj-Zj, restando cada valor del rengln Cj al valor del rengln Zj
de su columna respectiva.
c) Determinar cual es la variable que entra a la solucin:
Maximizacin

Minimizacin

Variable con el coeficiente ms positivo en rengln Cj-Zj.


Maximizar Z = 2X1 +4X2 - 3X3
Variable con el coeficiente ms negativo en rengln Cj-Zj.
Minimizar Z = 2X1 + 4X2 -3X3, o bien:
Maximizar - Z = - 2X1 - 4X2 +3X3

La columna donde se encuentra la variable que entra, se llama columna pivote.

4
Ing. Israel Rivas Alvarez

d) Determinar cul es la variable que sale de la solucin; la cual ser la que tenga la
razn mnima con denominador estrictamente positivo (condicin de factibilidad).

|La razn mnima resulta de dividir el segundo miembro de cada ecuacin


(recursos), entre el coeficiente correspondiente de la columna pivote.

El rengln en el cual se encuentra la variable que sale y donde se situar la


variable que entra, se conoce como rengln pivote.

A la interseccin de la columna pivote con el rengln pivote, se le llama


nmero pivote.

e) Calcular los nuevos valores que tendr el rengln pivote (rengln nuevo),
dividiendo cada nmero del rengln entre el nmero pivote.
f) Calcular los nuevos valores para los renglones restantes, mediante la siguiente
frmula:
Nmeros
del rengln
nuevo

Nmeros
del rengln
antiguo

Nmero del rengln


antiguo ubicado en
la columna del
nmero pivote

Nmeros del
rengln nuevo
obtenido en el
paso 5

g) Regresar al inciso a.
El algoritmo Simplex termina cuando:
Problemas de Maximizacin: En el rengln Cj - Zj todos los valores son ceros o
negativos.
Problemas de Minimizacin: En el rengln Cj - Zj todos los valores son ceros o
positivos.

Con miras a conocer la metodologa que se aplica en el Mtodo SIMPLEX, vamos a


resolver el siguiente problema:
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y 18
2x + 3y 42
3x + y 24
x0 , y 0
Se consideran las siguientes fases:
1. Convertir las desigualdades en igualdades

5
Ing. Israel Rivas Alvarez

Se introduce una variable de holgura por cada una de las restricciones, para
convertirlas en igualdades, resultando el sistema de ecuaciones lineales:
2x + y + h = 18
2x + 3y + s = 42
3x +y + d = 24
2. Igualar la funcin objetivo a cero: - 3x - 2y + Z = 0

Mtodos alternativos.
Para solucionar modelos lineales que contengan restricciones del tipo = o , se
utilizan los mtodos descritos a continuacin.

Mtodo de la gran M (mtodo de la penalizacin).


Obtener la forma simplex estndar del modelo convirtiendo las restricciones en
ecuaciones, de acuerdo a lo siguiente:
1. A todas las restricciones del tipo , sumar una variable de holgura (Si).
2. A todas las restricciones del tipo , restar una variable de exceso (Si).
3. A las ecuaciones que no cuenten con una variable que desempee la funcin de
holgura, se les suma una variable artificial (Ri).
4. Todas las variables de holgura y de exceso, se suman a la funcin objetivo
con coeficiente cero.
5. Todas las variables artificiales tambin se suman a la funcin objetivo y se
penalizan asignndoles un coeficiente muy grande (M), que se suma en
problemas de minimizacin y se resta en problemas de maximizacin.
Una variable artificial (Ri) no tiene ningn significado en trminos de programacin
lineal; solo permite iniciar el algoritmo simplex, por lo cual los valores que pueda tomar
en la solucin final son difciles de interpretar.

Mtodo de las 2 fases.


Obtener la forma simplex estndar del modelo convirtiendo las restricciones en
ecuaciones, de acuerdo a los pasos 1, 2 y 3 del mtodo anterior.
6
Ing. Israel Rivas Alvarez

Fase 1:

Plantear una nueva funcin objetivo, donde se minimice la suma de las


variables artificiales ( r = R1 + R2 +..+ Rn ).
Encontrar una solucin factible mediante la tabla inicial y el algoritmo
simplex, tratando de sacar a las variables artificiales de la solucin inicial.

Fase 2:

A partir de la solucin factible obtenida en el paso anterior, plantear una


nueva tabla inicial simplex con la funcin objetivo original y sin considerar
las variables artificiales; mediante el algoritmo simplex obtener la solucin
ptima del modelo.

Otra informacin relevante que podemos obtener de la


tabla ptima simplex.
Adems de los valores ptimos para cada variable original y bsica incluida en el
problema, as como el valor obtenido por la funcin objetivo con esos valores (Z), la
tabla final del algoritmo Simplex en la cual se muestran estos valores, tambin muestra
ms informacin que es til al analista para la correcta toma de decisiones; esta
informacin es referente a:

El estado de los recursos (lados derechos de las restricciones).


Los precios duales (costo por unidad adicional de recurso).
El costo de oportunidad para las variables originales (Xi).
El estado de los recursos.
Las variables de holgura y de exceso (Si) que se agregan a las restricciones para
convertirlas en ecuaciones, estn asociadas a los recursos (lados derechos de cada
restriccin); cuando en la solucin ptima del problema alguna de estas variables tiene
valor positivo, se dice que es un recurso abundante; si alguna de estas tiene valor
cero, se dice que es un recurso escaso.
Los precios duales.
Estn representados por los valores negativos (maximizacin) o positivos
(minimizacin) en el rengln (Cj-Zj), para las variables de holgura y de exceso con
valor cero en la solucin ptima; representan el costo por cada unidad adicional de
ese recursos que se desee adquirir.
El costo de oportunidad.
Para las variables originales (Xi) que tienen valor cero en la solucin ptima, tambin
estn representados por sus valores correspondientes en el rengln (Cj-Zj) y significan
lo que se debe aumentar (maximizacin) o disminuir (minimizacin) su coeficiente
en la funcin objetivo, para que puedan entrar en la solucin.

Ejemplo:
7
Ing. Israel Rivas Alvarez

Dos productos se elaboran al pasar en forma sucesiva por tres mquinas, el tiempo por
mquina asignado a los dos productos est limitado a 600 horas por mes, el tiempo de
produccin y la ganancia por unidad de cada producto son:
PRODUCTO

MINUTOS POR UNIDAD


MAQUINA 1

MAQUINA 2

MAQUINA 3

GANANCIA

10
5

6
20

8
15

$ 2.00
$ 3.00

1
2

El planteamiento del modelo de programacin lineal es:


Maximizar Z = 2x1 + 3x2
s.a.

600
600
600
0

10x1 + 5x2
6x1 + 20x2
8x1 + 15x2
x1, x2

La forma simplex estndar es:


Maximizar Z = 2x1 + 3x2 + 0s1 + 0s2 + 0s3
s.a. 10x1 + 5x2 + s1
6x1 + 20x2
+ s2
8x1 + 15x2
+ s3
x1, x2, s1, s2, s3

= 600
= 600
= 600
0

La tabla ptima simplex (solucin final), es:


Cj

Var. Bas.

Coef.

X1

X2

S1

S2

S3

Recursos

S2
X2
X1

0
3
2
Zj
Cj - Zj

0
0
1
2
0

0
1
0
3
0

0.636
-0.073
0.136
0.053
-0.053

1
0
0
0
0

-1.55
0.091
-0.045
0.183
-0.183

54.55
10.91
54.55
141.82

La asociacin de las variables de holgura, son:

S1 representa el tiempo en la mquina 1


S2 representa el tiempo en la mquina 2
S3 representa el tiempo en la mquina 3

Observando la tabla final simplex, conteste las siguientes preguntas:

Cul es el estado que guardan los recursos?

Cules son sus precios duales o precios sombra?

Cules son los costos de oportunidad para los coeficientes de la funcin objetivo?

Soluciones particulares en el algoritmo SIMPLEX.


8
Ing. Israel Rivas Alvarez

El algoritmo Simplex permite en la tabla final del procedimiento (ptima), identificar


algunas de las soluciones particulares a las que se puede llegar; a continuacin se
muestra esta tabla y su interpretacin para problemas de maximizacin.

Caso 1

DEGENERACION

Se produce cuando alguna de las variables bsicas toma un valor de cero en la


solucin ptima.

Cuando en la condicin de factibilidad para determinar la variable que sale se


produce un empate entre 2 renglones, esto indica que se tendr una solucin ptima
degenerada en la prxima iteracin.

Este tipo de soluciones son caractersticas en problemas donde el nmero de


restricciones es mayor que el de variables.
Solucin ptima degenerada ( problema de maximizacin )
Cj
Var. Bas. Coefic.FO
X2
40
S2
0
X1
50
Zj
Cj - Zj

Caso 2

50
X1
0
0
1
50
0

40
X2
1
0
0
40
0

0
S1
8/25
-8/25
-5/25
70/25
-70/25

0
S2
0
1
0
0
0

0
S3
-3/25
3/25
5/25
130/25
-130/25

Recursos
20
0
25
2,050

SOLUCIONES MULTIPLES

Ocurre cuando en la solucin final ptima el valor para una o mas variables no
bsicas es igual a cero en el ltimo rengln de la tabla ( Cj - Zj ).
Solucin ptima mltiple ( problema de maximizacin )
Cj
Var. Bas. Coefic.FO
X2
50
S2
0
X1
30
Zj
Cj - Zj

Caso 3

30
X1
0
0
1
30
0

50
X2
1
0
0
50
0

0
S1
8/25
-8/25
-5/25
10
-1

SOLUCION NO ACOTADA
9

Ing. Israel Rivas Alvarez

0
S2
0
1
0
0
0

0
S3
-3/25
3/25
5/25
0
0

Recursos
12
8
30
1,500

Se produce en alguna iteracin del algoritmo sin haber llegado a la solucin final
ptima, cuando la condicin de factibilidad para determinar la variable que sale no
se cumple.

Ocurre cuando un valor de la funcin objetivo puede crecer indefinidamente,


satisfaciendo todas las restricciones.
Solucin no acotada ( problema de maximizacin )
Cj
Var. Bas. Coefic.FO
X1
20
S2
0
Zj
Cj - Zj

Caso 4

20
X1
1
0
20
0

10
X2
0
1
0
10

0
S1
-1
0
-20
20

0
S2
0
1
0
0

-M
R1
1
0
20
-M-20

Recursos
2
5
40

SOLUCION NO FACTIBLE

Ocurre cuando en la solucin ptima, alguna de las variables artificiales (R i), se


encuentran en la solucin con valor positivo (de hecho, alguna de las variables
artificiales del problema nunca sale de la solucin durante el procedimiento).

El valor final de la funcin objetivo se ve afectado o est en funcin de la variable


artificial (Ri) que se encuentra en la solucin ptima.
Solucin no factible ( problema de maximizacin )
Cj

50

40

-M

Var.Bas. Coefic.FO

X1

X2

S1

S2

S3

S4

R1

Recursos

X2

40

8/25

-3/25

12

S2

-8/25

3/25

X1

50

-5/25

5/25

30

R1

-M

-3/25

-2/25

-1

Zj

50

40

70+3M/25

130+2M/25

-M

1980-8M

Cj - Zj

-70-3M/25

-130-2M/25

-M

Una variable artificial (Ri) no tiene ningn significado en trminos de programacin


lineal, solo permite iniciar el algoritmo Simplex; por lo cual los valores que pueda tomar
en la solucin final son difciles de interpretar.

10
Ing. Israel Rivas Alvarez

Mtodo dos Fases


Fase Uno:
Minimizar la suma de las variables artificiales del modelo. Si el valor de la Z ptima es cero, se puede
proseguir a la Fase Dos, de lo contrario el problema no tiene solucin.
Fase Dos:
Con base en la tabla ptima de la fase uno, se elimina de las restricciones las variables artificiales, y se
reemplaza la funcin objetivo, por la funcin objetivo original y se resuelve a partir de ah, con el mtodo
Simplex tradicional.

Ejercicio:

Primera Fase:
Se reemplaza la funcin objetivo del programa lineal a solucionar por la minimizacin de
la suma de las variables artificiales encontradas en la normalizacin del modelo y se
resuelve. Si en la minimizacin Z = 0 entonces se puede proceder a la Segunda Fase, de
lo contrario el problema no es factible, por lo tanto, no tiene solucin.

Segunda Fase:

Se inicia con base en el tablero final de la Primera Fase, se retoma la funcin objetivo
del programa, haciendo todas las variables artificiales iguales a cero y eliminndolas
de las restricciones.

Ejemplo:
Min Z = 2X1 + X2 + 3X3
Sujeto a:
3X1 + X2 + 2X3
X1 - 2X2 + 3X3
2X1 + 3X2 - X3
X1 + X2 + 2X3

10
6
9
7

1. Convertir al Modelo Estndar:


Cada restriccin debe ser convertida de inecuacin a una igualdad, agregando variables
11
Ing. Israel Rivas Alvarez

como se requiera. Con las restricciones de tipo <=, es supremamente fcil.


Simplemente se agrega una en cada restriccin con coeficiente 1 en la misma restriccin
y con coeficiente cero en la funcin objetivo. Por ejemplo:
3X1 + X2 + 2X3 10 queda:
3X1 + X2 + 2X3 + S1 = 10
X1 - 2X2 + 3X3 - S2 + A1 = 6
2X1 + 3X2 - X3 + S3 =
9
X1 + X2 +2X3 + A2 =
7
Recordemos: las variables de holgura quedan con coeficiente 0 en la funcin objetivo y
las variables artificiales con coeficiente M. Positiva si es minimizando o negativa si es
maximizando.
En resumen el modelo queda de la siguiente manera:
Min Z = 2X1 +
X2
+ 3X3 + 0S1 + 0S2 + MA1 + 0S3 + MA2
Sujeto a:
3X1 + X2 + 2X3 + S1
= 10
X1 - 2X2 + 3X3
- S2 + A1
= 6
2X1+ 3X2 - X3
+ S3
= 9
X1+ X2 + 2X3
+ A2 = 7
C.N.N (Condicin de No Negatividad)

Inicio del Mtodo de las Dos Fases:

Min Z = A1 + A2
Sujeto a:
3X1 +X2 + 2X3 + S1
X1 -2X2+ 3X3 - S2 + A1
2X1+3X2- X3
+ S3
X1+ X2+ 2X3
+ A2
C.N.N (Condicin de No Negatividad)

=
=
=
=

10
6
9
7

12
Ing. Israel Rivas Alvarez

FASE 1
En la siguiente figura encontramos la tabla simplex clsica. En la primera fila los nombres de las variables
de decisin, y justo abajo de ellas, los coeficientes de estas variables en la funcin objetivo. Cmo en la
primera fase minimizamos la suma de las variables artificiales, por eso slo encontramos un valor de 1
abajo de A1 (variable artificial 1) y de A2 (variable artificial 2). En la segunda columna encontramos las
variables que estan en la base al inicio. Como es costumbre, para escogerlas preferimos si slo hay
variables de decisin y de holgura, escogemos la de holgura para estar en la base (aqui las llamamos S) y
si hay de decision, de holgura y artificiales, preferimos la artificial. Por eso, las variables que se escogen
para la base son: S1, A1, S3, A2.
A la izquierda de esta columna, como es usual, se coloca los
coeficientes en la funcin objetivo, de las variables que estan en la base.
Luego vienen los coeficientes de las restricciones, y debajo del ttulo RHS (Right Hand Side), o "lado
derecho" de la restriccin, colocamos las disponibilidades o requerimientos. En otros libros de texto a
esta columna tambien la llaman Bi, lo importante es que usted entienda que todos los diferentes formatos
de tablas, realmente son lo mismo, lo nico que cambia es el orden, la forma de llamar a las columnas,
etc.
Bueno, sin dar tantas vueltas: En la primera iteracin se calcula Z y C - Z, y por lo tanto la variable que
entra, como estamos minimizando, entra la ms negativa: X3 y entra la que mas restringe: A1. Eso hace
que la celda pivote este en el valor 3, que lo coloqu con verde en todas las figuras. Y se aplica
eliminacin gaussiana: Se divide toda esa fila por tres, y luego con la fila convertida, elimino por encima y
por debajo de la celda pivote multiplicando por el valor opuesto al que quiero eliminar la fila pivote y
sumandosela componente a componente a la fila que deseo eliminar. Bueno, en estos momentos del
partido, creo que usted ya debe saber bien como hacer la eliminacin gaussiana (Y si no, coloquelo en los
comentarios abajo, para ampliar la explicacin!) .

13
Ing. Israel Rivas Alvarez

El valor de la funcin objetivo, en cada itereacin la he colocado en azul claro, para que vaya viendo el
progreso: 13 -> 3 -> 0.

Al terminar en cero, el semaforo nos da luz verde para seguir con la siguiente fase.

FASE 2

En la FASE 2, fijese que cambiamos la fila de la funcin objetivo y dejamos la del programa original, pero
como en la fase 1 nos aseguramos de eliminar las variables artificiales, en la fase 2, nos podemos dar el
lujo y el gusto de eliminarlas. Tambin, como es lgico, las borramos de las restricciones. Ahora , sin
estorbos, sin constantes M, o variables artificiales que nos retracen el paso, por que vamos de prisa,
realizamos la iteracin,. y para el colmo de nuestra suerte, en slo una iteracin acabamos.
Encontramos el valor de Z. He escogido el mismo programa para resolverlo por la Gran M que por el
mtodo de las dos fases. Comprelo a ver cul le gusta ms... a mi me gustaba ms el mtodo de la
Gran M, pero ahora me esta gustando ms el mtodo de las Dos Fases... aunque la verdad, en la
prctica, en la vida real, nunca he resuelto a mano un programa lineal, si no que siempre he usado un
software... mi jefe no me paga ms, por ms iteraciones que calcul, si no por que le entregue una
respuesta rpida y exacta de lo que se necesita: Si. Lo s. A veces, la vida es triste :)

14
Ing. Israel Rivas Alvarez

15
Ing. Israel Rivas Alvarez

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