Z3在CNF基准上的性能较差

Z3在CNF基准上的性能较差,z3,Z3,我正在研究一种基于CNF(即NNF+SNF+PNF)的方法+ 并从输入问题中拉出/Tseitin),这是一个FOL公式 我观察到(对于所有大多数基准测试),Z3在CNF公式上的性能 与原始公式相比,其性能要差得多。在这里 以下是此行为的一个示例: (好)F1: (良好)NNf+SNF(F1): (坏)CNF(F1): 我的问题是: (1) 为什么会这样? (2) Z3是否有处理CNF/NNF+SNF公式的最佳配置 附言: +只有在需要时,我才会在CNF生成期间使用命名(Tseitin)。 +我使

我正在研究一种基于CNF(即NNF+SNF+PNF)的方法+ 并从输入问题中拉出/Tseitin),这是一个FOL公式

我观察到(对于所有大多数基准测试),Z3在CNF公式上的性能 与原始公式相比,其性能要差得多。在这里 以下是此行为的一个示例:

(好)F1:

(良好)NNf+SNF(F1):

(坏)CNF(F1):

我的问题是: (1) 为什么会这样? (2) Z3是否有处理CNF/NNF+SNF公式的最佳配置

附言:
+只有在需要时,我才会在CNF生成期间使用命名(Tseitin)。
+我使用文本接口调用Z3


Aboubakr Achraf El-Ghazi

您可以用DIMACS格式而不是SMT2格式编写CNF,并使用带有/DIMACS标志的Z3。我的经验是,Z3/dimacs比大多数其他SAT解算器快得多。我的公式(见示例)通常不是命题式的。