我通过C ++ API使用Z3优化功能,并希望修改所使用的策略,以减少Z3找到满意模型所需的时间。我遇到了两个主要问题:
While you can build a solver
from a tactic您似乎无法为optimize
对象执行相同的操作。
我不确切知道正确使用的策略是什么,所以我想首先修改默认使用的内容。这将让我探索不同的策略,并尝试不同的组合。问题是我没有办法向求解者询问目前配置的策略。
有没有人知道如何从一组策略创建optimize
对象,或者如何使用正确的策略组合模仿一个?{1}}对象?是否有一个我可以使用的命令(甚至是命令行工具)会导致它显示当前使用的策略?
对于一些额外的背景信息,我主要感兴趣的是添加par-then
and par-or
组合器并删除任何与布尔值,整数算术和if-than-else
无关的策略表达式。