- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种ABCSAT算法启发式初始解策略
一种ABCSAT算法的启发式初始解策略
摘 要:为了改善初始解在解空间中的分布状况,根据SAT问题的变量极性差异约束,提出一种启发式初始解策略,以解决人工蜂群算法求解策略问题。该方法不仅保留了随机思想,而且设置了变量的取值倾向。实验证明,新策略能够进一步节约求解时间和内存消耗,提高求解成功率。
关键词:布尔可满足性问题;人工蜂群算法;初始解;启发式
DOIDOI:10.11907/rjdk.172336
中?D分类号:TP301.6
文献标识码:A 文章编号:1672-7800(2018)002-0044-03
0 引言
布尔可满足性问题[1](Boolean Satisfiability Problem,简称SAT问题)的基本形式是:给定一个命题变量集合X和一个X上的合取范式φ(X),判断是否存在一个真值赋值t(X),使得φ(X)为真。如果能找到,则称φ(X)是可满足的(satisfiable),否则称φ(X)是不可满足的(unsatisfiable)。SAT问题是世界上第一个被证明的NPC问题[2],在计算机科学、人工智能等理论和应用领域起着重要作用[3-5],其中SAT问题求解是目前的一个重要研究分支[6]。
人工蜂群(Artificial Bee Colony,简称ABC)算法[7]是近年来兴起的一种群智能进化算法,在许多优化问题上表现出了比差分进化、粒子群和遗传算法等更好的性能[8]。本文提出一种新的ABCSAT算法[9],已经成功利用ABC算法初步求解SAT问题。
ABCSAT求解算法继承了标准ABC算法的基本思想。首先随机生成SN个蜜源,并计算其适应度;雇佣蜂与蜜源一一对应,对每个蜜源邻域进行搜索,发现更优解时则进行替换;跟随蜂根据一定概率选择跟随的雇佣蜂,深入局部搜索;侦察蜂放弃连续limit次没有被改进的雇佣蜂或跟随蜂,并重新初始一个解;觅食过程是雇佣蜂、跟随蜂和侦察蜂3个觅食阶段的反复迭代过程,直到达到搜索终止条件或找到问题的解。
1 初始解基本方法
在ABC算法中,一个蜜源表示待优化问题的一个可能解,蜜源的丰富程度代表解的质量(即适应度),蜜蜂觅食的过程便是寻找具有最大适应度值的最优解过程。初始化时,通过式(1)随机生成含有SN(Solution Number)个解的初始蜂群,每个雇佣蜂被赋予一个初始位置,本文用D维向量Xi表示第i个蜜源,其中Xi=xij(i=1,2,3,…,SN, j=1,2,…D)。
ABCSAT求解算法是一种基于群体寻优的算法,算法运行时以蜂群的形式在搜索空间内搜索。蜂群表示雇佣蜂和跟随蜂对应的蜜源,每个蜜源对应问题的一个可能解。
蜂群中蜜源的数量SN称为蜜源大小或种群规模,表示可能解的数量,一般是一个不变的常数,通常蜜源的个数等于雇佣蜂或跟随蜂的个数。在一些特殊情况下,蜜源大小也可能采用与迭代次数相关的变量,以获取更好的优化效果。一般来说,当SN很小时,陷入局部最优的可能性就会增大。但随着SN的增大,运行时间也将增大,并且当SN增长至一定水平时收敛速度将非常慢。如果不考虑运行时间因素,可以采用大的种群,但在运行时间要求很短且配置环境不是非常好的情况下,建议采用较小的种群。本文对不同规模的种群进行了实验分析,建议选用种群大小为20。
初始蜂群是算法搜索的起点,在解空间中的分布状况会对算法搜索性能产生影响,一般采用随机方法产生。初始化时,随机生成SN个蜜源,雇佣蜂和跟随蜂的个数均为SN,其中雇佣蜂与蜜源一一对应。由于SAT问题的每个变量均为布尔变量,因此随机产生ξij∈U(0,1),Sij通过公式(2)生成:
算法初始候选解后,循环执行雇佣蜂、跟随蜂和侦察蜂觅食步骤,直到找到问题的解或达到最大迭代次数。
2 启发式初始解方法
初始解的好坏对搜索性能影响很大,然而,完全随机的初始解可能经过很多搜索步骤也难以找到一个可行解[10]。因此,本文尝试从研究问题的约束入手,在随机初始化过程中加入启发式方法。
2.1 变量极性差异
由于任何一个命题逻辑公式都可在多项式时间内转化为合取范式(Conjunctive Normal Form,简称CNF),主流的SAT求解算法通常假设目标公式已被处理为CNF形式。CNF公式指由若干子句合取构成的公式,可简单描述为式(3):
式(3)中,k表示每个子句中文字的个数,m表示子句的个数,li,j表示出现在第i个子句的第j个文字。
对任意变量xi,符号xi和xi是其文字,称xi是正文字,xi是负文字。文字的正负称作符号(sign)或相(phase)。用L表示所有文字的集合,l表示某个文字,L={l1,l2,l3,…,lk}。
定
文档评论(0)