跳转到主要内容

Python对OPL的接口。

项目描述

欢迎来到IBM® OPL Python连接器。根据Apache License v2.0许可。

使用此库,您可以将优化能力快速轻松地添加到Python应用程序中。您可以使用OPL语言和IDE来建模问题,并通过Python/pandas/sql alchemy输入/输出进行集成。

使用CPLEX进行求解需要在您的计算机上安装IBM® ILOG CPLEX Optimization Studio V12.8.0及以上版本。

安装库

pip install doopl

获取示例

获取您的IBM® ILOG CPLEX Optimization Studio版本

  • 您可以获得一个社区版的CPLEX Optimization Studio,在问题规模方面具有有限的求解能力。

  • 大学教师、认证机构的研究专业人员可以通过IBM® Academic Initiative获取CPLEX的无限制版本。

许可

此库根据2004年1月的Apache License Version 2.0提供(请参阅LICENSE.txt)。

起点

API非常紧凑且简单。您必须在您的PATH/LD_LIBRARY_PATH或DYLD_LIBRARY_PATH中包含OPL二进制文件,具体取决于您的平台。它们位于<cplex_studio_dir>/opl/bin/<platform>,其中

  • cplex_studio_dir是CPLEX 12.8的安装目录

  • 平台 是您的平台(OPL命名,即 x64_win64x86-64_linuxx86-64_osx

以下是功能摘要

  • 输入可以是元组列表、Pandas的DataFrame、SQLAlchemy查询语句。

  • 生成、求解并获取输出元组集作为Pandas的DataFrame

  • 获取CPLEX问题的统计信息和解决方案的质量指标

  • 将所有整数变量转换为浮点变量,反之亦然。

  • 运行冲突/松弛机制。

  • 对基于CPLEX/CPO的问题调用“RunSeed”诊断。

所有这些功能都通过简单示例进行了演示。

以下是一个开始使用API的小示例

from doopl.factory import *

# Create an OPL model from a .mod file
with create_opl_model(model="file.mod") as opl:
    # tuple can be a list of tuples, a pandas dataframe...
    opl.set_input("TupleSet1", tuples)

    # Generate the problem and solve it.
    opl.run()

    # Get the names of post processing tables
    print("Table names are: "+ str(opl.output_table_names))

    # Get all the post processing tables as dataframes.
    for name, table in iteritems(opl.report):
        print("Table : " + name)
        for t in table.itertuples(index=False):
            print(t)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

本发行版没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

doopl-12.10.0.26-cp37-cp37m-win_amd64.whl (25.0 MB 查看哈希值)

上传时间 CPython 3.7m Windows x86-64

doopl-12.10.0.26-cp37-cp37m-manylinux1_x86_64.whl (293.9 kB 查看哈希值)

上传时间 CPython 3.7m

doopl-12.10.0.26-cp37-cp37m-macosx_10_6_x86_64.whl (302.4 kB 查看哈希值)

上传时间 CPython 3.7m macOS 10.6+ x86-64

doopl-12.10.0.26-cp37-cp37m-win_amd64.whl (25.0 MB 查看哈希值)

上传时间 CPython 3.6m Windows x86-64

doopl-12.10.0.26-cp36-cp36m-manylinux1_x86_64.whl (293.9 kB 查看哈希值)

上传时间 CPython 3.6m

doopl-12.10.0.26-cp36-cp36m-macosx_10_6_x86_64.whl (302.4 kB 查看哈希值)

上传时间 CPython 3.6m macOS 10.6+ x86-64

doopl-12.10.0.26-cp35-cp35m-win_amd64.whl (25.0 MB 查看哈希值)

上传于 CPython 3.5m Windows x86-64

doopl-12.10.0.26-cp35-cp35m-manylinux1_x86_64.whl (293.9 kB 查看哈希值)

上传于 CPython 3.5m

doopl-12.10.0.26-cp35-cp35m-macosx_10_6_x86_64.whl (302.4 kB 查看哈希值)

上传于 CPython 3.5m macOS 10.6+ x86-64

doopl-12.10.0.26-cp27-cp27mu-manylinux1_x86_64.whl (295.7 kB 查看哈希值)

上传于 CPython 2.7mu

doopl-12.10.0.26-cp27-cp27m-win_amd64.whl (25.0 MB 查看哈希值)

上传于 CPython 2.7m Windows x86-64

doopl-12.10.0.26-cp27-cp27m-manylinux1_x86_64.whl (295.7 kB 查看哈希值)

上传于 CPython 2.7m

doopl-12.10.0.26-cp27-cp27m-macosx_10_6_x86_64.whl (303.5 kB 查看哈希值)

上传于 CPython 2.7m macOS 10.6+ x86-64

由以下支持: