如何解决CPLEX Python-使用二次项和线性项创建目标函数
这里是 CPLEX 新手。对不起!
我正在通过 python API 运行 CPLEX,我想设置包含二次项和线性项的目标函数,并最小化。
示例如下:
obj = aQ+bV
其中 a & b 是标量常数, Q 是二次项 V 是一个向量。
以下是使用虚拟数据的具体示例。 我想找到最小化以下等式的 x1,x2,x3:
Quadratic Part Linear Part
到目前为止,我可以通过显式写出二次矩阵并运行来解决二次部分
p.objective.set_quadratic(Q)
谢谢,
丹尼尔
解决方法
使用 docplex python 可以直接使用二次项
见
https://github.com/AlexFleischerParis/zoodocplex/blob/master/zooquadratic.py
举个小例子
,感兴趣的人:
解决方案非常简单。
p.objective.set_quadratic(q) - 这个函数设置了目标的二次部分,但它并不详尽,这意味着你可以通过简单地包含第 2 行来为目标添加一个线性项。>
-
p.objective.set_linear() 或在我的情况下在变量部分添加线性项:
-
p.variables.add(obj= my_linear_objective,ub=upper_bounds,lb=lower_bounds,names=my_names)
在这里,您所做的基本上是创建一个目标,该目标是第 1 行中设置的二次部分 + 第 2 行或第 3 行中设置的线性部分的组合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。