首页 > 解决方案 > 如何在 CPLEX-PYTHON(不是 docplex)中生成一些可行的解决方案?

问题描述

我正在使用线性数学规划方法研究关于车辆路径问题 (VRP) 的变体形式的论文。我制定了一个经过充分测试的模型,但是这个模型在可接受的计算时间内最多可以解决 30 个节点,所以我需要实施一些元启发式算法来为更大的实例找到好的可行解决方案,所以这里是问题所在。我知道我可以使用 python-cplex 命令 solution_pool (类似的东西)生成一些解决方案,所以我想知道如何生成和访问这些解决方案(目标函数值、决策变量值等)我的模型是cplex 对象模型。我知道这是可能的,如果你能帮助我,那就太好了。在此先感谢智利的问候。

标签: pythonalgorithmmathematical-optimizationcplexvehicle-routing

解决方案


一旦你有了你的 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)

推荐阅读