poolsearch。R


poolsearch。R


# 2021年版权,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 #初始化模型模型<- list()模型Modelsense <- 'max'模型modelname <- 'poolsearch' #设置变量模型obj <- objCoef模型vtype <- 'B'模型Lb <- 0模型Ub <- 1模型varnames <- sprintf('El%d', seq(1,groundSetSize)) #建立约束矩阵模型一个<- spMatrix(1, groundSetSize, i = rep(1,groundSetSize), j = 1:groundSetSize, x = knapsackCoef)模型rhs <- c(预算)模型感觉<- c('<')模型construcnames <- c('Budget') #设置poolsearch参数params <- list()参数<- 1024个参数PoolGap <- 0.10参数PoolSearchMode <- 2 #保存问题gurobi_write(模型,'poolsearch_R.lp') #优化结果<- gurobi(模型,参数)#捕获解决方案信息如果(结果status != 'OPTIMAL') {cat('状态完成优化',结果\n') stop(' stop now\n')} #打印最佳解决方案cat('在最佳解决方案中选择的元素:\n') cat(模型varnames[这结果如果('pool' %in% names(result)) {solcount <- length(result) . * * * * * * * * * * * * * * * * *pool) cat('发现的解决方案数量:',solcount, '\n') cat('Objective values for first', solcount, 'solutions:\n') for (k in 1:solcount) {cat(结果池[[k]]objval,' ',sep= ")} cat('\n') if (solcount >= 4) {cat('在第四最佳解决方案中选择的元素:\n') cat(模型varnames[这结果池[[4]]xn >= 0.9)], '\n')}} else {solcount <- 1 cat('找到的解决方案的数量:',solcount, '\n') cat('解决方案1有目标:',结果objval, '\n')} #清理rm(model, params, result)