【问题标题】:SCIP - run (nearly) same LP on different instancesSCIP - 在不同的实例上运行(几乎)相同的 LP
【发布时间】:2020-03-09 18:41:48
【问题描述】:

我有一个用建模语言 Zimpl 制定的 LP,我想在许多实例上运行,这些实例位于不同的文件中。 此外,我想更改此 LP 中的一个参数。 对于单个呼叫,我的文件 test.zpl 如下所示:

param FILE := "file1.dat"
param BOUND := 42

[test_body: Rest of LP]

现在我想更改这两个参数。 SCIP 具有-c 选项,用于执行某些命令。但我找不到通过哪个命令来实现这一点。我发现的所有参数更改都会影响算法,而不是数据。

更改问题的命令change似乎不允许新参数/变量。

最后,我希望解决方案看起来像

scip -c "[set my parameters]; read test_body.zpl; optimize; quit"

如何设置这些问题参数?

【问题讨论】:

    标签: scip


    【解决方案1】:

    我不知道有任何命令支持按您的意愿修改模型参数。但是,如果您不在.zpl 文件中硬编码param BOUND 的值(而是将值移动到.dat 文件并在模型中使用正确的read 命令),那么您可以按照如下:

    1. 制作数据文件的副本,以便每个副本包含不同的 param BOUND
    2. 对每个数据文件分别调用 scip.exe(您也可以使用简单的批处理脚本)

    【讨论】:

    • 是的,我也认为 SCIP 中的 ZIMPL 阅读器不允许更改 ZIMPL 文件中的参数。只需使用scip -b 并按照建议使用批处理文件。如果您仅更改目标或仅限制解决方案空间(不确定您的问题如何相关),您也许可以使用重新优化功能 scip.zib.de/doc-6.0.1/html/REOPT.php
    猜你喜欢
    • 2015-08-03
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    相关资源
    最近更新 更多