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)