mip2.r.


mip2.r.


#版权所有2021,Gurobi优化狗万app足彩,LLC ##此示例从文件中读取MIP模型,解决它和#在解决MIP时生成的所有可行解决方案#的客观值。然后它创建了固定的#模型并解决该模型。库(Matrix)库(Gurobi)args < -  commandargs(trailingonly = true)if(length(args)<1){stop('用法:rscript mip2.r filename \ n')}#读取模型cat('阅读模型',args [1],'...')模型< -  gurobi_read(args [1])cat('...完成\ n')#检测到非连续变量numvars < -  dim(型号$a)[[2]] intvars < - 哪个(模型$VTYPE!='C')NumIntVars < - 长度(intvars)if(numintvars <1){stop('所有型号的变量是连续的,没什么可以做的\ n')}#优化params < -  list()params$Poolsolution < -  20结果< -  Gurobi(型号,Params)#捕获解决方案信息(结果)(结果$状态!='最佳'){cat('优化完成状态',结果$状态,'\ n')停止('现在停止\ n')}#迭代解决方案('池'%)(结果)){solcount < -  length(结果$池)对于(k在1:solcount){cat('解决方案',k,'具有目标:',结果$池[[k]]$objval,'\ n')}} else {solcount < -  1 cat('解决方案1有客观:',结果$objval,'\ n')}#转换成固定模型(j在1:numvars){if(模型$vtype [j]!='c'){t <-floor(结果$X [J] +0.5)模型$LB [J] < -  T模型$UB [j] < -  t}}#解决固定模型结果2 < -  gurobi(型号,params)(结果2)$状态!='最佳'){stop('错误:固定型号是n \'t最佳\ n')}如果(abs(结果$objval  - 结果2.$OBJVAL)> 1E-6 *(1 + ABS(结果$objval))){stop('错误:客观值不同\ n')}#(j在1:numvars中的非零变量的打印值){if(abs2$x [j])<1e-6)下一个varnames < - ''如果('varnames'%)(%名称)(型号)){varnames < -  model$varnames [j]} else {varnames < -  sprintf('x%d',j)} cat(格式(varnames,justify ='左',width = 10),':',格式(结果2$x [j],证明='右',数字= 2,宽度= 10),'\ n')}#清除空间RM(型号,PARAMS,结果,结果2)