Está en la página 1de 17

Parcial corte 2

Simulación
“Simulación con Python
Ingeniería Industrial
Mg. Ed. Ing. Juan Manuel González Álvarez
18 de abril del 2023

1. La empresa TuningPc fabrica dos tipos de PC Extremos, el XGamePC y el ZGamePC. La


empresa logra una utilidad de $20,000 por la venta del primer modelo y $24,000 por el
segundo modelo. Los equipos de lujo necesitan básicamente de dos procesos de
producción que son (Diseño) y (Ensamblaje). Para lograr lo anterior se dispone de 120 y 64
horas en cada proceso respectivamente. El XGamePC necesita 6 horas de diseño y 8 de
ensamblaje. El ZGamePC necesita de 12 horas de diseño y 4 de ensamblaje. Determinar |
cantidad que se debe producir y vender de cada artículo para que la empresa obtenga la
Máxima Utilidad posible. Formule y construya el modelo de Programación Lineal con
Python.

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado

X Game Pc Z Game Pc

Diseño 6 12 120h

Ensamble 8 4 64h

Zmax=20.000 x 1+ 24 x2

Diseño: 6 x 1+ 12 x 2 ≤ 120 h

Ensamble: 8 x 1+ 4 x 2 ≤ 64 h

x1 , x2 ≥ 0

B.Simulación
 Código Python

!pip install pulp


#import pulp
from pulp import *

# Definir el problema
prob = LpProblem("TuningPc", LpMaximize)

x1 = LpVariable("Diseño", lowBound=0, cat='continuous')


x2 = LpVariable("Ensamble", lowBound=0, cat='continuous')

# Definir la función objetivo

prob += 20000*x1 + 24000*x2, "total de producción"

# Definir las restricciones


prob += 6*x1 + 12*x2 <= 120, "Horas disponible de diseño"
prob += 8*x1 + 4*x2 <= 64, "Horas disponibles de ensamble"

# Resolver el problema de programación lineal


prob.solve()

# imprimir el resultado de la solución

print("Estado de la Solución:", LpStatus[prob.status])

# imprimir la cantidad óptima de producción de cada variable de cada


dicisión
for v in prob.variables():
print(v.name, "=", v.varValue)

# imprimir el costo total de producción óptimo


print("Total de producción = ", value(prob.objective))

 Enlace Colab

https://colab.research.google.com/?hl=es#scrollTo=6C8mj4mHPtlP

C.Resultados en consola

 Resultados obtenidos de la simulación


D.Conclusiones

Este modelo de programación lineal, se buscó determinar máxima utilidad posible entre dos tipos
de PC (XGamePC y ZGamePC) teniendo en cuenta las restricciones en la cantidad de horas de
diseño y ensamblaje disponibles.

La solución óptima de este ejercicio nos da a conocer que la empresa debe producir y vender 10
unidades del modelo XGamePC y 4 unidades del modelo ZGamePC, lo que le permitiría obtener
una utilidad máxima de $296,000.

2. Huawei produce dos tipos de tarjetas inalámbricas de red con categoría 6 y otra de la
categoría 5. Cada una requiere para su fabricación del uso de tres tipos de máquinas A, B
y C. Cada tarjeta categoría 6 requiere del uso de la máquina A durante 2 horas, la máquina
B por 1 hora y de la máquina C por 1 hora. La tarjeta categoría 5 requiere de 1 hora la
máquina A, 2 horas de la B y 1 hora de la C. Además se supone que el número máximo de
horas disponibles por mes para el uso de las máquinas A, B y C es de 180, 160 y 100,
respectivamente. La utilidad por cada tarjeta categoría 6 es de $4 y por cada tarieta de
categoría 5 es de $6. Si la compañía vende todos los artículos que puede producir.
¿Cuántos artículos de cada tipo debe producir con el fin de maximizar la utilidad mensual?
Construya y formule el problema de programación lineal con Python.

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado
TARJETAS INALÁMBRICAS

Cat ABQ Cat n

MAQUINA A 2 1 180h

MAQUINA B 1 2 160h

MAQUINA C 1 1 100h
TOTAL $ 4 6

Zmax=4 Abq+ 6 n

Maq A=2 Abq+1 n ≤180 h

Maq b=1 Abq+ 2n ≤ 160 h

Maq c=1 Abq+1 n ≤100 h

Abq ,n ≥ 0

B.Simulación

 Código Python
!pip install pulp
#import pulp
from pulp import *

# defiunir el problema
prob = LpProblem("Huawei", LpMaximize)

Abq = LpVariable("categoria 1", lowBound=0, cat='continuous')


n = LpVariable("categoria 2", lowBound=0, cat='continuous')

# definir la función objetivo

prob += 4*Abq + 6*n, "total de producción"

# definir las restricciones


prob += 2*Abq + 1*n <= 180, "Horas disponible de la maquina A"
prob += 1*Abq + 2*n <= 160, "Horas disponibles de la maquina B"
prob += 1*Abq + 1*n <= 100, "horas disponibles de la maquina c"

# resolver el problema de programación lineal


prob.solve()

# imprimir el resultado de la solución

print("estado de la solución:", LpStatus[prob.status])

# imprimir la cantidad óptima de producción de cada variable de cada


dicisión
for v in prob.variables():
print(v.name, "=", v.varValue)

# imprimir el costo total de producción óptimo


print("total de producción = ", value(prob.objective))

 Enlace Colab
https://colab.research.google.com/?hl=es#scrollTo=W9czF9z2VGNi

C.Resultados en consola

 Resultados obtenidos de la simulación


D.Conclusiones

La solución de este ejercicio nos da a conocer que la empresa debe producir 40 unidades de
tarjetas de categoría 6 y 20 unidades de tarjetas de categoría 5 para obtener una utilidad
máxima de $280. La formulación y resolución del problema utilizando Python y la biblioteca
PuLP demuestra la utilidad de las herramientas computacionales para la toma de decisiones en
situaciones complejas.
3. Una compañía fabrica tres productos, A, B y C. El volumen de ventas de A es como
mínimo 50% de las ventas totales de los tres productos. Sin embargo, la compañía no
puede vender más de 75 unidades por día. Los tres productos utilizan una materia prima
de la cual la máxima disponibilidad diaria es de 240 lb. Las tasas de consumo de la materia
prima son de 2 lb por unidad de A, 4 lb por unidad de B, y 3 lb por unidad de C. Los precios
unitarios de A, B y C son $20, $50 y $35, respectivamente. Construya y formule el
problema de programación lineal con Python.

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado
Producto A Producto B Producto C

2 4 3

20 50 35

75 →100 %
37.5 →50 %
38 → A
A ≥ 38

A+ B+C ≤ 75

A2 + B4 +C 3 ≤ 240 lb

Zmax=20 A+50 B+35 C

B.Simulación

 Código Python
!pip install pulp
#import pulp
from pulp import *
# defiunir el problema
prob = LpProblem("Fabrica X", LpMaximize)

A = LpVariable("producto A", lowBound=0, cat='continuous')


B = LpVariable("producto B", lowBound=0, cat='continuous')
C = LpVariable("producto C", lowBound=0, cat='continuous')

# definir la función objetivo

prob += 20*A + 50*B + 35*C, "total de producción"

# definir las restricciones

prob += A + B + C <= 75, "cantidad maxima a produccir"


prob += A >= 38, "cantidad minima a producir de A"
prob += A*2 + B*4 + C*3 <= 240, "horas disponibles de trabajo"

# resolver el problema de programación lineal


prob.solve()

# imprimir el resultado de la solución

print("estado de la solución:", LpStatus[prob.status])

# imprimir la cantidad óptima de producción de cada variable de cada


dicisión
for v in prob.variables():
print(v.name, "=", v.varValue)

# imprimir el costo total de producción óptimo


print("total de producción = ", value(prob.objective))

 Enlace Colab
https://colab.research.google.com/?hl=es#scrollTo=ywyf6rvhX2r5

C.Resultados en consola

 Resultados obtenidos de la simulación


D.Conclusiones
4. En el contexto de la pandemia y dado la necesidad de una mayor demanda de
desinfectantes con componentes antisépticos, una empresa fabrica dos tipos de
desinfectantes A y B, a partir de dos combinaciones, donde se deben cumplir las siguientes
condiciones sobre las combinaciones de dichos componentes (I, II y III), de acuerdo con
las siguientes especificaciones:

A su vez, con relación a las combinaciones se cuenta con información de los Componentes, la
disponibilidad y los costos, según se resume en la siguiente tabla:

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado

Max Aa1=3.800

Max Aa2=5.100

Max Aa3=4.700

PvD 1 = 12.000

PvD 2 = 15.000

Costo Aa1 = 5.000

Costo Aa2 = 4.500


Costo Aa3 = 4.200

x 11=Al 1 D 1

x 12 =Al 1 D 2

x 21 =Al 2 D 1

x 22 =Al 2 D 2

x 31 =Al 3 D1

x 32 =Al 3 D2

Z=PV D 1 ( x 11+ x 21+ x 31 )+ PV D 2 ( x 12+ x 22+ x 32 ) −costo A a1 ( x 11+ x 12 )−costo Aa 2 ( x 21+ x 22 )−CostoA

x 11+ x 12 ≤ Max Aa 1

x 21 + x 22 ≤ Max Aa 2

x 31 + x 32 ≤ Max Aa 3

B.Simulación

 Código Python
!pip install pulp
from pulp import *

# Crear un problema de maximización


prob = LpProblem("Desinfectantes", LpMaximize)

# Definir variables de decisión


x11 = LpVariable("Cantidad de alcohol anticeptico 1 empleado en el d
esinfectante 1", lowBound=0, cat='Continuous')
x12 = LpVariable("Cantidad de alcohol anticeptico 1 empleado en el d
esinfectante 2", lowBound=0, cat='Continuous')
x21 = LpVariable("Cantidad de alcohol anticeptico 2 empleado en el d
esinfectante 1", lowBound=0, cat='Continuous')
x22 = LpVariable("Cantidad de alcohol anticeptico 2 empleado en el d
esinfectante 2", lowBound=0, cat='Continuous')
x31 = LpVariable("Cantidad de alcohol anticeptico 3 empleado en el d
esinfectante 1", lowBound=0, cat='Continuous')
x32 = LpVariable("Cantidad de alcohol anticeptico 3 empleado en el d
esinfectante 2", lowBound=0, cat='Continuous')

#Definir parametros generales


MaxAa1 = 3800 # máxima disponibilidad de alcohol anticeptico 1
MaxAa2 = 5100 # máxima disponibilidad de alcohol anticeptico 2
MaxAa3 = 4700 # máxima disponibilidad de alcohol anticeptico 3

PDV1 = 12000 #Precio de venta desinfectante 1


PDV2 = 15000 #Precio de venta desinfectante 2

CostoAa1 = 5000 #Costo alcohol antiseptico 1


CostoAa2 = 4500 #Costo alcohol antiseptico 2
CostoAa3 = 4200 #Costo alcohol antiseptico 3

Mcomp = [[0.70, 0.12, 0.15, 0.10],


[0.50, 0.10, 0.00, 0.20],
[0.40, 0.00, 0.15, 0.10]]

# Definir la función objetivo -> Máximizar


prob += PDV1*(x11+x21+x31)+PDV2*(x11+x22+x32)-CostoAa1*(x11+x12)-
CostoAa2*(x21+x22)-CostoAa3*(x31+x32)

# Definir restricciones de máxima disponibilidad de alcohol antisept


ico
prob += x11 + x12 <= MaxAa1 #Máxima disponibilidad del alcohol antis
eptico 1
prob += x21 + x22 <= MaxAa2 #Máxima disponibilidad del alcohol antis
eptico 2
prob += x31 + x32 <= MaxAa3 #Máxima disponibilidad del alcohol antis
eptico 3

# Definir restricciones para producir el desinfectante A


prob += x11*Mcomp[0][0] + x21*Mcomp[1][0] + x31*Mcomp[2][0] <= 0.5
0*(x11+x21+x31) #Máximo contenido de componente 1 en el desinfectant
e 1
prob += x11*Mcomp[0][1] + x21*Mcomp[1][1] + x31*Mcomp[2][1] <= 0.1
5*(x11+x21+x31) #Máximo contenido de componente 2 en el desinfectant
e 1
prob += x11*Mcomp[0][2] + x21*Mcomp[1][2] + x31*Mcomp[2][2] >= 0.1
5*(x11+x21+x31) #Minimo contenido de componente 3 en el desinfectant
e 1
# Definir restricciones para producir el desinfectante B
prob += x12*Mcomp[0][0] + x22*Mcomp[1][0] + x32*Mcomp[2][0] >= 0.6
0*(x12+x22+x32) #Minimo contenido de componente 1 en el desinfectant
e 2
prob += x12*Mcomp[0][0] + x22*Mcomp[1][0] + x32*Mcomp[2][0] <= 0.8
0*(x12+x22+x32) #Máximo contenido de componente 1 en el desinfectant
e 2
prob += x12*Mcomp[0][1] + x22*Mcomp[1][1] + x32*Mcomp[2][1] >= 0.1
5*(x12+x22+x32) #Máximo contenido de componente 2 en el desinfectant
e 2
prob += x12*Mcomp[0][2] + x22*Mcomp[1][2] + x32*Mcomp[2][2] >= 0.1
1*(x12+x22+x32) #Máximo contenido de componente 3 en el desinfectant
e 2

# Resolver el problema
prob.solve()

# Imprimir resultado
print("Cantidad de alcohol anticeptico 1 empleado en el desinfectant
e 1: {}".format(value(x11)))
print("Cantidad de alcohol anticeptico 1 empleado en el desinfectant
e 2: {}".format(value(x12)))
print("Cantidad de alcohol anticeptico 2 empleado en el desinfectant
e 1: {}".format(value(x21)))
print("Cantidad de alcohol anticeptico 2 empleado en el desinfectant
e 2: {}".format(value(x22)))
print("Cantidad de alcohol anticeptico 3 empleado en el desinfectant
e 1: {}".format(value(x31)))
print("Cantidad de alcohol anticeptico 3 empleado en el desinfectant
e 2: {}".format(value(x32)))

print("Utilidad total máxima: ${}".format(value(prob.objective)))

 Enlace Colab

https://colab.research.google.com/?hl=es#scrollTo=tDSLUX07cCQL

C.Resultados en consola

 Resultados obtenidos de la simulación


D.Conclusiones

La utilidad total de cada uno de los productos de $88360000 donde la cantidad de alcohol
antiséptico 1 y desinfectante 1 con un valor de 2350 y la cantidad de alcohol 3 y desinfectante 1
con un total de 4700
5. La compañía GAMA fabrica camisas y blusas en una línea de producción con tres
procesos que son: corte, ensamble y empaque. Se ha establecido que una camisa genera
una utilidad de $7.000 y una blusa una utilidad de $9.000. Mediante un estudio de tiempos
se estableció que una camisa requiere de 1 hora en corte, 3 horas en ensamble y ½ hora
en empaque; mientras que una blusa requiere de ½ hora en corte, 4 horas en ensamble y 1
hora en empaque. Se sabe que la compañía GAMA trabaja 8 horas diarias durante 5 días a
la semana. ¿Cómo queda el modelo de programación lineal si se sabe que actualmente se
cuenta con 40 trabajadores en la sección de corte, 80 trabajadores en la sección de
ensamble y 20 trabajadores en la sección de empaque

1. Formule y construya el modelo de Programación Lineal con Python


2. Obtenga la Máxima Utilidad posible

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado

B.Simulación

 Código Python
 Enlace Colab

C.Resultados en consola

 Resultados obtenidos de la simulación


D.Conclusiones
6. Se fabrican dos fármacos, F1 y F2, a partir de tres sustancias diferentes, donde se deben
cumplir las siguientes condiciones sobre los componentes de dichas sustancias (I, II, III y
IV), de acuerdo con las siguientes especificaciones:

Fármaco Especificaciones Precio ($CO/g)


Cuando más 50% de componente I
1 Cuando más 15% de componente II 350
Cuando menos 15% de componente III
De 60% a 80% de componente I
2 Cuando menos 15% de componente II 380
Cuando menos 11% de componente III

A su vez, con relación a las sustancias se cuenta con información de los componentes, la
disponibilidad y los costos, según se resume en la siguiente tabla:

Componentes (g)
Sustancia Disponibilidad (kg) Costos ($CO/g)
I II III IV Otros
1 28 20 20 20 5 10 50
2 21 10 10 0 18 20 45
3 37 3 0 15 31 0 42

Considerando los resultados obtenidos, responda:

1. ¿Cuánto cantidad de fármaco se debe producir de cada sustancia?


2. ¿Cuánto es la utilidad máxima que se puede lograr?

A. Planteamiento matemático

 Variables:
 Función objetivo
 Restricciones en la producción
 Restricciones del mercado

B.Simulación

 Código Python
 Enlace Colab
C.Resultados en consola

 Resultados obtenidos de la simulación

D.Conclusiones

También podría gustarte