遗传算法及其应用实例
第1页共20页
遗传算法及其应用示例
遗传算法是美国密歇根大学荷兰的一种遗传算法
教授(1969)提出了它,后来又通过了De Jong(1975),Goldberg(1989)等。
NASUS摘要形成的一种模拟演化算法。
通过遗传算法搜索最佳溶液的方法是模仿生物的进化过程,也就是说
与染色体交叉和突变已完成。遗传算法主要使用选择算子,
跨操作员和突变操作员模拟生物学进化,从而产生几代人群
()x t。
(1)选择操作员:这是一个模拟自然选择的操作,反映了原始的“优胜品生存”
原因。它基于每个人的适应性,根据某些规则或方法,来自T生成人群
()x t选择一些优秀的个人(或作为父母,或者让他们继承给下一代
组(1)X T)。
(2)跨操作员:是模拟有性繁殖的基因重组操作,将从人群中得出
()x t每个选定的母体对它们之间的部分基础与一定的交叉概率交换
因为。
(3)变异算子:这是一种模拟基因突变的遗传操作。它使用人口()x t
每个人都会改变特定基因座或某些基因座的基础,并具有一定的变化概率
因为值是其他等位基因。
跨算子和突变算子的作用是重组染色体基因以产生新的基因。
个人。
第2页共20页
遗传算法的计算过程如下:
步骤1(初始化)
确定人口大小n,交叉概率
P,突变的概率
P和终止进化标准;
n个个体作为初始种群(0)x产生;设置0 t。
步骤2(个人评估)
计算和评估()x t中个体的适应性。
步骤3(流行进化)
3.1。选择(母亲)使用()x t选择算子来选择 / 2 m
(Mn)。
3.2。选择的交叉对 / 2 M对父母,概率
p执行跨界以形成m
一个中间人。
3.3。独立使用M中级个体的概率
P执行变化以形成M
候选人。
3.4。根据上面形成的M候选人的适应性选择(门徒)
n个个体被选择形成新一代人(1)x t。
步骤4(终止检查)
如果已满足终止标准kaiyun全站网页版登录,则输出为(1)x t中最大适合度的个体
最佳解决方案,终止计算,否则设置了1 tt,然后转到步骤2。
上述计算过程只是根据实际条件的遗传算法的各种实施方法之一
不同的问题是不同的,遗传算法的实施也不同。
第3页,共20页
遗传算法具有出色的优势,例如一般,平行,健壮,简单和全球优化功能。
优点,适合解决复杂且困难的全球优化问题。
优化问题称为复杂,通常是指具有以下特征之一:
(1)目标函数没有明确分析表达(例如非数字优化问题)。
(2)尽管目标函数明确表示,但不可能得到准确的评价(例如大多数最多的
最佳控制问题,财务优化问题)。
(3)目标函数具有许多峰(例如DNA计算和组合优化问题)。
(4)多目标优化,即目标函数是向量值。
优化问题称为困难,通常是指:或目标函数F不得
连续,非差异,高度非线性或优化问题是困难的组合问题。
对于这些复杂而困难的优化问题,可能根本不可能使用已知的优化方法
使用或可用但无效。相比之下kaiyun全站登录网页入口,遗传算法不仅可以保证可用,还可以
通常看起来更有效。
但是,我们必须指出,一般且较少依赖目标函数价值和
其他辅助信息算法无法充分利用目标函数值和相关的辅助信息。
辅助信息的算法更有效,当问题具有某些可用的辅助信息时,
也不需要放弃可用于将其应用于信息独立算法的信息。
这是一个明智的选择。因此,遗传算法通常不适合通常的应用。
数值优化问题(例如连续可区分的数学计划问题),或者应用于
在这个问题中,遗传算法并不总是显示出其优越性。
第4页,共20页
接下来,我们将通过求解简单函数的最小值来进行初步开发。
遗传算法的详细实施方法:
问题1:
在[0,2] x间隔上找到函数()11sin(6)7cos(5)fxxxx的最小值点(5)。
上图是[0,2] x间隔上的函数()11SIN()11SIN()11SIN(6)7cos(5)fxxxx的曲线图像
可以看出,此功能具有多个极端要点,并且易于使用其他搜索方法。
偶然发现当地的最低点,找不到真正的全球最小点,但是遗传算法可以
更好地弥补了这个缺陷。遗传算法的具体实现如下:
1。问题分析。对于此问题,可以将自变量x抽象成个体的基因组,
也就是说,使用二进制编码表示x;函数值()fx可以抽象为个人的适应性,函数
值越小,健身越高。
关于二进制编码方法,可以在允许的准确性范围内设置间隔内的无。
0 1 2 3 4 5 6 7
-20
-15
-10
-5
10
15
20
第5页共20页
较差的点被有限的点所取代,其间隔足够小,以减少计算量并确保准确性损失。
损失不大。如果使用16位二进制数来表示此间隔中的点,则相邻点之间的间隔仅为
16
2 0
9.5875 10
21
¥
¥
¥
,相邻点的功能值的变化已经很小,这导致
准确性损失是完全可以接受的。
另一个问题是普通的二进制编码方法可能具有较大的汉明
(锤)距离,例如,15和16表示为01111和10000,
所有位必须从15更改为16,此缺陷将降低遗传算法的搜索效率。
通过使用灰色编码可以避免此缺陷。灰色代码的特征是
在任何两个连续整数的编码值之间,只有一个位是不同的,而另一个位是
他们都是完全一样的。灰色编码的原则如下:
有二进制字符串
1 2 n
BB B,对应的灰色弦
1 2 n
AAA,用二进制编码
对灰色代码的转换是
kaiyun全站app登录入口,1
,1
ii
双
BBI
¥
。
从编码到二进制编码到
()mod2
IJ
BA
。
例如,下表显示了0-15的灰色代码:
0 1 2 3 4 5 6 7
0000 0001 0011 0010 0110 0111 0101 0100
8 9 10 11 12 13 14 15
1100 1101 1111 1110 1010 1011 1001 1000
2。根据遗传算法的计算过程编写程序。
%f(x)= 11sin(6x) + 7cos(5x),0