1 BDT→\to→BDD→\to→OBDD

在符号模型检测中, 用布尔表达式表达一组状态,也就是对布尔公式中的每个变量赋值,可以计算出一个布尔值结果:
f:Booln→Boolf: \ Bool^n \to Boolf: Booln→Bool

所以可以用一个类似于组合解空间树(如果1视为选,0视为不选)的结构,即Binary Decision Tree (BDT) 来表达一个布尔公式,如下图:

图中每个结点vvv有两个孩子分支,一条虚线对应low(v)low(v)low(v)表示v=0v=0v=0,一条实线对应high(v)high(v)high(v)表示v=1v=1v=1。如果不加任何约束,一个布尔公式可以对应多种结构的BDT。

将BDT的所有相同的叶子结点(实际上就只有0和1)合并,就成了Binary Decision Diagram (BDD)。为了保证结构统一,再要求每一层的变量是同一个,即保证所有从根结点到叶子结点的路径上的变量顺序是固定的,就形成了Ordered Binary Decision Diagram (OBDD) ,如下图:

给定一个布尔表达式,从语法层面上来看,可以表示成合取范式(Constructive Normal Form,也称Product of Sum)、析取范式(Disjunctive Normal Form,也称Sum of Product)、电路(Circuit)等;从语义层面上来看,可以表示成真值表(Truth Table)、BDD等。

2 Reduced OBDD

OBDD还可以被约简,考虑两个方面:

  1. 合并同构子图,使得没有两个不同的结点有相同的变量(相同的变量在OBDD里只有可能在同一层)以及相同的low(⋅)low(\cdot)low(⋅)和high(⋅)high(\cdot)high(⋅)子结点。对应于ROBDD的性质唯一性(Uniqueness)
  2. 消除冗余,使得没有结点有相同的low(⋅)low(\cdot)low(⋅)和high(⋅)high(\cdot)high(⋅)子结点。对应于ROBDD的性质非冗余测试性(Non-redundant test)

上面的OBDD合并同构子图后,如下图:

再消除冗余后,得到Reduced Ordered Binary Decision Diagram (ROBDD),如下图:

大多数时候,BDDs指的就是化简完的ROBDD。对于一个布尔表达式,在给定的变量顺序下,ROBDD是唯一的。使用ROBDD可以在线性时间内做等价性检验(Equivalence Checking),在常数时间内做满足性检验(Satisfiability Checking)

对于同一个布尔表达式的不同变量顺序下的ROBDD,其复杂程度可能相差非常大,如下图:

寻找最佳的变量顺序是NP难问题。

3 两OBDD上的APPLY运算

给定BϕB\phiBϕ和BψB\psiBψ是两个OBDD,其中ϕ\phiϕ和ψ\psiψ表示它们所表示的布尔表达式,定义两OBDD的APPLY运算:
apply(op,Bϕ,Bψ)apply(op, \ B\phi, \ B\psi)apply(op, Bϕ, Bψ)

其运算结果是对应与布尔表达式ϕopψ\phi \ op \ \psiϕ op ψ的OBDD。

具体计算方法是,从根节点出发,每次找两个OBDD的相对应的path的结果进行op运算,得到的就是新的OBDD上这条path的结果。

4 OBDD上的RESTRICT运算

给定BϕB\phiBϕ是一个OBDD,定义RESTRICT运算:
restrict(0,x,Bϕ)restrict(1,x,Bϕ)restrict(0, \ x, \ B\phi) \\ restrict(1, \ x, \ B\phi) restrict(0, x, Bϕ)restrict(1, x, Bϕ)

其运算结果是对布尔表达式中xxx进行真值指派(ϕ[0/x]\phi[0/x]ϕ[0/x]和ϕ[1/x]\phi[1/x]ϕ[1/x])得到的新公式的OBDD。

以指派为000为例(111也是类似的),具体计算方法是,对于所有变量是xxx的结点vvv,让其入边直接指向low(v)low(v)low(v),然后删除结点vvv。

参考阅读

BDD MODEL CHECKING by Loïc Massin

【模型检测学习笔记】9:Binary Decision Diagrams相关推荐

  1. 【模型检测学习笔记】10:有限状态迁移系统上的IC3算法

    IC3算法全称是Incremental Construction of Inductive Clauses for Indubitable Correctness,可以用来检测迁移系统上的不变性性质. ...

  2. 【模型检测学习笔记】6:线性时序性质(Linear-time Properties)

    为方便,线性时序性质(linear-time properties)后续均简称LT性质. 在系统分析中,描述线性时序行为(linear-time behavior)可以是基于动作的(action-ba ...

  3. 《南溪的目标检测学习笔记》——模型预处理的学习笔记

    1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...

  4. 《南溪的目标检测学习笔记》——目标检测模型的设计笔记

    1 南溪学习的目标检测模型--DETR 南溪最赞赏的目标检测模型是DETR, 论文名称:End-to-End Object Detection with Transformers 1.2 decode ...

  5. 《南溪的目标检测学习笔记》的笔记目录

    1 前言 这是<南溪的目标检测学习笔记>的目录~ 2 学习目标检测的思路--"总纲" <南溪的目标检测学习笔记>--目标检测的学习笔记 我在这篇文章中介绍了 ...

  6. 《南溪的目标检测学习笔记》——夏侯南溪的CNN调参笔记,加油

    1 致谢 感谢赵老师的教导! 感谢张老师的指导! 2 调参目标 在COCO数据集上获得mAP>=10.0的模型,现在PaddleDetection上的Anchor-Free模型[TTFNet]的 ...

  7. [初窥目标检测]——《目标检测学习笔记(2):浅析Selective Search论文——“Selective Search for object recognition”》

    [初窥目标检测]--<目标检测学习笔记(2):浅析Selective Search论文--Selective Search for object recognition> 本文介绍 前文我 ...

  8. 9月1日目标检测学习笔记——文本检测

    文章目录 前言 一.类型 1.Top-Down 2.Bottom-up 二.基于深度学习的文本检测模型 1.CTPN 2.RRPN 3.FTSN 4.DMPNet 5.EAST 6.SegLink 7 ...

  9. 车辆行人检测学习笔记

    车辆行人检测学习笔记 1.目标检测&常见检测网络 目标检测:物体识别是要分辨出图片中有什么物体,输入是图片,输出是类别标签和概率.而目标检测不仅要检测图片中有什么物体,还要输出无异的外框(x, ...

最新文章

  1. 第四范式亮相世界智能大会 共探智能发展下人才培养路径
  2. 关于ViewPager使用出现的图片覆盖错误问题
  3. Python编程基础04:输入与输出
  4. 每天一道面试题(2):实现strncpy
  5. linux下XAMP集成开发环境搭建流程总结
  6. unreal4 源码引言
  7. php 预编译,预编译的prepare statements 管理, 实现和思路
  8. 行走的“摄影神器”三星Galaxy S21!五一出游必备
  9. 百度官方:网站优化中死链处理指南与总结
  10. linux查看历史的所有命令,linux查询历史记录命令history的用法介绍
  11. 暴雪网易事件大讨论:Web3游戏未来发展趋势
  12. Web大学生网页作业成品 基于HTML+CSS+JavaScript (刘德华9页 )
  13. 九度OJ-1185:特殊排序
  14. Ubuntu 18.04 其他镜像的刻录
  15. CRM软件需要考虑的问题
  16. 《The Wiley Handbook of Human Computer Interaction》Part V Input / Output 以身体为中心的听觉反馈设计原则 翻译
  17. 客户端框架的搭建(丛林战争项目)
  18. android 设置锁屏密码,密码锁屏是什么?怎么设置密码锁屏
  19. 160824华为Mate7创建一键锁屏快捷方式
  20. 【每周一本书】之《人之彼岸》:郝景芳带你提前踏入人机交互的未知世界

热门文章

  1. POWERBI|行级别权限
  2. (manacher)马拉车算法专题题目
  3. 递推递归练习 H - 三国佚事——巴蜀之危
  4. shop php yii2,Yii2 fecshop 电商开源项目
  5. matlab 平面相交,使用matlab画相交的平面
  6. 面向对象写一个简单的学生管理系统
  7. uml活动图 各个功能的操作流程和分支_软件工程专题:UML活动图
  8. SAP-MM 采购订单涉及的后台表
  9. [翻译] 求生之路AI系统讲稿
  10. 七彩虹技术服务论坛硬件驱动更新指南(添加Vista支持)