难解问题的算法 论文.docx
- 文档编号:4693435
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:8
- 大小:699.81KB
难解问题的算法 论文.docx
《难解问题的算法 论文.docx》由会员分享,可在线阅读,更多相关《难解问题的算法 论文.docx(8页珍藏版)》请在冰豆网上搜索。
难解问题的算法论文
课程:
难解问题的算法
学院:
专业:
姓名:
学号:
分数:
授课教师:
提交时间:
2014年6月3日
浙江师范大学结课总结
关于难解问题的算法课程的总结
1、可满足性问题算法
(1)名词解释
可满足性(英语:
Satisfiability)是用来解决给定的布林方程式,是否存在一组变量赋值,使问题为可满足。
布林可满足性问题(Booleansatisfiabilityproblem;SAT))属于决定性问题,是第一个被证明NP完全问题。
为计算机科学上许多领域的重要问题,包括计算机科学基础理论、算法、人工智能、硬件设计等等。
(2)发展历史
可满足性算法历来就有很多研究,综述性的文献就如[GPF97,200]。
通常,可满足性问题的算法可以分成两大类:
不完全算法和完全算法。
不完全算法的特点是算法终止时若能找到一组可满足的真值赋值,则可以断定问题是可满足的,但是若不能找到这样的真值赋值,则不能判断问题是否可满足。
不完全算法的思想主要是源自最优化算法。
它们通常以需要满足的子句数为优化目标,优化算法的目的是使最多子句被满足。
算法从最初的猜测解,按一定的搜索策略希望逐步逼近使问题满足的最优解。
最常见的是基于局部搜索思想的算法,也是较早的不完全算法[G93,G94]。
以后又发展了多种算法包括基于贪婪搜索算法的GSAT[SLM92,F96],有基于拉格朗日松弛算法的DLM[SW98a,SW98b」,有基于对噪声模型分析研究后的WalSkATS[KC94」等等。
不完全算法通常对于某些事实上是可满足的问题有很好的表现,能够快速找到可满足的解。
但是从大部分的实验比较,特别是国际互联网上公布的SAT竞赛的成绩看,目前为止不完全算法中综合计算能力最强的可满足性问题解决器如DLM,也没有在实际的SAT实例前有较好的排名。
只是在随机的SAT实例上有好的成绩「SBH02]。
而到目前为止,SAT算法还是以完全算法的研究为主,特别是一类被称为NPLL(DavisPutnamLogemnnanadLovelnad)的算法尤其突出,被认为是目前为止SAT问题的标准解决方案。
DPLL算法最早可以追溯到1960年。
由Dvasi和Putnma提出的DP算法[nP60」。
到1962年,Dvais,Logemnna和Lovelnad又提出了基于深度优先搜索思想的DLL算法D[LL621。
这两种算法所包含的思想到目前为止都一直被沿用,只是在采用的具体技术上又有改进和增加。
因此统称这类算法为DPLL算法。
虽然提出很早,但是最早的DP算法的空间复杂性也是指数的,而DLL的实际效率也很低,它们能解决的问题规模在10个变量的数量级上,因此很难应用于实际问题。
在这之后,很多其他的技术被用来解决SAT问题,如上文提到的局部搜索算法,此外还有非主流研究的如BDD图[PG%],基于广度搜索的S[598,Gw99]等。
DPLL算法本身的发展受到一定限制。
直到1995年GRASP[MSS99〕的提出,系统总结了DPLL算法的基本流程,才使DPLL算法又重新成为研究的重点,而且被逐渐应用于实际问题的解决。
1995年之后的DPLL算法的发展可以见图1.1.
1.1DPLL算法工作
除了GRASp,还有relsat[BS97〕,SATO[2596,297』,zCha筑ZMM01」,Berkmni[GN02]。
GRAsP最大的贡献在于系统的介绍了学习过程。
学习过程虽然从原理上和DP算法没有多大区别,但是实际上在配合DLL算法时候的剪除搜索空间上的效果非常出色,使SAT算法有了一个飞跃。
到2001年,Cha班MMZOI]和zChaff的提出更将SAT算法的实际运行速度提高了一个数量级。
它们的BCP(布尔约束传导)过程的数据结构简单且效率很高。
而且对于学习过程也做了很好的分析,找出了到目前为止最为有效的学习方式。
这之后虽然也有很多SAT算法公布,但是大多数都是以zeha任为蓝本。
如Ber如边in,Limmat[Bo4]等。
上面介绍的DPLL算法发展的一些代表性工具都包含有最基本的几个算法步骤。
我们称其为基本的DPLL算法。
正如一开始介绍的,这些步骤越来越成为SAT问题的标准解决方案。
它们将在本章中详细介绍。
而高级推理过程,其实也有其发展历史,见图1.2。
1.2高级推理过程发展
代表工具有C一SATD[AB96),SATz[LA97],eqsatz[L00」,ZCls+eq[B02」。
高级推理过程虽然没有基本的DPLL算法研究得多,但是作为一个剪除搜索空间的重要技术,也一直被关注。
2、可满足性的电路验证原理
(1)给定两个组合电路F(x)和G(x)这里X表示原始输入变量(
,
...
),要证明两者的功能等价性。
如果证明
F(x)
G(x)
对所有变量X都不可满足的,那么这两个电路是等价的。
组合电路miter
不难看出上图所示的图片正好表示公式1.1。
对于多输出的电路,把每个异或门连接到一个或门。
故只需把Miter电路转化为CNF描述,验证问题就转化为判断在目标顶点赋“1”,情况下电路对应CNF是否可以满足。
如为UNSAT则证明两个验证电路等价,反之则不等价。
现以二输入与门为例,说明电路与CNF之间的转化关系。
设与门的输入为X,Y输出为Z。
根据与门的逻辑
。
以下是与门向CNF描述的转化过程:
整个电路的CNF表达式就是所有基本门的CNF表达式的逻辑乘。
下面的图片给出了一个简单电路及其CNF表达式的例子,其中简单逻辑门的CNF表达式如下表所示。
对于任意组合的电路,都可以用CNF表达式来描述。
电路与CNF描述
电路与CNF格式转化关系
(2)等价性验证算法流程
首先以AIG结构来构建联接电路,在构建过程中使用哈希表来识别结构等价节点加以优化。
如果结构简化后联接电路输出不能得到常数,则接下去将在AIG中交替地使用BDD扩展,SAT推理这两种技术来简化AIG。
如果在最大限定条件内验证完成则结束,反之则将AIG转化为CNF格式,使用当前主流解算器zChaff进行推理直至结束。
算法流程
3、伪布尔可满足性算法在FPGA布线中的应用
最近,一种基于伪布尔可满足性(PBS)的布线算法成为FPGA布线算法的研究热点。
和一般基于SAT的算法类似,PBS算法可同时给所有线网进行布线,因此也能准确判断可布通性。
和SAT算法不同的是,它将约束条件用精简的表达式表示,需要的布线变量和公式大大减少,因此显著降低了内存需求,提高了扩展性。
但是,伪布尔可满足性算法在布线过程中所需的转换成本过大,不适用于大型布线基准。
有一种能有效解决以上问题的新型算法,具体研究工作和结果如下:
(1)在全面调查FPGA结构最新研究动态的基础上,给出了一种FPGA布线结构模型,即基于SRAM的对称阵列(岛状)FPGA结构,仅需3个适合的参数即能表示布线结构。
详细研究了布尔可满足性算法、伪布尔可满足性算法和两种几何查找布线算法,即一种基于协商性能驱动的布线算法PathFinder和一种协商A*布线算法Frontier。
选取全局布线实例和Max-SAT布线基准的大规模基准电路,对Frontier、SAT和PBS进行了分析比较。
结果表明,利用伪布尔约束编码比用纯粹的合取范式(CNF)显示出更好的紧密性、更短的运行时间,且编码更简洁紧凑。
针对伪布尔可满足性问题扩展开发的解法器PBS,与以前所报道的两种方法相比较——早期的几何查找算法和现在用于纯CNF约束的解法器Chaff,从而验证了伪布尔可满足性所需存储空间更小,并能有效加速求解的特性。
(2)近年来0-1整数线性规划(IntegerLinearProgramming,ILP)的发展进一步扩展了优化线性目标函数,这通常是通过解决一系列的SAT或者ILP决策问题来实现的。
但是目标函数可能会使采用对称的约束变得复杂化,即使目标函数的约束不可满足,并且与目标函数不相关。
本文在对称破缺技术的基础上,开发了一种自适应流程,结合静态对称破缺技术和动态对称破缺技术,可以分析一个给定的布尔优化问题,并能挑选最合适的对称破缺技术。
实验结果证明,当这种技术用于布线时,比纯粹的静态对称破缺或动态对称破缺加速了问题的解决。
(3)为了改善伪布尔可满足性算法在布线过程中增加转换成本的负面影响,提出了一种用于FPGA的新的布线算法,综合了伪布尔可满足性算法与几何布线算法的优点。
在布线过程中,先选用Frontier或PathFinder这类几何布线算法对FPGA进行布线,如果不能成功再采用伪布尔可满足性算法。
并在布线流程中增加了静态对称破缺技术对伪布尔约束进行预处理,侦测并破缺其中的对称,减少搜索路径,从而减少成本。
实验结果表明,这种混合布线方法可以显著减少运行时间,加速求解过程。
(4)研究了用子集可满足性(sub-SAT)算法求解FPGA详细布线的问题。
在布线资源固定的FPGA布线环境中,布尔公式可以证明所给电路的不可布通性,优于典型的one-net-at-a-time方法。
子集可满足性方法把一个有N个约束的“严格的”SAT问题转换成一个新的“松弛的”SAT问题,仅当在原始问题中变量的不可满足个数不超过阈值k(kN)时,这一问题是可满足的。
它改进了布尔可满足性,但是却产生了很多额外的变量和子句。
针对这一问题,提出了两种改进方法。
第一,用伪布尔可满足性(PBS)来消除子集可满足性公式带来的缺点。
第二,针对子集可满足性算法在求解同时增加额外的变量和字句,而使得对称数量按指数级增长的问题,选用增加静态对称破缺的方法对CNF进行预处理,侦测并破缺其中的对称,从而达到减少搜索路径的目的。
用简化图自同构的方法来侦测所有对称性,在增加合适的对称破缺判定(SBPs)后,限制搜索在空间的非对称领域进行,从而减少了搜索空间,而不影响CNF公式的可满足性。
然后把预处理过的CNF送入布尔可满足性(SAT)解法器进行求解。
四、附录
基于内部等价性验证工具zdfv之上实现了本文第二部分的算法。
所有实验结果在主频为1.8G,内存为1G的Redhatlinux9.0机器上运行得到。
下表给出了针对ISCAS85国际标准测试电路的实验结果。
需要说明的是表中的实验电路circuit_opt都是通过优化前后的两个电路,将其相应输出连到一个异或门上作为新产生电路的输出得到的。
表中同时列除了zChaff及文献[70],尤其是电路C6288-opt,C880-opt和CI1908-opt等。
实验结果
五、参考文献
[GPF97]J.Gu,.PW.Pudrom,J.Frnaeo.AlgoritllmsofrtheSatisfibaility(SAT)Porblem:
ASuvrey[J].DMIACSSeriesonDisereteMathematiesnadTheoretiealCon1PuterScienee35,PP.19一151,1997
[G93]J.Gu.LoealSearehofrSatisfibaility(SAT)Porblem[J].IEEETrans.OnSystems,Mna,nadCybemetiesVol.23,No.4,pp.1108-1129,1993
[G94J.Gu.GlobalOPtimizationofrSatisfibaility(SAT)Porblem[J」.EIEETnars.OnDataand众owledgeEngineeringVol.6,No.3,PP.361一381,1994
[SLM92]B.Selmna,H.Levesque,D.Mitehell.ANewMethodforSolvingHardsatisfiabilityPorblems[C].Proc.ofthe
NationalConfereneeonArtifieialIntelligence,PP.440__446,1992
[F96]J.Frnak.WeghtingforGodot:
LeaningHeuristicforGSAT[C].Pore.OfNationalConefreneeonArtificialIhtelligence,Pp.338343,1996
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 难解问题的算法 论文 难解 问题 算法