tabla de asinación
Diagrama
—
s.a.r
library(ROI)
## ROI: R Optimization Infrastructure
## Registered solver plugins: nlminb, glpk.
## Default solver: auto.
library(ROI.plugin.glpk)
library(ompr)
## Warning: package 'ompr' was built under R version 4.1.1
library(ompr.roi)
## Warning: package 'ompr.roi' was built under R version 4.1.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.1.1
##
## 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
m=10000
c=matrix(c(m,3800,4100,6800,m,m,m,m,4000,4800,7000,m,m,m,m,4200,5300,7200,m,m,m,m,4800,5700,m,m,m,m,m,5300,m,m,m,m,m,m),nrow = 6,byrow = TRUE)
modelo_RMD=MIPModel()%>%
add_variable(x[i,j],i=1:6,j=1:6,type="binary")%>%
set_objective(sum_expr(c[i,j]*x[i,j],i=1:6,j=1:6),sense = "min")%>%
add_constraint(x[1,2]+x[1,3]+x[1,4]==1)%>%
add_constraint(x[1,2]-x[2,3]-x[2,4]-x[2,5]==0)%>%
add_constraint(x[1,3]+x[2,3]-x[3,4]-x[3,5]-x[3,6]==0)%>%
add_constraint(x[1,4]+x[2,4]+x[3,4]-x[4,5]-x[4,6]==0)%>%
add_constraint(x[2,5]+x[3,5]+x[4,5]-x[5,6]==0)%>%
add_constraint(x[3,6]+x[4,6]+x[5,6]==1)
solucion_RMD=solve_model(modelo_RMD ,with_ROI(solver = "glpk",verbose= TRUE))
## <SOLVER MSG> ----
## GLPK Simplex Optimizer, v4.47
## 6 rows, 36 columns, 24 non-zeros
## 0: obj = 0.000000000e+000 infeas = 2.000e+000 (6)
## * 3: obj = 1.130000000e+004 infeas = 0.000e+000 (4)
## * 5: obj = 1.130000000e+004 infeas = 0.000e+000 (2)
## OPTIMAL SOLUTION FOUND
## GLPK Integer Optimizer, v4.47
## 6 rows, 36 columns, 24 non-zeros
## 36 integer variables, all of which are binary
## Integer optimization begins...
## + 5: mip = not found yet >= -inf (1; 0)
## + 5: >>>>> 1.130000000e+004 >= 1.130000000e+004 0.0% (1; 0)
## + 5: mip = 1.130000000e+004 >= tree is empty 0.0% (0; 1)
## INTEGER OPTIMAL SOLUTION FOUND
## <!SOLVER MSG> ----
solucion_RMD$objective_value
## [1] 11300
get_solution(solucion_RMD,x[i,j])%>%filter(value>0)%>%arrange(j)
## variable i j value
## 1 x 1 3 1
## 2 x 3 6 1