- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用遗传算法解决n皇后问题.
用遗传算法解决n皇后问题
(李怀远)
问题提出
N皇后问题描述如下:在格棋盘上放置彼此不受攻击的n个皇后。按国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。N皇后问题等价于在以下三个约束条件下:约束任何2个皇后不放在同一行;约束任何2个皇后不放在同一列;约束任何2个皇后不放在同斜线;找出一种合法的放置方案。
我们把的棋盘看作二维方阵,其行号从上到下列号从左到右依次编号为0,1,…,n-1.。设任意两个皇后,皇后1和皇后2的坐标分别是(i,j)和(k,l),则如果这两个皇后在从棋盘左上角到右下角的主对角线及其平行线(斜率为-1的线)上,有i-j=k-l=0?;如果这两个皇后在斜率为+1的每一斜线上,有i+j=k+l;以上两个方程分别等价于i-k=j-l和i-k=l-j因此任两皇后的在同一斜线上的充要条件是 式
因此满足两个皇后不在同一斜线上的条件表示为:
式
两皇后不在同一行用式表示为: 式
两皇后不在同一列用式表示为: 式
此属NP问题不易求解,现在我们把任意n个皇后的任意一种放置办法当作一个个体(染色体),把其中的任意一个皇后当作一个基因,用遗传算法来解决该问题。
编码方案
对于此问题我提出两种编码方案。
编码方案1:排列编码
用一维n元数组x[0:n-1]来表示一个个体,其中,x[i]表示皇后i放在棋盘的第i行第x[i]列,即第i行第x[i]列放置一个皇后。例如,x[0]=0表示棋盘的第0行第0列放一个皇后。数组第i个元素表示第i行的放置情况,可以看作一个基因。这种编码可以自然的解决了某一行只能放一个皇后的约束,如果数组的每一个元素x[i]都不重复,可以看成0——n-1的一种排列,就自然保证每一列只能放一个皇后。因此在交叉变异和产生个体时必须注意?x[i]的唯一性。
编码方案2:二进制编码
用一维数组x[0:n2-1]表示一个个体,其中。设,其中,r表示行号是n整除i的整数部分,c是余数表示列号,如果x[i]=1表示棋盘的第r行第c列放有某一个皇后,如果x[i]=0表示棋盘的第r行第c列没有放置皇后。因为它使用了二进制编码,所以这种编码方法可以借用通用的二进制编码的交叉变异方法,这是它优于编码1的地方,但是用它随机产生的编码可能不满足题目的约束和约束,因此可能在生成个体或者交叉变异时强制它满足前两个约束或者加大对不满足约束的个体进行惩罚或淘汰或计算适应值时加以分辨。
编码方案3:矩阵编码
用矩阵或二维数组x[0:n-1][0:n-1]表示一个染色体,且如果x[i][j]=1表示棋盘的第i行第j列放置一个皇后,x[i][j]=0表示棋盘的第i行第j列为空。该编码虽然直观,但为了满足题目的约束和约束,同样需要在生成个体或者交叉变异时强制它满足前两个约束或者加大对不满足约束的个体进行惩罚或淘汰或计算适应值时加以分辨。
适应度的计算
设aij表示皇后i和皇后j之间的相互攻击,即:。
对于编码1:
皇后i和j的攻击度: 。
对于编码2 :
设i和j可以分别分解成,,分别是皇后i和j的行号和列号,i和j攻击度:。
对于编码3:
设皇后i和j的行列分别是,则i和j的攻击度:
第i个皇后的攻击度ai表示皇后i在除自身外其余n-1个皇后中与皇后i相冲突的数目,即有几个皇后与皇后i相攻击。如果i和所有皇后都冲突则攻击度为n-1,与所有的皇后都不冲突攻击度为0。因此ai可如下计算:。
同理,皇后i的非攻击度表示和皇后i没有冲突的皇后数目,设bi表示i的非攻击度,则。
方法1:根据非攻击度计算
用fi表示基因i的适应度,即第i个皇后的非攻击度,。如果某一个皇后i和所有其余的n-1个皇后都互不攻击,则。
个体的适应度是指所有皇后的非攻击度之和,适应度函数可表示如下:对于一个合法的放置方案每一个基因的适应度都是n-1,此时染色体的适应度是。
方法2:根据合法的皇后数目计算
一个合法的皇后和任意其他n-1个都互不攻击,设ei=1表示第i个皇后合法,ei=0表示第i个皇后非法。因此,ei可以写成:。
适应度函数定义为:。适应度越大棋局越接近要求,对于一个符合要求的棋局n个皇后都是合法的,即。但是用这种方法可能的一个问题是适应度的差异太小,特别是在初始群体中或初始迭代中,因此可以考虑放大适应值的差异度,用指数函数实现,则适应度函数为:或或,当α1时放大差异。
方法3:综合合法的皇后数目和非攻击度的自适应方法
可以想象随机生成的个体合法皇后的数目几乎都是0,特别是在初始迭代中,即使像方法2中那样放大适应值效果也不会太好,此时各个棋局的差异主要在非攻击度方面。当在迭代后期一个棋局中合法皇后数目可能会增多,而且此时合法皇后数目更有意义。鉴于此我们应同时考虑合法的皇后数目和非攻
您可能关注的文档
- 现代大学英语精读第二版前六单元短语翻译..doc
- 现代化的策略及其比较研究..doc
- 现代安全管理模拟题..doc
- 现代工业发展对农村环境产生的影响研究..doc
- 现代广告学期末复习题..doc
- 现代控制理论实验指导书-第1章..doc
- 现代教育原理期末复习指导..doc
- 现代教育学复习资料3..doc
- 现代教育技术复习资题目..doc
- 现代教育技术初级辅导教师手册4..doc
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)