用遗传算法解决N-皇后问题.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用遗传算法解决N-皇后问题.doc

用遗传算法解决N-皇后问题 刘振 (南昌大学 信息与工程学院 计算机应用 江西 南昌 ) 摘要:本文首先介绍了N皇后问题的和遗传算法的基本知识和来源背景。结合一般的遗传算法的实现过程和传统的处理皇后问题判断攻击的方法,给出了一种实数编码方法。同时,实现了该算法,并通过和回溯法、构造法的比较来说明该算法的优劣。 关键词:遗传算法 皇后问题 编码 Solving the problem of N-Queen by genetic algorithm LIU Zhen (College of Computer and Information, Nanchang University, Jiangxi Nanchang) Abstract: The knowledge of the basic and sources of background of the N-Queen problem and genetic algorithms are introduced firstly in this paper. Take use of general genetic algorithm and the traditional method of deal with N-Queen problem, given a real-coded method. At the same time, the algorithm is realizaded, compared with method of backtracking and construction method to illustrate that the algorithm is good or bad. Key words: Genetic algorithm N-Queen problem Coding 0引言 N-皇后问题是一个经典的NP问题。1850年著名的数学家高斯提出个。所以,用递归求解的有算法的时间随着问题的规模的增大而呈几何指数增长的缺点。但N -皇后问题属于全局并行搜索问题,并且在搜索过程中,不断向可能包含目标解的方向调整搜索空间,而这正是遗传算法的优势所在。遗传算法是1975年美国J.Holland教授首先提出以来,它是基于达尔文的生物进化理论中的“优胜劣汰,适者生存”的进化原则提出的。它是从一组随机生成的种群开始搜索,群体中的每一个个体被称为染色体,染色体的好坏用适应度来衡量。根据适应度的大小从上一代和子代中选择一定量的个体作为新的一代,继续进化,经过若干代进化后算法收敛于最优个体,它可能就是问题的最优解或次优解。本文是一个遗传算法的应用实例,也有人做过类似的研究,他们的编码方法采用二维二进制编码。这会导致搜索的空间很大,从而降低了搜索的效率。本文采用的是自然数串编码机制,搜索的空间就要小很多。 遗传算法概述 遗传算法是模拟生物进化的计算模型,由于其简单通用、鲁棒性强、适用于并行处理。因此,得到广泛的应用。因为它是自然遗传学和计算机科学相互结合渗透而形成的,所以这里就简单介绍一下有关遗传算法的相关术语和一般遗传算法的执行步骤。 1.1染色体:它代表问题的一个可能解,通常使用位串或字符串表示,其中每一位代表一个基因,各个染色体中位于同一位置的基因称为等位基因。 1.2群体:一个群体是若干个体的集合,因为每一个个体代表一个解,所以群体称为问题解的集合。 1.3适应度:它是用来表征个体对目标要求的适应程度。通常用一个函数值来表示适应度。一般情况下,适应度的值越高,个体对环境的适应性越强。 1.4编码:即采用恰当的方式来构造个体的基因型。一般采用二进制编码方案,有时也采用其他的编码方法。 1.5选择:根据个体的适应度,在群体中选择出作为双亲的个体。选择的原则是适应度大的个体优先选择。 1.6复制:按照一定的适应度选择到的作为双亲的个体,把他们的基因复制到后代中。 1.7交叉:交叉是在两个父代染色体中随机产生基因交叉点,通过互相交换基因来产生新的个体。 1.8变异:是对于一个个体,随机选择一个基因点来改变此处的基因,从而产生新的个体。新产生的个体的适应度可能比原来个体高也可能比原个体低。 1.9 一般遗传算法的步骤: 初始化种群; 根据所设置的求个体适应度的函数求出种群中个体的适应度; 设定个体选择概率; 选择个体遗传操作,生成下一代种群; 选择最佳个体,判断是否满足要求,如是则到6),否则到2); 打印出问题的一个解,算法结束。 算法介绍及实现 根据一般遗传算法的思想和步骤,这里主要是让两个适应度高的个体通过变异来产生适应度更高的个体,同时又选择其他的个体通过交叉来产生出新的个体。以下就是这个遗传算法的主要框架,介绍了其实现过程。 2.1 染色体编码 文献[2,3

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档