ipopt优化包的cython包装器
ipopt的Python项目详细描述
此存储库是从https://bitbucket.org/amitibo/cyipopt派生的,是 现在被认为是主存储库。fork包含一个scipy样式 接口,处理回调函数中异常的能力,以及Docker 方便使用的容器。
cyipopt的自述文件
Ipopt(内部点优化器,发音为eye pea opt)是一个软件包 用于大规模非线性优化。ipopt可从COIN-OR获得 在eclipse公共许可证(epl)下的主动权。
cyipot是ipopt的python包装器。它允许从 python编程语言的舒适性。
使用量
对于不需要稀疏和结构化的全部功能的简单情况 jacobians等,cyipopt提供函数minimize_ipopt,该函数具有 与scipy.optimize.minimize相同的行为,例如:
fromscipy.optimizeimportrosen,rosen_derfromipoptimportminimize_ipoptx0=[1.3,0.7,0.8,1.9,1.2]res=minimize_ipopt(rosen,x0,jac=rosen_der)print(res)
安装
Anaconda Python Distribution是 安装python和相关的linux软件包的最简单方法之一, Mac和Windows。一旦安装了anaconda(或miniconda),就可以安装 Linux和Mac上的cyipopt,来自conda forge频道,带有:
$ conda install -c conda-forge cyipopt
上面的命令将安装所有必需的二进制版本 依赖关系和cyipot。请注意,当前没有Windows二进制文件。 您必须从Windows的源安装,或者如果您希望自定义 安装,例如使用MKL、HSL等。
要开始从源安装,您需要安装以下 依赖关系:
- C/C++ compiler
- pkg-config [only for Linux and Mac]
- Ipopt
- Python 2.7 or 3.4+
- setuptools
- cython
- numpy
- six
- future
- scipy [optiional]
ipopt包的二进制文件和头文件可以从 http://www.coin-or.org/download/binary/Ipopt/。其中包括编译的版本 反对MKL图书馆。或者可以从源代码构建ipopt。剩下的 依赖项可以与conda或其他包管理器一起安装。
下载cyipot的源文件并更新setup.py以指向 ipopt包的头文件和二进制文件,如果LD_LIBRARY_PATH和 pkg_config未设置为自行查找ipopt。
然后,执行:
$ python setup.py install
码头集装箱
子目录docker包含一个预先安装了ipopt的docker容器 还有Cyipopt。要构建容器,请将cd放入docker目录并运行 make。然后您可以通过以下方式启动容器:
$ docker run -it matthiask/ipopt /bin/bash
直接调用ipopt,或者启动一个ipython shell和import ipopt。
流浪环境
子目录vagrant包含安装ipopt和 操作系统中的cyipot条款。要构建环境,请将cd放入vagrant 目录并运行vagrant up(要求您具有vagrant+virtualbox 已安装)。然后您可以通过以下方式访问系统:
$ vagrant ssh
或者直接调用ipopt,或者启动一个python shell和import ipopt。另外,如果您得到源文件 &coinhsl的lt;http://www.coin-or.org/download/binary/ipopt/>;并将其放入 vagrant目录中,vagrant提供将检测到它们并将其添加到 IPOPT编译过程,然后您将拥有MA57、MA27和其他解算器 在ipopt二进制文件上可用(为了避免编译,删除了ma97和mc68 错误)。
阅读文档
安装后:
$ cd doc $ make html
然后,将浏览器指向build/html/index.html。
测试
您可以通过运行文件夹test\下的示例来测试安装。
使用条件
cyipot是根据EPL许可证发布的开源代码。
贡献
对于bug报告,使用github问题跟踪程序。你也可以送上祝福, 对matthias.kuemmerer@bethgelab.org的注释、补丁等