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