我正在研究使用线性数学规划方法的车辆路径问题(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 - 如何在 CPLEX-PYTHON (不是 docplex)中生成一些可行的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56318456/