一个到圆锥优化求解器的python接口。
PICOS的Python项目详细描述
圆锥优化解算器的python接口
picos是一个用户友好的python api,可用于多个圆锥和整数编程。 解算器,非常像YALMIP或 CVX在MATLAB下面。
picos允许您以高级别输入数学优化问题 模型,支持(复杂)向量和矩阵变量 多维代数。您的模型将转换为标准 由运行时可用的适当解算器理解的窗体。这个 使您的应用程序可移植 商业和开源解决方案。
功能
picos在python 2和python 3下运行,并支持以下内容 解决者和问题类型。要使用解算器,需要单独安装它 以及此处列出的python接口。
Solver | Interface | LP | SOCP | SDP | QCQP | EXP | MIP | License |
---|---|---|---|---|---|---|---|---|
CPLEX | included | Yes | Yes | Yes | Yes | non-free | ||
CVXOPT | native | Yes | Yes | Yes | Yes | Yes¹ | GPL-3 | |
ECOS | ecos-python | Yes | Yes | Yes | Yes | Yes | GPL-3 | |
GLPK | swiglpk | Yes | Yes | GPL-3 | ||||
Gurobi | included | Yes | Yes | Yes | Yes | non-free | ||
MOSEK | included | Yes | Yes | Yes | Yes | Yes | non-free | |
SMCP | native | Yes² | Yes² | Yes | Yes² | GPL-3 | ||
SCIP | PySCIPOpt | Yes | Yes | Yes | Yes | ZIB/MIT |
仅限于geometric programming, 实验性
示例
这就是求解多维混合整数程序的样子 使用picos:
>>>importpicos>>>P=picos.Problem()>>>x=P.add_variable("x",2,vtype="integer")>>>C=P.add_constraint(x<=5.5)>>>P.set_objective("max",1|x)# 1|x is the sum over x>>>solution=P.solve(verbose=0)>>>print(solution["status"])'integer optimal solution'>>>print(P.obj_value())10.0>>>print(x)[5.00e+00][5.00e+00]>>>print(C.slack)[5.00e-01][5.00e-01]
文档和来源
- 完整的文档可以浏览 online 或下载 in PDF form。
- 没有教程和示例的api文档也可以作为 separate PDF。
- 源代码位于GitLab。
安装
通过PIP
如果您正在使用pip,则可以运行
pip install picos
获取最新版本。
经由水蟒
如果您使用的是Anaconda,则可以运行
conda install -c picos picos
获取最新版本。
通过系统的包管理器
在arch linux上,aur中有用于 latest version和 latest release。两者都是 拆分同时提供python 2和python 3版本的picos的包。
如果您正在为其他系统打包picos,请告诉我们以便我们可以列出 你的包裹在这里!
来源
如果您是手动安装picos,您可以选择 development versions和 source releases。 您至少需要安装以下python包:
学分
开发人员
- Guillaume Sagnol是picos的首字母 作者和主要开发人员自2012年起。
- Maximilian Stahlberg正在扩展和维护picos,因为 2017年。
贡献者
有关所有代码贡献者的最新列表,请参阅 contributors page。 如果不清楚2019年之前的参考资料,你可以参考 old contributors page 在Github上也是。
许可证
picos是免费的开源软件,根据 这个GNU GPL v3。