Mathematical optimization 如何使用Cplex(docplex)输出单工乘法器?

Mathematical optimization 如何使用Cplex(docplex)输出单工乘法器?,mathematical-optimization,linear-programming,cplex,docplex,Mathematical Optimization,Linear Programming,Cplex,Docplex,我正在使用python和docplex库来解决一个线性规划问题。我想得到它的单纯形乘法器,或者(松弛变量的)系数 你看过dual value吗 dual_values(cts) Returns the dual values of a sequence of linear constraints. Note: the model must a pure LP: no integer or binary variable, no piecewise, no SOS. The model

我正在使用python和docplex库来解决一个线性规划问题。我想得到它的单纯形乘法器,或者(松弛变量的)系数

你看过dual value吗

 dual_values(cts)

 Returns the dual values of a sequence of linear constraints.

 Note: the model must a pure LP: no integer or binary variable, no piecewise, no SOS. The model must also be solved successfully before
 calling this method.

让我把OPL示例volsay翻译成docplex

from docplex.mp.model import Model

mdl = Model(name='volsay')
Gas = mdl.continuous_var(name='Gas')
Chloride = mdl.continuous_var(name='Cloride')

mdl.add_constraint(Gas + Chloride <= 50, 'ctMaxTotal1')
mdl.add_constraint(3 * Gas + 4 * Chloride <= 180, 'ctMaxTotal2')
mdl.add_constraint(Chloride <= 40, 'ctMaxChloride')

mdl.maximize(40 * Gas + 50 * Chloride)

mdl.solve()



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

print("ctMaxTotalDual = ",mdl.dual_values(mdl.find_matching_linear_constraints('ctMaxTotal1'))); 
来自docplex.mp.model导入模型
mdl=Model(name='volsay')
气体=mdl.连续变量(名称='气体')
氯化物=mdl.连续变量(name='Cloride')

mdl.add_约束(气体+氯化物感谢您的回答,如果您不介意的话,我还有一个问题,在列生成方法的每次迭代中,您是否编写代码来选择退出基的列?否则,使用新列再次解决问题将是一种浪费。请参见示例谢谢,但它与我所看到的不同在帖子中,他只是在生成新的列后重新解决了主问题,我想要的是一些cplex函数(可能有也可能没有)这可以利用以前的最佳解决方案。就像双重简单方法一样,在原始问题中添加新行后,您不需要从头开始解决问题。您好,您可以看一下增量变化,有没有办法访问cplex中的最终表?我做了一些研究,但没有找到好的参考,可以吗lp?谢谢
// --------------------------------------------------------------------------
// Licensed Materials - Property of IBM
//
// 5725-A06 5725-A29 5724-Y48 5724-Y49 5724-Y54 5724-Y55
// Copyright IBM Corporation 1998, 2013. All Rights Reserved.
//
// Note to U.S. Government Users Restricted Rights:
// Use, duplication or disclosure restricted by GSA ADP Schedule
// Contract with IBM Corp.
// --------------------------------------------------------------------------

dvar float+ Gas;
dvar float+ Chloride;


maximize
  40 * Gas + 50 * Chloride;
subject to {
  ctMaxTotal:     
    Gas + Chloride <= 50;
  ctMaxTotal2:    
    3 * Gas + 4 * Chloride <= 180;
  ctMaxChloride:  
    Chloride <= 40;
}

tuple SolutionT{ 
    float Gas; 
    float Chloride; 
};
{SolutionT} Solution = {<Gas,Chloride>};
execute{ 
    writeln(Solution);
}

execute
{
  writeln("ctMaxTotalDual = ",ctMaxTotal.dual);
}