Sei sulla pagina 1di 25

Método Simplex

Conceptos
Método Simplex
El método simplex es un método de solución de
problemas de programación lineal. Fue desarrollado por
George Dantzing en 1947.
Es un procedimiento iterativo que permite ir mejorando
la solución a cada paso. El proceso concluye cuando no es
posible seguir mejorando más dicha solución.
Partiendo del valor de la función objetivo en un vértice
cualquiera, el método consiste en buscar sucesivamente
otro vértice que mejore la del vértice anterior.
La búsqueda se hace siempre a través de los lados del
polígono (o de las aristas del poliedro).
Si el número de vértices (y de aristas) es finito, siempre
se podrá encontrar la solución.
El método Simplex se basa en la siguiente propiedad: si la
función objetivo no toma su valor máximo en el vértice A,
entonces hay un vértice (una arista) que parte de A, a lo
largo de la cual la función objetivo mejorará.
Condiciones
Para desarrollar el método simplex, todo modelo de
programación lineal debe ser llevado a una forma
estándar que debe cumplir con las siguientes
condiciones:
1. La función objetivo es de la forma de maximización o de
minimización.
2. Todas las restricciones son de igualdad.
3. Todas las variables son no negativas.
4. Las constantes a la derecha de las restricciones son no
negativas.
Forma estándar del modelo
Función objetivo: Max Z = c1·x1 + c2·x2 + ... + cn·xn
Sujeto a:
a11·x1 + a12·x2 + ... + a1n·xn = b1
a21·x1 + a22·x2 + ... + a2n·xn = b2
...
am1·x1 + am2·x2 + ... + amn·xn = bm
x1,..., xn ≥ 0
Convertir un pl en una forma
estándar
Ejemplo 1.-
Max Z = 4.x1 + 3.x2 
Sujeto a: x1 + x2  <= 40
2.x1 + x2  <= 60
x1, x2 ≥ 0

Una restricción <= se puede convertir en una restricción


= al sumar una variable si (si variable de holgura de la i-
ésima restricción) a la respectiva restricción i y añadir la
restricción de signo si >= 0.
Ejemplo 2.-
Min Z = 50 x1 + 20 x2 + 30 x3 + 80 x4 
Sujeto a:
400 x1 + 200 x2 + 150 x3 + 500 x4 >= 500
3 x1 + 2 x2  >= 6
2 x1 + 2 x2 + 4 x3 + 4 x4 >= 10
2 x1 + 4 x2 + x3 + 5 x4 >= 8
x1, x2, x3, x4 ≥ 0

Una restricción >= se puede convertir en una restricción


= al restar una variable ei (ei variable de excedente de la i-
ésima restricción) a la respectiva restricción i y añadir la
restricción de signo ei >= 0.
Variables básicas y no básicas
En un modelo de programación lineal, con m ecuaciones
lineales (restricciones) y n variables (suponga n > m), una
solución básica se obtiene haciendo n – m variables a
cero y luego se determina el valor de las m variables
restantes.
Con el objeto de encontrar una solución básica, primero
se escoge el conjunto de m-n variables iguales a cero
(variables no básicas – VNB) y luego las restantes
diferentes a cero (variables básicas - VB).
Soluciones factibles
Cualquier solución básica en la cual todas las variables
son no negativas es una solución básica factible – sbf.
Un punto en la región factible de un modelo de
programación lineal es un punto extremo si y sólo si es
una solución factible básica para el modelo.
Algoritmo simplex
1.  Convierta la PL en la forma estándar
2. Obtenga si es posible una sfb a partir de la forma
estándar
3. Determine si la sfb es óptima
4. Si la sfb no es óptima, entonces determine cuál variable
no básica se debe transformar en variable básica y cuál
variable básica se debe transformar en variable no
básica con el objeto de hallar una nueva sfb con el
mejor valor de la función objetivo
5. Aplique la operación elemental con renglón – OER,
para encontrar la nueva sbf con el nuevo valor de la
función objetivo. Regrese al paso 3.
Al ejecutarse el algoritmo simplex, la función objetivo :

Z = c1·x1 + c2·x2 + ... + cn·xn

se escribe de la forma:
Z - c1·x1 + c2·x2 + ... + cn·xn = 0

este formato se denomina renglón 0.


Método Simplex
Solución de problemas de maximización
Ejemplo 3.-
Desarrolle el algoritmo Simplex para el siguiente modelo
de programación lineal

Max Z = 60 x1 + 30 x2 + 20 x3
s.a:
8 x1 + 6 x2 + x3 <= 48
4 x1 + 2 x2 + 1,5 x3 <= 20
2 x1 + 1,5 x2 + 0,5 x3 <= 8
x2 <= 5
x1, x2, x3 >= 0
Conversión a la forma estándar
Max Z = 60 x1 + 30 x2 + 20 x3
s a:
8 x1 + 6 x2 + x3 + s1 = 48
4 x1 + 2 x2 + 1,5 x3 + s2 = 20
2 x1 + 1,5 x2 + 0,5 x3 + s3 = 8
x2 + s4 = 5
x1, x2, x3, s1, s2, s3, s4 >= 0
Formato de renglón 0 para la función objetivo
Se numeran los renglones correspondientes a
restricciones
Por inspección se obtiene la sbf inicial
Variables:VB = {s1, s2, s3, s4}y VNB = {x1, x2, x3}

R Variable
Básica
0 Z - 60 x1 - 30 x2 - 20 x3 = 0 Z = 0
1 8 x1 + 6 x2 + x3 + s1 = 48 s1 = 48
2 4 x1 + 2 x2 + 1,5 x3 + s2 = 20 s2 = 20
3 2 x1 + 1,5 x2 + 0,5 x3 + s3 = 8 s3 = 8
4 x2 + s4 = 5 s4 = 5
¿Es óptima la solución factible actual?
Si la sfb no es óptima, trate de encontrar una adyacente a
la sfb inicial con un valor de Z más grande.
Se trata de incrementar Z al incrementar una variable no
básica a partir de su actual valor cero, pero manteniendo
las otras variables no básicas en sus valores actuales cero.

Z = 60.x1 + 30.x2 + 20.x3

En el ejemplo, incrementando cualquier variable no


básica aumenta Z.
Como el incremento de una unidad de x1 ocasiona el
mayor incremento de Z, se decide incrementar x1 a partir
de su actual valor cero.
X1 se denomina entonces variable entrante.

Determinación del valor de la variable entrante

Se escoge la variable entrante (maximización) como la


variable no básica con el coeficiente más negativo en el
renglón 0.
Como al aumentar x1 aumenta Z, debemos hacer x1 tan
grande como sea posible.
Cuando x1 aumenta, los valores actuales de las variables
básicas cambian. Eso podría originar que una variable
básica se vuelva negativa.
La idea es incrementar x1 conservando x2 = x3 = 0.
Entonces: del renglón 1: s1 = 48 – 8.x1
del renglón 2: s2 = 20 – 4.x1
del renglón 3: s3 = 8 – 2.x1
del renglón 4: s4 = 5 para cualquier valor
x1
Como s1 >= 0 entonces x1 <= 6
Como s2 >= 0 entonces x1 <= 5
Como s3 >= 0 entonces x1 <= 4
Como s4 = 5 entonces todos los valores de x1

A su vez, estos posibles valores determinan los límites de


los valores de x1 en los respectivos renglones.
Prueba del cociente:
Cuando introduzca una variable en la base, calcule el
cociente siguiente por cada restricción en la cual:

Lado derecho del renglón n


Coeficiente de la variable entrante en la región
La restricción con el cociente más pequeño se denomina
ganador de la prueba de cociente. En el ejemplo, el
ganador es el renglón 3.
Determinación de una nueva sbf. Pivoteo de la variable
entrante
La variable entrante se transforma en variable básica en
el renglón que gana la prueba de cociente (renglón de
pivoteo).
La variable entrante debe tener coeficiente 1 en el
renglón de pivoteo y coeficiente 0 en lo demás renglones.
R Variable
Básica
0’ Z + 15 x2 - 5 x3 + 30 s3 = 240 Z = 240
1’ - x3 + s1 - 4 s3 = 16 s1 = 16
2’ - x2 + 0,5 x3 + s2 - 2 s3 = 4 s2 = 4
3’ x1 + 0,75 x2 + 0,25 x3 + 0,5 s3 = 4 x1 = 4
4’ x2 + s4 = 5 s4 = 5
Se ha pasado de una sbf a otra sbf mejor (aumentó el
valor Z).
El pasar de una sbf a otra sbf mejor se denomina iteración
(o pivoteo) del algoritmo simplex.
Siempre se debe intentar mejorar la sbf, aumentando el
valor Z.
Del renglón 0’:
Z = 240 - 15.x2 + 5.x3 - 30.s3
Si incrementamos el valor de x3, se incrementa el valor de
Z, por lo que decidimos que x3 entre a la base
(conservando x2 = s3 = 0).
Entonces:
del renglón 1’: s1 = 16 + x3
del renglón 2’: s2 = 4 – 0,5.x3
del renglón 3’: x1 = 4 – 0,25.x3
del renglón 4’: s4 = 5 para cualquier valor x3
Como s1 >= 0 entonces todos los valores de x3
Como s2 >= 0 entonces x3 <= 8
Como x1 >= 0 entonces x3 <= 16
Como s4 = 5 entonces todos los valores de x3
El cociente más pequeño es del renglón 2’, por lo que
hacemos que x3 sea una variable básica en el renglón 2’.
R Variable
Básica

0’’ Z + 5 x2 + 10 s2 + 10 s3 = 280 Z = 280


1’’ - 2 x2 + s1 + 2 s2 – 8 s3 = 24 s1 = 24
2’’ - 2 x2 + x3 + 2 s2 - 4 s3 = 8 x3 = 8
3’’ x1 + 1,25 x2 - 0,5 s2 + 1,5 s3 = 2 x1 = 2
4’’ x2 + s4 = 5 s4 = 5
Utilice el algoritmo simplex para determinar la solución
al siguiente modelo de PL.

a) Max Z = 2 x1 + 3 x2
s.a: x1 + 2 x2 <= 6
2 x1 + x2 <= 8
x1, x2 >= 0
sol: x1 = 3,333 x2 = 1,333 Z = 10,667

b) Max Z = 2 x1 – x2 + x3
s.a: 3 x1 + x2 + x3 <= 60
x1 - x2 + 2 x3 <= 10
x1 + x2 - x3 <= 20
x1, x2, x3 >= 0
sol: x1 = 15 x2 = 5 x3 = 0 Z = 25

Potrebbero piacerti anche