manbet体育手机客户端


multibj.r.


#版权所有2019,Gurobi O狗万app足彩ptimization,LLC ##想要覆盖三个不同的集,但受允许使用#元素的共同预算。但是,该集合有不同的优先级#;我们通过使用多目标优化来解决这个问题。库(Matrix)库(GuRobi)#定义原始数据地面大小< -  20 nsubsets < -  4预算< -  12 SET < - 列表(C(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0),C(0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1),C(0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,1,0,1),1,0,0),C(0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0))Setobjpriority < -  C(3,2,2,1)Setobjweight < -  C(1.0,0.25,1.25,1.0)#初始化模型模型< -  list()模型$模型< - 'max'模型$ModelName < - 'multiobj'#set变量,所有这些都是二进制的,其中0,1界。模型$VTYPE < - 'B'模型$LB < -  0型号$UB < -  1模型$varnames < -  paste(rep('el',groundsetsize),1:indardsetsize,sep ='')#构建约束矩阵模型$a < -  spmatrix(1,lourdsetsize,i = rep(1,lindsetsize),j = 1:地面,x = rep(1,lindsetsize))模型$RHS < -  C(预算)模型$感觉< -  C('<')模型$CONSTRAMMES < -  C('预算')#设置多目标模型$multiobj < -  list()for(m在1:nsubsets){model$multiobj [[m]] < -  list()模型$multiobj [[m]]$objn < -  set [[m]]模型$multiobj [[m]]$优先级< -  setobjpriority [M]模型$multiobj [[m]]$重量< -  setobjweight [m]型号$multiobj [[m]]$ABSTOL < -  M型号$multiobj [[m]]$Reltol < -  0.01型号$multiobj [[m]]$名称< -  sprintf('set%d',m)模型$multiobj [[m]]$Con < -  0.0}#保存型号gurobi_write(型号,'multibj_r.lp')#set参数params < -  list()params$Poolsolutions < -  100#优化结果< -  Gurobi(型号,Params)#捕获解决方案信息(结果)(结果$状态!='最佳'){cat('优化完成状态',结果$状态,'\ n')停止('立即停止\ n')}#打印最佳解决方案cat(最佳解决方案中的选择元素:\ n')(例如,1:lindsetsize){if(结果$x [e] <0.9)下一只猫('el',e,sep ='')} cat('\ n')#迭代最佳的10个解决方案(如果(结果)'%)(结果)){solcount < - 长度(结果$池)CAT('找到的解决方案数:',solcount,'\ n')if(solcount < -  10)cat(solcount < -  10} cat('first'的客观值,solcount,'解决方案:\ n')(k在1:solcount){cat('解决方案',k,'具有目标:',结果$池[[k]]$objval [1],'\ n')}} else {solcount < -  1 cat(找到的解决方案数:',solcount,'\ n')cat('解决方案1具有目标:',结果$Objval,'\ n')}#清理RM(型号,PARAMS,结果)