Python中如何使用ortools求解二次规划?

Posted

技术标签:

【中文标题】Python中如何使用ortools求解二次规划?【英文标题】:How to use ortools to solve quadratic programming in Python? 【发布时间】:2018-06-02 07:22:32 【问题描述】:

例如,如何在 Python 中通过 ortools 简单地找到 (x-1)^2 的最小值?

我看了ortools的文档,但是找不到。我知道它不属于线性优化,但我在它的文档中找不到合适的类型。

【问题讨论】:

【参考方案1】:

Google OR-Tools 不支持二次规划。 This page 包含它支持的列表:

Google 优化工具 (OR-Tools) 是一种快速且可移植的软件套件,用于解决组合优化问题。该套件包含:

约束规划求解器。

一个简单而统一的接口,可连接多个线性规划和混合整数规划求解器,包括 CBC、CLP、GLOP、GLPK、Gurobi、CPLEX 和 SCIP。

图算法(最短路径、最小成本流、最大流、线性求和分配)。

旅行商问题和车辆路线问题的算法。 装箱和背包算法。

以下链接阐明了混合整数规划 (MIP) 支持不包括二次 MIP (MIQP): https://github.com/google/or-tools/issues/598

您可以查看此资源以了解如何在 Python 中执行 QP: https://scaron.info/blog/quadratic-programming-in-python.html

【讨论】:

非常感谢!我知道我可以使用 cvxopt 或 scipy.optimize 进行二次规划,但我只是想尝试 ortools,但找不到合适的函数。 @Kai:ortools中没有合适的函数:不能做二次优化。 这里有一个二次方的例子:github.com/ogunheper/google-or-tools-sample/blob/… 在我写完答案后,ortools 似乎已更新为包含此功能,所以我的原始回复不再正确

以上是关于Python中如何使用ortools求解二次规划?的主要内容,如果未能解决你的问题,请参考以下文章

Ortools 在求解时设置约束

svm+python实现

如何在 ORTOOLS 中使用 SCIP for MILP [python]

MPC的终结——二次规划求解约束极值问题

matlab 用单纯形法求解二次规划问题

如何在ortools python中设置约束