遗传算法学习心得体会

时间:2019-05-12 02:52:51下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《遗传算法学习心得体会》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《遗传算法学习心得体会》。

第一篇:遗传算法学习心得体会

遗传算法

概念

遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,它既能在搜索中自动获取和积累有关空间知识,并自适应地控制搜索过程以求得最优解遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近视最优方案。在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近视解。这个过程导致种群中个体的进化,得到的新个体比原个体更适应环境,就像自然界中的改造一样。

应用

遗传算法在人工智能的众多领域具有广泛应用。例如,机器学习、聚类、控制(如煤气管道控制)、规划(如生产任务规划)、设计(如通信网络设计、布局设计)、调度(如作业车间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如tsp、背包问题)、函数的最大值以及图像处理和信号处理等等。遗传算法多用应与复杂函数的优化问题中。原理

遗传算法模拟了自然选择和遗传中发生的复制、交叉、和变异等现象,从任一初始种群出发,通过随机选择、交叉、变异操作,产生一群更适合环境的个体,使群体进行到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适合环境的个体求得问题的最优解。

算法流程 1.编码:解空间中的解数据x,作为作为遗传算法的表现型形式。从表现

型到基本型的映射称为编码。遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基本型串结构数据,这些串结构数据的不同的组合就构成了不同的点。2.初始种群的形成:随机产生n个初始串数据,每个串数据称为一个个体,n个串数据构成了一个群体。遗传算法以这n个串结构作为初始点开始迭代。设置进化代数计数器t 0;设置最大进行代数t;随机生成m个个体作为初始群体p(0)。3.适应度检测:适应度就是借鉴生物个体对环境的适应程度,适应度函数 就是对问题中的个体对象所设计的表征其优劣的一种测度。根据具体问题计算p(t)的适应度。

4.选择:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到

下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。

5.交叉:将交叉算子作用于群体。所谓交叉是指把两个父代个体的部分结

构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。6.变异:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。

群体p(t)经过选择、交叉、变异运算之后得到下一代群体p(t+1)。7.终止条件判断:若t<=t,则t=t+1,转到第3步,否则以进化过程中所得

到的具有最大适应度个体作为最优解输出,终止计算。

遗传算法流程图如下图所示: 遗传算法

下几种:适应度比例方法、随机遍历抽样法、局部选择法。

其中轮盘赌选择法是最简单也是最常用的选择方法。在该方法中,各个个体的选择概率和其适应度值成比例。设群体大小为n,其中个体i的适应度为,则i 被选择的概率,为遗传算法

2、交叉:在自然界生物进化过程中起核心作用的是生物遗传基因的重组(加上变异)。同样,遗传算法中起核心作用的是遗传操作的交叉算子。所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。通过交叉,遗传算法的搜索能力得以飞跃提高。

交叉算子根据交叉率将种群中的两个个体随机地交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。根据编码表示方法的不同,可以有以下的算法: b)二进制交叉(binary valued crossover)1)单点交叉(single-point crossover)2)多点交叉(multiple-point crossover)3)均匀交叉(uniform crossover)4)洗牌交叉(shuffle crossover)5)缩小代理交叉(crossover with reduced surrogate)。

3、变异

变异算子的基本内容是对群体中的个体串的某些基因座上的基因值作变动。依据个体编码表示方法的不同,可以有以下的算法: a)实值变异 b)二进制变异。

一般来说,变异算子操作的基本步骤如下: a)对群中所有个体以事先设定的编译概率判断是否进行变异 b)对进行变异的个体随机选择变异位进行变异。

例:简单一元函数优化

求下面函数的最大值:

f(x)=xsin(10*pi*x)+2.0,-1<=x<=2;程序: figure(1);fplot(variable.*sin(10*pi*variable)+2.0,[-1,2]);%画出函数曲线 %定义遗传算法参数

nind=40;%个体数目(number of individuals)maxgen=25;%最大遗传代数(maximum number of generations)preci=20;%变量的二进制位数(precision of variables)ggap=0.9;%代沟(generation gap)trace=zeros(2, maxgen);%寻优结果的初始值 fieldd=[20;-1;2;1;0;1;1];%区域描述器(build field descriptor)chrom=crtbp(nind, preci);%初始种群 gen=0;%代计数器 variable=bs2rv(chrom, fieldd);

%计算初始种群的十进制转换

objv=variable.*sin(10*pi*variable)+2.0;%计算目标函数值 while gen

基本概念

遗传算法(genetic algorithms, ga)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。

它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。ga的组成:(1)编码(产生初始种群)

(2)适应度函数

(3)遗传算子(选择、交叉、变异)

(4)运行参数

编码

基因在一定能够意义上包含了它所代表的问题的解。基因的编码方式有很多,这也取决于要解决的问题本身。常见的编码方式有:

(1)二进制编码,基因用0或1表示(常用于解决01背包问题)如:基因a:00100011010(代表一个个体的染色体)(2)互换编码(用于解决排序问题,如旅行商问题和调度问题)

如旅行商问题中,一串基因编码用来表示遍历的城市顺序,如:234517986,表示九个城市中,先经过城市2,再经过城市3,依此类推。

(3)树形编码(用于遗传规划中的演化编程或者表示)

如,问题:给定了很多组输入和输出。请你为这些输入输出选择一个函数,使得这个函数把每个输入尽可能近地映射为输出。

编码方法:基因就是树形结构中的一些函数。

(4)值编码(二进制编码不好用时,解决复杂的数值问题)

在值编码中,每个基因就是一串取值。这些取值可以是与问题有关任何值:整数,实数,字符或者其他一些更复杂的东西。

适应度函数

遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。

如tsp问题,遍历各城市路径之和越小越好,这样可以用可能的最大路径长度减去实际经过的路径长度,作为该问题的适应度函数。

遗传算子——选择

遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小。选择操作的任务就是按某种方法从父代群体中选取一些个体,遗传到下一代群体。sga(基本遗传算法)中采用轮盘赌选择方法。

轮盘赌选择又称比例选择算子,基本思想:各个个体被选中的概率与其适应度函数值大小成正比。设群体大小为n,个体i 的适应度为 fi,则个体i 被选中遗传到下一代群体的概率为:

遗传算子——交叉

所谓交叉运算,是指对两个相互配对的染色体依据交叉概率按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算在ga中起关键作用,是产生新个体的主要方法。1.单交叉点法(用于二进制编码)

选择一个交叉点,子代在交叉点前面的基因从一个父代基因那里得到,后面的部分从另外一个父代基因那里得到。

如:交叉前:

00000|***00 11100|***01 交叉后:

00000|***01 11100|***00 2.双交叉点法(用于二进制编码)

选择两个交叉点,子代基因在两个交叉点间部分来自一个父代基因,其余部分来自于另外一个父代基因.如:交叉前: 01 |0010| 11 11 |0111| 01 交叉后: 11 |0010| 01 01 |0111| 11 3.基于“ 与/或 ”交叉法(用于二进制编码)对父代按位与”逻辑运算产生一子代a;按位”或”逻辑运算产生另一子代b。该交叉策略在解背包问题中效果较好.如:交叉前: 01001011 11011101 交叉后: 01001001 11011111 4.单交叉点法(用于互换编码)

选择一个交叉点,子代的从初始位置出发的部分从一个基因复制,然后在另一个基因中扫描,如果某个位点在子代中没有,就把它添加进去。如:交叉前: 87213 | 09546 98356 | 71420 交叉后:

87213 | 95640 98356 | 72104 5.部分匹配交叉(pmx)法(用于互换编码)先随机产生两个交叉点,定义这两点间的区域为匹配区域,并用交换两个父代的匹配区域。

父代a:872 | 130 | 9546 父代b:983 | 567 | 1420 变为: temp a: 872 | 567 | 9546 temp b: 983 | 130 | 1420 对于 temp a、temp b中匹配区域以外出现的数码重复,要依据匹配区域内的位置逐一进行替换。匹配关系:1<——>5 3<——>6 7<——>0 子代a:802 | 567 | 9143 子代b:986 | 130 | 5427 6.顺序交叉法(ox)(用于互换编码)

从父代a随机选一个编码子串,放到子代a的对应位置;子代a空余的位置从父代b中按b的顺序选取(与己有编码不重复)。同理可得子代b。父代a: 872 | 139 | 0546 父代b: 983 | 567 | 1420 交叉后:

子代a: 856 | 139 | 7420 子代b: 821 | 567 | 3904 7.循环交叉(cx)法(用于互换编码)cx同ox交叉都是从一个亲代中取一些城市,而其它城市来自另外一个亲代,但是二者不同之处在于:ox中来自第一个亲代的编码子串是随机产生的,而cx却不是,它是根据两个双亲相应位置的编码而确定的。

父代a:1 2 3 4 5 6 7 8 9 | | | | | 父代a:5 4 6 9 2 3 7 8 1 可得循环基因:1->5->2->4->9->1 用循环的基因构成子代a,顺序与父代a一样 1 2 4 5 9 用父代b剩余的基因填满子代a: 1 2 6 4 5 3 7 8 9 子代b的编码同理。(循环基因 5->1->9->4->2->5)

遗传算子——变异 变异是指依据变异概率将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。ga中的变异运算是产生新个体的辅助方法,它决定了ga的局部搜索能力,同时保持种群的多样性。交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。

注:变异概率pm不能太小,这样降低全局搜索能力;也不能太大,pm > 0.5,这时ga退化为随机搜索。篇三:计算智能学习心得体会

计算智能学习心得体会

本学期我们水利水电专业开了“计算智能概论”这门课,有我们学院的金菊良教授给我们授课,据说这门课相当难理解,我们课下做了充分的准备,借了计算智能和人工智能相关方面的书籍,并提前了解了一点相关知识,我感觉看着有点先进,给我们以往学的课程有很大区别,是一种全新的概念和理论,里面的遗传算法、模糊集理论、神经网络更是闻所未闻,由于课前读了一些书籍,我以为课堂上应该能容易理解一点,想不到课堂上听着还是相当玄奥,遗传算法还好一点,因为高中学过生物遗传,遗传算法还能理解一点。像模糊集理论神经网络便不知所云了。虽然金老师讲课生动形象,幽默风趣,而且举了好多实际的例子,但有一些理论有点偏难。

多关于ci的解释。

虽然有好多计算智能理论还不太清楚,但是我对新知识还是相当渴望的,因为我本身比较爱学习,且喜欢读书。我感觉学到了许多知识:计算智能是一门经验科学,它研究自然的或人工的智能行为形成之原理以“推理即计算”为基本假设,开发某种理论、说明某项智能可以算法化,从而可以用机器模拟和实现;寻求和接受自然智能之启迪,但不企图完全仿制人类智能,其中心工程目标是研究设计和建立智能计算系统的方法。

由于我们只有16课时,所以我们学的面并不广,金老师主要教了一些计算智能方面的经典理论,我们所学的计算智能所涉及的领域主要包括以下三方面:遗传算法、人工神经网络方法和模糊集理论。

遗传算法最早由美国michigan大学john h.holland教授提出,按照生物进化过程中的自然选择(selection)、父代杂交(crossover)和子代变异(mutation)的自然进化(natural evolution)方式,编制的计算机程序,能够解决许多复杂的优化问题,这类新的优化方法称之为遗传算法(genetic algorithm,ga)[7]。ga模拟生物进化过程中的主要特征有:(1)生物个体的染色体(chromosomes)的结构特征,即基因码序列(series of genetic code)决定了该个体对其生存环境的适应能力。(2)自然选择在生物群体(population)进化过程中起着主导作用,它决定了群体中那些适应能力(adaptability)强的个体能够生存下来并传宗接代,体现了“优胜劣汰”的进化规律。(3)个体繁殖(杂交)是通过父代个体间交换基因材料来实现的,生成的子代个体的染色体特征可能与父代的相似,也可能与父代的有显著差异,从而有可能改变个体适应环境的能力。

(4)变异使子代个体的染色体有别于其父代个体的染色体,从而也改变了子代个体对其环境的适应能力。(5)生物的进化过程,从微观上看是生物个体的染色体特征不断改善的过程,从宏观上看则是生物个体的适应能力不断提高的过程。作为利用自然选择和群体遗传机制进行高维非线性空间寻优的一类通用方法,遗传算法(ga)不一定能寻得最优(optimal)点,但是它可以找到更优(superior)点,这种思路与人类行为中成功的标志是相似的。例如不必要求某个围棋高手是最优的,要战胜对手只需他(她)比其对手更强即可。因此,ga可能会暂时停留在某些非最优点上,直到变异发生使它迁移到另一更优点上。遗传算法随编码

方式、遗传操作算子的不同而表现为不同形式,因此难以象传统的共轭梯度法那样从形式上给以明确定义,它的识别标志在于它是否具有模拟生物的自然选择和群体遗传机理这一内在特征。目前国内外普遍应用的实施方案是标准遗传算法(simple genetic algorithm,sga)。bp神经网络 bp神经网络是用反向传播学习算法(back-propagation algorithm,bp算法)训练的一种多层前馈型非线性映射网络,网络中各神经元接受前一级的输入,并输出到下一级,网络中没有反馈联接。bp神经网络通常可以分为不同的层(级),第j层的输入仅与第j–1层的输出联接。由于输入层节点和输出层节点可与外界相连,直接接受环境的影响,所以称为可见层,而其它中间层则称为隐层(hidden layer)。决定一个bp神经网络性质的要素有三个:网络结构、神经元作用函数和学习算法,对这三个要素的研究构成了丰富多彩的内容,尤其是后者被研究得最多。bp算法是目前应用最为广泛且较成功的一种算法,它解决了多层前馈网络的学习问题,从而使该网络在各方面获得了广泛应用。它利用梯度搜索技术(gradient search technique)使代价函数(cost function)最小化。bp算法把一组样本的输入输出问题归纳为一非线性优化问题,它使用了最优化方法中最常用的负梯度下降算法。用迭代运算求解网络权重和阈值对应于网络的学习记忆过程,加入隐层节点使得优化问题的可调参数增加,从而可得到更精确的解。

模糊集理论

模糊集理论(又称模糊数学,fuzzy mathematics)就是应用模糊集这一模拟人脑模糊思维的数学工具,来描述、分析、识别、分类、判断、推理、决策和控制各种模糊事物所形成的一门现代应用数学分支学科。经典数学仅考虑现实世界的数量而抛弃现实世界的质量,而模糊集理论则反映了现实世界数量与质量的统一性,是对经典数学的一种补充和完善。定义模糊集、模糊关系的不同运算(目前主要是代数运算),就可得到相应的不同模糊数学方法。目前已研究成熟并广为应用的模糊数学方法主要有模糊模式识别、模糊聚类分析、模糊综合评价、模糊推理、模糊控制等方法。在现代科学技术体系中定性因素和主观因素定量化处理的方法至今仍很少,而模糊数学方法正是其中的典型代表,目前已在各科学和工程领域得到了广泛的成功应用,其主要原因在于它异于其它方法的一些显著特点:(1)模糊集的引入改善了二值逻辑中硬性的分类方法,是普通集合的推广,使模糊数学方法更加接近于广泛存在模糊性和不精确性的现实世界,也更加接近于人类思维方式。这些真实性使得模糊数学方法能很好地平衡系统的复杂性与描述系统的精确性,也有助于模糊数学方法充分提取各种专家经验信息和其它人类语言信息。(2)当系统为多输入多输出、强非线性、定性信息与定量信息混杂的动态系统时,系统的数学模型非常复杂或根本就不存在确定性数学模型,常规方法难以或不能有效处理这样的复杂系统,而模糊数学方法可以用建立在语言型经验之上的模糊集及其运算就可以简便有效地处理,有时甚至不需要辅以确定的数学模型。(3)模糊数学方法可以直接利用人类语言型概念及其运算,篇四:遗传算法总结

遗传算法总结

遗传算法是借鉴生物的自然选择和遗传进化机制而开发出的一种全局自适应概率搜索算法。

一、遗传算法流程图

图1 遗传算法流程图

二、遗传算法的原理和方法 1)染色体编码

把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法就称为编码。de jong曾提出了两条操作性较强的实用编码原则:编码原则一:应使用能易于产生与所求问题相关的且具有低阶、短定义长度模式的编码方案;编码原则二:应使用能使问题得到自然表示或描述的具有最小编码字符集的编码方案。

编码方法主要有以下几种:二进制编码方法、格雷码编码方法、浮点数编码方法、符号编码方法、参数级联编码方法、多参数交叉编码方法。2)适应值计算

由解空间中某一点的目标函数值f(x)到搜索空间中对应个体的适应度函数值 fit(f(x))的转换方法基本上有一下三种: a. 直接以待解的目标函数值f(x)转化为适应度函数值fit(f(x)),令 ?f(x)目标函数为最大化函数 fit(fx())= ? ??f(x)目标函数为最小化函数 ?cmax?f(x)f(x)?cmax b. 对于最小值的问题,做下列转化fit(f(x))??,其中cmax是 0 其他? f(x)的最大输入值。

c. 若目标函数为最小值问题,fit(f(x))? 1 , c?0, c?f(x)?0 1?c?f(x)1 , c?0, c?f(x)?0 1?c?f(x)若目标函数为最大值问题,fit(f(x))?3)选择、交叉、变异

遗传算法使用选择算子来对群体中的个体进行优胜劣汰操作:根据每个个体的适应度值大小选择。适应度较高的个体被遗传到下一代群体中的概率较大;适应度较低的个体的被遗传到下一代群体中的概率较小。其中选择的方法有:轮盘赌选择、随机竞争选择、最佳保留选择、无回放随机选择、确定式选择等。

遗传算法中的所谓交叉运算,是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。交叉操作主要有单点交叉、两点交叉与多点交叉、均匀交叉和算数交叉四种。

遗传算法中的变异运算,是指将个体染色体编码串中的某些基因座上的基因值用该基因座的其他基因来替换,从而形成一个新的个体。主要有基本位变异、均匀变异、边界变异等几种变异操作方法。4)控制参数选择

交叉概率pcpm

三、算例

min f(x1,x2)?(x1?3)2?(x2?2)2 2 ?g1(x1,x2)?x12?x2?5? s.t.?h1(x1,x2)?x1?2x2?4?0?x,x?10,x?n 121?(1)1)三种不同的遗传方法

方法一:原模型中x1、x2均为决策变量,操作如下。a.采用混合整数编码,对x1进行十进制编码,x2进行二进制编码; b.适应度函数值采用fit(f(x1,x2))? 1 计算,其中 c?f(x1,x2)c???max{0,g1(x1,x2)?5}???max{0,|h1(x1,x2)?4|},?=?=10000; c.采用赌轮盘选择、单点交叉和基本位变异; d.pc=0.8,pm=0.1,遗传代数为200,种群中个体数100; e.终止条件为连续十次最优个体保持不变或遗传代数到达200。方法二:已知等式约束h1(x1,x2),可得x2?(4?x1)/2,则原问题可化为 min f(x1)?(x1?3)2?((4?x1)?2)22(2)4?x12?2 g(x)?x?()?5111? 2?s..t?0?x1?10,x1?n?4?x1?0??10 2? x min f(x1)?(x1?3)2?(1)2 2 即等式约束简化后的模型为 4?x12?2 g(x)?x?()?5?1 s..t?112??0?x1?4,x1?n 其中a~b的操作如下,而c~e的操作同方法一。a.对x1进行十进制编码; b.适应度函数值采用fit(f(x1,x2))?(3)1 计算,其中 c?f(x1,x2)c???max{0,g1(x1,x2)?5},?=10000 方法三:在方法二的基础上,改变x1的编码方法,对x1进行二进制编码。由于0?x1?4,且为自然数,则二进制编码至少为3位,但3位的二进制可以表示0~7的整数,所以存在冗余编码。则通过惩罚来排除冗余编码,即适应度函数值采用 fit(f(x1,x2))? 1 计算。c?f(x1,x2)其中c???max{0,g1(x1,x2)?5}???max{0,x1(i)?4},?=10000。x1(i)表示个体解码后的x1。

2)三种方法的计算结果

方法一可得到三个不同的解:

解1:x1?2,x2?1, fit(f(x1,x2))?0.4646, f(x)?2.0000,适应度趋势图如下: 图2 方法一解1的适应度趋势图

解2:x1?0,x2?2, fit(f(x1,x2))?0.1075, f(x)?9.0000,适应度趋势图如下: 篇五:遗传算法学习作业

遗传算法学习总结 1.1 概述 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的自适应概率性随机化迭代搜索算法。1962年霍兰德(holland)教授首次提出了ga算法的思想,它的基本思想是基于darwin进化论和mendel的遗传演说。darwin进化论最重要的是适者生存的原理,它认为每一代种群总是向着前进方向发展,越来越适应环境。每一个个体都有继承前代的特性,但不是完全继承,会产生一些新特性。最终只有适应环境的特征才能被保留下来。mendel遗传学说最重要的是基因遗传原理,它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。一条染色体中存在很多基因,每个基因有自己的位置并控制着外部特征;基因的产生和变异直接影响到个体的特性是否能适应环境。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。

遗传算法正是借用了仿真生物遗传学和自然选择机理,通过自然选择、遗传、变异等作用机制,实现各个个体的适应性的提高。

与自然界相似,遗传算法对求解问题的本身一无所知,从代表问题可能潜在解集的一个种群(population)开始,每一个种群则由经过基因(gene)编码(coding)的一定数目的个体(individual)构成。每个个体实际上是染色体(chromosome)带有特征的实体。把问题的解表示成染色体,并基于适应值来选择染色体,遗传算法所需要的仅是对算法所产生的每个染色体进行评价,使适应性好的染色体有更多的繁殖机会。在算法中也就是以二进制编码的串。并且,在执行遗传算法之前,给出一群染色体,也就是假设解。然后,把这些假设解置于问题的“环境”中,也即在一个适应度函数中来评价。并按适者生存的原则,从中选择出较适应环境的染色体进行复制,淘汰低适应度的个体,再通过交叉,变异过程产生更适应环境的新一代染色体群。对这个新种群进行下一轮进化,直到最适合环境的值。1.2遗传算法的基本原理和特点 1.2.1 算法原理

在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体集合形成下一代新的种群,再对这个新种群进行下一轮进化,这就是遗传算法的基本原理。

遗传算法的主要步骤如下: 1)随机产生一个由确定长度的特征串组成的初始群体; 2)对串群体迭代地执行步骤(1)和(2),直到满足停止准则:(1)计算群体中每个个体的适应值。(2)应用复制、杂交和变异算子产生下一代群体。3)把在任一代中出现的最好的个体串指定为遗传算法的执行结果。这个结果可以表示问题的一个解(或近似解)。基本遗传算法的流程图如图 1-1,其中gen是当前代数,m为每代种群中最大个体数。

图1-1 基本遗传算法的流程图 1.2.2 算法特点

遗传算法的特点如下: 1)遗传算法中不包含待解决问题所持有的形态。它是从改变基因的配置来实现问题的整体优化的,因而属于自下而上的优化方法; 2)类似于生物的进化过程,遗传算法处理的是变量集合的编码而非变量本身。它直接 对结构对象进行操作,不存在求导和函数连续性的限定; 3)遗传算法具有内在的隐并行性和更好的全局寻优能力; 4)遗传算法采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。

遗传算法的这些特点已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术之一。1.3 基本遗传算法的步骤

1.3.1 染色体编码(chromosome coding)与解码(decode)基本遗传算法使用固定长度的二进制符号串来表示群体中的个体,其等位基因由二值{0,1}所组成。初始群体中各个个体的基因可用均匀分布的随机数来生成。例如:x=***101就可表示一个个体,该个体的染色体长度是n=18。(1)编码:变量x作为实数,可以视为遗传算法的表现型形式。从表现型到基因型的映射称为编码。设某一参数的取值范围为[u1,u2],我们用长度为k的二进制编码符号来表示该参数,则它总共产生2k种不同的编码,可使参数编码时的对应关系为:

000000?0000=0→u1 000000?0001=1→u1+? 000000?0010=2→u1+2? ? 111111?1111=2k-1→u2 u?u其中,?=2 k1。2?1(2)解码:假设某一个体的编码为bkbk-1bk-2?b2b1,则对应的解码公式为 x?u1?(?bi?2i?1)? i?1ku2?u1 ① k2?1 例如:设有参数x∈[2,4],现用5位二进制编码对x进行编码,得25=32个二进制串(染色体):

00000,00001,00010,00011,00100,00101,00110,00111 01000,01001,01010,01011,01100,01101,01110,01111 10000,10001,10010,10011,10100,10101,10110,10111 11000,11001,11010,11011,11100,11101,11110,11111 对于任一个二进制串,只要代入公式①,就可得到相应的解码,如x22=10101,它对应的十进制为?bi?2i?1=1+0*2+1*22+0*23+1*24=21,则对应参数 i?15 x的值为2+21*(4-2)/(25-1)=3.3548。1.3.2 个体适应度的检测评估

基本遗传算法按与个体适应度成正比的概率来决定当前群体中各个个体遗传到下一代群体中的机会多少。为了正确估计这个概率,要求所有个体的适应度

必须为非负数。所以,根据不同种类的问题,需要预先确定好由目标函数值到个体适应度之间的转换规律,特别是要预先确定好当目标函数值为负数时的处理方法。例如,可选取一个适当大的正数c,使个体的适应度为目标函数值加上正数c。1.3.3 遗传算子

基本遗传算法使用下列三种遗传算子:

(1)选择运算使用比例选择算子。比例选择因子是利用比例于各个个体适应度的概率决定其子孙的遗传可能性。若设种群数为m,个体i的适应度为fi,则个体i被选取的概率为 pi?fi/?fk k?1m 当个体选择的概率给定后,产生[0,1]之间的均匀随机数来决定哪个个体参加交配。若个体的选择概率大,则能被多次选中,它的遗传基因就会在种群中扩大;若个体的选择概率小,则被淘汰。

我们经常采用的是轮盘赌的原理,个体的选择概率是基于它们的性能进行的一些计算。实值范围——总和是所有个体期望的选择概率的总和或当前种群中所有个体原始适应度值的总和。个体采用一对一方式

映像到范围[0,sum]的一连续区间,每一个体区间的 大小与对应个体的适应度值相匹配。如图1所示,轮

盘赌轮的周长是6个个体适应度值的总和,个体5 是最大适应度个体,它占有最大的区间。选择一个个

体,用在[0,sum]间产生随机数,看此随机数在哪个

个体的区间上,则此个体被选中。重复此过程,直到

所需数量个体被选中为止。

(2)交叉运算使用单点交叉算子。只有一个交叉点位置,任意挑选经过选择操作后种群中两个个体作为交叉对象,随机产生一个交叉点位置,两个个体在交叉点位置互换部分基因码,形成两个子个体,如图2所示。

父个体1 父个体2 110 11 011 00 单点交叉 子个体1 子个体2 图2 单点交叉示意图

(3)变异运算使用基本位变异算子或均匀变异算子。为了避免问题 过早收敛,对于二进制的基因码组成的个体种群,实现基因码的小概率翻转,即0变为1,而1变为0,如图3所示。

变异

图3 变异操作示意图 1.3.4 基本遗传算法的运行参数 基本遗传算法有下列4个运行参数需要预先设定,即m,t,pc,pm。m为群体大小,即群体中所含个体的数量,一般取为20~100; t为遗传算法的终止进化代数,一般取为100~500; pc为交叉概率,一般取为0.4~0.99;pm为变异概率,一般取为0.0001~0.1。1.4遗传算法的应用 进入90年代后,遗传算法迎来了兴盛发展时期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。

遗传算法提供了一种求解复杂系统问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于很多学科。如工程结构优化、计算数学、制造系统、航空航天、交通、计算机科学、通信、电子学、材料科学等。1)ga在数值优化上的应用

最优化问题是遗传算法经典应用领域,但采用常规方法对于大规模、多峰态函数、含离散变量等问题的有效解决往往存在许多障碍。对全局变化问题,目前存在确定性和非确定性两类方法。前者以brianin的下降轨线法、levy的隧道法和r.ge的填充函数为代表。该类方法虽然收敛快、计算效率高,但算法复杂,求得全局极值的概率不大。遗传算法作为现代最优化的手段,实践证明,它应用于大规模、多峰多态函数、含离散变量等情况下的全局优化问题是合适的,在求解速度和质量上远远超过常规方法。2)ga 在组合优化中的应用

3)遗传算法在机器学习中的应用

机器学习系统实际上是对人的学习机制的一种抽象和模拟,是一种理想的学习模型。基于符号学习的机器学习系统如监督型学习系统、条件反射学习系统、类比式学习系统、推理学习系统等,只具备一些较初级的学习能力。近年来,由于遗传算法的发展,基于进化机制遗传学习成为一种新的机器学习方法,它将知识表达为另一种符号形式—遗传基因型,通过模拟生物的进化过程,实现专门领域知识的合理增长型学习。4)遗传算法在并行处理中的应用 遗传算法固有的并行性和大规模并行机的快速发展,促使许多研究者开始研究遗传算法的并行化问题,研究数量更加接近自然界的软件群体将成为可能。遗传算法与并行计算的结合,能把并行机的高速性和遗传算法固有的并行性两者的长处彼此结合起来,从而也促进了并行遗传算法的研究与发展。

第二篇:JAVA实验报告 心得体会——密码攻击、遗传算法

JAVA实验报告

JAVA实验报告

一、JAVA编程模拟密码攻击MimaGongji 1.模拟密码攻击MimaGongji功能需求分析

编程模拟密码攻击的过程,实现下述功能:

(1)键盘输入12位密码,包括字母和数字;

(2)采用穷举法进行攻击,直到破解密码为止;

(3)屏幕输出试验的次数,并输出获得的密码。

2.MimaGongji基本设计思路

1)基于对MimaGongji功能需求的分析,MimaGongji这个类作为主类,实现主要功能,包括密码的流输入,密码的穷举法破解和破解后密码的输出。2)Java.io.*这个包主要实现数据的流输入和流输出。

3)public static void main(String[] args)这个方法是主要的方法,实现密码的键盘输入,采用穷举法进行攻击,并屏幕输出试验的次数和获得的密码。4).length()这个方法主要是计算一个字符串的长度

3.实验步骤

1)Java程序代码(*.java)和详细的行注释 //文件名称为“MimaGongji.java” import java.io.*;//加入java的流输入和流输出包 class MimaGongji //定义主类 {

public static void main(String[] args)//引入主要方法 {

String s=“";try{ BufferedReader

mima=

new

BufferedReader(new InputStreamReader(System.in));//定义密码的流输入

JAVA实验报告

//统计试验的次数

}

System.out.print(po);

} //输出破解之后的密码

} System.out.println();//换行 System.out.println(”试验次数:“+g);//输出提示“试验的次数”

} }//类申明的结束

2)程序的运行(包括运行的过程、界面和结果图)

首先编写如上所示的源程序,保存文件名称为“MimaGongji.java”,然后编译源程序,编译完成后,生成一个字节码文件MimaGongji.class,执行这个程序,得到如下图所示的窗口:

JAVA实验报告

getContentPane().add(pb,BorderLayout.SOUTH);//把面板添加到窗口上

t1=new JTextField(50);//创建文本框

t2=new JTextField(50);//创建文本框

t3=new JTextField(50);//创建文本框 t4=new JTextField(5);//创建文本框 t5=new JTextField(5);//创建文本框 t6=new JTextField(5);//创建文本框

t2.setEditable(false);//定义文本框的不可书写

t4.setEditable(false);//定义文本框的不可书写

t5.setEditable(false);//定义文本框的不可书写

t6.setEditable(false);//定义文本框的不可书写

p.add(l3,BorderLayout.NORTH);//把标签添加到面板上 p.add(t3,BorderLayout.CENTER);//把文本框添加到面板上 p.add(l1,BorderLayout.NORTH);//把标签添加到面板上 p.add(t1,BorderLayout.CENTER);//把文本框添加到面板上 p.add(l2,BorderLayout.NORTH);//把标签添加到面板上 p.add(t2,BorderLayout.CENTER);//把文本框添加到面板上 p.add(l4,BorderLayout.NORTH);//把标签添加到面板上 p.add(t4,BorderLayout.CENTER);//把文本框添加到面板上 p.add(l5,BorderLayout.NORTH);//把标签添加到面板上 p.add(t5,BorderLayout.CENTER);//把文本框添加到面板上 p.add(l6,BorderLayout.NORTH);//把标签添加到面板上 p.add(t6,BorderLayout.CENTER);//把文本框添加到面板上 b0=new JButton(”生成父母基因“);//创建父母基因生成按钮 pb.add(b0);//添加到面板上

b1=new JButton(”100次交叉、变异“);//创建交叉、变异按钮 pb.add(b1);//添加到面板上 b2=new JButton(”200次交叉、变异“);pb.add(b2);b3=new JButton(”500次交叉、变异");

JAVA实验报告

Object s=e.getSource();if(s==b0)//监听器实现功能 {

t3.setText(s1);//t3文本框输出s1

} t1.setText(s2);t4.setText(String.valueOf(H1));t5.setText(String.valueOf(H2));

if(s==b1)time(100);//监听器实现功能

} if(s==b2)time(200);if(s==b3)time(500);

public void time(int r)//定义方法,实现函数的调用

{

int x,y,z,d1=0,d2=0,w,k,H3=0;

c=new int[23];//定义一个数组

for(int j=1;j<=r;j++)//基因的交叉 {

x=1+(int)(Math.random()*23);//生成一个随机父亲基因位

y=1+(int)(Math.random()*23);//生成一个随机母亲基因位

z=f[x-1];f[x-1]=m[y-1];m[y-1]=z;//两个基因位的基因调换 }

for(int j=0;j<23;j++)//分别计算父母基因总和

{

d1+=f[j];

JAVA实验报告

2)程序的运行(包括运行的过程、界面和结果图)

首先编写如上所示的源程序,保存文件名称为“YichuanSuanfa.java”,然后编译源程序,编译完成后,生成一个字节码文件YichuanSuanfa.class,执行这个程序,得到如下图所示的窗口:

随机生成父母基因,得到如下图示:

JAVA实验报告

500次交叉、变异之后,得到如下图示:

4.实验心得

.java文件名要与主类名相同,JAVA对字

1.编写调试程序要注意程序编写的规则,母的大小写特别敏感,输入时要特捏注意大小写字母的定义,千万别犯主类名与.java文件名不同的错误。

2.在做图形界面时,注意设置图形界面的大小以及文本框、标签和按钮的位置。创建文本框的时候,可以设置文本框的可写性,以及文本框的颜色等等。在随机生成父母基因的时候,注意生成的随机数是什么范围,我们实验要求的范围是什么。监听器的响应,在文本框中输出的是一个基因整体还是一个数,都需要注意,因为这两种输出的方法不同。

3.为了简化程序,我们应该学会调用函数的方法。一开始做程序的时候,我没有注意到这一点,导致我的程序代码非常繁杂,而且容易出错。在同学的建议下,我把100次、200次、500次交叉、变异的实现使用调用函数的方法,这样我的程序代码变得简明多了。因此,在做程序的时候应该考虑到程序代码的简明扼要,不但美观,还能保证

JAVA实验报告

正确性的要求。

4.特别要注意的是一个变量的使用范围,在同一个方法中,同一变量是可以通用的,即不用重复定义,可以被系统认识,在不同的方法之间,同一变量是不能被对方所认识的,这就需要我们在定义变量时,注意变量的使用范围,如果需要在不同的方法中被引用,那就需要我们在所有的方法之外,同一类中进行定义。

第三篇:遗传算法求解TSP问题实验报告

人工智能实验报告

实验六

遗传算法实验II

一、实验目的:

熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响。

二、实验原理:

旅行商问题,即TSP问题(Traveling

Salesman

Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。TSP问题是一个组合优化问题。该问题可以被证明具有NPC计算复杂性。因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。

遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程。它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程。群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。要求利用遗传算法求解TSP问题的最短路径。

三、实验内容:

1、参考实验系统给出的遗传算法核心代码,用遗传算法求解TSP的优化问题,分析遗传算法求解不同规模TSP问题的算法性能。

2、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。

3、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。

4、上交源代码。

四、实验报告要求:

1、画出遗传算法求解TSP问题的流程图。

2、分析遗传算法求解不同规模的TSP问题的算法性能。

规模越大,算法的性能越差,所用时间越长。

3、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。

(1)

种群规模对算法结果的影响

x

0

1.1

3.5

4.5

y

1.1

5.1

4.5

实验次数:10

最大迭代步数:100

交叉概率:0.85

变异概率:0.15

种群规模

平均适应度值

最优路径

25.264

4-5-8-7-6-3-1-0-9-2

26.3428

2-9-1-0-3-6-7-5-8-4

25.1652

1-3-6-7-5-8-4-2-9-0

25.1652

0-1-3-6-7-5-8-4-2-9

25.1652

9-0-1-3-6-7-5-8-4-2

25.1652

1-0-9-2-4-8-5-7-6-3

150

25.1652

5-8-4-2-9-0-1-3-6-7

200

25.1652

1-3-6-7-5-8-4-2-9-0

250

25.1652

3-1-0-9-2-4-8-5-7-6

300

25.1652

5-8-4-2-9-0-1-3-6-7

如表所示,显然最短路径为25.1652m,最优路径为1-0-9-1-3-6-7-5-8-4-2或3-1-0-9-2-4-8-5-7-6,注意到这是一圈,顺时针或者逆时针都可以。当种群规模为10,20时,并没有找到最优解。因此并不是种群规模越小越好。

(2)

交叉概率对算法结果的影响

x

1.1

3.5

3.5

4.5

y

1.1

5.1

8.5

实验次数:15

种群规模:25

最大迭代步数:100

变异概率:0.15

实验结果:

交叉概率

最好适应度

最差适应度

平均适应度

最优解

0.001

28.0447

36.6567

32.6002

9-2-6-0-5-4-8-7-3-1

0.01

27.0935

34.9943

32.1495

7-8-3-1-9-2-6-0-5-4

0.1

28.0447

35.3033

31.9372

7-3-1-9-2-6-0-5-4-8

0.15

28.0447

34.1175

31.2183

0-5-4-8-7-3-1-9-2-6

0.2

28.7108

33.9512

30.9035

3-1-9-2-6-5-0-4-7-8

0.25

28.0447

35.1623

30.7456

1-3-7-8-4-5-0-6-2-9

0.3

27.0935

31.9941

29.9428

8-3-1-9-2-6-0-5-4-7

0.35

27.0935

32.8085

30.9945

9-1-3-8-7-4-5-0-6-2

0.4

27.0935

32.5313

30.1534

1-3-8-7-4-5-0-6-2-9

0.45

27.0935

33.2014

30.1757

8-3-1-9-2-6-0-5-4-7

0.5

28.0934

33.6307

30.9026

5-0-2-6-9-1-3-8-7-4

0.55

27.0935

33.5233

29.1304

1-9-2-6-0-5-4-7-8-3

0.6

27.0935

33.2512

30.7836

3-1-9-2-6-0-5-4-7-8

0.65

28.0447

33.7003

30.9371

5-4-8-7-3-1-9-2-6-0

0.7

27.0935

32.0927

29.9502

9-1-3-8-7-4-5-0-6-2

0.75

28.0447

32.4488

30.3699

0-5-4-8-7-3-1-9-2-6

0.8

27.0935

32.1551

29.9382

7-4-5-0-6-2-9-1-3-8

0.85

27.0935

34.5399

30.3594

5-0-6-2-9-1-3-8-7-4

0.9

27.0935

32.6273

30.69

6-0-5-4-7-8-3-1-9-2

0.95

27.0935

32.4672

29.919

6-2-9-1-3-8-7-4-5-0

(注:红色表示非最优解)

在该情况下,交叉概率过低将使搜索陷入迟钝状态,得不到最优解。

(3)

变异概率对算法结果的影响

x

1.1

3.5

3.5

4.5

y

1.1

5.1

8.5

实验次数:10

种群规模:25

最大迭代步数:100

交叉概率:0.85

实验结果:

变异概率

最好适应度

最差适应度

平均适应度

最优解

0.001

29.4717

34.732

32.4911

0-6-2-1-9-3-8-7-4-5

0.01

29.0446

34.6591

32.3714

8-4-5-0-2-6-9-1-3-7

0.1

28.0934

34.011

30.9417

5-0-2-6-9-1-3-8-7-4

0.15

27.0935

32.093

30.2568

6-0-5-4-7-8-3-1-9-2

0.2

27.0935

32.2349

30.3144

8-7-4-5-0-6-2-9-1-3

0.25

27.0935

32.718

30.1572

4-5-0-6-2-9-1-3-8-7

0.3

27.0935

32.4488

30.2854

0-5-4-7-8-3-1-9-2-6

0.35

27.0935

33.3167

30.7748

1-3-8-7-4-5-0-6-2-9

0.4

29.0446

34.3705

31.3041

2-0-5-4-8-7-3-1-9-6

0.45

27.0935

31.374

29.6816

2-6-0-5-4-7-8-3-1-9

0.5

27.0935

32.3752

30.2211

2-9-1-3-8-7-4-5-0-6

0.55

27.0935

33.3819

30.6623

1-3-8-7-4-5-0-6-2-9

0.6

28.0934

33.2512

30.36

1-3-8-7-4-5-0-2-6-9

0.65

27.0935

32.7491

30.0201

3-1-9-2-6-0-5-4-7-8

0.7

28.7108

32.4238

30.785

1-3-8-7-4-0-5-6-2-9

0.75

27.0935

31.8928

30.2451

1-9-2-6-0-5-4-7-8-3

0.8

28.0934

31.6135

30.3471

9-1-3-8-7-4-5-0-2-6

0.85

29.662

33.2392

31.1585

2-9-1-3-7-8-4-0-5-6

0.9

28.0447

32.0387

30.4152

0-5-4-8-7-3-1-9-2-6

0.95

28.0447

31.3036

30.0067

9-1-3-7-8-4-5-0-6-2

从该表可知,当变异概率过大或过低都将导致无法得到最优解。

4、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。

不同变异策略和不同个体选择分配策略几乎不影响算法运行的时间,但会影响适应度。

五、实验心得与体会

通过本实验,更加深入体会了参数设置对算法结果的影响。同一个算法,参数值不同,获得的结果可能会完全不同。

同时通过本次实验,使自己对遗传算法有了更进一步的了解。遗传算法是一种智能优化算法,它能较好的近似求解TSP问题,在问题规模比较大的时候,遗传算法的优势就明显体现出来,当然不能完全保证能得到最优解。

第四篇:基于遗传算法的优化设计论文

1数学模型的建立

影响抄板落料特性的主要因素有:抄板的几何尺寸a和b、圆筒半径R、圆筒的转速n、抄板安装角β以及折弯抄板间的夹角θ等[4,9]。在不同的参数a、β、θ下,抄板的安装会出现如图1所示的情况。图1描述了不同参数组合下抄板的落料特性横截面示意图。其中,图1(a)与图1(b)、图1(c)、图1(d)的区别在于其安装角为钝角。当安装角不为钝角且OB与OC的夹角σ不小于OD与OC夹角ψ时(即σ≥ψ),会出现图1(b)所示的安装情况;当σ<ψ时,又会出现图1(c)与图1(d)所示的情况,而两者区别在于,η+θ是否超过180°,若不超过,则为图1(c)情况,反之则为图1(d)情况。其中,点A为抄板上物料表面与筒壁的接触点或为物料表面与抄板横向长度b边的交点;点B为抄板的顶点;点C为抄板折弯点;点D为抄板边与筒壁的交点;点E为OB连线与圆筒内壁面的交点;点F为OC连线与圆筒内壁面的交点。

1.1动力学休止角(γ)[4,10]抄板上的物料表面在初始状态时保持稳定,直到物料表面与水平面的夹角大于物料的休止角(最大稳定角)时才发生落料情况。随着转筒的转动,抄板上物料的坡度会一直发生改变。当物料的坡度大于最大稳定角时,物料开始掉落。此时,由于物料的下落,物料表面重新达到最大稳定角开始停止掉落。然而,抄板一直随着转筒转动,使得抄板内物料的坡度一直发生改变,物料坡度又超过最大休止角。这个过程一直持续到抄板转动到一定位置(即抄板位置处于最大落料角δL时),此时抄板内的物料落空。通常,在计算抄板持有量时,会采用动力学休止角来作为物料发生掉落的依据,即抄板内的物料坡度超过γ时,物料开始掉落。该角主要与抄板在滚筒中的位置δ、动摩擦因数μ和弗劳德数Fr等有关。

1.2抄板持有量的计算

随着抄板的转动,一般可以将落料过程划分为3部分(R-1,R-2,R-3),如图1(a)所示。在转动过程中,当抄板转角δ超过动力学休止角γ时,落料过程从R-1区域转变到R-2区域,在这两个区域内,物料不仅受到抄板的作用还受到滚筒壁面的作用。当物料表面上的A点与D点重合时,从R-2区域转变到R-3区域,在该区域内,物料仅受抄板作用[4]。然而,抄板情况为图1(c)、图1(d)时只会经历R-1、R-3区域。因为在运转过程中,抄板上物料的A点与D点重合时抄板的转角不会超过动力学休止角γ,所以不会经历R-2区域;但是,当物料的休止角足够小时,由于物料表面只会与抄板接触(即A点不会超出D点),图1(c)、图1(d)的抄板落料过程只会经历R-3区域。以下根据不同的区域建立了不同组合下抄板持料量的数学模型。

2研究结果与分析

2.1最大落料角结果分析

通过MatLab编制以上推导公式的计算程序,模拟计算了120种不同组合(β、θ、a不同)下抄板的最大落料角。其中,物料动摩擦因数为0.53[8],转筒干燥机半径为300mm,且其抄板安装角为10°、30°、50°、70°、90°、110°,抄板间夹角为90°、110°、130°、150°,抄板纵向长度a为30、45、60、75、90mm,横向长度b为60mm。并且,根据Kelly和O'Donnell通过验证得出的公式(1)只适用于Fr小于0.4的情况[4],此次模拟的转筒干燥机角速度为0.84rad/s。表1给出了模拟结果中较为典型的数据。从模拟结果中可以得出,当a、θ不变时,δL随着安装角β的增大而增大;当a、β不变时,δL随着θ的增大而减小。当抄板情况如图1(a)、(b)、(c)时,且β、θ不变时,抄板最大落料角随着长度a的增大而增大;而图1(d)情况则反之,并且会出现最大落料角小于0°的情况,这是由于抄板无法抄起物料所导致的结果。另外,在图1(d)情况下,抄板的最大落料角非常小,这会使得干燥器的效率很低。因此,在探讨抄板优化问题上,不考虑图1(d)这种情况下的抄板。

2.2优化目标与结果分析

水平直径上均匀撒料虽好,但是物料应与热气均匀接触,如果在路径长的地方撒料多些,就可以使热效率高些。又因为圆筒中心热气量比边缘多以及在圆筒下半部分超出干燥圆的区域存在物料,所以落料均匀度考虑为物料在干燥圆横截面积上撒料均匀。评判干燥圆横截面积上落料均匀的具体方法如下:把干燥圆横截面积划分20个等分,以水平直径为X轴,铅垂直径为Y轴,圆心O为原点,采用定积分方法求解每个划分点的x坐标,每个划分点的铅垂线与干燥圆壁面(上半部分)有一个交点,连接圆心与每个点,可以得出每条连线与X轴的夹角δi(i=1~21,步长为1,δ1为0°),如图2所示。在合理的设计下,不仅希望落料过程中抄板在干燥圆面积上撒料越均匀越好,δL也应越接近180°越好。因此,优化函数为最大落料角和抄板在干燥圆而积上落料的均方差。并且,根据国内外实际情况,抄板的安装角一般为90°并且抄板间夹角一般不为锐角,由于机构的限制和不考虑图1(d)的情况,在研究抄板优化问题时只探讨安装角在70°~110°、抄板夹角在90°~130°以及抄板纵向长度在30~90mm之间的情况。其余参数同上。采用了线性加权和法来求解此多目标优化结果。其中,f1为1/δL的最优化值,f2为q的最优化值;均方差q=(1n∑ni=1(qi-qa)2)12,每相邻角度落料面积差qi=A(δi)-A(δi+1),qa为面积差的平均值。当δL≤δi+1-δi2,n=i;反之则n=i+1,且δi+1=δL。s1、s2为权重系数,由于干燥器的效率主要与抄板的撒料均匀有关,但是如果落料角很小、撒料很均匀,干燥器效率也不高,综合考虑下,取s1、s2分别为0.4、0.6。通过编写MatLab程序,确定优化函数,然后采用MatLab遗传算法工具箱进行计算,设置相关参数:最大代数为51,种群规模为20,交叉概率为0.2,选择概率为0.5。运行算法并显示结果,β、θ、a较优结果分别为:1.844rad、1.571rad、51.609mm。

3结论

考虑到安装角、抄板夹角以及抄板纵向长度的不同组合情况对抄板落料均匀度以及最大落料角的影响,建立了转筒干燥器中任意参数组合下单个抄板持料量的数学模型。通过对不同组合下的抄板最大落料角进行计算从而得出结论:当抄板纵向长度、抄板夹角不变时,最大落料角随着安装角的增大而增大;当抄板纵向长度、安装角不变时,最大落料角随着抄板夹角的增大而减小。最后,根据优化设计方法,以抄板最大落料角和抄板在干燥圆面积上落料的均方差为目标函数,采用遗传算法得出了较优的抄板参数:安装角为1.844rad、夹角为1.571rad、纵向长度为51.609mm。

第五篇:遗传算法的应用及研究动向

遗传算法的应用及研究动向

摘要 本文主要介绍了遗传算法的基本概念和基本原理,分析说明了遗传算法应用领域,指出了遗传算法在应用中的几个关键问题,同时简要介绍了遗传算法研究新动向及存在的问题。

关键词 遗传算法;编码机制;遗传算子;适应度函数

一、遗传算法的基本原理

遗传算法类似于自然进化,通过作用于染色体上基因寻找最好的染色体来求解问题。与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对遗传算法所产生的染色体有更多的繁殖机会。在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始种群;通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体集合成下一代新的种群,对这个新种群进行下一轮进化[1]。

二、遗传算法的应用

遗传算法在应用中最关键的问题有如下3 个[2-3]。

(1)串的编码方式。本质是问题编码。一般把问题的各种参数用二进制编码,构成子串;然后把子串拼接构成“染色体”串。串长度及编码形式对算法收敛影响极大。

(2)适应函数的确定。适应函数(fitness function)也称对象函数(object function),这是问题求解品质的测量函数;往往也称为问题的“环境”。一般可以把问题的模型函数作为对象函数;但有时需要另行构造。

(3)遗传算法自身参数设定。遗传算法自身参数有3 个,即群体大小n、交叉概率Pc 和变异概率Pm。群体大小n 太小时难以求出最优解,太大则增长收敛时间。一般n=30-160。交叉概率Pc 太小时难以向前搜索,太大则容易破坏高适应值的结构。一般取Pc=0.25-0.75。变异概率Pm太小时难以产生新的基因结构,太大使遗传算法成了单纯的随机搜索。一般取Pm=0.01-0.2。

遗传算法的主要应用领域[4-5]在于函数优化(非线性、多模型、多目标等),机器人学(移动机器人路径规划、关节机器人运动轨迹规划、细胞机器人的结构优化等),控制(瓦斯管道控制、防避导弹控制、机器人控制等),规划(生产规划、并行机任务分配等),设计(VLSI 布局、通信网络设计、喷气发动机设计等),组合优化(TSP 问题、背包问题、图分划问题等),图像处理(模式识别、特征提取、图像恢复等),信号处理(滤波器设计等),人工生命(生命的遗传进化等)。

三、遗传算法的研究新动向(1)基于遗传算法的机器学习

这一新的研究方向把遗传算法从历史离散的搜索空间的优化搜索算法扩展到具有独特的规则生成功能崭新的机器学习算法。这一新的学习机制对于解决人工智能中知识获取和知识优化精炼的瓶颈难题带来了希望。遗传算法作为一种搜索算法从一开始就与机器学习有着密切联系。分类器系统CS-1 是GA 的创立Holland 教授等实现的第一个基于遗传算法的机器学习系统。分类器系统在很多领域都得到了应用。例如,分类器系统在学习式多机器人路径规划系统中得到了成功应用;Goldberg 研究了用分类器系统来学习控制一个煤气管道仿真系统;Wilson 研究了一种用于协调可移动式视频摄像机的感知运动的分类器系统等。(2)遗传算法与其他计算智能方法的相互渗透和结合

遗传算法正日益和神经网络、模糊推理以及混沌理论等其它智能计算方法相互渗透和结合,以达到取长补短的作用。近年来在这方面已经取得了不少研究成果,并形成了“计算智能”的研究领域,这对开拓21 世纪中新的智能计算技术具有重要意义。GA 的出现使神经网络的训练(包括连接权系数的优化、网络空间结构的优化和网络的学习规划优化)有了一个崭新的面貌,目标函数既不要求连续,也不要求可微,仅要求该问题可计算,而且搜索始终遍及整个解空间,因此容易得到全局最优解。(3)并行处理的遗传算法

并行处理的遗传算法的研究不仅是遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的。GA 在操作上具有高度的并行性,许多研究人员都在探索在并行机上高效执行GA 的策略。研究表明,只要通过保持多个群体和恰当地控制群体间的相互作用来模拟并执行过程,即使不使用并行计算机,我们也能提高算法的执行效率。在并GA 的研究方面,一些并GA 模型已经被人们在具体的并行机上执行了;并行GA 可分为两类:一类是粗粒度并行GA,主要开发群体间的并行性;另一类是细粒GA,主要开发一个群体中的并行性。(4)遗传算法与人工生命的渗透

人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统,人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要理论基础。虽然人工生命的研究尚处于启蒙阶段,但遗传算法已在其进化模型、学习模型、行为模型、自组织模型等方面显示出了初步的应用能力,并且必将得到更为深入的应用和发展。人工生命与遗传算法相辅相成,遗传算法为人工生命的研究提供了一个有效的工具,人工生命的研究也必将促进遗传算法的进一步发展。(5)遗传算法与进化规则及进化策略的结合

遗传算法、进化规则及进化策略是演化计算的3 个主要分支,这3 种典型的进化算法都以自然界中生物的进化过程为自适应全局优化搜索过程的借鉴对象,所以三者之间有较大的相似性;另一方面,这3 种算法又是从不完全相同的角度出发来模拟生物进化过程,分别是依据不同的生物进化背景、不同的生物进化机制而开发出来的,所以三者之间也有一些差异。随着各种进化计算方法之间相互交流深入,以及对各种进化算法机理研究的进展,要严格地区分它们既不可能、也没有必要。在进化计算领域内更重要的工作是生物进化机制,构造性能更加优良、适应面更加广泛的进化算法。

参考文献

[1] 张文修,梁怡.遗传算法的教学基础[M].西安:西安交通大学出版社,2000.[2] 余建坤,张文彬,陆玉昌.遗传算法及其应用[J].云南民族学院学报,2002(4).[3] 蔡自兴,徐光祐.人工智能及应用[M].北京:清华大学出版社,2003.[4]蒋腾旭.智能优化算法概述[J].电脑知识与技术,2007(8).[5]任庆生,叶中行.遗传算法中常用算子的分析[J].电子学报,2005(5).

下载遗传算法学习心得体会word格式文档
下载遗传算法学习心得体会.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    基于改进遗传算法的配送路径优化方案

    基于改进遗传算法的配送路径优化方案 摘要:为了很好地解决物流车辆的线路优化问题(简称VRP),借鉴DNA算法局部寻优能力强的优点,提出新编码方法,以及车辆的行使路线的新的测序方式......

    基于遗传算法的车牌定位技术研究论文[5篇]

    摘 要:随着我国经济的快速发展,我国机动车辆数量大大增加,给交通管制带来了一定压力。车牌是管理交通车辆的唯一标识,为了对车牌进行准确的定位,根据车牌的特征,本文提出一种自适......

    基于遗传算法的排课系统设计 开题报告

    基于遗传算法的排课系统设计开题报告 1 课题的意义 每个新学期开始,对于学校教务科来说首要而急需完成的任务是:如何合理而高效的排课。其本质是将课程、教师和学生在合适的时......

    基于C#运用遗传算法的排课系统概要

    第18卷 V01.18 第12期 No.12 电子设计工程 Electronic Design Engineering 2010年12月 Dec.2010 基于C舟运用遗传算法的排课系统 王军.陈建云 (南京信息工程大学计算机软件......

    数据挖掘与知识发现(讲稿9--遗传算法)

    ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 第九章基于遗传算法的数据挖掘 面向属性的数......

    机械振动交互式遗传算法粗糙集汽车行驶平顺性论文

    基于隐式性能指标的机械振动优化设计 【摘要】近些年,优化算法已经成为研究与应用领域一种非常重要的工具,利用遗传算法的优化原理,普通遗传算法在解决机械振动优化设计方......

    学习心得体会

    学习《干好销售》心得体会: 在前两天,学习了荆涛老师的《干好销售》,深受启发。通过这次的培训,让我学习到了很多销售方面的有效的方法和技巧。每次学习完之后都感觉很充实,在以......

    学习心得体会

    小学英语培训心得体会本次小学英语教师培训班的培训内容丰富,我学到了许多新的知识和教育方法,提高了自身的基本素质,开拓了眼界,为今后的英语教学奠定了基础。下面我就本次培训......