Sunteți pe pagina 1din 51

MATE 3012

Método Simplex – maximización


estándar
Problema de maximización estándar

Un problema de maximización de programación lineal


está en la forma estándar, si la función objetiva
𝑤 = 𝑐1 𝑥1 + 𝑐2 𝑥2 + 𝑐3 𝑥3 + ⋯ + 𝑐𝑛 𝑥𝑛
debe ser maximizada, sujeto a las restricciones
Método simplex
El método geométrico (o gráfico) para resolver
problemas de programación lineal presentado antes
es útil sólo para los problemas que afectan a dos
variables de decisión y relativamente pocas
restricciones del problema.

¿Qué hacemos cuando necesitamos más variables de


decisión y más restricciones en el problema?
Utilizamos un método algebraico llamado el método
simplex, que fue desarrollado por George B. Dantzig
(1914-2005) en 1947, mientras estaba con el
Departamento de la Fuerza Aérea de los Estados
Unidos.
Programación Lineal - vocabulario
1. Función objetivo - una función que expresa la cantidad a
ser maximizada o minimizada en términos de las otras
variables.
2. Restricción - una condición o limitación que se aplica a la
elección de valores para las variables.
3. Problema de maximización estándar - un problema de
programación lineal para la cual la función objetiva debe
ser maximizada y todas las restricciones son
desigualdades de la forma “menor-o-igual-a (≤)
4. Variable de holgura (slack variable) - una variable que se
utiliza para convertir un " menor-o-igual-a” en una
ecuación.
5. Matriz aumentada - una matriz que representa un
sistema de ecuaciones lineales.
Programación Lineal – vocabulario
(continuación).
6. Solución óptima - el conjunto de variables con valores
distintos de cero que maximizan o minimizan la función
objetiva.
7. Variable básica - una variable que forma parte de la
solución óptima del problema .
8. Columna pivote - la columna de la tabla simplex que
representa una variable que entrará en la solución
óptima.
9. Fila pivote - la fila de una tabla simplex que representa la
variable que sale de la solución óptima
10. elemento pivote o pivote- el elemento que se encuentra
en la intersección de la columna pivote y la fila pivote.
Problema de Programación Lineal
La empresa Cannon Hill produce muebles: sillas y
mesas.
• Cada mesa toma 4 horas de
mano de obra y 2 horas de acabado.
• Cada silla requiere 3horas de carpintería y 1
hora de terminaciones.
• Hasta ahora se tienen disponibles 240 horas de
tiempo de carpintería y 100 horas de tiempo de
acabado.
• Cada mesa producida da una ganancia de $70 y
cada silla una ganancia de $50.
• ¿Cuántas sillas y mesas debe hacer para
maximizar ganancias?
Construcción del Modelo
• Variables de decisión
• x: cantidad de mesas construidas en Cannon Hill
• y: cantidad de sillas construidas en Cannon Hill
• Función-objetiva
• El objetivo es maximizar el ganancia.
P  70x  50y
• Conjunto de restricciones
4 x + 3 y ≤ 240 (restricción de mano de obra para carpintería)

2 x + y ≤ 100 (restricción de mano de obra para acabado)

x ≥ 0 , y ≥ 0 (restricción de mano de no-negatividad)


Procedimento de Método Simplex
Armar la tabla simplex
Paso 1: cada desigualdad (≤) se convierte en un ecuación
introduciendo una variable de holgura (slack variable).
Las variables de holgura representan las horas que sobran para
carpintería y acabado sino se utilizan todas.

4𝑥 + 3𝑦 + 𝑠1 = 240
2𝑥 + 𝑦 + 𝑠2 = 100
𝑥 ≥ 0, 𝑦 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
• Paso 2: Despejar la función objetiva(todas las
variables al lado izquierdo).

4𝑥 + 3𝑦 + 𝑠1 = 240
2𝑥 + 𝑦 + 𝑠2 = 100
𝑃 − 70𝑥 − 50𝑦 = 0
𝑥 ≥ 0, 𝑦 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
• Paso 3: Tabla para cálculos. 4𝑥 + 3𝑦 + 𝑠1 = 240
2𝑥 + 𝑦 + 𝑠2 = 100
𝑃 − 70𝑥 − 50𝑦 = 0

En las columnas aparecerán todas las variables del


problema y en las filas, los coeficientes de las
ecuaciones obtenidas.
Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240

s2 2 1 0 1 100

P -70 -50 0 0 0
1ra Iteración:
Paso 1: Deteminar cuál variable debe entrar a la solución
Para escoger la variable de decisión que entra a la solución óptima,
observamos la fila que muestra los coeficientes de la función objetiva
y escogemos la variable con el coeficiente más negativo.
(Esta es la variable que aporta más a las ganancias.)

columna pivote
Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240

s2 2 1 0 1 100

P -70 -50 0 0 0
Paso 2: Deteminar cuál variable debe salir de la solución
Para encontrar la variable de holgura que tiene que
salir de la solución , se divide cada término de la última
columna (valores constante) entre el término
correspondiente de la columna pivote, siempre que
estos últimos sean mayores que cero .
Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240

s2 2 1 0 1 100

P -70 -50 0 0 0
Paso 2: Deteminar cuál variable debe salir de la solución
(continuación).
El término de la columna pivote que en la división
anterior dé lugar al cociente positivo menor, indica la
fila de la variable de holgura que sale de la base, s2. Esta
fila se llama fila pivote.

Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240
240 / 4  60

s2 2 1 0 1 100 100 / 2  50

P -70 -50 0 0 0

Pivote
• Paso 3: 1ra operación sobre las fila pivote
Los nuevos coeficientes de la fila pivote se obtienen
dividiendo todos los coeficientes de la fila pivote entre
el elemento pivote, “2”.

Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240

sx2 12 0.5
1 00 0.5
1 50
100

P -70 -50 0 0 0

Pivote
• Paso 4: Usar operaciones sobre las filas para que
todos los elementos de la columna pivote sean 0,
excepto el pivote.

Variables que
entran a
la
solución x y s1 s2 constantes

s1 4 3 1 0 240  4 R
2  R1

x 12 0.5
1 00 0.5
1 50
100

P -70 -50 0 0 0 70 R2  R3

Lograr ceros en estas


posiciones usando fila pivote.
Asi, obtenemos el siguiente cuadro:
Variables que
entran a
la
solución x y s1 s2 constantes

s1 0 1 1 -2 40

x 12 0.5
1 00 0.5
1 50
100

P 0 -15 0 35 3500

• Fin de la primera iteración. La solución hasta ahora es:


• Hasta aquí se sabe que 50 mesas van a
contribuir $3500 de ganancia.
• Sobran 40 horas de carpintería , por lo
tanto debe haber una solución mejor.
• Repetimos el proceso.
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes

s1 0 1 1 -2 40

x 12 0.5
1 00 0.5
1 50
100

P 0 -15 0 35 3500

Paso 1: Nuevamente, para escoger la variable de decisión


que entra a la solución, observamos la fila que muestra
los coeficientes de la función objetiva y escogemos la
variable con el coeficiente más negativo.
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes

40 / 1  40
s1 0 1 1 -2 40
50 / 0.5  100
x 12 0.5
1 00 0.5
1 50
100

P 0 -15 0 35 3500

Paso 2: Para encontrar la variable de holgura que tiene que salir de la


base, se divide cada término de la última columna (valores constantes)
entre el término correspondiente de la columna pivote, siempre que estos
últimos sean mayores que cero . Sale la variable que da la razón menor.
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes

y 0 1 1 -2 40

x 12 0.5
1 00 0.5
1 50
100

P 0 -15 0 35 3500

Paso 3: 1ra operación sobre filas: dividir cada elemento de la fila pivote
entre el elemento pivote.
En este caso como el pivote es 1, brincamos este paso.
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes

y 0 1 1 -2 40

x 12 0.5
1 00 0.5
1 50 0.5R1  R2
100

P 0 -15 0 35 3500
15R1  R3

Lograr ceros en estas posiciones usando fila pivote.

Paso 4: Operaciones sobre filas para lograr ceros en la columna pivote.


2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes

y 0 1 1 -2 40

x 12 01 -0.5
0 1.5
1 30
100

P 0 0 15 5 4100
La solución ahora es:
Como ya las entradas de la última fila son
positivas, hemos terminado.
Solución óptima

Se deben construir:
30 mesas
40 sillas
Ganancia máxima = $4100
No sobran horas de carpintería ni de
acabado
Método simplex para problemas de
maximización estándar (resumen)
Para solucionar un problema de maximización estándar por el método
simplex, seguimos los siguientes pasos:
1. Seleccione la columna pivote (la columna con el elemento "más
negativo" en la fila de la función objetivo).
2. (Esta variable ENTRA a la solución.)
3. Seleccione la fila pivote (la fila con el resultado no negativo más
pequeño, cuando el último elemento de la fila se divide entre el
elemento correspondiente en la columna pivote).
(Esta variable SALE de la solución.)
4. Calcular los nuevos valores de la fila pivote (dividir cada valor en
la fila entre el pivote).
5. Utilice operaciones de fila para que todos los números en la
columna pivote sean igual a 0, excepto el pivote.
6. Repetir el proceso hasta que todos los valores en la última fila
sean positivos.
Método simplex para problemas de
maximización estándar (aclaraciones)

1. Cuando se determina el valor más negativo en el


último renglón, no se dene considerar la entrada más
hacia la derecha.
2. Si hay más de un candidato para la columna pivote
(empate), escoja cualquiera.
3. Para determinar la fila pivote, use solamente entradas
positivas en la columna pivote (no considere
negativos.)
4. Si NO hay números negativos en el último renglón
(excluyendo la entrada más hacia la derecha), entonces
está terminado el proceso.
Problema de PL - maximización
Un empresario dedicado a vender barcos hizo las
siguientes observaciones:
• un modelo común produce una ganancia de $520
• un modelo llamado rápido produce un beneficio
de $ 450.
• el modelo común requiere 40 horas para
construir y 24 horas para terminaciones.
• cada modelo rápido requiere de 25 horas para la
construcción y 30 horas para terminaciones.
• Este empresario cuenta con 400 horas de trabajo
al mes para la construcción y 360 horas para
terminaciones.
• ¿De qué forma se podrá producir cada uno de los
modelos con el fin de maximizar el beneficio?
Construcción del Modelo

• Variables de decisión
• x1: cantidad de barcos del Modelo Común
• x2: cantidad de barcos del Modelo Rápido

• Función-objetiva
• El objetivo es maximizar el lucro.

Z  520 x1  450 x2
• Conjunto de restricciones

40x1  25x 2  400


24x1  30x 2  360
Modelo

Maximizar Z= 520𝑥1 + 450𝑥2


40𝑥1 + 25𝑥2 ≤ 400
sujeto a: 24𝑥1 + 30𝑥2 ≤ 360
𝑥1 ≥ 0, 𝑥2 ≥ 0

Restricciones de
no-negatividad
Procedimento de Método Simplex

Preparar la tabla simplex:


Paso 1: Introducir una variables de holgura para cada
restricción en el sistema y para la función objetiva.

Z= 520𝑥1 + 450𝑥2 + 0𝑠1 + 0𝑠2


40𝑥1 + 25𝑥2 + 𝑠1 = 400
24𝑥1 + 30𝑥2 + 𝑠2 = 360
𝑥1 ≥ 0, 𝑥2 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
Paso 2: Despejar la función objetiva(todas las
variables al lado izquierdo).

Z−520𝑥1 − 450𝑥2 − 0𝑠1 − 0𝑠2 = 0


40𝑥1 + 25𝑥2 + 𝑠1 = 400
24𝑥1 + 30𝑥2 + 𝑠2 = 360
𝑥1 ≥ 0, 𝑥2 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
• Paso 3: Tabla para cálculos.
40𝑥1 + 25𝑥2 + 𝑠1 = 400
24𝑥1 + 30𝑥2 + 𝑠2 = 360
Z−520𝑥1 − 450𝑥2 − 0𝑠1 − 0𝑠2 = 0
En las columnas aparecerán todas las variables del problema y
en las filas, los coeficientes de las ecuaciones obtenidas. Se coloca
una fila para cada restricción y la una fila con los coeficientes de
la función objetivo:

Solución x1 x2 s1 s2 Constantes

s1
40 25 1 0 400
s2
24 30 0 1 360
Z -520 -450 0 0 0
1ra Iteración:
Paso 1: Determinar cuál variable debe en la solución

Solución x1 x2 s1 s2 Constantes

s1 40 25 1 0 400
s2 24 30 0 1 360
Z -520 -450 0 0 0

Para escoger la variable de decisión que entra en la base,


observamos la fila que muestra los coeficientes de la función
objetiva y escogemos la variable con el coeficiente más negativo.
Paso 2: Determinar cuál variable debe salir de la solución

Solución x1 x2 s1 s2 Constantes

s1 40 25 1 0 400
400 / 40  10
s2 24 30 0 1 360
360 / 24  15
Z -520 -450 0 0 0

Para encontrar la variable de holgura que tiene que salir de la


base, se divide cada término de la última columna (valores
solución) por el término correspondiente de la columna pivote,
siempre que estos últimos sean mayores que cero .
Paso 3: Operaciones sobre filas
Los nuevos coeficientes de la fila pivote se obtienen
dividiendo todos los coeficientes de la fila entre el pivote
operacional “40”, ya que este se debe convertir en 1.

Pivote

Solución x1 x2 s1 x4
1
x1 40 25 1 0 400  R1
40
s2 24 30 0 1 360
Z -520 -450 0 0 0
1ª operación: Dividir a 1ª fila entre 40.

Solución x1 x2 s1 s2 Constantes

x1 1 0.625 0.025 0 10
 24  R1  R2
s2 24 30 0 1 360
520  R1  R3
Z -520 -450 0 0 0

Lograr ceros en estas


posiciones usando fila pivote.
Asi, obtenemos el siguiente cuadro:

Solución x1 x2 s1 s2 Constantes

x1 1 0.625 0.025 0 10
s2 0 15 -0.6 1 120
Z 0 -125 13 0 5200

• Fin de la primera iteración. La solución ahora es:


• Hasta aquí se sabe que 10 botes del 𝑥1 10
modelo común van a contribuir $5200 de 𝑥2 0
ganancia.
𝑠1 = 0
• Sobran 120 horas de acabado, por lo
tanto debe haber una solución mejor. 𝑠2 120
• Repetimos el proceso. 𝑍 5200
2da Iteración:

Solución x1 x2 s1 s2 Constantes

x1 1 0.625 0.025 0 10
s2 0 15 -0.6 1 120
Z 0 -125 13 0 5200

Nuevamente, para escoger la variable de decisión que


entra en la base, observamos la fila que muestra los
coeficientes de la función objetiva y escogemos la variable
con el coeficiente más negativo.
Decidir variables que entran y salen a la solución:

Pivote

Solución x1 x2 s1 s2 Constantes

x1 1 0.625 0.025 0 10
10 / 0.625  16
s2 0 15 -0.6 1 120
120 / 15  8
Z 0 -125 13 0 5200

Para encontrar la variable de holgura que tiene que


salir de la base, se divide cada término de la última
columna (valores solución) entre el término
correspondiente de la columna pivote, siempre que
estos últimos sean mayores que cero .
• 1ª operación: Dividir la 2ª fila entre 15.

Solución x1 x2 s1 s2 Constantes
 0.625  R2  R1
x1 1 0.625 0.025 0 10
x2 0 1 -0.04 1/15 8

Z 0 -125 13 0 5200
125  R2  R3

Lograr ceros en estas


posiciones usando fila pivote.
Asi, obtenemos el siguiente cuadro:

Solución x1 x2 s1 s2 Constantes
x1 1 0 0.05 -0.042 5
x2 0 1 -0.04 1/15 8
Z 0 0 8 125/15 6200

La solución ahora es:


Como todos los coeficientes de la 𝑥1 5
fila de la función objetiva son
positivos, hemos llegado a la
𝑥2 8
solución óptima. 𝑠1 = 0
𝑠2 0
𝑍 6200
• Solución óptima

5 barcos modelo común


8 barcos modelo rápido
Lucro = $6200
Ejemplo: Simplex con más de dos
iteraciones
Resolver el siguiente problema de programacion lineal:

Maximizar Z = 3x1 + 2x2

Sujeto a: 2x1 + x2 ≤ 18

2x1 + 3x2 ≤ 42

3x1 + x2 ≤ 24

x1 ≥ 0 , x2 ≥ 0
FORMA ESTANDAR:

2x1 + x2 + s1 = 18

2x1 + 3x2 + s2 = 42

3x1 + x2 + s3 = 24

Variables de holgura
Tablero Inicial

Base Variable de Variable de holgura Solución


decisión

X1 X2 S1 S2 S3

S1 2 1 1 0 0 18

S2 2 3 0 1 0 42

S3 3 1 0 0 1 24

Z -3 -2 0 0 0 0
Iteración No. 1

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

S1 2 1 1 0 0 18 18/2 = 9

S2 2 3 0 1 0 42 42/2 = 21

S3 3 1 0 0 1 24 24/3 = 8

Z -3 -2 0 0 0 0
Resultado de Iteración No. 1

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

S1 0 1/3 1 0 -2/3 2 f(S1) – 2 f(X1)

S2 0 7/3 0 1 -2/3 26 f(S2) – 2 f(X1)

X1 1 1/3 0 0 -1/3 8 (1/3) X1

Z 0 -1 0 0 1 24 f(Z) + 3 f(X1)
Iteración No. 2

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

S1 0 1/3 1 0 -2/3 2 2/(1/3) = 6

S2 0 7/3 0 1 -2/3 26 26/(7/3) = 78/7

X1 1 1/3 0 0 -1/3 8 8/(1/3) = 24

Z 0 -1 0 0 1 24
Resultado de Iteración No. 2

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

X2 0 1 3 0 -2 6 3X2

S2 0 0 -7 1 4 12 f(S2) – (7/3) f(X2)

X1 1 0 -1 0 1 6 f(X1) – (1/3) f(X2)

Z 0 0 3 0 -1 30 f(Z) + f(X2)
Iteración No. 3

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

X2 0 1 3 0 -2 6 No se toma por
ser negativo
S2 0 0 -7 0 4 12 12/4 = 3

X1 1 0 -1 0 1 6 6/1 = 6

Z 0 0 3 0 -1 30
Resultado de Iteración No. 3

Base Variable de Variable de holgura Solución Operación


decisión

X1 X2 S1 S2 S3

X2 0 1 -1/2 0 0 12 f(X2) + 2 f(S3)

S3 0 0 -7/4 0 1 3 (1/4) S3

X1 1 0 -3/4 0 0 3 f(X1) – f(S3)

Z 0 0 5/4 0 0 33 f(Z) + f(S3)


Tablero Final

Base Variable de Variable de holgura Solución


decisión

X1 X2 S1 S2 S3

X2 0 1 -1/2 0 0 12

S3 0 0 -7/4 0 1 3

X1 1 0 -3/4 0 0 3

Z 0 0 5/4 0 0 33

Como todos los coeficientes de la fila de la función objetivo son


positivos, hemos llegado a la solución óptima.
Tablero Final

Base Variable de Variable de holgura Solución


decisión

X1 X2 S1 S2 S3

X2 0 1 -1/2 0 0 12

S3 0 0 -7/4 0 1 3

X1 1 0 -3/4 0 0 3

Z 0 0 5/4 0 0 33

Los solución óptima viene dada por la columna Solución, X1 = 3,


X2 = 12 y Z = 33.

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