如何设置Z3 JAVA API的求解器超时?
再次回到这个问题:
这是我的代码:
Context ctx = getZ3Context();
solver = ctx.MkSolver();
Params p = ctx.MkParams();
p.Add("timeout", 1);
solver.setParameters(p);
不起作用,解算器只是永远运行查询。有什么想法吗?
答案 0 :(得分:1)
我没有使用过Java API,但是从查看官方Java example和this snippet开始,我假设以下几行应该有效:
Solver s = ctx.MkSolver();
Params p = ctx.MkParams();
p.Add("timeout", valueInMilliseconds); /* "SOFT_TIMEOUT" or ":timeout"? */
s.setParameters(p);
答案 1 :(得分:0)
好的,终于找到了解决方案:
Context ctx = getZ3Context();
solver = ctx.MkSolver();
Params p = ctx.MkParams();
/* Also tried
* p.Add("timeout", 1),
* p.Add(":timeout", 1),
* neither worked.
*/
p.Add("soft_timeout", 1);
solver.setParameters(p);