二元判断图BDD及其JAVA实现的应用与研究

来源 :贵州大学 | 被引量 : 0次 | 上传用户:xzljx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在数字控制系统、计算机辅助设计(CAD),计算机辅助测试(CAT)、人工智能(AI)以及可编程控制器等领域的许多问题都可以表示成一系列关于布尔函数的运算,这些运算有赖于布尔函数的符号表示和算法的有效性。一般而言,我们通常采用布尔函数表达式或真值表来描述数字逻辑函数。布尔函数是一种可以精确地描述数字逻辑函数的方法。但随着大规模和超大规模集成电路的迅速发展,数字逻辑函数的运算变得日益复杂,上述的传统方法逐渐暴露出一些缺点,比如使用布尔函数来表示数字逻辑函数的话,表达式往往会变得庞大和复杂,使得函数处理时间过长;而使用真值表方式的话,则需要占用大量的存储空间,只能用在一些特殊的领域。鉴于上述的情况,研究人员不断的探索,试图找到描述更加简洁、操作更加方便的数字逻辑函数表达方式。1986年,E.R.Bryant提出了用二元判断图BDD(Binary Decision Diagram)来表示布尔函数,和其他表示法相比BDD在人们寻找大型数字系统的有效分析、测试和计算方法中,由于其固有的优越性能而日益受到重视。综合来说,BDD具有如下的优点:(1)直观,明了,便于逻辑电路的分析。(2)能反映数字电路的逻辑描述的细节,这点对电路的分析和测试非常重要。(3)便于计算机的存储,编写的程序比布尔代数方法编写的程序更短。(4)便于使用人工智能的方法,启发式进行求解空间搜索。(5)不管是硬件还是软件实现,都能获得比布尔代数算法更高的执行速度。(6)可应用并行图论算法,进一步提高运算速度。模型检测主要是验证某一模型生成的有限状态系统是否满足模型所要求的属性。模型检测技术可以抽象地描述为:给定一个模型M和逻辑描述的性质P,检查模型M中性质P是否成立。模型检测主要是验证某一模型生成的有限状态系统是否满足模型所要求的属性。模型检测中最大的挑战就是状态空间的爆炸问题。这个问题源于系统中有许多不同部件的交互,或者系统中有取值范围很大的复杂数据结构,在这种情况下系统状态的规模将变得非常庞大。由于BDD所用的存储空间较少,因此研究人员将BDD引入到了模型检验中,使得模型检验所能验证的系统规模得到了很大的提高。时态逻辑在模型检测中占有非常重要的地位,模型检测是基于时态逻辑,时态逻辑的模型可能由几个状态构成,时态逻辑公式可能在一些状态为真,在其它为假,因此,该公式的值随着状态的变化而变化。依据对系统状态的时间路径的不同刻画,时态逻辑可以分成两大类:计算树时态逻辑(CTL)和线性时态逻辑(LTL)。CTL是由Clarke和Emerson提出的。它的运算符具有简单的性质,可以有效地计算某一公式在有穷状态模型处于某一状态时是否满足。它是一种时间模型采用树的方式、具有多个分支的不确定状态路径构成。在模型检测过程中采用BDD的主要原因是:采用BDD表达的两个谓词公式时,两个BDD范式逻辑相等当且仅当这两个BDD范式是语法相等,即两个BDD范式逻辑相等,当且仅当这两个BDD范式是同一个BDD范式。目前,利用BDD来对规划问题求解的基本思想是:先将规划问题的状态和动作表示为BDD范式,再将其输入到BDD的求解器,然后将求解得到的结果转化为一般规划问题的表示。JAVABDD是一套非常优秀的用于BDD的生成,执行各种逻辑操作,描述状态变化的Java开源软件包。可以利用套软件包开发出CTL的各种公式,实现简单的模型检测功能。本文所做主要工作如下:1.为了能够有效地使用和扩充JavaBDD这套软件,我们对该软件的主要算法进行了代码分析。包括:(1) MK算法和Build算法:JavaBDD是如何将数组的存储效率和哈希表的查找效率有效地结合起来,从而建立ROBDD的数据结构,使其占空间少,查找速度快.(2) APPLY算法:JavaBDD是如何实现两个布尔表达式之间的逻辑操作。(3) RESTRIC算法,JavaBDD如何计算布尔表达式的赋值结果(4) SATCOUNT算法:计算ROBDD中的可满足集元素个数。(5) ANYSAT算法:寻找一个可满足的赋值。(6) ALLSAY算法:寻找全部可满足赋值。(7) JavaBDD中存在量词,全称量词与唯一量词的算法实现。2.为JavaBDD增加了差集运算功能。3.将皇后问题转化为逻辑操作,利用JavaBDD计算结果。4.利用JavaBDD进行电路电路功能分析与等价性判断。5.利用JavaBDD实现计算树时序逻辑的AX,EX,AF,EF,AG,EG,AU,EU操作符。6.利用JavaBDD完成Mlner’s Soheduder例子,演示了有限状态转移与求可达状态集的例子。7.利用我们编制的CTL对某篇论文的分析进行了验证,指出并更正了其错误。
其他文献
滴丸是中药的一个重要品种,在中药企业中占有很重要的地位。在滴丸企业的实际生产中,为了判断生产工艺是否合格和稳定,同时为了进一步改进生产工艺,往往需要对滴丸生产的全过程的
学位
网格系统是共享因特网上分布式资源进行合作的新形式,GT4(Globus Toolkit 4)是一种被广泛接受的网格技术解决方案。信息服务是网格服务系统中的一个重要组成部分,而其在GT4的
随着互联网和电子商务的飞速发展,互联网为用户提供越来越多的信息和服务,用户在得到便利的同时也不得不面临大量的垃圾信息和无意义数据,即所谓的信息超载问题。面对海量的网络
现代信息技术的发展为教育信息化提供了新的工具和手段。然而,在教育信息化的过程中,信息孤岛现象日益严重,各业务系统间逐步构成了一个庞大的异构环境。而且,大量信息重复出
新型可字节寻址的非易失性存储器(NVM),例如相变存储器(Phase Change Memory,PCM)在低能耗、高密度、就地更新数据等方面拥有很多的优点,但是由于NVM具有读写不对称性特点,即
大数据时代的到来,对人们的生产、生活以及工作和思维都产生着巨大的影响。在海量数据面前,如何将其转换为有价值的信息和知识,是当前一个十分重要且有意义的课题。通过对数
为了解决指令集兼容问题,以及提高程序的执行速度,研究人员开发了跨指令集虚拟机系统、动态二进制翻译系统、动态二进制优化系统以及一些模拟器系统。代码缓存管理是上述系统设
随着大规模连续语音识别的广泛应用,语音的置信度在语音识别技术中发挥了越来越重要的作用。本文对于目前的基于网格的语音识别置信度算法进行了总结和改进,并将改进后的方法
指纹图像增强是指纹识别中的关键技术之一,目前,指纹图像增强算法多采用软件或者是DSP实现。用软件实现图像增强算法存在处理速度慢、难以实现实时处理等问题;而采用DSP实现时,又
眼控鼠标是一种计算机辅助输入设备,可以帮助上肢残疾人士用双眼代替手操作计算机鼠标。在眼控鼠标中高精度的双眼定位算法需要大量计算,难以适应实时控制需要。本文针对这一