【发布时间】:2017-11-30 10:51:02
【问题描述】:
我想在 z3 中设置一个超时,所以我没有得到一个最佳解决方案,而是一个适合约束的解决方案。 我使用 .Net 并尝试过这样的事情:
using(Context context = new Context(new Dictionary<string, string>() { { "model", "true" } })) {
var solver = context.MkSolver(); // i actually want to use MkOptimize()
Params p = context.MkParams();
p.Add("timeout", 1000);
solver.Parameters = p;
IntExpr x = context.MkIntConst("x");
// ...
solver.Check();
solver.Model.Evaluate(x);
}
超时工作正常,但我无法使用目前找到的解决方案,因为solver.Check() 未知...
当我使用 MkOptimize 而不是 MkSolver 时,我得到一个未知参数异常
所以我现在的问题是如何在超时后获得最佳解决方案以及如何将其与 MkOptimize 一起使用
【问题讨论】: