了解QFBV SMT求解器的性能


9

诸如Z3或Boolector之类的SMT求解器使用一组复杂的试探法来解决问题。但是,这也使得很难针对给定问题预测此类求解器的性能。因此,我的问题是:

有没有一种方法可以针对无量值比特向量(QFBV)理论中的特定内容理解或了解SMT求解器的性能?

这也包括任何有助于理解求解器“卡滞” /未取得进展的可视化工具。

应用领域

  • 预先了解同一问题的不同编码如何影响求解器性能(此处的最新技术不能是“仅尝试几种不同的编码并希望一种编码足够快”,对吗?)

  • 如果由于时间限制SMT求解器无法解决给定的问题,请找到一种不同的方式表达问题,以便可以解决。

  • 避免将时间浪费在特定于域的问题简化上,这些问题根本不会影响求解器的性能,甚至不会对求解器的性能产生负面影响。

现有研究

我试图找到有关此主题的研究,但是却找不到很多。我在SAT / SMT求解器领域还没有太多经验,所以如果我错过了一些东西,我们深表歉意。

  • SATzilla:使用机器学习技术,根据从问题中提取的特征,预测性能最佳的求解器。

    这仅适用于SAT而非SMT,并且不能解释求解器性能的原因。

  • Z3公理分析器 Z3实例图的可视化和匹配循环的分析

    看起来这只专注于量化理论。

Answers:


3

简短的答案是不,我们不理解。长答案是肯定的,我们有一些界限,但是这些界限不是很有帮助。很明显,最坏情况下的运行时间是指数的。那不是很有帮助,因为我们知道在某些/许多实际情况下,它似乎运行得非常快-而且我们真的不知道为什么。

我们不知道为什么这对于SAT求解器是正确的,更不用说QFBV了。理解为什么QFBV解算器经常快的问题似乎至少和理解SAT解算器为什么经常快的问题一样困难,这已经超出了我们目前的理解水平。如果您在此站点上搜索更多,则可以找到当前尝试了解后一个主题的摘要。


感谢您的回答!我已经有这种情况了。您是否知道是否有任何研究没有试图找到通用规则,而是想像出了sat / smt求解器性能缓慢的原因(或者以其他方式帮助用户了解问题的主要部分以及SMT求解器麻烦)
bennofs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.