根据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值。任何帮助或澄清将不胜感激!
答案 0 :(得分:1)
您收到错误是因为使用了您正在使用的语法,因为分号,您尝试调用名为“write”的bash命令:
write实用程序允许您通过以下方式与其他用户进行通信 从终端复制线路到他们的。
试试不带分号;)
更干净的解决方案是修改文件“check / configuration_tmpfile_setup_scip.sh” 并添加行
echo write solution /absolute/path/to/solutions/${INSTANCE}.sol >> $TMPFILE
在退出命令之前。此配置文件设置批处理文件以向SCIP提供交互式shell应执行的所有命令,并且您可以模拟任意用户行为。