library(lpSolve)
## Warning: package 'lpSolve' was built under R version 4.4.2
# Definición de la matriz de costos
costos <- matrix(c(4, 6, 8,
7, 3, 5,
9, 4, 2), nrow = 3, byrow = TRUE)
# Restricciones de oferta y demanda
oferta <- c(50, 60, 50)
demanda <- c(30, 70, 60)
# Resolviendo el problema de transporte
resultado <- lp.transport(cost.mat = costos, # Cambié 'costs' por 'cost.mat'
direction = "min",
row.signs = rep("<=", length(oferta)),
row.rhs = oferta,
col.signs = rep(">=", length(demanda)),
col.rhs = demanda)
# Solución óptima
print(resultado$solution)
## [,1] [,2] [,3]
## [1,] 30 20 0
## [2,] 0 50 10
## [3,] 0 0 50
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.2
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Base de datos de proveedores
proveedores <- data.frame(
proveedor = c("A", "B", "C"),
costo = c(100, 90, 95),
calidad = c(8, 9, 7),
tiempo_entrega = c(5, 7, 4)
)
# Selección de los proveedores más rentables
proveedores_filtrados <- proveedores %>%
filter(costo < 100 & calidad >= 8) %>%
arrange(tiempo_entrega)
print(proveedores_filtrados)
## proveedor costo calidad tiempo_entrega
## 1 B 90 9 7
library(shiny)
# Interfaz de usuario
ui <- fluidPage(
titlePanel("Monitor de la Cadena de Suministro"),
sidebarLayout(
sidebarPanel(
sliderInput("inventario",
"Nivel de inventario:",
min = 0,
max = 100,
value = 50,
step = 1) # Añadido un paso para mayor control
),
mainPanel(
textOutput("reporte")
)
)
)
# Lógica del servidor
server <- function(input, output) {
output$reporte <- renderText({
paste("Nivel actual de inventario:", input$inventario)
})
}
# Lanzar la aplicación Shiny
shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents