解读Z3统计

时间:2013-08-28 15:17:18

标签: z3 smt usage-statistics sat-solvers

我从Z3的运行中获得了几个统计数据。我需要了解这些意味着什么。 对于sat和SMT解决方案的最新发展,我相当生疏,并且没有及时更新,因此我试图自己找到解释并且我可能会出错。 所以我的问题主要是:

1)这些措施的名称是什么意思?

2)如果错了,你能指点我更好地理解他们所指的是什么吗?

下面进行了其他观察,概念上属于上述两个问题。 提前谢谢!

我的解释如下。

  • DPLL 即可。下面的所有指标都是DPLL算法的行话,这是大多数求解器的基础。

    • :决定
      • 决定数量
    • :的传播
      • 传播次数(我猜单位传播)
    • :二进制传播,三元传播
      • 一次传播两个和三个文字
    • :冲突
      • 冲突数
  • 解决即可。粗略地说,操作使解释条款成为集合;从分辨率中获取的技术,这是解决SAT的另一种范例。

    • :归入
    • :包容分辨率
      • 上述两个有什么区别?
    • :DYN-包容分辨率
      • 应该在这里描述:学习动态包容,由Hamadi等人
  • 其他技术

    • :最小化-双床
      • 没有明确的想法。它可能与条款学习有关吗?
    • :探通转让的
      • 我猜它会计算“探测”时的作业数量,我猜这是一种先行技术。
    • :德尔子句
      • 删除的条款数量(出于什么原因?冗余?)
    • elim-literals elim-clauses elim-bool-vars elim-blocked-clauses
      • elim - 消除后的实体数量。 这些指标指的是特定的SAT解决技术 (参见M.Järvisalo等人的“阻止条款消除”参考资料)
    • :重新启动
      • 重启次数。
  • 其他方面

    • :mk-bool-var mk-binary-clause mk-ternary-clause mk-clause < / EM>
      • 创建的布尔变量数和二进制,三元和泛型子句。
    • :存储器
      • 使用的最大内存量。
    • :GC-子句
      • 垃圾收集条款......?
      • 根据我的实验,这种解释是合理的,因为它总是如此
        • gc-clause &lt; =: del-clause ;就我而言,不平等是严格的。
      • 情况并非总是如此
        • GC-子句其中p = 琳子句;它也可以是: gc-clause &gt; :琳子句

1 个答案:

答案 0 :(得分:1)

我担心这是一个开放式的问题。 Z3暴露了许多以不同方式收集的计数器。 虽然许多人捕捉抽象概念,但它们的意义最终 基于代码的实现行为。

幸运的是,源代码可用并提供完整的上下文 了解每个柜台的行为。所以没有单一的 跟踪计数器含义的文档,但源代码 可以提供完整的背景信息。