BDD(Binary Decision Digrams)是最新流行于人工智能模型诊断方面的一种求解算法,主要用于诊断求解,配置和约束满足等方面,下面我将对BDD做一下简单的介绍.
在学习BDD之前首先要有一点离散数学的基本概念,知道∧,∨,﹁,=>,<=>等基本符号的意义和各范式的表达,定义if-then-else 操作为: x=>y0,y1 = (x∧y0) ∨(x∧y1)
所以x=>y0,y1 为真时当且仅当x ,y0同为真或x为假,y1为真.从这种if-then-else 操作演化来的形式被称作if-then-else Normal Form(INF).我们指定布尔表达式t[0/x],不难发现,对于t的山农扩展 t = x =>t[1/x],t[0/x] 是基于x的布尔值的,而对于任何的布尔表达式都可以转化为INF的表示方式.
例如:给定布尔表达式 t = (x1<=>y1) ∧(x2<=>y2) .我们可以通过对变量x1,x2,y1,y2的选择设定找到一个INF表达从而实现山农扩展.我们给定:
t = x1 => t1 , t0
t0 = y1 => 0 , t00
t1 = y1 => t11 , 0
t00 = x2 => t001 , t000
t11 = x2 => t111 , t110
t000 = y2 => 0 , 1
t001 = y2 => 1 ,0
t110 = y2 => 0 ,1
t111 = y2 => 1,0
[img]C:\Documents and Settings\gyk\桌面\bdd-picture\dt.bmp" alt="[/img]
图1 决策树
从上图我们可以看到决策树其实就是一个完全的二叉树,可以说是对所有可能性的一种枚举,但是不难发现,给定中很多变量取值都是相同的,如我们可以用t000取代t110…,而对于子表达式的等价取代我们就可以得到一个图,BDD(Binary Decision Digrams)图! 通过取代,我们可以得到:
t = x1 => t1 , t0
t0 = y1 => 0 , t00
t1 = y1 => t00 , 0
t00 = x2 => t001 , t000
t000 = y2 => 0 , 1
t001 = y2 => 1 ,0
[img]C:\Documents and Settings\gyk\桌面\bdd-picture\bdd.bmp" alt="[/img]
从而一个简单的BDD就出来了.
分享到:
相关推荐
bdd 简介bdd-1 简介
项目简介: 在BDD驾驶项目中,我们将自我驾驶的任务制定为未来的自我运动预测。 为了完成这项任务,我们与合作伙伴收集了,提出了FCN + LSTM模型,并使用tensorflow实现了该模型。 伯克利DeepDrive视频数据集(BDD-...
这是二元决策图库的 Lua 实现,如 Henrik Reif Andersen 的“二元决策图简介”中所述。 有关使用示例,请查看测试套件(取决于 lunatest)。 编写代码是为了清晰而不是性能(尽管它确实在几秒钟内找到了 10-queens ...
简介cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试的副产品,这是自己理解后写的DEMO,包含常用的写法解释、样例应该是全的。
内容简介: 1)方向:多目标跟踪(Multi-Object Tracking) 2)应用:视频任务 3)背景:现有的多目标跟踪方法大多只能在相邻帧之间明确利用目标特征,缺乏对长期时间信息的建模能力。 4)方法:本文提出了一种...
基于零抑制 BDD 的异步电路验证 基于零抑制 BDD 的异步电路验证 Koichi Masukura、Minoru Tomisaka 和 ...信息科学与工程研究生院,计算机科学系,东京工业大学,东京,152 ...由于异步电路不使用时钟并根据信号...简介异步电
使用Jasmine BDD进行JavaScript测试的简介 本演示文稿和代码旨在对的一些基本功能进行高层次的概述, 是Pivotal Labs的人员JavaScript BDD框架。 如果您有兴趣学习有关Jasmine的知识,建议您并在浏览幻灯片的同时...
VilniusPHP聚会社区聚会的演讲。维尔纽斯PHP 0x63(2021-02-04) PHP NerijusŽutautas中的SOLID原理() “机器人的故事:在构建自己的WMS时吸取的...Andrejs Abrickis Ciaran McNulty的“ BDD简介” “设置为代码”
1、简介 包是添加功能到 Laravel 的主要方式。包可以提供任何功能,小到处理日期如 Carbon,大到整个 BDD 测试框架如 Behat。 当然,有很多不同类型的包。有些包是独立的,意味着可以在任何框架中使用,而不仅是 ...
完成的Javascript Cardio [会话1,会话2] Node.js速成课程异步Js会话(回调,承诺,异步等待) JavaScript高阶函数和数组Express JS会话带有Node&Express的TypeScript设置Flexbox速成课程具有图像跨度CSS网格布局...
③提供了BDD式的测试模式:可以使用Given-When-Then section来做BDD测试; ④只用一个核心的assertion宏来做比较。用标准的C++运算符来做比较,但是可以分解表达式,记录表达式等号左侧和右侧的值; ⑤可以用任何...
Cloud-Raider简介CloudRaider是一个新的测试框架,用于在AWS中执行“故障模式影响分析”(FMEA)测试。 Cloud Raider还通过Cucumber框架提供了行为驱动的测试方法。 Cloud Raider提供了一种编程方式来执行受控故障,...
有关更多示例,请查看每个子文件夹中的测试,以及espresso / tests / bdd / features文件夹中的BDD方案。 最后,请加入[slack](pylada.slack.com)。 如果需要访问,请向其中一位作者发送电子邮件。 安装 最简单...
简介 ### UGAT 的历史UGAT(发音为ooh like "foo"和gat like "cat" )是首字母缩写词,代表“自动化测试的终极指南(或指南)”。我是吉姆林奇,来自新泽西州的网络开发人员和 NG-的组织者新泽西州。在处理 ...
1.简介 Cucumber生活文档插件基本上会在jenkins工作区中扫描Cucumber json输出文件,以便从中生成生活文档。 使用json格式化程序在Cucumber测试后生成Cucumber json输出文件: @RunWith ( Cucumber . class) @...
BDD 创建HTML表单是主要步骤。 对于业务逻辑:使用构造函数存储输入数据。 使用innerHTML输出欢迎警报。 创建一个将个人消息发送到我的邮箱的功能。 作者: 联系信息: Email: dennis95peters@gmail.com Phone: ...
简介是建立一个响应式服装网站,具有购物车和优惠券折扣等功能。 运行$rackup。 测试$ bundle exec Cucumber使用的技术Ruby/辛纳特拉jQuery / Handlebars.js RSpec / 水豚 / Cucumber工作清单完整的响应式设计 [ ]...
任务的简介很简单,但是我借此机会对解决方案进行了过度设计,并将其用作React,Flux和ECMAScript 6的学习工具。简要显示客户账单使用任何语言,工具或框架从给定端点将账单作为JSON消费: ...
简介: 扬声器甲板: 概括 经验丰富的软件架构师/工程师,专注于可扩展和分布式软件设计/开发,倡导软件开发最佳实践,每天使用 TDD 和 BDD。 后端工程专家,具有 C/C++、Java、PHP、Python、JavaScript 和 Scala ...