poolsearch.R


# 2023年版权,Gurobi优化狗万app足彩,LLC # #我们找到替代epsilon-optimal解决给定的背包#问题通过使用PoolSearchMode库(矩阵)库(Gurobi) #定义原始数据groundSetSize < - 10 objCoef < - c(32岁,32岁,15日,15日,6日,6日,1,1,1,1)knapsackCoef < - c(16 16 8、8、4、4、2、2、1、1)预算< - 33 #初始化模型模型< -列表()模型美元modelsense < -“max”模型美元modelname < - poolsearch #设置变量模型美元obj < - objCoef模型美元vtype < - B模型美元磅< - 0模型美元乌兰巴托< - 1模型美元varnames < - sprintf (El % d, seq (groundSetSize)) #构建约束矩阵模型美元< - spMatrix (1 groundSetSize i =代表(1,groundSetSize), j = 1: groundSetSize, x = knapsackCoef)模型美元rhs < - c(预算)模型美元感觉< - c模型(“<”)美元constrnames < - c(预算)#设置poolsearch参数参数< -()参数列表美元PoolSolutions < - 1024参数美元PoolGap < - 0.10参数美元gurobi_write PoolSearchMode < - 2 #保存问题(模型、poolsearch_R.lp) #优化结果< - gurobi(模型、参数)#获取解决方案信息如果(结果美元地位! = '最佳'){猫(优化完成状态,结果美元状态,' \ n ')停止(“现在停止\ n”)} #猫打印最佳解决方案(“最佳解决方案的选定元素:\ n”)猫(模型美元varnames[这结果美元x > = 0.9)], ' \ n ') #打印所有解决方案目标和最佳菲尔特解决方案如果名字(“池”% %(结果)){solcount < -长度(结果美元池)猫(发现的解决方案:,solcount, ' \ n ')猫(solcount“客观值”,“解决方案:\ n”) (k 1: solcount){猫(结果美元池[[k]]美元objval”、“, 9 = ")}猫(“\ n”)如果(solcount > = 4){猫(“选中的元素在第四个最佳解决方案:\ n”)猫(模型美元varnames[这结果美元池[[4]]美元xn > = 0.9)], ' \ n ')}} {solcount < - 1其他猫(发现的解决方案:,solcount, ' \ n ')猫(方案1目的:,结果美元objval, ' \ n ')} #清理rm(模型、参数结果)