mip2.R


# 2023年版权,Gurobi优化狗万app足彩,LLC # #这个例子从文件读取MIP模型,解决了它,从所有可行解# #打印客观值解决MIP时生成的。然后它创建固定#模型和解决模型。库(矩阵)库(gurobi)参数< - commandArgs (trailingOnly = TRUE)如果(长度(args) < 1){停止(“用法:Rscript mip2。R \ n文件名”)}#阅读模式的猫(args[1],“阅读模式”“…”)模型< - gurobi_read (args[1])猫('……完成\ n”) #检测组non-continous变量numvars < -暗(模型美元一)[[2]]intvars <——(模型美元vtype ! = ' C ') numintvars < -长度(intvars)如果(numintvars < 1){停止(所有模型\ ' s变量是连续的,无关\ n”)} #优化参数< -()参数列表美元poolsolutions < < - - 20结果gurobi(模型、参数)#获取解决方案信息如果(结果美元地位! = '最佳'){猫(优化完成状态,结果美元状态,' \ n ')停止(“现在停止\ n”)} #迭代的解决方案如果名字(“池”% %(结果)){solcount < -长度(结果美元池)(k 1: solcount){猫(“解决方案”,k,“有目的:”,结果美元池[[k]]美元其他objval, ' \ n ')}} {solcount < - 1只猫(方案1目的:,结果美元objval, ' \ n ')} #转换为固定模式(j在1:numvars){如果(模型)美元vtype [j] ! = ' C ') {t < -地板(结果美元x [j] + 0.5)模型美元磅[j] < - t模型美元乌兰巴托[j] < - t}} # result2 < - gurobi解决固定模型(模型、参数)如果(result2美元地位! = '最佳'){停止(“错误:固定模式是\ ' t优化\ n”)}如果(abs(结果美元objval——result2美元objval) > 1 e-6 * (1 + abs(结果美元objval))){停止(“错误:目的价值观不同\ n”)} #打印变量的非零值(j 1: numvars){如果(abs (result2美元x [j]) < 1 e-6)下varnames <——“如果(“varnames”% %名称(模型)){varnames < -模型美元其他varnames [j]} {varnames < - sprintf (X % d, j)}猫(格式(varnames证明=‘左’,宽度= 10),“:”,格式(result2美元x [j],证明=‘正确的’,位数= 2,宽度= 10),' \ n ')} #腾出rm(模型、参数结果,result2)