【问题标题】:CPLEX Python- creating an objective function with quadratic term and linear termCPLEX Python-创建具有二次项和线性项的目标函数
【发布时间】:2021-09-22 17:27:36
【问题描述】:

这里是 CPLEX 新手。对不起!

我正在通过 python API 运行 CPLEX,我想设置包含二次项和线性项的目标函数,并将其最小化。

下面的例子:

obj = aQ+bV

其中 a & b 是标量常数, Q 是二次项 V 是一个向量。

以下是使用虚拟数据的具体示例。 我想找到最小化以下方程的 x1,x2,x3:

              Quadratic Part                                               Linear Part

到目前为止,我可以通过显式写出二次矩阵并运行来解决二次部分

p.objective.set_quadratic(Q)

如何将第二个线性项添加到此目标函数?

谢谢,

丹尼尔

【问题讨论】:

    标签: python optimization cplex quadratic-programming


    【解决方案1】:

    使用 docplex python,您可以直接使用二次项

    https://github.com/AlexFleischerParis/zoodocplex/blob/master/zooquadratic.py

    举个小例子

    【讨论】:

      【解决方案2】:

      对于那些感兴趣的人:

      解决方案非常简单。

      1. p.objective.set_quadratic(q) - 此函数设置目标的二次部分,但并不详尽,这意味着您可以通过简单地包含第 2 行来为目标添加线性项。

      2. p.objective.set_linear() 或在我的情况下在变量部分添加线性项:

      3. p.variables.add(obj= my_linear_objective, ub=upper_bounds, lb=lower_bounds, names=my_names)

      基本上,您在这里所做的是创建一个目标,该目标是您在第 1 行中设置的二次部分 + 在第 2 或第 3 行中设置的线性部分。

      【讨论】:

        猜你喜欢
        • 2016-12-21
        • 1970-01-01
        • 2019-02-09
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        相关资源
        最近更新 更多