基本原理:
遗传算法是一种典型的启发式算法,属于非数值算法范畴。它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化进行不断演化,直到满足期望的终止条件。借助遗传学的原理,经过自然选择、遗传、变异等作用机制进而筛选出具有适应性更高的个体(适者生存)。遗传算法从20世纪七八十年代的诞生到现在主要集中的适用范围为:NP问题(指存在多项式算法能够解决的非决定性问题)、非线性、多峰函数优化和多目标优化问题等等。同时在机器学习、模式识别和神经网络及社会科学中的应用也显得非常出色。
GA算法流程:
1 :在论域空间U上定义一个适应度函数f(x),给定种群规模N,交叉率Pc,变异率Pm,代数Gen
遗传算法基本术语介绍:
遗传操作:就包括优选适应性强的个体的“选择”;个体间交换基因产生新个体的“交叉”;个体间的基因突变而产生新个体的“变异”。其中遗传算法是运用遗传算子来进行遗传操作的。即:选择算子、变异算子、交叉算子。
1.选择算子:根据个体的适应度,按照一定的规则,从第n代群体中选择出一些具有优良性状的个体遗传到下一代(n+1)群体中。在这一选择过程中,个体适应度越大,则被选择到下一代的机会越大。某个体i的适应度fi,种群大小NP
2.交叉算子:将群体P(n)中选中的各个个体随机搭配,对于每一个个体,以某一特定概率(交叉概率Pc(0.25-1.0取值))交换他们之间的部分染色体(编码位串的部分位置)。交叉算法是的,遗传算法的搜索能力得到更好的延伸。
3.交叉操作的具体步骤可以表述为:1.在交配池中随机取出要交配的一对个体;2,根据编码位串长度L,对要交配的一对个体,随机选取[1,L-1]中的一个或者多个整数k作为交叉位置处,相互交换各自的部分基因,由此形成新的个体。
4.变异操作:对群体的每个个体,以某一个概率(变异概率Pm(0.01-0.1取值))将某一个或者某些基因座上的基因值改变为其他的等位基因值,根据个体的编码方式不同,可以将变异分为实值变异和二进制变异。
运行结果:
维空间:5 种群数量:80

维空间:10 种群数量:10

维空间:20 种群数量:10

维空间:5 种群数量:100

维空间:10 种群数量:100

维空间:5 种群数量:100

维空间:5 种群数量:50

(1)编码长度L:使用二进制编码时,L通常由对问题的求解精度决定,编码长度L越长,可期望的最优解的精度也就越高,但应注意过大的L会增大运算量。
(2)种群规模N:种群规模N表示每一代种群中所含个体数目。当N取之较小时,可提高遗传算法的运算速度,但却降低种群的多样性,容易引起算法早熟,出现假收敛;而N取值较大时,又会使得遗传算法效率降低。一般建议的取值范围是20~100.
(3)交叉概率Pc:在遗传算法中交叉算子被认为是主要搜索算子,因而一般取较大值。一般说,较大的Pc容易破坏群体中已经形成的优良模式,使得搜索的随机性太大了,而较小的Pc使发现新个体(特别是优良个体)的速度太慢了。一般建议的取值范围是0.4~0.99.另外,比较理想的方式是非一致地使用交叉概率,例如在遗传算法的前期使用较大的Pc,后期降低Pc以保留优良个体。
(4)变异概率Pm:较大的变异概率Pm使得遗传算法在整个搜索空间中大部跳跃,而小的变异概率使得遗传算法聚焦在特别区域作局部搜索。一般在不使用交叉算子的情形(演化策略算法,进化程序算法),变异算子作主要搜索算子,Pm取较大值(0.4~1);而在于交叉算子联合使用的情形(遗传算法),Pm通常取较小值(0.0001~0.5).
(5)终止进化代数T:遗传算法不同于传统优化算法,它很难有明确的搜索终止规则(特别是对于非数值优化问题),于是通常需指定一个终止进化代数赖终止算法,一般设T属于(100,1000)。为了获得较高精度解,通常可以根据种群适应度的稳定情况来实时调整T的设置。
遗传算法的主要特点:
matlab代码:
GA
Schaffer
Rastrigin
Griewank
fun
Drawfunc
到此这篇matlab中ga函数输入参数太多(matlab函数输入参数为函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/matlabbc/30516.html