Aplicación del modelo de Ruta de Mínima Distancia

Rehaga el modelo de reemplazo de equipo del ejemplo 6.3-1 suponiendo que se debe mantener un automóvil en servicio durante 2 años como mínimo y 4 años como máximo. El horizonte de planeación es desde el inicio de 2001 hasta el fin de 2005. La tabla siguiente contiene los datos necesarios.

tabla de asinación

Modelación del diagrama

Diagrama

Modelo matemático y Matriz de distancia

——

Restricciones de los nodos

s.a.r

Con los resultados obtenidos, vamos a implementar en R para poder determinar la ruta de mínima distancia.

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,m,3800,4100,6800,m,m,m,m,m,4000,4800,7000,m,m,m,m,m,4200,5300,7200,m,m,m,m,m,4800,5700,m,m,m,m,m,m,5300,m,m,m,m,m,m,m,m,m,m,m,m,m,m),nrow = 7,byrow = TRUE)
modelo_md=MIPModel()%>%
  add_variable(x[i,j],i=1:7,j=1:7,type="binary")%>%
  set_objective(sum_expr(c[i,j]*x[i,j],i=1:7,j=1:7),sense = "min")%>%
  add_constraint(x[1,3]+x[1,4]+x[1,5]==1)%>%
  add_constraint(-x[2,4]-x[2,5]-x[2,6]==0)%>%
  add_constraint(x[1,3]-x[3,5]-x[3,6]-x[3,7]==0)%>%
  add_constraint(x[1,4]+x[2,4]-x[4,6]-x[4,7]==0)%>%
  add_constraint(x[1,5]+x[2,5]+x[3,5]-x[5,7]==0)%>%
  add_constraint(x[2,6]+x[3,6]+x[4,6]-x[6,2]==0)%>%
  add_constraint(x[3,7]+x[4,7]+x[5,7]==1)
solucion=solve_model(modelo_md,with_ROI(solver="glpk",verbose=TRUE))
## <SOLVER MSG>  ----
## GLPK Simplex Optimizer, v4.47
## 7 rows, 49 columns, 25 non-zeros
##       0: obj =  0.000000000e+000  infeas = 2.000e+000 (7)
## *     2: obj =  1.100000000e+004  infeas = 0.000e+000 (6)
## *     6: obj =  9.800000000e+003  infeas = 0.000e+000 (3)
## OPTIMAL SOLUTION FOUND
## GLPK Integer Optimizer, v4.47
## 7 rows, 49 columns, 25 non-zeros
## 49 integer variables, all of which are binary
## Integer optimization begins...
## +     6: mip =     not found yet >=              -inf        (1; 0)
## +     6: >>>>>  9.800000000e+003 >=  9.800000000e+003   0.0% (1; 0)
## +     6: mip =  9.800000000e+003 >=     tree is empty   0.0% (0; 1)
## INTEGER OPTIMAL SOLUTION FOUND
## <!SOLVER MSG> ----
solucion$objective_value
## [1] 9800
get_solution(solucion,x[i,j])%>%filter(value>0)
##   variable i j value
## 1        x 1 4     1
## 2        x 4 7     1

Comprobación

Analisis de los resultados en R

Conclusión

Podemos concluir que un automovil debe estar en servicio durante 3 años y de ahi debe cambiarse.