基于硬件可编程逻辑(FPGA)SAT算法综述.docVIP

基于硬件可编程逻辑(FPGA)SAT算法综述.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于硬件可编程逻辑(FPGA)SAT算法综述

基于硬件可编程逻辑(FPGA)SAT算法综述【摘要】可满足性问题(简称SAT问题)作为第一个被证明的NP完全问题,是计算机科学的核心问题之一。本文系统总结了基于硬件可编程逻辑(FPGA--- Field Programmable Gate Array)的SAT算法研究。将基于FPGA的SAT算法研究分为了实例型(instance-specified solver)和应用型(application-specified solver)两种类型。通过对各种方法的深入分析,指出了它们的优点和缺陷,进而提出未来研究的思路。 【关键词】可编程逻辑;SAT算法;可满足性;FPGA 逻辑器件可分类两大类:固定逻辑器件和可编程逻辑器件。固定逻辑器件中的电路是永久性的,其硬件逻辑结构和连接方式固定不变。而可编程逻辑器件(FPGA,CPLD等)内部连接模式和逻辑结构可以根据不同的需要改变,从而可以实现多种不同的功能。所以,此类器件能够为客户提供范围广泛的具有多种逻辑能力、速度和电压特性的标准成品部件。 可编程硬件算法研究的发展是和硬件水平的发展密不可分的。可编程硬件是指最早的硬件可编程算法的概念是G.Estrin在1960年左右提出的[1],但由于主要以分立器件为硬件平台,而集成电路也尚在初期,因此并未得到更多研究和应用的支持。从1990年开始,超过10K门级的可编程逻辑器件FPGA(其典型结构如图一所示)的出现,使得硬件可编程逻辑算法的研究进入了蓬勃发展的时期[2],其应用主要分为三种:1、硬件设计模拟;2、快速硬件成样;3、硬件算法研究。而其中硬件算法研究是基于FPGA硬件并行处理能力,已经在密码学,图像和信号处理领域取得了很多成果。自1997年后,随着FPGA进入到了百万门级的水平,硬件可编程逻辑能力上升到了一个新的高度,基于硬件可编程逻辑的高难度算法的实现与研究也受到越来愈多的关注。其中,基于FPGA的可满足性问题(SAT问题)的算法研究逐渐成为研究的热点[7-14]。 SAT问题是逻辑学的一个基本问题,也是当今计算机科学和人工智能研究的核心问题。工程技术、军事、工商管理、交通运输及自然科学研究中的许多重要问题,如程控电话的自动交换、大型数据库的维护、大规模集成电路的自动布线、软件自动开发、机器人动作规划等,都可转化成SAT问题。可满足性SAT问题同时也是第一个被证明的NP-Complete问题,目前解决SAT问题已有的完全算法的运行时间呈指数增长。因此,基于FPGA(如图一)对SAT算法加速的研究,具有很大的理论和应用价值,同时也有助于寻找优化其他复杂计算的方法。 一、问题定义 对于命题公式Y,如果存在对Y中变量的赋值,使得Y在该赋值下的真值为1,则称Y是可满足的。可满足性问题(SAT问题)是判定一个任意给定的命题公式是否可满足的问题。众所周知,任何命题逻辑公式都逻辑等价于一个合取范式(CNF-Conjunctive Normal Form)。合取范式即是子句的合取,而子句是文字(变元或其否定)的析取。 例如,就是一个合取范式。当a=1,b=0,c=1时,Y=1。故Y是可满足的。 SAT算法可以分为完全算法(Complete)和不完全算法(Incomplete)算法两大类。通过完全算法总是可以判断公式是否可以满足,尽管有可能计算时间是相当长的。如Davis-Putnam 的DP算法[3]和广泛用于电子电路测试向量生成的PODEM (Path-Oriented Decision Making) 算法[4]都是完全算法。不完全算法则是规定的时间内寻找SAT问题的解,如果找到则说明可满足,但找不到SAT的可满足解不能作为SAT是否可满足的依据。经典的DP算法如下所示,通过遍历变量空间的方式搜索满足SAT的解。 Procedure DPLL (CNF formula Φ) If Φ is empty return yes. else if there is an empty clause in Φ return no. else if there is a pure literal l in Φ return DPLL(Φ(l)). else if there is a unit clause {l} in Φ return DPLL(Φ(l)). else select a variable v occurring in Φ. if DPLL(Φ(v))=yes return yes. else return DPLL(Φ(not;v)). end end 图二所示的是DP算法的例子。 随着研究的深入,很多D

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档