Piloto

La compañía sigma produce bibliotecas y escritorios para los cuales se ha establecido un precio de venta por unidad de $9.000 y $10.000 respectivamente. Para la producción de dichos artículos la compañía cuenta con una disponibilidad mensual de 700 m de madera, 800 m de tubo y 900 pliegos de papel de lija. ¿Qué cantidad de bibliotecas y escritorios se debe fabricar mensualmente? Si se sabe que una biblioteca consume 7 m de madera, 10 m de tubo y 6 pliegos de papel de lija; mientras que para producir un escritorio se requieren 10 m de madera, 8 m de tubo y 15 pliegos de papel de lija.

Pasos para resolver el problema

1. Planteamiento del problema.

La empresa Sigma fabrica dos productos:

Bibliotecas: \(X_1\)

Escritorios: \(X_2\)

El objetivo es maximizar las ganancias obtenidas por las ventas de ambos productos.

2. Función objetivo.

Función objetivo

Cada biblioteca deja una ganancia de \(9.000\), y cada escritorio, \(10.000.\)

Por tanto, la función objetivo será:

\[Max\ Z=9.000\ X_1 \ + \ 10.000\ X_2\]

Restricciones de recursos

Recuros Biblioteca Escritorio Disponibilidad
Madera 7 10 700
Tubo 10 8 800
Papel lija 6 15 900

Por tanto,las restricciones son:

\[Madera:7X_1+10X_2\leq700\] \[ Tubo: 10X_1+8X_2\leq800\] \[Papel\ Lija: 6X_1+15X_2\leq900\] \[No\ Negatividad\ X_1,X_2\geq0\]

Implementación en R Studio

Para resolver este tipo de problema utilizamos el paquete lpSolve, que implementa el método simplex.

1. Primero, instalamos y cargamos el paquete.

# instalar paquete
install.packages("lpSolve")
# Cargar la librería
library(lpSolve)

2. Definir los coeficientes de la función objetivo.

# Coeficientes de la función objetivo
func_obj <- c(9000, 10000)

3. Definir las restricciones.

Cada fila representa un recurso (madera, tubo y papel de lija):

# Matriz de coeficientes de las restricciones
restricciones <- matrix(c(7, 10,
                          10, 8,
                          6, 15), 
                        nrow = 3, byrow = TRUE)

4. Definir los símbolos de desigualdad.

# Símbolos de desigualdad
direcciones <- c("<=", "<=", "<=")

5. Definir los valores del lado derecho (disponibilidad de recursos)

# Recursos disponibles
recursos <- c(700, 800, 900)

6. Resolver el modelo

# Resolver el problema de maximización
resultado <- lp("max", func_obj, restricciones, direcciones, recursos)

7. Ver resultados

# Mostrar el valor óptimo de la función objetivo
resultado$objval
## [1] 809090.9
# Mostrar las cantidades óptimas de x1 y x2
resultado$solution
## [1] 54.54545 31.81818

8. Construir gráfica

# Crear el espacio de trabajo
plot(0, 0, type = "n",
     xlim = c(0, 120), ylim = c(0, 120),
     xlab = "Bibliotecas (x1)", ylab = "Escritorios (x2)",
     main = "lineas de restricciones")

# Líneas de las restricciones
abline(a = 700/10, b = -7/10, col = "red", lwd = 2)    # Madera
abline(a = 800/8,  b = -10/8, col = "blue", lwd = 2)   # Tubo
abline(a = 900/15, b = -6/15, col = "darkgreen", lwd = 2)  # Lija

# Leyenda
legend("topright", legend = c("Madera", "Tubo", "Lija"),
       col = c("red", "blue", "darkgreen"), lwd = 2)