Unidad 2 - Programación Lineal PDF
Unidad 2 - Programación Lineal PDF
Unidad 2 - Programación Lineal PDF
Programación Lineal
Ingeniería Industrial
FCA-UNNE
Contenidos
Específicos:
1. Interpretar situaciones problemáticas
2. Definir variables de decisión
3. Establecer la función objetivo
4. Comprender y modelar las limitaciones operativas
5. Resolver gráficamente.
La programación Lineal y su Objetivo
➢ Los hechos
➢ La experiencia
➢ La intuición
➢ La autoridad
¿Cómo resolver un problema mediante programación lineal?
1. xj > 0; ∀ j Condición de no
negatividad
de las variables
2. Z = f(x) → MAX/MIN Función Objetivo
3. ∑ aij xj < o > bj Restricciones
Donde los:
aij = insumo de cada restricción por cada unidad de
producto
bi = cantidad disponible de cada uno de los recursos
Ejemplo
?
Paso 2: Determinar las variables de decisión
Xi > 0 , ∀ i,
Condición de no negatividad de las variables
PASO 3: Determinar las restricciones del
problema
Centro A
una pelota requiere 4 horas y un juego de ajedrez tarda 6 horas, tiene un máximo de 120 horas
Centro B
una pelota requiere 2 horas y un juego de ajedrez tarda 6 horas, tiene un máximo de 72 horas
Centro C
una pelota no requiere horas y un juego de ajedrez tarda 1 hora, tiene 10 horas
PROGRAMACIÓN LINEAL
Supuestos de la P.L.
•Proporcionalidad
•Aditividad
•Divisibilidad
•Certidumbre
•Objetivo único
•No negatividad
Modelando limitaciones
Planteamiento matemático:
P = Número de pelotas a producir por día
J = Número de juegos de ajedrez a producir por día
● Método gráfico
● Método Simplex
Método Gráfico
El gráfico sería:
Centro de maquinado C
Para este caso, se considera directamente el valor de J = 10 para cualquier valor de P;
quedando la gráfica de la siguiente forma:
No negatividad
Hace referencia a que los valores de P y J son sólo positivos; por lo tanto, las soluciones
factibles estarían sólo en el primer cuadrante.
Por lo tanto, la empresa debe producir 24 pelotas y 4 juegos de ajedrez para maximizar su
utilidad.
¿Y cuál sería esa máxima utilidad?
https://www.youtube.com/watch?v=mkMyhAnkDao
MINIMIZAR
En un tambo se ha establecido que el alimento debe contener
por lo menos 27 unidades del nutriente A, 21 del nutriente B y
30 del nutriente C. Existen en el mercado dos tipos de
alimentos compuestos que proporcionan dichos nutrientes: el
Monsanto y el Cargill, y que contienen cada kg. de alimento
Monsanto: 3 unidades de A, 1 unidad de B, y 1 unidad de C, y
cada kg. de alimento Cargill: 1 unidad de A, 1 unidad de B, y 2
unidades de C.
El precio del alimento Monsato es de 4 $/kg y el de Cargill es 2
$/kg.
Se desea establecer en que proporción deben suministrarse
estos alimentos para cumplir con los requerimientos
nutritivos, minimizando el costo de alimentación.
Ordenamos la información
Paso 1: Formular el problema
Paso 2: Determinar las variables de decisión
3x1 + x2 > 27
x1 + x2 > 21
x1 + 2x2 > 30
Ordenamos la información
PASO 4: Determinar la Función Objetivo
¿Cual es el objetivo de la empresa?
Pero puede verse que todo se reduce a un solo objetivo: gastar lo mínimo; y esto se
consigue comprando la combinación de alimentos que cumpla con los requerimientos de
nutrientes y sea la más económica
Z = 4 x1 + 2 x2 ➔ MIN
Modelo
3x1 + x2 > 27
x1 + x2 > 21
x1 + 2x2 > 30
Z = 4 x1 + 2 x2 ➔ MIN
Resolución por Método Gráfico
X2 Puntos que forman el Polígono de
A Soluciones:
0 = ( 0, 0, 27,21, 30) ➔ z = 0
A = (0, 27, 0, 6,24) ➔ z = 54
B = (3, 18, 0, 0, 9) ➔ z = 48
B C = (12, 9, 18, 0, 0) ➔ z= 66
D = (30, 0, 63, 9, 0) ➔ z = 120
Punto óptimo: B
R2
R1 X4=0 R3
X3=0 X5=0 D
X1
Resolución por Método Gráfico
Puntos que forman el Polígono de Soluciones:
0 = ( 0, 0, 27,21, 30) ➔ z = 0
A = (0, 27, 0, 6, 24) ➔ z = 54
B = (3, 18, 0, 0, 9) ➔ z = 48
C = (12, 9, 18, 0, 0) ➔ z= 66
D = (30, 0, 63, 9, 0) ➔ z = 120
Punto óptimo: B
Punto Intersecc X1 X2 X3 X4 X5 Z
ión
C
(no pertenece al convexo) 0 X1 ∩ X2 0 0 -27 -21 -30 0
R2
A X2 ∩ R1 0 27 0 6 24 54
X4=0 R3
B R1 ∩ R2 3 D18 0 0 9 48
X5=0
C R2 ∩ R3 12 9 18 0 0 66
X
D R3 ∩ X1 30 0 63 19 0 120
Ejercicios
Ejercicio N°1:
x1 ≤ 3
x2 ≤ 6
6 x1 + 6 x2 ≤ 36
z = 8 x1 + 2 x2 --- > MAX
Puntos del Polígono de Soluciones:
Ejercicios
0 = ( 0, 0, 3, 6, 36) - z = 0
A = (0, 6, 3, 0, 0) - z = 12
B = (3, 3, 0, 3, 0) – z = 30 Punto óptimo: B
C = (3, 0, 0, 6, 18) – z= 24
A
C
Ejercicios
Ejercicio N° 2:
- 2 x1 + x2 ≤ 2
x1 - x2 ≤ 3
x1 + x2 ≤ 5
z = 5 x1 + 4 x2 --- > MAX
Punto que forman el PolÍgono de
Ejercicio Nº 2 Soluciones:
0 = ( 0, 0, 2, 3, 5) - z = 0
A = (0, 2, 0, 5, 3) - z = 8
B = (1, 4, 0, 6, 0) – z = 21
C = (4, 1, 9, 0, 0) – z= 24
A D = (3, 0, 8, 0, 2) – z = 15
Punto óptimo: C
B
D
Método Simplex
Supuestos de la P.L.
•Proporcionalidad
•Aditividad
•Divisibilidad
•Certidumbre
•Objetivo único
•No negatividad
Modelo General de PL
Definición de variables:
Sea xj> = 0. ; j = 1, 2, 3....n
Función objetivo:
Max. o Min. z = C1X1 + C2X2 + ... + CjXj + ... + CnXn
8
Introducción
● O bien
X1 + X2 > 800
X1 + X2 – X3 = 800
Cada slack (holgura) toma significado diferente, el algoritmo necesita de una
artificial para iterar
X1 + X2 – X3 + u = 800
Método gráfico Método algebraico
Grafica todas las restricciones, incluyendo Representa el espacio de soluciones con m
las de no negatividad ecuaciones con n variables, y restringe a
todas las variables a valores no negativos;
m<n
El espacio de soluciones consiste en una El sistema tiene infinidad de soluciones
infinidad de puntos esquina factibles factibles
Se usa la función objetivo para determinar Se usa la función objetivo para determinar
el punto esquina óptimo entre todos los el solución básica factible óptimo entre
candidatos todas las candidas
PREPARANDO EL MODELO PARA ADAPTARLO AL MÉTODO SIMPLEX
Esta es la forma estándar del modelo:
Función objetivo: c1·x1 + c2·x2 + ... + cn·xn → OPTIMIZAR
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
8
Maximizar Minimizar
Variable que La más NEGATIVA La más POSITIVA de
entra de los Cj – Zj los Cj - Zj
Paso 3 : determine las nuevas soluciones básicas empleando los calculos apropiados de
8
EL PROBLEMA
EJEMPLO
Las variables:
X1 = Cantidad de artículo 1 a producir (unidades)
X2 = Cantidad de artículo 2 a producir (unidades)
Las restricciones:
X1 + X2 < 10
2X1 + 3 X2 < 24
X2 < 6
El objetivo:
Z = 1X1 + 2X2 → MAXIMIZAR
8
Métodos de Resolución
ALGEBRAICO
El objetivo:
Z = 1X1 + 2X2 +0X3 + 0X4 + 0X5→ MAXIMIZAR
8
X1 X2 X3 X4 X5
1 1 1 0 0
2 3 0 1 0
A=
0 1 0 0 1
Resolvemos GRAFICAMENTE
Armemos las matrices
Las restricciones con las slack son:
1 1 1 0 0 10
A= 2 3 0 1 0 B= 24
0 1 0 0 1 6
Primera tabla de simplex
Tabla 1 Cj 1 2 0 0 0
Xk Cb BASE X1 X2 X3 X4 X5
X3 0 10 1 1 1 0 0
X4 0 24 2 3 0 1 0
X5 0 6 0 1 0 0 1
Primera tabla de simplex
Tabla
Cj 1 2 0 0 0
1
BAS
Xk Cb X1 X2 X3 X4 X5
E
X3 0 10 1 1 1 0 0
X4 0 24 2 3 0 1 0
X5 0 6 0 1 0 0 1
Z 0 -1 -2 0 0 0
Z = Cb * BASE, Cb * columna Ai - Cj
Calculo de fila del Z
Cb * Base : 0* 10 + 0*24 + 0* 6 = 0
Cb * columna Ai – Cj
Columna A1 (X1) = 0*1 +0*2+0*0 -1 = -1
Columna A2 (X2) = 0*1 +0*3+0*1 -2 = -2
Columna A3 (X3) = 0*1 +0*0+0*0 -0 = 0
Columna A4 (X4) = 0*1 +0*0+0*0 -0 = 0
Columna A5 (X5) = 0*1 +0*0+0*0 -0 = 0
Primera tabla de simplex
Tabla
Cj 1 2 0 0 0
1
BAS
Xk Cb X1 X2 X3 X4 X5
E
X3 0 10 1 1 1 0 0
X4 0 24 2 3 0 1 0
X5 0 6 0 1 0 0 1
Z 0 -1 -2 0 0 0
Selección de la variable que entra
Calcular Indicador de salida
Tabla
Cj 1 2 0 0 0
1
BAS
Xk Cb E X1 X2 X3 X4 X5 Q
X3 0 10 1 1 1 0 0 10
Selección de la
X4 0 24 2 3 0 1 0 8 variable que sale
X5 0 6 0 1 0 0 1 6
Z 0 -1 -2 0 0 0
Selección de la variable que entra
Como calculamos
La fila del pivot se divide por el pivot
La tercer fila se divide por 1
La columna del pivot se completa con ceros
Tabla
Cj 1 2 0 0 0
1
BAS
Xk Cb E X1 X2 X3 X4 X5
X3 0
X4 1
X2 0
Como calculamos
Xk Cb BASE X1 X2 X3 X4 X5
10 1 1 1 0 0
X3 0
(a1b) (a11) (a12) (a13) (a14) (a15)
24 2 3 0 1 0
X4 0
(a2b) (a21) (a22) (a23) (a24) (a25)
6 0 0 0 1
X5 0 1 (app)
(a3b) (a31) (a33) (a34) (a35)
Z 0 -1 -2 0 0 0
Como calculamos
24 3
(a2b) (a22)
6
1 (app)
(a3b)
Como calculamos columna A1
Xk Cb Base X1 X2 X3 X4 X5
X3 0 4 1 0 1 0 -1
X4 0 6 2 0 0 1 -3
X2 2 6 0 1 0 0 1
Z 12 -1 0 0 0 2
Primera ITERACION de simplex
Tabla 2
1 2 0 0 0
Xk Cb Base X1 X2 X3 X4 X5
X3 0 4 1 0 1 0 -1
X4 0 6 2 0 0 1 -3
X2 2 6 0 1 0 0 1
Z 12 -1 0 0 0 2
Segunda ITERACION de simplex
Tabla 3
1 2 0 0 0
Xk Cb Base X1 X2 X3 X4 X5
X3 0 1 0 0 1 -1 / 2 1/2
X1 1 3 1 0 0 1/2 -3 / 2
X2 2 6 0 1 0 0 1
Z 15 0 0 0 1/2 1/2
Reforzamos lo desarrollado
https://www.youtube.com/watch?v=CCud7rAIi8A
Cambio del tipo de optimización
● Si en nuestro modelo, deseamos minimizar, podemos dejarlo tal y como está, pero
deberemos tener en cuenta nuevos criterios para la condición de parada (deberemos
parar de realizar iteraciones cuando en la fila del valor de la función objetivo sean todos
menores o iguales a 0), así como para la condición de salida de la fila. Con objeto de no
cambiar criterios, se puede convertir el objetivo de minimizar la función F por el de
maximizar F·(-1).
● Ventajas: No deberemos preocuparnos por los criterios de parada, o condición de salida
de filas, ya que se mantienen.
● Inconvenientes: En el caso de que la función tenga todas sus variables básicas
positivas, y además las restricciones sean de desigualdad "≤", al hacer el cambio se
quedan negativas y en la fila del valor de la función objetivo se quedan positivos, por lo
que se cumple la condición de parada, y por defecto el valor óptimo que se obtendría es
0.
● Solución: En la realidad no existen este tipo de problemas, ya que para que la solución
quedara por encima de 0, alguna restricción debería tener la condición "≥", y entonces
entraríamos en un modelo para el método de las Dos Fases.
Todas las restricciones son de igualdad.
https://www.youtube.com/watch?
v=21lkV3r8r-4
PASO 5: Resolver el modelo utilizando
software: Algunas aplicaciones
1. PHPSimplex:
http://www.phpsimplex.com/simplex/simplex.htm
1. Graficador para dos variables:
https://www.zweigmedia.com/MundoReal/LPGrapher/lpg.html
1. Geogebra: https://www.geogebra.org/m/UPMkfuuz
2. Optimezer PL IO:
https://nicmalegre.github.io/optimizer-pl-io/home
Capacidad de Producción
● Ejemplo 1
Una máquina estampa circuitos, su capacidad de producción es 1 y se mide
por cantidad de productos estampados; la capacidad de la máquina es la
misma y no depende de los tamaños de los circuitos, si se estampa 3 tipos
de circuitos y la cantidad que se puede estampar es:
CANTIDAD QUE SE
CLASE PUEDE
ESTAMPAR
A NA
B NB
C NC
Capacidad de Producción
De cada una, si se procesa sólo una clase, la
capacidad es de 100% = 1. Pero si se desea
estampar las 3 clases hay que designar variables.
Variables
xA ≤ NA
xB ≤ NB
xC ≤ NC
R1: 1 xA ≤ 1
NA
Para estampar los tres tipos
R1: 1 xA + 1 xB + 1 xC ≤ 1
NA NB NC
Ejemplo
Una empresa automotriz está equipada para producir automóviles y
camiones. Su planta fabril está organizada en 4 departamentos: estampado,
montajes de motores, línea de montaje de automóviles, y línea de montaje
de camiones.
La capacidad de producción de cada departamento está limitada de la
siguiente forma:
- Estampado: puede producir 25.000 automóviles ó 35.000 camiones, por
año;
- Montaje de Motores: 33.333 automóviles ó 16.667 camiones, por año;
- Línea de montaje de camiones: 15.000 unidades por año;
Por otra parte se desea producir como mínimo 12.000 automóviles y 8.000
camiones por año, estimándose así mismo en 18.000 unidades la cantidad
demandada máxima anual de automóviles.
El margen de beneficios es de 15.000 $/ automóvil, y de 12.500 $/ camión.
Se desea conocer el plan de producción que haga máximo el margen de
contribución total de los beneficios.
Nota: Cómo modifica el planteo la existencia de una capacidad
máxima de 22.500 unidades anuales en la línea de montaje de
automóviles?
Diagrama de Procesos
montaje de
X1 Estampado automov.
Montaje de
Motores
X2
montaje de
25.000 a camiones
ó 33.333 a
ó
15.000 c;
35.000 c;
16.667 c;
Pérdidas, Agregado, y
Reciclaje
Pérdida
Situación que sucede habitualmente en la
realidad, cuando se trabaja con porcentajes.
Pérdida en un centro
Entra Sale
CENTRO
DE
PRODUCCION
(1-P) % x
x
Pérdida
O también se puede plantear:
P1 % P2 %
Pérdida en varios centros sucesivos
Entra Sale
CENTRO CENTRO
DE DE
_ X _ PRODUCCIO PRODUCCIO
x
(1-P1) (1- N1 N2 x
(1-P2)
P2)
P1 P2
% %
Agregado
Se introduce durante el proceso un porcentaje de
“algo” que se desea eliminar.
Agregado en un centro
Entra Sale
CENTRO
DE
x
PRODUCCION (1+) x
%
Agregado
Si quiero que
salga x, debo
Entra Sale ingresar: x
CENTRO
DE (1+)
x PRODUCCION x
(1+)
Agregado en varios centros sucesivos
Entr Sale
a
CENTRO CENTRO
DE DE
PRODUCCION PRODUCCIO
1 N2
x (1+1) (1+1) (1+2) x
x
1 % 2 %
Agregado en varios centros sucesivos
Entra Sale
CENTRO CENTRO
x DE x DE x
(1+1) (1+2) PRODUCCION (1+2) PRODUCCION
1 2
1 % 2 %
Si quiero que
salga x, debo
ingresar:
x
(1+1) (1+2)
Reciclaje
Por cada unidad x se pierde p, ese p que se pierde se lo
hace ingresar nuevamente a la línea de proceso.
x x
CENTRO
DE
PRODUCCION
p%
pa
Por cada unidad en el centro pasan pa
…
Serie geométrica con n --> ∞, es la
x cantidad inicial + la suma de lo que se va
(1-P) reciclando.
Ejemplo
I) Plantear el problema
a) definir las variables
b) plantear las inecuaciones
c) plantear las ecuaciones
Una fábrica produce cinco clases de tornillos de precisión en tres grupos de máquinas automáticas. Cada
producto puede hacerse en cualquiera de los tres grupos de máquinas, pero el tiempo requerido en cada
grupo es distinto, como se muestra en el siguiente cuadro (en hs.)
Productos 1 2 3 4 5
Grupo de
X12 a X52 maquinas 2 0,92(X12 a X52)
Grupo de
X13 a X53 0,95(X13 a X53)
maquinas 3
Xij = cantidad de tornillos tipo i a producir en la maquina j
Z = 12(x11+x21+x31+x41+x51) + 9(x12+x22+x32+x42+x52)
+15(x13+x23+x33+x4+3x53) → Minimizar
Diagrama de procesos
Grupo de
(X11 a X51) 1/0,9 maquinas 1 X11 a X51
Grupo de
(X12 a X52)1/0,92 maquinas 2 X12 a X52
Grupo de
(X13 a X53)1/0,95 maquinas 3 X13 a X53
Xij = cantidad de tornillos tipo i a producir en la maquina j
Z = 12*1/0,90(x11+x21+x31+x41+x51) +
9*1/0,92(x12+x22+x32+x42+x52)
+15*1/0,95(x13+x23+x33+x4+3x53) → Minimizar
Mezcla
Mezcla
X1 >= 0,20 (X1+X2+X3+X4)
100% Transformar
20% X1 -0,20(X1+X2+X3+X4) >= 0
X1 o 0,8X1 -0,20X2 -0,2X3-0,2X4 >= 0
X4 más 25%
X2 o Ri < o > bi
a11x1 + a12 x12 +… < ó > bi
30% menos
X3 o X2 <= 0,25 (X1+X2+X3+X4)
más
Variables reales
x1: Cantidad de en la oficina 1 a contratar por mes.
x2: Cantidad de en la oficina 1 a contratar por mes.
x3: Cantidad de en la oficina 2 a contratar por mes.
x4: Cantidad de en la oficina 2 a contratar por mes.
Función Objetivo:
z = 100 x1 + 120 x2 + 80 x3 + 150 x4 ----- > MIN
Restricciones:
Total de personas en la oficina 1
R1: x1 ≥ 40% (x1+x2) ó x1 ≥ 0.40 (x1+x2)
Total de personas en
la oficina 1
Mezcla
Haciendo pasaje de términos:
x1 – 0,4 x1 – 0,4 x2 ≥ 0
Queda:
R1: 0,6 x1 – 0,4 x2 ≥ 0
Total de personas en la oficina 1
R2: x3 ≤ 0.60 (x3+x4)
Queda:
Oficina
≤ n
x1+ x2 xi P % xi
≥ i =1
P%
Ejercicio
Un proveedor debe preparar con 5 bebidas de fruta en existencia, al menos 500
galones de un ponche que contenga por lo menos 20% de jugo de naranja, 10% de
jugo de toronja y 5% de jugo de arándano. Si los datos del inventario son los que se
muestran en la tabla siguiente ¿Qué cantidad de cada bebida deberá emplear el
proveedor a fin de obtener la composición requerida a un costo total mínimo?
Función Objetivo
Zmin = 1,5X1 + 0,75X2 + 2,00X3 + 1,75X4 + 0,25X5
Restricciones
X1 + X2+ X3+ X4+ X5>= 500 (Requerimientos de Ponche)
0,4X1 + 0,05X2 + X3 >= 0,2(X1 + X2+ X3+ X4+ X5) Contenido de jugo de
naranja
0,4X1 + 0,1X2 + X4 >= 0,1(X1 + X2+ X3+ X4+ X5) Contenido de jugo
de toronja
0,2X2 >= 0,05(X1 + X2+ X3+ X4+ X5) Contenido de jugo de arándano
X1<= 200 (Disponibilidad de bebida A)
X2 <= 400 (Disponibilidad de bebida B)
X3 <= 100 (Disponibilidad de bebida C)
X4 <= 50 (Disponibilidad de bebida D)
X5 <= 800 (Disponibilidad de bebida E)
Fuentes
✓ https://www.ingenieriaindustrialonline.com/investigacion-de-
operaciones/programacion-lineal/