Você está na página 1de 73

Tema 2:

Optimizacin lineal
Basado en
Ezequiel Lpez Rubio
Departamento de Lenguajes y Ciencias de
la Computacin
Universidad de Mlaga
Y texto gua Taha.
Mtodo del simplex

Sistema de m ecuaciones y n variables
Infinitas soluciones
Vrtice
n-m variables nulas
(no bsicas)
m variables por
conocer (bsicas)
Inicial: A (0,0), z=0
Otros vrtices?

Introduccin
El mtodo del simplex es un algoritmo
general para resolver problemas de PL
Admite cualquier nmero de variables
Es un mtodo iterativo que nos conduce
progresivamente hasta la solucin final
En cada iteracin examina un punto extremo de la
regin factible S
Si el punto no es ptimo se mueve a otro
Antes de usarlo es preciso pasar el problema a la
llamada forma estndar
Forma estndar
Definicin: Un problema de programacin lineal
est en forma estndar sii est expresado como:
0 ,...,
...
...
...
: a Sujeto
... Maximizar
1
1 1
1 1 1 11
1 1




n
m n mn m
n n
n n
x x
b x a x a
b x a x a
x c x c
Notacin matricial
0
: a Sujeto
Maximizar

x
b x
x c
A
T
Notacin escalar
Paso a la forma estndar
Las dificultades que podemos encontrar para
pasar un problema a forma estndar, y las
soluciones correspondientes son:
Aparece una inecuacin del tipo a
i
T
xb
i
.
aadimos una nueva variable de exceso, s
i
, con
s
i
0
la inecuacin se convierte en a
i
T
xs
i
=b
i
.
La nueva variable aparece con coeficiente cero
en la funcin objetivo.

Paso a la forma estndar
Aparece una inecuacin del tipo a
i
T
xb
i
.
aadimos una nueva variable de holgura, s
i
, con s
i
0
la inecuacin se convierte en la ecuacin a
i
T
x+s
i
=b
i
.
La nueva variable aparece con coeficiente cero en la
funcin objetivo.
Aparece una variable x
i
que no tiene restriccin
de no negatividad.
sustituimos x
i
en todas las restricciones y en la funcin
objetivo por la diferencia de dos variables nuevas x
n+1

- x
n+2
,
Ambas variables son no negativas: x
n+1
0, x
n+2
0.
Paso a la forma estndar
El problema es de minimizar, y no de maximizar
minimizar una funcin objetivo F es lo mismo que
maximizar la funcin objetivo F.
Por tanto, basta con multiplicar por 1 la funcin
objetivo.
Min F = - max (-F)
Ejemplos de paso a la forma
estndar
Maximizar x
1
+ 2x
2

Sujeto a:
1/2 x
1
+ x
2
1
x
1
+ x
2
2
x
1
, x
2
0
Maximizar x
1
+ 2x
2
+ 0x
3

Sujeto a:
1/2 x
1
+ x
2
+x
3
= 1
x
1
+ x
2
2
x
1
, x
2
, x
3
0
Maximizar x
1
+ 2x
2
+ 0x
3
+ 0x
4

Sujeto a:
1/2 x
1
+ x
2
+x
3
= 1
x
1
+ x
2
+x
4
= 2
x
1
, x
2
, x
3
, x
4
0
Ejemplos de paso a la forma
estndar
Maximizar 7x
1
9x
2

Sujeto a:
4 x
1
+ 8x
2
2
3x
1
+ x
2
8
x
1
, x
2
0
Maximizar 7x
1
9x
2
+ 0x
3

Sujeto a:
4 x
1
+ 8x
2
x
3
= 2
3x
1
+ x
2
8
x
1
, x
2
, x
3
0
Maximizar 7x
1
9x
2
+ 0x
3
+ 0x
4

Sujeto a:
4 x
1
+ 8x
2
x
3
= 2
3x
1
+ x
2
+x
4
= 8
x
1
, x
2
, x
3
, x
4
0
Ejemplos de paso a la forma
estndar
Maximizar 3x
1
5x
2

Sujeto a:
10 x
1
+ 18x
2
= 7
4x
1
+ 5x
2
9
x
1
0
Maximizar 3x
1
5x
3
+ 5x
4

Sujeto a:
10 x
1
+18x
3
18x
4


= 2
4x
1
+ 5x
3
5x
4
9
x
1
, x
3
, x
4
0
Maximizar 3x
1
5x
3
+ 5x
4
+ 0x
5

Sujeto a:
10 x
1
+18x
3
18x
4


= 2
4x
1
+ 5x
3
5x
4
+x
5
= 9
x
1
, x
3
, x
4
, x
5
0
Ejemplos de paso a la forma
estndar
Minimizar 7x
1
4x
2

Sujeto a:
8 x
1
+ 2x
2
1
x
1
+ 5x
2
= 6
x
1
, x
2
0
Maximizar 7x
1
+ 4x
2

Sujeto a:
8 x
1
+ 2x
2
1
x
1
+ 5x
2
= 6
x
1
, x
2
0
Maximizar 7x
1
+ 4x
2
+ 0x
3

Sujeto a:
8 x
1
+ 2x
2
+ x
3
= 1
x
1
+ 5x
2
= 6
x
1
, x
2
, x
3
0
Situacin inicial para aplicar el
mtodo simplex
Partimos de un problema de programacin lineal, con m
ecuaciones y n incgnitas (o variables de decisin)
expresado en forma estndar:
0 ,...,
...
...
...
: a Sujeto
... Maximizar
1
1 1
1 1 1 11
1 1




n
m n mn m
n n
n n
x x
b x a x a
b x a x a
x c x c
Adems el mtodo simplex exige que b
i
0 i{1, ..., m}
Versin bsica del algoritmo
simplex
1. Construir la primera tabla
2. Mientras (CondicinParada=Falso) hacer
2.1. Elegir variable que sale
2.2. Elegir variable que entra
2.3. Actualizar tabla
3. Dar resultado

Construccin de la primera
tabla
Dado el problema en forma estandar, se debe
localizar un conjunto de m variables cuyas
columnas formen la matriz identidad.
Estas m variables formarn la primera base, y la
solucin del sistema de ecuaciones se que
obtendra con esos cambios es una solucin bsica
factible (SBF).

Variables bsicas: s1, s2, s3, s3
Variables no bsicas (cero): x1, x2
Coeficientes en la funcin objetivo
Nombre: Costo reducido
- cambio en z si la variable se convierte en bsica
Condicin de optimalidad
Ninguna variable no bsica producira mejoras
en la solucin al hacerse bsica
Es decir, los costos reducidos de todas las
variables no bsicas deben ser POSITIVOS
Variable candidata a hacerse bsica
Producira la mayor mejora (costo reducido ms
negativo): x1
Pivoteo (cambio de solucin bsica)
Debe salir una variable de la base
La primera en hacerse cero cuando aumente la
variable no bsica entrante
Mnima razn b/a, con a>0


Cambio de base
(pivoteo de Gauss-Jordan)
Se debe dejar:
un coeficiente 1 en la columna de la variable que
entra y en la fila de la variable que sale.
Cero en los coeficientes del resto de la columna
de la variable que entra

Condicin de optimalidad: entra x2
Sale: s2
Es ptima?
Informacin adicional
Estado de recursos (escaso/abundante)
Valor de la holgura asociada a la restriccin del
recurso
Valor por unidad (precios duales)
Costo reducido de las variables (asociadas a las
restricciones) que originalmente estaban en la
base
Datos para anlisis de sensibilidad
Ejemplos
Problema:
Maximizar x
1
+ 2x
2
sujeto a:
-1/2 x
1
+ x
2
1
x
1
+ x
2
2
x
1
, x
2
0



Ejemplos
Tabla 1
Base x
1
x
2
h
3
h
4
b

-1 -2 0 0 0
h
3
-1/2 1 1 0 1
h
4
1 1 0 1 2
Criterio de entrada: mn { -1, -2 } = -2, luego entra x
2
Criterio de salida: mn { 1, 2 } = 1, luego sale x
3
Ejemplos
Tabla 2
Criterio de entrada: mn { -2 } = -2, luego entra x
1
Criterio de salida: mn { 2/3 } = 2/3, luego sale x
4
Base x
1
x
2
h
3
h
4
b

-2 0 2 0 2
x
2
-1/2 1 1 0 1
h
4
3/2 0 -1 1 1
Ejemplos
Tabla 3
Se cumple la condicin de parada. Valor ptimo: 10/3
Solucin ptima: (2/3, 4/3, 0, 0)
T
Base x
1
x
2
h
3
h
4
b

0 0 2/3 4/3 10/3
x
2
0 1 2/3 1/3 4/3
x
1
1 0 -2/3 2/3 2/3
Ejemplos
Problema:
Maximizar x
1
+ 6x
2
sujeto a:
-2x
1
+ x
2
4
-x
1
+ x
2
1
2x
1
+ x
2
6
x
1
, x
2
0


Ejemplos
Tabla 1
Base x
1
x
2
h
3
h
4
h
5
b

-1 -6 0 0 0 0
h
3
-2 1 1 0 0 4
h
4
-1 1 0 1 0 1
h
5
2 1 0 0 1 6
Criterio de entrada: mn { -1, -6 } = -6, luego entra x
2
Criterio de salida: mn { 4, 1, 6 } = 1, luego sale x
4
Ejemplos
Tabla 2
Criterio de entrada: mn { -7 } = -7, luego entra x
1
Criterio de salida: mn { 5/3 } = 5/3, luego sale x
5
Base x
1
x
2
h
3
h
4
h
5
b

-7 0 0 6 0 6
h
3
-1 0 1 -1 0 3
x
2
-1 1 0 1 0 1
h
5
3 0 0 -1 1 5
Ejemplos
Tabla 3
Se cumple la condicin de parada. Valor ptimo: 53/3
Solucin ptima: (5/3, 8/3, 14/3, 0, 0)
T
Base x
1
x
2
h
3
h
4
h
5
b

0 0 0 11/3 7/3 53/3
h
3
0 0 1 -4/3 1/3 14/3
x
2
0 1 0 2/3 1/3 8/3
h
5
1 0 0 -1/3 1/3 5/3
Ejemplos
Problema:
Maximizar 5x
1
+ 4x
2
sujeto a:
3x
1
+ 3x
2


10
12x
1
+ 6x
2
24
x
1
, x
2
0



Base x
1
x
2
h
2
h
3
b
z
-5 -4 0 0 0
h
2
3 3 1 0 10
h
3
12 6 0 1 24
Ejemplos
Tabla 1
Base x
1
x
2
h
2
h
3
b
z
-5 -4 0 0 0
h
2
3 3 1 0 10
h
3
12 6 0 1 24
Criterio de entrada: mn { -5, -4 } = -5, luego entra x
1
Criterio de salida: mn { 10/3, 2 } = 2, luego sale x
4
Ejemplos
Tabla 2
Criterio de entrada: mn { -3/2 } = -3/2, luego entra x
2
Criterio de salida: mn { 8/3, 4 } = 8/3, luego sale h
2
Base x
1
x
2
h
2
h
3
b
z
0 -3/2 0 5/12 10
h
2
0 3/2 1 -1/4 4
x
1
1 1/2 0 1/12 2
Ejemplos
Tabla 3
Se cumple la condicin de parada. Valor ptimo: 14
Solucin ptima: (2/3, 8/3, 0, 0)
T
Base x
1
x
2
h
2
h
3
b
z
0 0 1 1/6 14
x
2
0 1 2/3 -1/6 8/3
x
1
1 0 -1/3 1/6 2/3
Ejemplos
Problema:
Maximizar 20x
1
+ 24x
2
sujeto a:
3x
1
+ 6x
2


60
4x
1
+ 2x
2
32
x
1
+ 2x
2
16
x
1
, x
2
0


Ejemplos
Tabla 1
Base x
1
x
2
h
2
h
3
h
4
b

-20 -24 0 0 0 0
h
2
3 6 1 0 0 60
h
3
4 2 0 1 0 32
h
4
1 2 0 0 1 16
Criterio de entrada: mn { -20, -24 } = -24, luego entra x
2
Criterio de salida: mn { 10, 16, 8 } = 8, luego sale h
4
Ejemplos
Tabla 2
Criterio de entrada: mn { -8 } = -8, luego entra x
1
Criterio de salida: mn { 16/3, 16 } = 16/3, luego sale h
3
Base x
1
x
2
h
2
h
3
h
4
b

-8 0 0 0 12 192
h
2
0 0 1 0 -3 12
h
3
3 0 0 1 -1 16
x
2
1/2 1 0 0 1/2 8
Ejemplos
Tabla 3
Se cumple la condicin de parada. Valor ptimo: 704/3
Solucin ptima: (16/3, 16/3, 12, 0, 0)
T
Base x
1
x
2
h
2
h
3
h
4
b

0 0 0 8/3 28/3 704/3
h
2
0 0 1 0 -3 12
x
1
1 0 0 1/3 -1/3 16/3
x
2
0 1 0 -1/6 2/3 16/3
Casos anmalos
Situaciones especiales
Problemas con infinitas
soluciones
En la tabla final hay algn costo reducido en valor
nulo correspondiente a una variable que no est en la
base.
En tal caso, podramos introducir dicha variable en la
base, y nos saldra otra base que dara tambin el valor
ptimo.
El problema tiene infinitas soluciones, todas ellas con el
mismo valor ptimo de la funcin objetivo: un par de
vrtices y todos los puntos sobre la recta que los une
Ejemplos
Problema:
Maximizar 6x
1
+ 3x
2
sujeto a:
-x
1
+ x
2
1
2x
1
+ x
2
6
x
1
, x
2
0



Base x
1
x
2
h
3
h
4
b

-6 -3 0 0 0
h
3
-1 1 1 0 1
h
4
2 1 0 1 6
Ejemplos
Tabla 1
Base x
1
x
2
h
3
h
4
b

-6 -3 0 0 0
h
3
-1 1 1 0 1
h
4
2 1 0 1 6
Criterio de entrada: mn { -6, -3 } = -6, luego entra x
1
Criterio de salida: mn { 3 } = 3, luego sale x
4
Ejemplos
Tabla 2
Se cumple la condicin de parada. Valor ptimo: 18.
Primera solucin ptima: x
A
=(3, 0, 4, 0)
T
En la primera fila, el cero que no est en la base indica otra
solucin ptima. Para hallarla, hacemos entrar a x
2

Base x
1
x
2
h
3
h
4
b

0 0 0 3 18
h
3
0 3/2 1 1/2 4
x
1
1 1/2 0 1/2 3
Ejemplos
Tabla 3
Segunda solucin ptima: x
B
=(5/3, 8/3, 0, 0)
T
. Tambin
son soluciones ptimas todos los puntos del segmento

A
x
A
+
B
x
B
, con
A
,
B
0,
A
+
B
= 1.
Base x
1
x
2
h
3
h
4
b

0 0 0 3 18
x
2
0 1 2/3 1/3 8/3
x
1
1 0 -1/3 1/3 5/3
Problemas con solucin
ilimitada (no acotada)
Al intentar elegir la variable que sale, nos
podemos encontrar con que la columna j que
tena que entrar tiene todos sus elementos
negativos o nulos.
En tal caso el problema tiene solucin
ilimitada, es decir, se puede hacer crecer el
valor de la funcin objetivo tanto como se
quiera sin violar ninguna restriccin.
Para ello, bastara con hacer crecer
ilimitadamente la variable que tena que
entrar en la base.
Ejemplos
Problema:
Maximizar x
1
+ x
2
sujeto a:
5x
1
- x
2
0
x
1
- 4 x
2
0
x
1
, x
2
0



Base x
1
x
2
h
3
h
4
b

-1 -1 0 0 0
h
3
-5 1 1 0 0
h
4
1 -4 0 1 0
Ejemplos
Tabla 1
Criterio de entrada: mn { -1, -1 } = -1, y elegimos que
entre x
1
Criterio de salida: mn { 0/1 } = 0, luego sale h
4
Base x
1
x
2
h
3
h
4
b

-1 -1 0 0 0
h
3
-5 1 1 0 0
h
4
1 -4 0 1 0
Ejemplos
Tabla 2
Criterio de entrada: mn { -5 } = -5, luego entra x
2
Criterio de salida: No hay fracciones con denominador
estrictamente positivo, luego el problema tiene
solucin ilimitada

Base x
1
x
2
h
3
h
4
b

0 -5 0 1 0
h
3
0 -19 1 5 0
x
1
1 -4 0 1 0
Problema infactible
El coeficiente del lado derecho (bj) de una fila
j es negativo y ningn coeficiente (aij) de la
fila es negativo
Solucin degenerada
Ocurre cuando en la solucin ptima (o
intermedia) un valor del lado derecho es
nulo.
Es decir, una variable bsica toma el valor
cero
Bsqueda de la
solucin bsica inicial
Mtodo de la gran M (penalizacin)
Mtodo de las dos fases
Mtodo de la gran M
Por cada restriccin que no cuente con una
variable de holgura agregue una variable
artificial Ri
Penalice cada variable artificial Ri en la
funcin objetivo con un coeficiente +/- M
Si est maximizando use M
Si est minimizando use +M
La optimizacin forzar las Ri a ser cero
Note los coeficientes no nulos (-M) de las variables bsicas R1 y R2
en la fila de la funcin objetivo
Restaurando la base






Y pivoteando:
Luego de dos iteraciones adicionales se alcanza la
solucin ptima
X1 = 2/5 X2 = 9/5 z = 17/5
R1 = 0 R2 = 0

Si las variables artificiales fueran no nulas en la solucin
final significa que el problema es infactible.

En la prctica (clculos computacionales) M>>0 debe
tomar un valor suficientemente grande para funcionar
como penalizacin

Mtodo de las dos
fases
Introduccin
Si al intentar aplicar el mtodo simplex nos
encontramos con que no es posible
encontrar una solucin bsica factible (SBF)
inicial, es preciso usar el mtodo de las dos
fases.
Para ello, usamos el siguiente algoritmo:
1. Aadir variables artificiales al problema
2. Fase I.
3. Fase II.
Adicin de variables
artificiales
Se trata de aadir al problema tantas
variables como sean necesarias para
construir una SBF. Sus coeficientes en las
ecuaciones sern los que convengan para
nuestro propsito.
Por consiguiente, tendremos que cada
variable artificial tendr coeficiente 1 en una
ecuacin y coeficiente 0 en todas las dems
Fase I
Se trata de aplicar el mtodo simplex para resolver un
problema auxiliar de minimizar la suma de las variables
artificiales.
Para que la tabla ptima aparezca lo antes posible
conviene que, en caso de empate en el criterio de salida
y que una de las variables empatadas sea artificial,
saquemos la artificial.
Una vez resuelto este problema auxiliar, caben dos
posibilidades
El valor ptimo de la funcin objetivo es distinto de cero. En tal
caso el problema original no tena solucin.
El valor ptimo de la funcin objetivo es cero. En tal caso
podemos pasar a la Fase II.
Fase II
Consiste en aplicar el mtodo simplex,
usando la funcin objetivo del problema
original, pero empezando con una primera
tabla que se obtiene quitando de la ltima
tabla de la Fase I las columnas de las
variables artificiales
La solucin obtenida en la Fase II ser la
solucin del problema original (tngase en
cuenta que en la Fase II no aparecen
variables artificiales)
Ejemplo




Se debe eliminar los (-1) en la fila r para R1 y
R2
Luego se debe chequear optimalidad en r y
pivotear
Tabla resultante (final fase I):





R1 y R2 no estn en la base, se eliminan del
problema y se pasa a Fase II
x1, x2 y x4 son bsicas en la solucin inicial
El problema al inicio de la Fase II se ve:
Reconstruyendo la base






Solucin ptima
Lectura complementaria
http://www.angelfire.com/ak5/invo1_escom/clase12.pdf
http://www.angelfire.com/ak5/invo1_escom/clase13.pdf
http://www.angelfire.com/ak5/invo1_escom/clase14.pdf (WinQSB)
http://www.angelfire.com/ak5/invo1_escom/clase15.pdf
http://www.angelfire.com/ak5/bustosfarias/16_MINIMIZACION.pdf

Você também pode gostar