python - 如何在 CPLEX-PYTHON(不是 docplex)中生成一些可行的解决方案?
问题描述
我正在使用线性数学规划方法研究关于车辆路径问题 (VRP) 的变体形式的论文。我制定了一个经过充分测试的模型,但是这个模型在可接受的计算时间内最多可以解决 30 个节点,所以我需要实施一些元启发式算法来为更大的实例找到好的可行解决方案,所以这里是问题所在。我知道我可以使用 python-cplex 命令 solution_pool (类似的东西)生成一些解决方案,所以我想知道如何生成和访问这些解决方案(目标函数值、决策变量值等)我的模型是cplex 对象模型。我知道这是可能的,如果你能帮助我,那就太好了。在此先感谢智利的问候。
解决方案
一旦你有了你的 cpx 对象,你就可以写
cpx.populate_solution_pool()
numsol = cpx.solution.pool.get_num()
print("The solution pool contains %d solutions." % numsol)
meanobjval = cpx.solution.pool.get_mean_objective_value()
sol_pool = []
for i in range(numsol):
objval_i = cpx.solution.pool.get_objective_value(i)
x_i = cpx.solution.pool.get_values(i)
nb_vars=len(x_i)
sol = []
for k in range(nb_vars):
sol.append(x_i[k])
sol_pool.append(sol)
print("pools =",sol_pool)
推荐阅读
- python - Django:提交按钮被触发两次
- blazor - 使用 Blazor 单击提交后清除 InputFields
- javascript - 服务器端路由与带代理的前端路由
- react-native - 无法从 node_modules\uuidv4\build\lib\uuidv4.js 解析模块 util:在项目中找不到 util
- c++ - 为什么 MSVC 使用系统 DLL 而不是工具包 DLL?
- performance - 为什么我的网站只有在我第一次访问时才变慢?
- css - 三态关闭按钮
- api - 用于股票价格警报的 Discord Bot
- excel - Excel VBA Page-Setup - 添加 HPage-Breaks 后适合宽度的页面失去了它的价值
- docker - 配置 SSL 两个不同的容器。一个在 443 上。一个在非 443 上。两个 Nginx