遗传算法Word格式文档下载.docx

上传人:b****5 文档编号:16869750 上传时间:2022-11-26 格式:DOCX 页数:23 大小:81.93KB
下载 相关 举报
遗传算法Word格式文档下载.docx_第1页
第1页 / 共23页
遗传算法Word格式文档下载.docx_第2页
第2页 / 共23页
遗传算法Word格式文档下载.docx_第3页
第3页 / 共23页
遗传算法Word格式文档下载.docx_第4页
第4页 / 共23页
遗传算法Word格式文档下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

遗传算法Word格式文档下载.docx

《遗传算法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《遗传算法Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。

遗传算法Word格式文档下载.docx

迄今为止,遗传算法是进化算法中最广为人知的算法。

近几年来,遗传算法主要在复杂问题求解和工业工程领域应用,取得了一些令人信服的结果,所以引起了很多人的关注,而且在发展过程中,进化策略、进化规则和遗传算法之间差异越来越小。

遗传算法成功的应用包括:

作业调度与排序、可靠性设计、车辆路径选择与调度、成组技术、设备布置与分配、交通问题等。

2、遗传算法的特点

遗传算法是解决搜索问题的一种通用算法,对于各种通用问题都可以使用。

搜索算法的共同特征为:

1、首先组成一组候选解;

2、依据某些适应性条件测算这些候选解的适应度;

3、根据适应度保留某些候选解,放弃其他候选解;

4、对保留的候选解进行某些操作,生成新的候选解。

在遗传算法中,上述几个特征以一种特殊的方式组合在一起:

基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。

这种特殊的组合方式将遗传算法与其他搜索算法区别开来。

遗传算法还有以下几方面的特点:

(1)遗传算法的处理对象不是参数本身,而是对参数集进行了编码的个体。

此操作使得遗传算法可直接对结构对象进行操作。

(2)许多传统搜索算法都是单点搜索算法,容易陷入局部的最优解。

遗传算法同时处理群体中的多个个体,即对搜索空间中的多个解进行评估,减少了陷入局部最优解的风险,同时算法本身易于实现并行化。

(3)遗传算法基本上不用搜索空间的知识或其他辅助信息,而仅用适应度函数值来评估个体,在此基础上进行遗传操作。

适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。

这一特点使得遗传算法的应用范围大大扩展。

(4)遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导它的搜索方向

(5)具有自组织、自适应和自学习性。

遗传算法利用进化过程获得的信息自行组织搜索,适应度大的个体具有较高的生存概率,并获得更适应环境的基因结构。

3、遗传算法的不足之处

遗传算法作为一种优化方法,它存在自身的局限性:

(1)编码不规范及编码存在表示的不准确性。

(2)单一的遗传算法编码不能全面地将优化问题的约束表示出来。

考虑约束的一个方法就是对不可行解采用阈值,这样,计算的时间必然增加。

(3)遗传算法通常的效率比其他传统的优化方法低。

(4)遗传算法容易出现过早收敛。

(5)遗传算法对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。

4、遗传算法的运用领域

遗传算法提供了一种求解复杂系统优化间题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于很多学科。

下面是遗传算法的一些主要应用领域:

(1)函数优化

函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能评价的常用算例。

对于一些非线性、多模型、多目标的函数优化问题,用其他优化方法较难求解,用遗传算法可以方便地得到较好的结果。

(2)组合优化

随着问题规模的增大,组合优化问题的搜索空间也急剧扩大,有时在目前的计算机上用枚举法很难或甚至不可能求出其精确最优解。

对这类复杂问题,人们己意识到应把主要精力放在寻求其满意解上,而遗传算法是寻求这种满意解的最佳工具之一。

实践证明,遗传算法对于组合优化中的NP完全问题非常有效。

例如,遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等方面得到成功的应用。

(3)生产调度问题

生产调度问题在很多情况下所建立起来的数学模型难以精确求解,即使经过一些简化之后可以进行求解,也会因简化得太多而使得求解结果与实际相差甚远。

而目前在现实生产中也主要是靠一些经验来进行调度。

现在遗传算法已成为解决复杂调度问题的有效工具,在单件生产车间调度、流水线生产车间调度、生产规划、任务分配等方面遗传算法都得到了有效的应用。

(4)自动控制

在自动控制领域中很多与优化相关的问题需要求解,遗传算法已在其中得到了初步的应用,并显示出了良好的效果。

例如用遗传算法进行航空控制系统的优化、使用遗传算法设计空间交会控制器、基于遗传算法的模糊控制器的优化设计、基于遗传算法的参数辨识、基于遗传算法的模糊控制规则的学习、利用遗传算法进行人工神经网络的结构优化设计和权值学习等,都显示出了遗传算法在这些领域中应用的可能性。

(5)机器人学

机器人是一类复杂的难以精确建模的人工系统,而遗传算法的起源就来自于对人工自适应系统的研究,所以机器人学理所当然地成为遗传算法的一个重要应用领域。

例如,遗传算法已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解、细胞机器人的结构优化和行为协调等方面得到研究和应用。

(6)图像处理

图像处理是计算机视觉中的一个重要研究领域。

在图像处理过程中,如扫描、特征提取、图像分割等不可避免地会存在一些误差,这些误差会影响图像处理的效果。

如何使这些误差最小是使计算机视觉达到实用化的重要要求。

遗传算法在这些图像处理中的优化计算方面找到了用武之地,日前已在模式识别、图像恢复、图像边缘特征提取等方面得到了应用。

(7)人工生命

人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统。

自组织能力和自学习能力是人工生命的两大主要特征。

人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要基础理论。

虽然人工生命的研究尚处于启蒙阶段.但遗传算法已在其进化模型、学习模型、行为模型、自组织模型等方面显示出了初步的应用能力,并且必将得到更为深入的应用和发展。

人工生命与遗传算法相辅相成,遗传算法为人工生命的研究提供了一个有效的工具,人工生命的研究也必将促进遗传算法的进一步发展。

(8)遗传编程

Koza发展了遗传编程的概念,他使用了以LISP语言所表示的编码方法,基于对一种树型结构所进行的遗传操作来自动生成计算机程序。

虽然遗传编程的理论尚未成熟,应用也有一些限制,但它已成功地应用于人工智能、机器学习等领域。

(9)机器学习

学习能力是高级自适应系统所应具备的能力之一。

基于遗传算法的机器学习,特别是分类器系统,在很多领域中都得到了应用。

例如,遗传算法被用于学习模糊控制规则,利用遗传算法来学习隶属度函数,从而更好地改进了模糊系统的性能;

基于遗传算法的机器学习可用来调整人工神经网络的连接权,也可用于人工神经网络的网络结构优化设计;

分类器系统也在学习式多机器人路径规划系统中得到了成功的应用。

5、遗传算法中的基本概念

群体:

又称种群、染色群体,个体的集合,代表问题的解空间子集。

串及串空间:

串是个体的表达形式,对应着遗传学中的染色体,对应实际问题的一个解。

群体规模:

染色体群中个体的数目称为群体的大小或群体规模。

基因:

是指染色体的一个片段,基因可以是一个数值、一组数或一串字符。

交换:

指在一定条件下两条染色体上的一个或几个基因相互交换位置。

交换概率:

判断是否满足交换条件的一个小于1的阈值。

变异:

指在一定条件下随即改变一条染色体上的一个或几个基因值。

变异概率:

判断是否满足变异条件的一个小于1的阈值。

后代:

染色体经过交换或变异后形成的新的个体。

适应度:

用来度量种群中个体优劣的指标值,他通常表现为数值形式。

选择:

根据染色体对应的适应值和问题的要求,筛选种群中的染色体,染色体的适应度越高,保存下来的概率越大,反之则越小,甚至被淘汰。

6、遗传算法的关键步骤有:

1、构造适应函数及选择规则:

适应函数基本上依据优化问题的目标函数而定。

当适应函数确定以后,自然选择规律是以适应函数值的大小及问题的要求来确定哪些染色体适应生存,哪些被淘汰。

2、染色体编码:

是指对优化问题的解进行编码。

此处我们称一个解的编码为一个染色体,组成编码的元素称为基因。

编码的目的主要用于优化问题解的表现形式和利于之后遗传算法中的计算。

3、初始种群:

由多个染色体组成具有一定群体规模的染色体集合或称解的集合。

遗传算法将基于这个集合进行遗传算法,每一轮操作(包括交换、突变、选择)后生存下来的染色体组成新的种群,形成可以繁衍下一代的群体。

4、解码和染色体评估:

运用适值函数计算种群(包括初始种群)中各染色体的适应值,计算各染色体的入选(生存)概率。

5、选择:

以适应函数值的大小以及问题的要求来确定哪些染色体适应生存,哪些被淘汰。

生存下来的染色体形成可以繁衍下一代的新种群。

判断是否满足问题要求,如果满足,停止操作,否则继续第6步以及后面的操作。

6、交换:

这一操作随机地选定一个位置,将两个染色体对应位置上的编码(基因)交叉呼唤,两个染色体得到两个后代。

7、变异:

这一操作随机地改变染色体中某一位置基因的值,一个染色体得到一个后代。

这一步结束后,我们就得到了新一代染色体群体,重复第4步至第7步。

初始群体一般应该随机选取,随机选取达到所有状态遍历的可能性更大,因而最优解在遗传算法的进化中最终得以生存。

二、遗传算法的应用(0-1背包问题)

1、引言

21世纪全球的经济竞争更加激烈,如何加强经济管理、向管理要效益是各国极为关注的问题。

在经济管理中资源分配、投资决策、装载设计都存在背包问题。

背包问题是一个典型的NP难问题。

背包问题是指从N件不同价值不同重量的物品中按一定的要求选取一部分物品,在不超过背包承重的条件,使选中物品的价值之和为最大值的问题。

传统解决背包问题的方法有:

贪心方法、动态规划法、回溯法、分枝界限法、穷举法等。

近年来,一种借鉴生物界自然选择和进化机制发展起来的高度并行、随机、自适应搜索算法——遗传算法。

它在2O世纪6O年代末期由美国Michigan大学的JohnHolland与其同事、学生提出,通过采用自然进化模型。

对于采用特定编码方式所形成的初始解集(初始种群)进行选择、交叉和变异等操作。

使其逐步向前演化,从而求得问题的近似最优解。

经过四十年,特别是近二十年的发展,遗传算法在函数优化、组合优化、生产调度以及自动控制等领域得到广泛的应用。

它提供了一种求解复杂系统优化问题的通用框架。

它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性。

2、求解背包问题的传统方法及遗传算法概要

2.1贪心方法

贪心方法是一种不要求最优解,只希望得到较为满意解的方法。

贪心方法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。

贪心方法常以当前情况为基础作最优选择,而不是考虑各种可能的整体情况,所以贪心方法不要回溯。

但是,对于某些情况,实际上有解,而该算法不能找到解。

对于找不到解的情况,程序只要穷举所有可能情况,就能找到解。

2.2动态规划法

动态规划方法建立在最优原则的基础上,可以很好地解决许多用贪心方法无法解决的问题。

和贪心方法一样,在动态规划中,可将一个问题的解决方案视为一系列决策的结果。

不同的是,在贪心方法中,每采用一次贪心准则便做出一个不可撤回的决策,而在动态规划中,还要考察每个最优决策序列中是否包含一个最优子序列。

即要求:

无论过程的初始状态和初始决策是什么,其余的决策必须相对于初始决策所产生的状态构成一个最优决策序列。

2.3回溯法

回溯法是一种系统地搜索问题解答的方法。

为了实现回溯,首先需要为问题定义一个解空间,这个解空间必须至少包含问题的一个解(可能是最优的)。

下一步是组织解空间以便它能被容易地搜索。

典型的组织方法是图或树。

一旦定义了解空间的组织方法,这个空间即可按照深度优先的方法从开始结点进行搜索,利用限界函数避免移动到不可能产生解的子空间。

2.4分枝-限界法

分枝限界法是另一种系统地搜索解空间的方法,它与回溯法的主要区别在于对E结点的扩充方式。

每个活结点有且仅有一次机会变成E结点。

当一个结点变为E结点时,则生成从该结点移动一步即可到达的所有新结点。

在生成的结点中,抛弃那些不可能导出(最优)可行解的结点,其余结点加入活结点表,然后从表中选择一个结点作为下一个E结点。

从活结点表中取出所选择的结点并进行扩充,直到找到解或活动表为空,扩充才结束。

2.5穷举法

穷举法:

即在一个连续的有限空间或离散无限搜索空间中,计算空间中每个点的目标函数值,且每次计算一个。

显然,这种方法效率太低而鲁棒性不强。

许多实际问题所对应的搜索空间很大,不允许一点一点地慢慢求解。

2.6遗传算法

遗传算法通过模拟达尔文“优胜劣汰,适者生存”的原理激励好的结构,同时寻找更好的结构。

虽然它不一定能得到问题的最优解,但是它在海量的数据信息中能够迅速收敛到问题的最优解。

遗传算法是一种群体型操作,该操作以群体中所有个体为对象。

选择、交叉和变异是遗传算法的三个主要算子,他们构成了遗传算法的主要操作,使遗传算法具有了其它传统方法所没有的特性。

遗传算法的操作对象是一组可行解,而非单个可行解;

搜索轨道有多条,而非单条,因而具有良好的并行性。

遗传算法只需利用目标的取值信息,而无需递度等高价值信息,因而适用于任何规模。

遗传算法的择优机制是一种“软”选择,加上良好的并行性,使它具有良好的全局优化性和稳健性。

遗传算法操作的可行解集是经过编码化的(通常采用二进制编码),目标函数解释为编码化个体(可行解)的适应值,因而具有良好的可操作性与简单性。

3基于遗传算法求解0-1背包问题

3.1目标函数和适应度函数

背包问题的数学描述为:

给定V﹥0,

﹥0,

﹥0,1

i

n,要求找出n元0/1向量(

),

=0或1,1

n,在满足

条件下使得

达到最大。

数学模型为:

约束条件为:

nV表示背包的最大承重)

由于适应度值是群体中个体生存机会选择的唯一确定性指标,所以适应度函数的形式直接决定着群体的行为进化。

为了直接将适应度函数与群体中的个体优劣度量相联系,在遗传算法中规定适应度为非负,并且在任何情况下总是越大越好。

本文在进行个体适应度评价时,直接使用目标函数作为适应度函数。

即:

F(X)=f(

)=

3.2基因编码及初始群体

将n个

的基因值顺序排列,就可构成背包问题的遗传编码。

即使用的是等长度的二进制编码方法,编码长度为所需要选择的物品数量。

染色体中每一个基因对应一个物品。

编码串中1表示将对应的物品放入背包中,0表示不将其放入。

本文采用完全随机的方法产生初始群体。

上述基因编码方案虽然比较直观,由于初始群体是完全随机产生的,产生的解有两种。

一种是可行解,即满足约束条的解。

另一种是不可行解,即不满足约束条件的解。

对于任意一个编码串,或者由交叉、变异所产生的任意一个个体,由于它们不一定满足约束条件,就不一定表示可行解,也就是说这种编码方案会产生很多无效染色体。

对于这些不满足约束条件的基因编码串,可以编写一个修正函数,利用贪婪算法的思想,优先装入

较大且

=1的物品,直到超过背包的容量限制再装不下为止。

对于基因编码中指示应装入而实际上己装不下的物品,修改其基因编码串中对应的

为0。

由此可产生一些新的基因编码串,并且这些新编码串总是相对来说质量比较好的,特别是它们肯定满足问题的约束条件。

3.3选择操作

选择是遗传算法中最主要的机制,也是影响遗传算法性能最主要的因素。

设计相应的适应度函数,得到每个个体的适应度值,采用轮盘赌选择法进行选择。

使用轮盘赌的选择法首先要计算出种群中每一个解被选择的概率,即根据适应度函数计算出种群中每一个解的适应度值,然后用每一个解的适应度值与种群中所有解的适应度值的总和相比,所得的比例就是每一个解被选择的概率,也即

表示种群中第i个解的适应度值,n为种群的空间的大小)然后由种群中每一个解被选择的概率计算每一个解的累积概率。

选择操作具体流程如下:

(1)统计每个染色体被选择的概率

作为被选中的概率。

(2)计算每个染色体的累计概率,(

(3)K[1…n]=0;

M=0。

(4)判断是否满足终止条件(M>

n),若满足则转向(10),否则继续执行。

(5)产生随机数R。

(6)i=n;

Z=n。

(7)若R≤

则K[M]=Z。

(8)n=n-1,判断是否满足终止条件(n>

0),若不满足转向继续执行,

(9)M=M+1,转向(4)执行。

(10)选中K[1…n]中标识的个体作为下一代的父个体。

3.4交叉操作

交叉是把两个父个体的结构加以替换而生成新个体的操作,也称基因重组。

其目的是为了能够在下一代产生新的个体,就像人类社会的婚姻过程,通过交叉操作,遗传算法的搜索能力得以飞跃的提高。

交叉是遗传算法获取新优良个体的重要手段。

经典的观点认为交叉机制中强度最弱的单点杂交是最好的。

但同时容易使得种群过早的趋向于单一化。

同时,也有越来越多的实验结果显示,强度较大的多点杂交优于单点杂交。

本文采用强度较大的多点交叉,以概率

的条件下进行随机产生要交叉的个数,从中任选两个个体,然后随机产生两个交叉点,

对这两个个体对

之间的部分进行交叉。

交叉概率控制着交叉操作被使用的频度,较大的交叉概率可增强遗传算法开辟新的搜索区域的能力,但同时高性能的模式遭到破坏的可能性增大。

若交叉概率太低,遗传算法搜索可能陷入迟钝状态。

一般取

从0.2到1.00之间。

交叉操作的具体流程如下:

(1)随机产生一个随机数R(0≤R<

1),如果R<

,则转向下一步,

(2)i=1

(3)判断是否满足终止条件(i>

N),若满足则退出交叉函数的执行,否则转向下一步。

(4)随机产生两个随机数P1和P2,1≤P1≤N;

1≤P2≤N(N代表染色体的长度),把种群中相邻的两个个体P1和P2之间的染色体进行交换。

(5)i=i+2

(6)转向(3)执行。

3.5变异操作

变异操作的基本作用就是以概率

对群体中的个体基因串的基因位上的基因值进行改变。

本文采用基本位变异,即是:

如果原来的染色体为1将其突变为0,如果原来的染色体为0将其突变为1。

进行变异操作的目的是为了:

一是:

使得遗传算法具有局部的随机搜索能力,显然此时变异概率应取较小值;

二是:

使遗传算法可维持群体的多样性,以防止出现未成熟收敛现象,此时变异概率就取较大的值。

变异操作的具体流程如下:

(1)产生一个随机数R(0<

R<

,则转向下一步。

(2)随机选中一个个体。

(3)随机产生一个变异位置R2(0<

R2≤N,N染色体长度)。

(4)对R2上的染色体进行突变。

3.6算法终止条件和流程图

虽然遗传算法具有概率1收敛的极限性质,然而实际算法通常难以实现理论上的收敛条件。

因此,追寻的目标应该是具有一定优化质量的快速搜索,这显然与算法操作设计和参数选取有关。

由于实际应用遗传算法时不允许让其无停止地进行搜索,同时问题的最优解也通常未知,因此必须设计一些近似收敛准则来终止算法进程。

常用方法包括:

给定一个最大进化代数;

给定个体评价总数;

给定最佳搜索解的最大滞留步数等。

本文采用最大进化代数来终止算法。

该算法的运行流程为:

(1)初始化运行环境。

(2)输入参数

(3)n=0。

(4)随机产生N个初始个体构成初始种群POP(0)。

(5)评价POP(N)中各个体的适应值。

(6)判断是否达到最大进化代数,若满足则转向(11),否则转向下一步执行。

(7)选择操作。

(8)交叉操作。

(9)变异操作。

(10)n=n+1,转向6处。

(11)输出结果并结束。

开始

程序流程图1

4结束语

遗传算法在处理背包问题时借助了大自然的演化过程,采用的是种群和随机搜索机制,它是一种多线索而非单线索的全局优化方法,能克服传统优化方法容易陷入局部最优的缺点,与传统方法相比求全局最优解的质量和效率以及背包的利用率都有了进一步的提高。

是一种求解0-1背包问题的有效算法。

三、参考文献

[1]王小平等.遗传算法—理论、应用与软件实现[M].西安:

西安交通大学出版社,2002.

[2]徐金明,张孟喜,丁涛等.MATLAB实用教程[M].北京:

清华大学出版社,北就交通大学出版社,2005.

[3]刘西奎,李艳,许进.背包问题的遗传算法求解[J].华中科技大学学报(自然科学版),2002,30(6):

89-90.

[4]张永兵,王斌,张永飞,杨晓鸿,陈海鹏.基于遗传算法的背包问题求解[J].大理学院学报,2005,4(5):

24-26.

[5]刘洋.求解O一1背包问题的遗传算法及其改进[J].天津师范大学学报(自然科学版),2003,23(3):

69-72.

[6]贺毅朝,刘坤起,张翠军,张巍.求解背包问题的贪心遗传算法及其应用[J].计算机工程与设计,2007,28(11):

2655-2681.

[7]王莉,绍定宏,陆金桂.基于遗传算法的0/1背包问题求解[J].计算机仿真,2006,23(3):

154-156.

[8]宋海洲,魏旭真.求解0-1背包问题的混合遗传算法[J].华侨大学学报(自然科学版),2006,27

(1):

16-19.

[9]刘茜,马杰良.对求解0-1背包问题的混合遗传算法的改进[J].重庆科技学院学报(自然科学版),2006,8(4)89-90.

[10]曾国清

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1