Z3统计数据的解释

Z3统计数据的解释,z3,smt,usage-statistics,sat-solvers,dpll,Z3,Smt,Usage Statistics,Sat Solvers,Dpll,我从Z3的运行中获得了一些统计数据。我需要理解这些是什么意思。 我对sat和SMT解决方案的最新发展感到生疏和不及时,因此我试图自己找到解释,我可能完全错了。 所以我的问题主要是: 1) 这些措施的名称意味着什么 2) 如果错了,你能给我一些建议,让我更好地理解它们所指的内容吗 其他意见如下,概念上属于上述两个问题。 提前谢谢 我的解释如下 DPLL。下面的所有指标都是DPLL算法的术语,它是大多数求解器的基础。 :决定 决定数目 :传播 传播次数(我猜是单位传播) :二元传播,:三

我从Z3的运行中获得了一些统计数据。我需要理解这些是什么意思。 我对sat和SMT解决方案的最新发展感到生疏和不及时,因此我试图自己找到解释,我可能完全错了。 所以我的问题主要是:

1) 这些措施的名称意味着什么

2) 如果错了,你能给我一些建议,让我更好地理解它们所指的内容吗

其他意见如下,概念上属于上述两个问题。 提前谢谢

我的解释如下

  • DPLL。下面的所有指标都是DPLL算法的术语,它是大多数求解器的基础。
    • :决定
      • 决定数目
    • :传播
      • 传播次数(我猜是单位传播)
    • :二元传播,:三元传播
      • 同时传播两个和三个文字
    • :冲突
      • 冲突数量
  • 分辨率。粗略地说,操作将子句解释为集合;从解决SAT的另一个范例解析中获取的技术

    • :包含
    • :包容决议
      • 以上两者有什么区别
    • :dyn包容分辨率
      • 这里应该描述:Hamadi等人的动态包容学习
  • 其他技巧

    • :最小化lits
      • 不清楚。这可能与从句学习有关吗
    • :已分配探测
      • 我猜它计算了“探测”时的任务数量,我猜这是一种前瞻性技术
    • :del子句
      • 删除条款的数量(出于什么原因?多余?)
    • :elim literals:elim子句:elim bool vars:elim blocked子句
      • elim-消除后的实体数。 这些指标涉及特定的SAT解决技术 (参见M.Järvisalo等人的参考阻止条款删除。)
    • :重新启动
      • 重新启动的次数
  • 其他方面

    • :mk bool var:mk二进制子句:mk三元子句:mk子句
      • 创建的布尔变量和二元、三元和泛型子句的数量
    • :内存
      • 使用的最大内存量
    • :通用条款
      • 垃圾收集子句
      • 根据我的实验,这种解释是合理的,因为事实总是这样

        • :gc子句这恐怕是一个没有限制的问题。 Z3公开了许多以多种不同方式收集的计数器。 虽然许多人抓住了抽象概念,但它们的含义最终是抽象的 基于代码的实现行为

          幸运的是,源代码是可用的,并提供了完整的上下文 了解每个计数器的行为。因此,没有单一的 跟踪计数器含义的文档,但不包括源代码 提供了完整的上下文。

          这是一个很好的问题(以及部分答案),在其他问题中没有完全解决,但以下是一些可能有用的相关问题: