0

根据http://scip.zib.de/doc/html/TEST.php中的步骤,我设法使用 SCIP 设置了一个自动化测试。但是,我想将解决方案(最佳可行解决方案)写入文件,而不仅仅是获取目标值。无论如何在自动化测试中可以做到这一点?

我通过替换在 check.sh 中进行了破解

OPTCOMMAND=optimize; write solution myfilename.sol;

但是太糟糕了,它似乎不起作用,当我尝试进行 TEST=mytest 测试时,从输出中观察到这一行

 bash ./check.sh mytest bin/scip-3.1.0.linux.x86_64.gnu.opt.spx default scip-3.1.0.linux.x86_64.gnu.opt.spx 3600 2100000000 6144 1 default 10000 false false 3.1.0 spx false /tmp optimize;
 write: solution is not logged in on myfilename.sol

我知道可以通过交互式 shell 编写解决方案,但我正在尝试自动化测试以检索解决方案和 obj 值。任何帮助或澄清将不胜感激!

4

1 回答 1

1

您收到错误是因为使用您使用的语法,由于分号,您尝试调用名为“write”的 bash 命令:

写入实用程序允许您通过将行从终端复制到其他用户来与其他用户通信。

试试不带分号;)

更清洁的解决方案是修改文件“check/configuration_tmpfile_setup_scip.sh”并添加该行

echo write solution /absolute/path/to/solutions/${INSTANCE}.sol >> $TMPFILE

在退出命令之前。此配置文件设置一个批处理文件,为 SCIP 提供交互式 shell 应执行的所有命令,并且您可以对任意用户行为进行建模。

于 2014-10-21T15:45:15.157 回答