La tienda por departamentos Brass almacena automóviles de carreras de juguete. Hace poco, la tienda recibió el programa de descuento por cantidad para los vehículos, el cual se presenta en la tabla 6.3. Así, el costo normal del juguete es de $5. Para órdenes entre 1,000 y 1,999 unidades, el costo unitario es de $4.80; en tanto que para órdenes de 2,000 o más, el costo unitario es de $4.75. Más aún, el costo por ordenar es de $49 por orden, la demanda anual es de 5,000 carritos de carreras y el cargo por almacenar como porcentaje del costo, I, es de 20% o 0.2. ¿Qué cantidad a ordenar minimizará el costo total del inventario?
El primer paso es calcular la CLE para cada descuento de la tabla 6.3:
crear_tabla_descuentos <- function() {
tabla <- data.frame(
Rango_Inferior = c(0, 1000, 2000),
Rango_Superior = c(999, 1999, Inf),
Costo_Unitario = c(5.00, 4.80, 4.75)
)
return(tabla)
}
calcular_cle <- function(tabla) {
D <- 5000 # Demanda anual
S <- 49 # Costo por ordenar
I <- 0.2 # Cargo por almacenar (20% = 0.2)
resultados <- data.frame(
Rango = character(nrow(tabla)),
C = numeric(nrow(tabla)),
Q_estrella = numeric(nrow(tabla)),
Q = numeric(nrow(tabla)),
DC = numeric(nrow(tabla)),
DS_Q = numeric(nrow(tabla)),
ICQ_2 = numeric(nrow(tabla)),
CTE = numeric(nrow(tabla))
)
for (i in 1:nrow(tabla)) {
C <- tabla$Costo_Unitario[i]
Q_estrella <- sqrt((2 * D * S) / (I * C))
if (Q_estrella < tabla$Rango_Inferior[i]) {
Q <- tabla$Rango_Inferior[i]
} else if (Q_estrella > tabla$Rango_Superior[i]) {
Q <- tabla$Rango_Superior[i]
} else {
Q <- Q_estrella
}
DC <- D * C
DS_Q <- (D * S) / Q
ICQ_2 <- (I * C * Q) / 2
CTE <- DC + DS_Q + ICQ_2
resultados$Rango[i] <- paste(tabla$Rango_Inferior[i], "-", tabla$Rango_Superior[i])
resultados$C[i] <- C
resultados$Q_estrella[i] <- Q_estrella
resultados$Q[i] <- Q
resultados$DC[i] <- DC
resultados$DS_Q[i] <- DS_Q
resultados$ICQ_2[i] <- ICQ_2
resultados$CTE[i] <- CTE
}
return(resultados)
}
# Ejecutar el análisis
tabla_descuentos <- crear_tabla_descuentos()
print("Tabla de descuentos:")
## [1] "Tabla de descuentos:"
print(tabla_descuentos)
## Rango_Inferior Rango_Superior Costo_Unitario
## 1 0 999 5.00
## 2 1000 1999 4.80
## 3 2000 Inf 4.75
resultados <- calcular_cle(tabla_descuentos)
print("Resultados detallados:")
## [1] "Resultados detallados:"
print(resultados)
## Rango C Q_estrella Q DC DS_Q ICQ_2 CTE
## 1 0 - 999 5.00 700.0000 700 25000 350.0 350 25700.0
## 2 1000 - 1999 4.80 714.4345 1000 24000 245.0 480 24725.0
## 3 2000 - Inf 4.75 718.1848 2000 23750 122.5 950 24822.5
cat("Cálculos detallados para cada rango:\n")
## Cálculos detallados para cada rango:
for (i in 1:nrow(resultados)) {
cat("\nRango", resultados$Rango[i], ":\n")
cat("C =", resultados$C[i], "\n")
cat("Q* =", round(resultados$Q_estrella[i], 2), "\n")
cat("Q =", round(resultados$Q[i], 2), "\n")
cat("DC =", round(resultados$DC[i], 2), "\n")
cat("DS/Q =", round(resultados$DS_Q[i], 2), "\n")
cat("ICQ/2 =", round(resultados$ICQ_2[i], 2), "\n")
cat("CTE =", round(resultados$CTE[i], 2), "\n")
}
##
## Rango 0 - 999 :
## C = 5
## Q* = 700
## Q = 700
## DC = 25000
## DS/Q = 350
## ICQ/2 = 350
## CTE = 25700
##
## Rango 1000 - 1999 :
## C = 4.8
## Q* = 714.43
## Q = 1000
## DC = 24000
## DS/Q = 245
## ICQ/2 = 480
## CTE = 24725
##
## Rango 2000 - Inf :
## C = 4.75
## Q* = 718.18
## Q = 2000
## DC = 23750
## DS/Q = 122.5
## ICQ/2 = 950
## CTE = 24822.5
mejor_opcion <- which.min(resultados$CTE)
cat("\nLa mejor opción que minimiza el costo total del inventario es:\n")
##
## La mejor opción que minimiza el costo total del inventario es:
cat("Rango:", resultados$Rango[mejor_opcion], "\n")
## Rango: 1000 - 1999
cat("Q* =", round(resultados$Q_estrella[mejor_opcion], 2), "\n")
## Q* = 714.43
cat("Q ajustado =", round(resultados$Q[mejor_opcion], 2), "\n")
## Q ajustado = 1000
cat("Costo Total Esperado (CTE) =", round(resultados$CTE[mejor_opcion], 2), "\n")
## Costo Total Esperado (CTE) = 24725
Interpretación: Según los cálculos realizados para los tres rangos de descuento, los resultados muestran que la mejor opción para minimizar el costo total del inventario es ordenar en el rango de 1000 a 1999 unidades. Específicamente, la cantidad óptima a ordenar (Q) es de 1000 unidades, que es el límite inferior de este rango. Aunque la Cantidad de Lote Económico (CLE) calculada es ligeramente mayor, se ajusta a 1000 para cumplir con las restricciones del rango de descuento. Esta estrategia de pedido resulta en el Costo Total Esperado (CTE) más bajo entre las tres opciones, balanceando efectivamente los costos de compra, pedido y mantenimiento del inventario. El descuento obtenido en este rango compensa el ligero aumento en los costos de mantenimiento de inventario, haciendo que sea más económico que ordenar cantidades menores a un precio unitario más alto o cantidades mayores que podrían incrementar excesivamente los costos de almacenamiento.