python - CPLEX 的 Python 中的 Bender 分解示例

标签 python cplex decomposition

[![在此处输入图像描述][1]][1]我正在运行 CPLEX 通过 eclips 提出的示例中的“bendersatsp.py”。我只在定义“filename=”的主子句中添加了 atsp.dat 的路径。运行后,它似乎只在 len(sys.argv)=1 时执行,并给出以下结果。您知道问题是什么以及为什么它不能完全运行吗?

  Usage:     bendersatsp.py {0|1} [filename]
  0:        Benders' cuts only used as lazy constraints,
            to separate integer infeasible solutions.
  1:        Benders' cuts also used as user cuts,
            to separate fractional infeasible solutions.
  filename: ATSP instance file name.
       File C:\Program Files (x86)\IBM\ILOG\CPLEX_Studio1261\cplex\examples/data/atsp.dat used if no name is provided.

最佳答案

0|1 参数是必需的。例如,您需要像这样运行脚本:

python bendersatsp.py 0 "C:\Program Files (x86)\IBM\ILOG\CPLEX_Studio1261\cplex\examples/data/atsp.dat"

或者,假设您已更改默认文件名路径:

python bendersatsp.py 0

我在解析下面命令行参数的代码中添加了一些注释,以尝试阐明这一点:

if __name__ == "__main__":
    # If there are not 1 or 2 arguments then exit (recall that 
    # sys.argv[0] is the program name itself (i.e., "bendersatsp.py")
    if len(sys.argv) != 2 and len(sys.argv) != 3:
        usage()
        sys.exit(-1)
    # If the first argument is not "0" or "1" then exit.
    if sys.argv[1] not in  ["0", "1"]:
        usage()
        sys.exit(-1)
    # Store the second argument in filename if there is one.
    if len(sys.argv) == 3:
        filename = sys.argv[2]
    else:
        # Otherwise, use the following default.
        filename = "../../../examples/data/atsp.dat"
    # Pass the arguments into the bendersATSP function.
    bendersATSP(sys.argv[1][0], filename)

关于python - CPLEX 的 Python 中的 Bender 分解示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47353127/

相关文章:

java - 具有 2 个变量的 CPLEX 项

java - 如何使用 CP Optimizer 对提货和送货操作的容量约束进行建模?

java - Eclipse 中的 CPLEX 库路径错误

sql - Lossless join decomposition property——一次BCNF分解只有一次无损分解

database-design - 无损分解与依赖保留

python - 从混合高斯分布生成二维样本数据集

jquery - 使用 AJAX 执行 Python Django 脚本

c# - 如何分解这个r​​eport类呢?

python - 与 Django 比较日期范围

python - 向随机游走图添加动画 [Python]