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第三方库


热门话题
内存Java正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?