热启动 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得到的解的精度?