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_PATHpkg_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的注释、补丁等

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Netbeans在Java中创建可执行文件   swing Set不透明(真/假);JAVA   java JPA无法删除具有onotomany关系和cascatype all的实体   java Hibernate自参考映射难题   Java/从字符串到Java代码   java为什么我已经在取整了,却得到了一个无终止小数扩展?   java Wicket onsubmit信息对话框   java如何使用类、类加载器和URL获取资源   java在多模块项目中使用License Maven插件时出错   java HashSet“contains”方法是如何工作的?   图像JavaPNG显示为黑色   java如何在保持内容完整的同时在两个活动之间切换?   JAVA在Tomcat 7.0.27中,WAR无法为Prod正确解包   listview的java onclicklistener   JavaXPages托管Bean可以跨多个数据库工作吗?   java无法停止服务空对象引用错误Android   java将UTF8编码的字符串转换为人类可读的字符串   JavaSpring与JBossSAML的集成   java如何替换AuthorizationCodeInstalledApp类?