2024-04-25 22:15:38 发布
网友
我正在用python上的docplex开发一个lp模型,我需要得到放松模型的解决方案变量,但不知道如何让python给我模型的放松解决方案变量。我可以将它们视为一个输出,但当我打印它时,它只会转换变量的未松弛值。所以,问题是我该如何解决
y[i].solution_value # how can i addressed y[i] as a relaxed solution value of y[i]
致以最良好的祝愿
您可以依赖LinearRelaxer,如https://github.com/AlexFleischerParis/zoodocplex/blob/master/zoorelaxintegrity.py所示
from docplex.mp.model import Model from docplex.mp.relax_linear import LinearRelaxer def make_bus_model(): mdl = Model(name='buses') nbbus40 = mdl.integer_var(name='nbBus40') nbbus30 = mdl.integer_var(name='nbBus30') mdl.add_constraint(nbbus40 * 40 + nbbus30 * 30 >= 300, 'kids') mdl.minimize(nbbus40 * 500 + nbbus30 * 400) return mdl if __name__ == '__main__': bm1 = make_bus_model() bm1.print_information() s1 = bm1.solve(log_output=True) s1.display() bmr = LinearRelaxer.make_relaxed_model(bm1) bmr.print_information() rs = bmr.solve(log_output=True) rs.display() duals = bmr.get_constraint_by_name("kids").dual_value print("dual of the 300 kids constraint = ",duals)
给
solution for: buses objective: 3800 nbBus40 = 6 nbBus30 = 2 Model: lp_buses - number of variables: 2 - binary=0, integer=0, continuous=2 - number of constraints: 1 - linear=1 - parameters: defaults - objective: minimize - problem type is: LP Version identifier: 12.10.0.0 | 2019-11-26 | 843d4de2ae CPXPARAM_Read_DataCheck 1 CPXPARAM_RandomSeed 201903125 Tried aggregator 1 time. LP Presolve eliminated 1 rows and 2 columns. All rows and columns eliminated. Presolve time = 0.00 sec. (0.00 ticks) solution for: lp_buses objective: 3750.000 nbBus40 = 7.500 dual of the 300 kids constraint = 12.5
您可以依赖LinearRelaxer,如https://github.com/AlexFleischerParis/zoodocplex/blob/master/zoorelaxintegrity.py所示
给
相关问题 更多 >
编程相关推荐