método simplex maximización estándar - mate 3012 · pdf file•paso 4:...
Post on 24-Feb-2018
217 Views
Preview:
TRANSCRIPT
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.
50y 70x P
• 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)
4𝑥 + 3𝑦 + 𝑠1 = 2402𝑥 + 𝑦 + 𝑠2 = 100
𝑥 ≥ 0, 𝑦 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
Procedimento de Método 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.
Armar la tabla simplex
• Paso 2: Despejar la función objetiva(todas las variables al lado izquierdo).
4𝑥 + 3𝑦 + 𝑠1 = 2402𝑥 + 𝑦 + 𝑠2 = 100𝑃 − 70𝑥 − 50𝑦 = 0
𝑥 ≥ 0, 𝑦 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
• Paso 3: Tabla para cálculos.
Variables que
entran a
la
solución x y s1 s2 constantes
s1
s2
P
4 3 1 0 240
2 1 0 1 100
-70 -50 0 0 0
En las columnas aparecerán todas las variables del problema y en las filas, los coeficientes de las ecuaciones obtenidas.
4𝑥 + 3𝑦 + 𝑠1 = 2402𝑥 + 𝑦 + 𝑠2 = 100𝑃 − 70𝑥 − 50𝑦 = 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
s2
P
4 3 1 0 240
2 1 0 1 100
-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
s2
P
4 3 1 0 240
2 1 0 1 100
-70 -50 0 0 0
Pivote
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.
502/100
604/240
Variables que
entran a
la
solución x y s1 s2 constantes
s1
s2
P
4 3 1 0 240
2 1 0 1 100
-70 -50 0 0 0
• 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”.
Pivote
Variables que
entran a
la
solución x y s1 s2 constantes
s1
s2
P
4 3 1 0 240
2 1 0 1 100
-70 -50 0 0 0
1 0.5 0 0.5 50 x
• Paso 4: Usar operaciones sobre las filas para que todos los elementos de la columna pivote sean 0, excepto el pivote.
Lograr ceros en estas posiciones usando fila pivote.
Variables que
entran a
la
solución x y s1 s2 constantes
s1
x
P
4 3 1 0 240
2 1 0 1 100
-70 -50 0 0 0
1 0.5 0 0.5 50
124 RR
3270 RR
Asi, obtenemos el siguiente cuadro:
• Fin de la primera iteración. • 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.
Variables que
entran a
la
solución x y s1 s2 constantes
s1
x
P
0 1 1 -2 40
2 1 0 1 100
0 -15 0 35 3500
1 0.5 0 0.5 50
La solución hasta ahora es:
2da iteración:
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.
Variables que
entran a
la
solución x y s1 s2 constantes
s1
x
P
0 1 1 -2 40
2 1 0 1 100
0 -15 0 35 3500
1 0.5 0 0.5 50
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes
s1
x
P
0 1 1 -2 40
2 1 0 1 100
0 -15 0 35 3500
1 0.5 0 0.5 50
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.
1005.0/50
401/40
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes
y
x
P
0 1 1 -2 40
2 1 0 1 100
0 -15 0 35 3500
1 0.5 0 0.5 50
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
x
P
0 1 1 -2 40
2 1 0 1 100
0 -15 0 35 3500
1 0.5 0 0.5 50
Paso 4: Operaciones sobre filas para lograr ceros en la columna pivote.
Lograr ceros en estas posiciones usando fila pivote.
215.0 RR
3115 RR
2da iteración:
Variables que
entran a
la
solución x y s1 s2 constantes
y
x
P
0 1 1 -2 40
2 1 0 1 100
0 0 15 5 4100
1 0 -0.5 1.5 30
Como ya las entradas de la última fila son positivas, hemos terminado.
La solución ahora es:
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.
21 450520 xxZ
• Conjunto de restricciones
1 240x 25x 400
1 224x 30x 360
Modelo
Restricciones de
no-negatividad
Maximizar Z= 520𝑥1 + 450𝑥2
sujeto a: 40𝑥1 + 25𝑥2 ≤ 40024𝑥1 + 30𝑥2 ≤ 360𝑥1 ≥ 0, 𝑥2 ≥ 0
Z= 520𝑥1 + 450𝑥2 + 0𝑠1 + 0𝑠2
40𝑥1 + 25𝑥2 + 𝑠1 = 40024𝑥1 + 30𝑥2 + 𝑠2 = 360
𝑥1 ≥ 0, 𝑥2 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
Procedimento de Método Simplex
Paso 1: Introducir una variables de holgura para cada restricción en el sistema y para la función objetiva.
Preparar la tabla simplex:
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 = 40024𝑥1 + 30𝑥2 + 𝑠2 = 360
𝑥1 ≥ 0, 𝑥2 ≥ 0, 𝑠1 ≥ 0, 𝑠2 ≥ 0
• Paso 3: Tabla para cálculos.
Solución x1 x2 s1 s2 Constantes
s1
s2
Z
40 25 1 0 400
24 30 0 1 360
-520 -450 0 0 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:
40𝑥1 + 25𝑥2 + 𝑠1 = 40024𝑥1 + 30𝑥2 + 𝑠2 = 360
Z−520𝑥1 − 450𝑥2 − 0𝑠1 − 0𝑠2 = 0
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
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.
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
Paso 2: Determinar cuál variable debe salir de la solución
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 .
1040/400
1524/360
Solución x1 x2 s1 x4
x1 40 25 1 0 400
s2 24 30 0 1 360
Z -520 -450 0 0 0
Pivote
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.
140
1R
1ª operación: Dividir a 1ª fila entre 40.
Solución x1 x2 s1 s2 Constantes
x1
s2
Z
1 0.625 0.025 0 10
24 30 0 1 360
-520 -450 0 0 0
Lograr ceros en estas posiciones usando fila pivote.
2124 RR
31520 RR
Asi, obtenemos el siguiente cuadro:
Solución x1 x2 s1 s2 Constantes
x1
s2
Z
1 0.625 0.025 0 10
0 15 -0.6 1 120
0 -125 13 0 5200
• Fin de la primera iteración. • Hasta aquí se sabe que 10 botes del
modelo común van a contribuir $5200 de
ganancia.
• Sobran 120 horas de acabado, por lo
tanto debe haber una solución mejor.
• Repetimos el proceso.
𝑥1𝑥2𝑠1𝑠2𝑍
=
10001205200
La solución ahora es:
2da Iteración:
Solución x1 x2 s1 s2 Constantes
x1
s2
Z
1 0.625 0.025 0 10
0 15 -0.6 1 120
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.
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
Pivote
Decidir variables que entran y salen a la solución:
16625.0/10
815/120
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
x1
x2
Z
1 0.625 0.025 0 10
0 1 -0.04 1/15 8
0 -125 13 0 5200
Lograr ceros en estas posiciones usando fila pivote.
12625.0 RR
32125 RR
Solución x1 x2 s1 s2 Constantes
x1
x2
Z
Asi, obtenemos el siguiente cuadro:
1 0 0.05 -0.042 5
0 1 -0.04 1/15 8
0 0 8 125/15 6200
Como todos los coeficientes de la fila de la función objetiva son positivos, hemos llegado a la solución óptima.
𝑥1𝑥2𝑠1𝑠2𝑍
=
5800
6200
La solución ahora es:
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
Tablero Inicial
Base Variable de
decisión
Variable de holgura Solució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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solución Operació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
decisión
Variable de holgura Solució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.
top related