Cplex 热启动

问题描述 投票:0回答:0

热启动 Cplex 会改变解的精度吗?

我在下面的get中设置了不同的初始状态。总是想出相同的解决方案。

from qiskit_optimization import QuadraticProgram
from docplex.mp.model import Model
from qiskit_optimization.algorithms import MinimumEigenOptimizer, CplexOptimizer
from qiskit_optimization.translators import from_docplex_mp

mdl = Model()

x = [mdl.continuous_var(0,1,"x%s" % i) for i in range(len(Sigma_PD))]

objective = mdl.sum([Mu[0][i] * x[i] for i in range(len(Sigma_PD))])
objective -= 2 * mdl.sum(
    [Sigma_PD[i, j] * x[i] * x[j] for i in range(len(Sigma_PD)) for j in range(len(Sigma_PD))]
)

warmstart=mdl.new_solution()
warmstart.add_var_value(x[0],0.01)
warmstart.add_var_value(x[1],0.05)
warmstart.add_var_value(x[2],0.08)
warmstart.add_var_value(x[5],1)
mdl.add_mip_start(warmstart)

mdl.maximize(objective)

sol=mdl.solve(log_output=True)

mdl.solve()    

for v in mdl.iter_continuous_vars():
    print(v," = ",v.solution_value)

有没有办法通过热启动技术来提高Cplex得到的解的精度?

optimization cplex
© www.soinside.com 2019 - 2024. All rights reserved.