收藏 分享(赏)

遗传算法的原理及MATLAB程序实现.docx

上传人:kaixinyidian 文档编号:12024296 上传时间:2021-07-30 格式:DOCX 页数:15 大小:99.76KB
下载 相关 举报
遗传算法的原理及MATLAB程序实现.docx_第1页
第1页 / 共15页
遗传算法的原理及MATLAB程序实现.docx_第2页
第2页 / 共15页
遗传算法的原理及MATLAB程序实现.docx_第3页
第3页 / 共15页
遗传算法的原理及MATLAB程序实现.docx_第4页
第4页 / 共15页
遗传算法的原理及MATLAB程序实现.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、1 遗传算法的原理1.1 遗传算法的基本思想遗传算法 ( genetic algorithms, GA ) 是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、 突变的遗传机制的全局自适应概率搜索算法。遗传算法是从一组随机产生的初始解 (种群) 开始, 这个种群由经过基因编码的一定数量的个体组成, 每个个体实际上是染色体带有特征的实体。 染色体作为遗传物质的主要载体,其内部表现(即基因型)是某种基因组合,它决定了个体的外部表现。 因此, 从一开始就需要实现从表现型到基因型的映射, 即编码工作。 初始种群产生后, 按照优胜劣汰的原理, 逐代演化产生

2、出越来越好的近似解。在每一代, 根据问题域中个体的适应度大小选择个体, 并借助于自然遗传学的遗传算子进行组合交叉和变异, 产生出代表新的解集的种群。 这个过程将导致种群像自然进化一样, 后代种群比前代更加适应环境, 末代种群中的最优个体经过解码,可以作为问题近似最优解。计算开始时, 将实际问题的变量进行编码形成染色体, 随机产生一定数目的个体, 即种群, 并计算每个个体的适应度值, 然后通过终止条件判断该初始解是否是最优解, 若是则停止计算输出结果, 若不是则通过遗传算子操作产生新的一代种群,回到计算群体中每个个体的适应度值的部分,然后转到终止条件判断。这一过程循环执行,直到满足优化准则,最终

3、产生问题的最优解。图 1-1 给出了遗传算法的基本过程。1.2 遗传算法的特点1.2.1 遗传算法的优点遗传算法具有十分强的鲁棒性,比起传统优化方法,遗传算法有如下优点:1. 遗传算法以控制变量的编码作为运算对象。 传统的优化算法往往直接利用控制变量的实际值的本身来进行优化运算,但遗传算法不是直接以控制变量的值, 而是以控制变量的特定形式的编码为运算对象。 这种对控制变量的编码处理方式, 可以模仿自然界中生物的遗传和进化等机理, 也使得我们可以方便地处理各种变量和应用遗传操作算子。2. 遗传算法具有内在的本质并行性。 它的并行性表现在两个方面, 一是遗传图1-1简单遗传算法的基本过程算法的外在

4、并行性,最简单的方式是让多台计算机各自进行独立种群的演化计算,最后选择最优个体。可以说,遗传算法适合在目前所有的并行机或分布式系 统上进行并行计算处理。二是遗传算法的内在并行性,由于遗传算法采用种群的 方式组织搜索,因而可同时搜索解空间内的多个区域, 并相互交流信息。这样就 使得搜索效率更高,也避免了使搜索过程陷于局部最优解。3. 遗传算法直接以目标函数值作为搜索信息。 在简单遗传算法中, 基本上不用搜索空间的知识和其它辅助信息, 而仅用目标函数即适应度函数来评估个体解的优劣,且适应度函数不受连续可微的约束,对该函数和控制变量的约束极少。对适应度函数唯一的要求就是对于输入能够计算出可比较的输出

5、。4. 遗传算法是采用概率的变迁规则来指导它的搜索方向, 其搜索过程朝着搜索空间的更优化的解区域移动, 它的方向性使得它的效率远远高于一般的随机算法。 遗传算法在解空间内进行充分的搜索, 但不是盲目的穷举或试探, 因为选择操作以适应度为依据,因此它的搜索性能往往优于其它优化算法。5. 原理简单,操作方便,占用内存少,适用于计算机进行大规模计算,尤其适合处理传统搜索方法难以解决的大规模、非线性组合复杂优化问题。6. 由于遗传基因串码的不连续性, 所以遗传算法处理非连续混合整数规划时有其独特的优越性,而且使得遗传算法对某些病态结构问题具有很好的处理能力。7. 遗传算法同其他算法有较好的兼容性。 如

6、可以用其他的算法求初始解; 在 每一代种群,可以用其他的方法求解下一代新种群。1.2.2 遗传算法的缺点但是,遗传算法也存在一些缺点。1. 遗传算法是一类随机搜索型算法,而非确定性迭代过程描述,这种方式 必然会较低的计算效率。2. 对简单遗传算法的数值试验表明,算法经常出现过早收敛现象。3. 遗传和变异的完全随机性虽然保证了进化的搜索功能,但是这种随机变化也使得好的优良个体的性态被过早破坏,降低了各代的平均适应值。2. 遗传算法的实现2.1 初始参数种群规模 n :种群数目影响遗传算法的有效性。种群数目太小,不能提供足够的采样点;种群规模太大,会增加计算量,使收敛时间增长。一般种群数目在20

7、到 160之间比较合适。交叉概率Pc: Pc控制着交换操作的频率,Pc太大,会使高适应值的结构很快被破坏掉,Pc太小会使搜索停滞不前,一般 Pc取0.51.0。变异概率Pm: Pm是增大种群多样性的第二个因素,Pm太小,不会产生新的基因块,Pm太大,会使遗传算法变成随机搜索,一般 PmM0.0010.1o进化彳t数t :表示遗传算法运行结束的一个条件。一般的取值范围100100a 当个体编码较长时,进化代数要取小一些,否则会影响算法的运行效率。 进化代 数的选取,还可以采用某种判定准则,准则成立时,即停止。2.2 染色体编码利用遗传算法进行问题求解时,必须在目标问题实际表示与染色体位用结构 之

8、间建立一个联系。对于给定的优化问题,由种群个体的表现型集合所组成的空 间称为问题空间,由种群基因型个体所组成的空间称为编码空间。由问题空间向编码空I可的映射称作编码,而由编码空间向问题空间的映射成为解码。按照遗传算法的模式定理,De Jong进一步提出了较为客观明确的编码评估 准则,称之为编码原理。具体可以概括为两条规则:(1)有意义积木块编码规则:编码应当易于生成与所求问题相关的且具有低 阶、短定义长度模式的编码方案。(2)最小字符集编码规则:编码应使用能使问题得到自然表示或描述的具有 最小编码字符集的编码方案。常用的编码方式有两种:二进制编码和浮点数(实数)编码。二进制编码方法是遗传算法中

9、最常用的一种编码方法,它将问题空间的参数 用字符集10构成染色体位用,符合最小字符集原则,便于用模式定理分析, 但存在映射误差。采用二进制编码,将决策变量编码为二进制,编码用长 m取决于需要的精 度。例如,x的值域为瓦由,而需要的精度是小数点后5位,这要求将x得值 域至少分为(b -ai不106份。设Xi所需要的字用长为m,则有:2f 二 bi -ai1 0 :二 m2(2.1)那么二进制编码的编码精度为b二2亘,将X由二进制转为十进制可按下 2mi -1式计算:xi -ai decimal(substringi) 、(2.2)其中,decimal(substring)表示变量x的子用subs

10、tringi的十进制值。染色体编码N的总串长m = E mi o若没有规定计算精度,那么可采用定长二进制编码,即 m可以自己确定。二进制编码方式的编码、解码简单易行,使得遗传算法的交叉、变异等操作 实现方便。但是,当连续函数离散化时,它存在映射误差。冉者,当优化问题所 求的精度越高,如果必须保证解的精度,则使得个体的二进制编码用很长,从而 导致搜索空间急剧扩大,计算量也会增加,计算时间也相应的延长。浮点数(实数)编码方法能够解决二进制编码的这些缺点。该方法中个体的 每个基因都要用参数所给定区间范围内的某一浮点数来表示,而个体的编码长度则等于其决策变量的总数。遗传算法中交叉、变异等操作所产生的新

11、个体的基因 值也必须保证在参数指定区间范围内。 当个体的基因值是由多个基因组成时, 交 叉操作必须在两个基因之间的分界字节处进行, 而不是在某一基因内的中间字节 分隔处进行。2.3 适应度函数适应度函数是用来衡量个体优劣,度量个体适应度的函数。适应度函数值越 大的个体越好,反之,适应值越小的个体越差。在遗传算法中根据适应值对个体 进行选择,以保证适应性能好的个体有更多的机会繁殖后代, 使优良特性得以遗 传。一般而言,适应度函数是由目标函数变换而成的。 由于在遗传算法中根据适 应度排序的情况来计算选择概率,这就要求适应度函数计算出的函数值(适应度)不能小于零。因此,在某些情况下,将目标函数转换成

12、最大化问题形式而且函数 值非负的适应度函数是必要的,并且在任何情况下总是希望越大越好, 但是许多 实际问题中,目标函数有正有负,所以经常用到从目标函数到适应度函数的变换。考虑如下一般的数学规划问题:min f (x)s.t. g(x)=0h min-h( X ) Mh max变换方法(1)对于最小化问题,建立适应度函数F (x)和目标函数f (x)的映射关系:C max F( x)=-f( x)0f( x) Cmax f( x) - Cmax(2.3)式中,Cmax既可以是特定的输入值,也可以选取到目前为止所得到的目标函数f (x)的最大值。(2)对于最大化问题,一般采用下述方法:(2.4)F

13、( x)= f( -f( x) Cmin0f(x) Cmin式中,Cmin既可以是特定的输入值,也可以选取到目前为止所得到的目标函数f( X )的最小值。变换方法二:(1)对于最小化问题,建立适应度函数 f (X)和目标函数f(x)的映射关系:F( x)=c_0,c f(x) ,0(2.5)(2)对于最大化问题,一般采用下述方法:(2.6)1.F(x) = c_0,c-f(x)_01 c - f (x)式中,c为目标函数界限的保守估计值。2.4 约束条件的处理在遗传算法中必须对约束条件进行处理,但目前尚无处理各种约束条件的一 股方法,根据具体问题可选择下列三种方法,其罚函数法、搜索空间限定法和

14、可 行解变换法。2.4.1 罚函数法罚函数的基本思想是对在解空间中无对应可行解的个体计划其适应度时,处以一个罚函数,从而降低该个体的适应度,使该个体被选遗传到下一代群体中的 概率减小。可以用下式对个体的适应度进行调整:(2.7)F( x)x UF (x)=F(x) -P( x) x U其中,F(x)为原适应度函数,F(x)为调整后的新的适应度函数,P(x)为罚函数,U为约束条件组成的集合。如何确定合理的罚函数是这种处理方法难点之所在,在考虑罚函数时,既要度量解对约束条件不满足的程度,由要考虑计算效率。2.4.2 搜索空间限定法搜索空间限定法的基本思想是对遗传算法的搜索空间的大小加以限制,使得搜

15、索空间中表示一个个体的点与解空间中的表示一个可行解的点有一一对应的关系。对一些比较简单的约束条件通过适当编码使搜索空间与解空间一一对应,限定搜索空间能够提高遗传算法的效率。在使用搜索空间限定法时必须保证交叉、变异之后的解个体在解空间中有对应解。2.4.3 可行解变换法可行解变换法的基本思想: 在由个体基因型到个体表现型的变换中, 增加使其满足约束条件的处理过程,其寻找个体基因型与个体表现型的多对一变换关系, 扩大了搜索空间, 使进化过程中所产生的个体总能通过这个变换而转化成解空间中满足约束条件的一个可行解。 可行解变换法对个体的编码方式、 交叉运算、变异运算等无特殊要求,但运行效果下降。2.5

16、 遗传算子遗传算法中包含了 3 个模拟生物基因遗传操作的遗传算子:选择(复制) 、交叉(重组)和变异(突变) 。遗传算法利用遗传算子产生新一代群体来实现群体进化, 算子的设计是遗传策略的主要组成部分, 也是调整和控制进化过程的基本工具。2.5.1 选择操作遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体中的一种遗传运算。 遗传算法使用选择 (复制) 算子来对群体中的个体进行优胜劣汰操作: 适应度较高的个体被遗传到下一代群体中的概率较大; 适应度较低的个体被遗传到下一代群体中的概率较小。 选择操作建立在对个体适应度进行评价的基础之上。选择操作的主要目的是为了

17、避免基因缺失、提高全局收敛性和计算效率。常用的选择方法有转轮法、排序选择法、两两竞争法。1) 轮盘赌法。简单的选择方法为轮盘赌法:通常以第 i 个个体入选种群的概率以及群体规模的上限来确定其生存与淘汰, 这种方法称为轮盘赌法。 轮盘赌法是一种正比选择策略, 能够根据与适应函数值成正比的概率选出新的种群。 轮盘赌法由以下五步构成:1 . 计算各染色体vk 适应值F(vk) ;2 . 计算种群中所有染色体的适应值的和;nFall = F(Vk)(2.6)kJ3 .计算各染色体Vk的选择概率Pk;Pk 二答,k=12Un(2.7)Fall4 .计算各染色体Vk的累计概率a ;kqk 八 Pj,k =

18、 1, 2,n(2.8)j 15 .在0,1区间内产生一个均匀分布的伪随机数 r ,若r Wq ,则选择第一个 染色体Vi;否则,选择第k个染色体,使得qkrEqk成立。2)排序选择法。排序选择法的主要思想是:对群体中的所有个体按其适应度大小进行排序, 基于这个排序来分配各个个体被选中的概率。排序选择方法的具体操作过程是:1 .对群体中的所有个体按其适应度大小进行降序排序。2 .根据具体求解问题,设计一个概率分配表,将各个概率值按上述排列次 序分配给各个个体。3 .以各个个体所分配到的概率值作为其能够被遗传到下一代的概率,基于 这些概率信用轮盘赌法来产生下一代群体。3)两两党争法。锦标赛选择法

19、的基本做法是:在选择时先随机的在种群中选择k个个体进行 锦标赛式的比较,从中选出适应值最好的个体进入下一代,复用这种方法进行直到下一代个体数为种群规模时为止。这种方法也使得适应值好的个体在下一代具 有较大的“生存”机会,同时它只能使用适应值的相对值作为选择的标准,而与 适应值的数值大小不成直接比例, 所以,它能较好的避免超级个体的影响, 一定 程度的避免过早收敛现象和停滞现象。2.5.2 交叉操作在遗传算法中,交叉操作是起核心作用的遗传操作,它是生成新个体的主要 方式。交叉操作的基本思想是通过对两个个体之间进行某部分基因的互换来实现 产生新个体的目的。常用交叉算子有:单点交叉算子、两点交叉算子

20、和多点交叉 算子、均匀交叉算子和算术交叉算子等等。1)单点交叉算子交叉过程分两个步骤:首先对配对库中的个体进行随机配对;其次,在配对个体中随机设定交叉位置,配对个体彼此交换部分信息。个体力1001 111 1001000 新个体月个体8 0011 000 0011111新个体交叉点 I图2-1单点交叉示意2)两点交叉算子具体操作是随机设定两个交叉点,互换两个父代在这两点间的基因申, 分别 生成两个新个体。3)多点交叉算子多点交叉的思想源于控制个体特定行为的染色体表示信息的部分无须包含 于邻近的子用中,多点交叉的破坏性可以促进解空间的搜索,而不是促进过早的收敛。4)均匀交叉算子均匀交叉式指通过设

21、定屏蔽字来决定新个体的基因继承两个个体中那个个体的对应基因,当屏蔽字中的位为 0时,新个体A继承旧个体A中对应的基因, 当屏蔽字位为1时,新个体A,继承旧个体B中对应的基因,由此可生成一个完整 的新个体A、同理可生成新个体B旧个体4001111旧个体111100屏蔽字 010L01新个体noinio新个体8,101101图2-2均与交叉示意图2.5.3 变异操作变异操作是指将个体染色体编码用中的某些基因座的基因值用该基因座的 其他等位基因来替代,从而形成一个新的个体。变异运算是产生新个体的辅助方 法,它和选择、交叉算子结合在一起,保证了遗传算法的有效性,使遗传算法具 有局部的随机搜索能力,提高

22、遗传算法的搜索效率;同时使遗传算法保持种群的 多样性,以防止出现早熟收敛。在变异操作中,为了保证个体变异后不会与其父体产生太大的差异,保证种群发展的稳定性,变异率不能取太大,如果变异率大 于0.5,遗传算法就变为随机搜索,遗传算法的一些重要的数学特性和搜索能力 也就不存在了。变异算子的设计包括确定变异点的位置和进行基因值替换。变异操作的方法有基本位变异、均匀变异、边界变异、非均匀变异等。1)基本位变异基本位变异操作是指对个体编码用中以变异概率Pm随机指定的某一位或某几位基因作变异运算,所以其发挥的作用比较慢,作用的效果也不明显。基本位 变异算子的具体执行过程是:1 .对个体的每一个基因座,依变

23、异概率 Pm指定其为变异点。2 .对每一个指定的变异点,对其基因值做取反运算或用其他等位基因值来 代替,从而产生出一个新个体。2)均匀变异均匀变异操作是指分别用符合某一范围内均匀分布的随机数, 以某一较小的 概率来替换个体编码用中各个基因座上的原有基因值。 均匀变异的具体操作过程 是:1 .依次指定个体编码用中的每个基因座为变异点。2 .对每一个变异点,以变异概率Pm从对应基因的取值范围内取一随机数来 替代原有基因值。假设有一个个体为 v k =v2川VkllNm,若Vk为变异点,其取值范围为 Vk,min,Vk,max,在该点对个体V k进行均匀变异操作后,可得到一个新的个体: . , .

24、Vk =VlV2 IllVklllVm,其中变异点的新基因值是 vk - vk, m i n r (vk , m avk ) , m i n(2.9)式中,r为0,1范围内符合均匀概率分布的一个随机数。均匀变异操作特别适合 应用于遗传算法的初期运行阶段,它使得搜索点可以在整个搜索空间内自由地移 动,从而可以增加群体的多样性。2.5.4倒位操作所谓倒位操作是指颠倒个体编码用中随机指定的二个基因座之间的基因排 列顺序,从而形成一个新的染色体。倒位操作的具体过程是:1 .在个体编码用中随机指定二个基因座作为倒位点;2 .以倒位概率颠倒这二个倒位点之间的基因排列顺序。2.6搜索终止条件遗传算法的终止条

25、件有以下两个,满足任何一个条件搜索就结束1)遗传操作中连续多次前后两代群体中最优个体的适应度相差在某个任意小 的正数6所确定的范围内,即满足:r:d ;(2.10)式中,Fnew为新产生的群体中最优个体的适应度;Fold为前代群体中最优个体的适应度。2)达到遗传操作的最大进化代数t。3具体数学规划问题的遗传算法实现利用遗传算法求解下列数学规划问题:r22min f (x1, x2) = x1 - 3 x2 -2尸 ,、22 广(3.1)g1(x1,x2) =x +x2 5s.tKi(Xi,X2)=Xi +2x2 =40Xi,X2 10,Xi w N3.1初始化针对上述问题利用 MATLAB编写

26、遗传算法程序求解,程序的主函数是GA.m o首先,确定程序初始化中所需要的参数和对应的值。 其中求解精度是指决策 变量的求解精度,由于题目中没有给出,所以这是我自己设定的参数。程序中涉 及到得参数名称、符号和相应的值如下表所示。表3-1遗传算法初始化参数参数名称符号值最大进化代数tmax100种群规模n100交叉概率Pc0.8变异概率Pm0.1求解精度dec10变量上限值xmax10变量下限值xmin03.2染色体编码本程序采用二进制编码,将决策变量编码为二进制,其用长取决于问题要求 的求解精度,但本题并没有给出精度要求,只是限定了 xi为整数,不妨假设求解 精度为10工,两个变量均采用二进制

27、编码,Xi为整数这个限制条件在可在计算出 小数值后作四舍五入取整处理,因此可按照假设的求解精度将决策变量的值域分 成105份,则有:mi 15mix=xmin +5xx 2(xmaxxmin)父 10 2(3.2)由于所有变量的求解精度一样,那么,决策变量的用长 mi = 20、m2 =20, 于是染色体的总长m =m1 +m2 =40,求解二进制编码用长的程序时len.m。那么, 二进制编码精度为1 0- 06c. = 00= 9.5368 10-(3.3)mi(hWI回)2 - b2i=xi 1(3.4)(3.5)根据二进制编码的用长以及种群规模可生成初始种群, 为计算种群中的各个 个体的

28、适应值,应先将基因型转换成表现型,其程序为 coding.m。首先,将二进 制值转换为十进制值,其公式为那么,对应的变量值为x = xni n .、 x3.3 计算适应值首先确定适应度函数。根据目标函数和约束条件可选择适应度函数的变换方 式。由于目标函数f (x )之0,为了避免出现适应值大于1的情况,于是根据目标 函数的特点在设计适应度函数时,在分母上加上2,分子上剩以4,如式(3.1)所示;又根据优化问题的约束条件,利用约束条件处理方法中的罚函数法设计了相 应的罚函数c,那么适应度函数为F( x)=4f (x) c 2(3.6)其中,c = Hmax0,g1(x1,x2) 5 + RMma

29、x0,| 兀(4乂2)4| , 4=2=10000。按照上述方法计算种群中各个个体的适应值,如果适应值趋近于1,那么对应的个体即为最佳个体,计算适应值的程序是 fitness.mo3.4 遗传算子3.4.1 选择操作本程序选择轮盘赌法来实现选择操作。根据之前计算的各个个体的适应值,利用式(2.6)计算种群中所有个体的适应值的和Fall ;然后按照如式(2.7) 、 (2.8)计算每个个体的选择概率p和累计概率q。旋转轮盘100次(种群规模),每次生 成一个0至IJ 1的随机数r,用这个随机数与种群中的个体的累积概率q作比较,如果这个随机数落在了这个概率区间, 那么就保留该个体, 这就完全模拟了

30、轮盘赌的思想, 若个体的选择概率大, 那么它被选到遗传到下一代的概率也就大一些。选择操作的程序是selec.m。3.4.2 交叉操作对经过选择操作产生的群体作交叉操作。 本程序采用均匀交叉的方式, 首先打乱种群中所有个体的原有排列顺序, 这样体现了随机抽取的概念, 然后把种群分成两部分new_genA和new_genB;分别从这两个部分选择一个个体配成对进行均匀交叉,其程序为cross.m。3.4.3 变异操作对经过交叉操作产生的群体作变异操作。 本程序采用基本位变异方法实现变异操作,依据变异概率对新种群中的个体实施基本位变异,具体程序为 mut.m 。在最初编写的程序中还包含倒位操作,具体程

31、序是inverse.m,原理类似于基本位变异, 只是具体操作上有差异。 在调试时, 我比较了有倒位操作和没有倒位操作作用于程序对计算结果的影响, 在有倒位操作时并没有改善算法在搜索到最优解方面的性能,于是我在最终的程序中取掉了这一操作。3.5 搜索终止判断本程序采用了达到最大进化代数时停止搜索的方法,由于本问题比较简单,所以采用此法是可行的。 但是, 对于复杂的问题, 也许要求更加有效的判断手段,所以这是需要改进的地方。3.6 运行调试调试阶段解决了两个问题: 第一, 最佳个体的适应值很快就达到一个稳定的值而不再变化;第二,适应度函数的设计存在缺陷。针对第一个问题,考虑到交叉操作是产生新个体的

32、主要操作,所以将交叉概率从0.8 调到0.9,增加对种群的交叉操作,产生更多的新个体,保持了种群的多样性,这就使得最优个体是适 应值不断的变化。对于第二个问题是在调试过程中发现最优个体适应值超过了(3.7)1,于是检查适应度函数时发现了这个问题,最开始设计的适应度函数为F( x)=其中,c =九父 max0, gi(Xi,X2)5+ N 父max0,| h(Xi,X2)-4| , 4=2 = 10000。很有可能就是分母小于了 2,于是在分母上加上一个常数即可,修改后的适应度函 数如式(3.6)所示。调试后运行的结果如图3-1所示,本次运行的最优个体的适应值和种群平均适应值随进化代数的变换趋势

33、如图3-2所示。该个体的适应值,9. 978335e-001xl: 2x2: 1.004296e+000此函数的最小值:L 991426e+000图3-1通过遗传算法计算出的结果图3-2最优个体适应值与种群平均适应值变化曲线4 总结首先, 对本次遗传算法的培训工作做一下总结。 从开始拿到这个问题的时候什么都不懂, 到现在能够顺利编写简单的遗传程序, 这其中我遵循了先从基本概念入手, 然后学习简单方法这样一个研究过程。 先是学习遗传算法中的名词、 概念, 然后学习遗传算法的基本原理, 分块掌握每部分的内容, 如遗传操作包括了选择、交叉、变异,那么选择的概念是什么,目的是什么,实现方法有哪些,逐步

34、理解掌握。 在理解概念的基础上, 先从简单的方法入手, 编制简单优化问题的遗传算法, 在程序上也使用常用、 简单的遗传操作方法。 这为以后在学习新的问题提供了方法,也更加的自信能够学好新问题。其次,本次编写的程序还有很多需要改进的地方。第一,编码方法,本程序使用的是二进制编码,而题目要求Xi为整数,所以可以开始就对Xi进行实数编码,对 x2 依然采用二进制编码, 这样计算出来的结果可能更接近最优解。 第二, 遗传算法不收敛的问题。 是否可以考虑在执行交叉、 变异之前筛选出最优个体直接作为下一代个体,而不被交叉、变异所破坏,同时也保证了搜索效率。最后,对近期工作做一下展望,遗传算法的学习结束后,接下来就是学习PSASP 潮流计算部分的程序,对比自己编写的潮流程序,并修改自己的程序以实现至少三种方式的调压。由于本周确定了专业方向:状态估计,因此,下一阶段的学习同时围绕学习电力系统状态估计来进行。

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

当前位置:首页 > 网络科技 > 其他相关文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报