【问题标题】:How to write sumation in IBM CPLEX Python API如何在 IBM CPLEX Python API 中编写求和
【发布时间】:2017-02-26 20:05:34
【问题描述】:

我是 Cplex Python API 的新手,但我使用过 Cplex OPL,在 OPL 中,您可以轻松地将这个目标函数 Max [sum C_ij*X_ij] 编写为:

最大化 sum(i in set1,j in set2) C_ij*X_ij

如果我们要使用python API,我们必须将它定义为向量格式Max C*X,其中C和X分别是系数和变量的向量。所以你需要从 C_ij 矩阵中制作矢量格式。

有没有办法像我们在 OPL 中那样以矩阵格式编写它?

【问题讨论】:

    标签: python cplex


    【解决方案1】:

    CPLEX Python API 不支持此功能,但DOcplex Modeling for Python API 类似于 OPL。如需快速入门,请参阅Creating a MP model in a nutshell 页面和参考手册中的Model.sum

    【讨论】:

    • 我只是想换个说法。 Cplex Python API只支持一维向量,如果我们要写a_ijk我们不能使用3维数组,我们需要将其转换为一维向量?
    • 是的,听起来不错。使用 CPLEX Python API,有 SparsePairSparseTriple 类来表示稀疏矩阵,但您将使用一维列表来构建这些。
    • 你很有帮助。最后一个问题。是否可以在 OPL 中创建模型并将其保存为 LP 模型文件,然后在 Python 中调用或使用此模型。即用 OPL 编写模型并在 Python 中给出输入参数?
    • 是的,您可以从 OPL IDE 中 export to an LP 文件。但请记住,导出为 LP 格式时可能会降低精度。您可以改为选择 SAV 格式。通过 CPLEX Python API,您可以非常轻松地在这些模型之一中read
    • 如果您也能回答这个问题,我将不胜感激。我构建了我的模型,最后我只输入了“Model.solve()”,然后我收到了这个错误:“CPLEX DLL not found: please provide DOcplexcloud credentials” 我的电脑上安装了 CPLEX Studio 12.6。我想在本地而不是在云端解决问题。
    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2019-10-11
    • 2016-05-27
    相关资源
    最近更新 更多