导航:首页 > 源码编译 > 遗传算法是什么概率

遗传算法是什么概率

发布时间:2024-08-10 02:34:40

① 遗传算法交叉和变异概率怎么选择

交叉操作中的概率是用于判定两个个体是否进行交叉操作,一般都会大于0.9。
变异操作的概率是允许少数个体存在变异情况,以避免限入局部最优解,其值一般都在0.1以下。

② 遗传算法-总结

最近在做遗传算法的项目,简单记录一下。
遗传算法是模拟自然界生物进化机制的一种算法,在寻优过程中有用的保留无用的去除。包括3个基本的遗传算子:选择(selection)、交叉(crossover)和变异(mutation)。遗传操作的效果与上述3个遗传算子所取的操作概率、编码方法、群体大小、初始群体,以及适应度函数的设定密切相关。
1、种群初始化
popsize 种群大小,一般为20-100,太小会降低群体的多样性,导致早熟;较大会影响运行效率;迭代次数一般100-500;交叉概率:0.4-0.99,太小会破坏群体的优良模式;变异概率:0.001-0.1,太大搜索趋于随机。编码包括实数编码和二进制编码,可以参考遗传算法的几个经典问题,TSP、背包问题、车间调度问题。
2、选择
目的是把优化个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代,我大部分采用了轮盘赌的方法。具体可参考 http://my.oschina.net/u/1412321/blog/192454 轮盘赌方法各个个体的选择概率和其适应值成比例,个体适应值越大,被选择的概率也越高,反之亦然。在实际问题中,经常需要最小值作为最优解,有以下几种方法进行转换
a、0-1之间的数据,可以用1-该数值,则最小值与最大值互换;
b、 求倒数;
c、求相反数;
以上几种方法均可以将最大值变为最小值,最小值变为最大值,便于利用轮盘赌选择最优个体,根据实际情况来确定。
3、交叉
交叉即将两个父代个体的部分结构加以替换重组而生成新个体的操作,通过交叉,遗传算法的搜索能力得以飞跃提高。根据编码方法的不同,可以有以下的算法:
a、实值重组
离散重组、中间重组、线性重组、扩展线性重组
b、二进制交叉
单点交叉、多点交叉、均匀交叉、洗牌交叉、缩小代理交叉
4、变异
基本步骤:对群中所有个体以事先设定的变异概率判断是否进行变异;对进行变异的个体随机选择变异位进行变异。根据编码表示方法的不同,有实值变异和二进制变异
变异的目的:
a、使遗传算法具有局部的随机搜索能力。当遗传算法通过交叉算子已接近最优解邻域时,利用变异算子的这种局部搜索能力可以加速向最优解收敛。显然该情况下变异概率应取较小值,否则接近最优解的积木块会因为变异遭到破坏。
b、使遗传算法可维持多样性,以防止未成熟收敛现象。此时收敛概率应取较大值。
变异概率一般取0.001-0.1。
5、终止条件
当最优个体的适应度达到给定的阈值,或者最优个体的适应度和群体适应度不再上升时,或者迭代次数达到预设的代数时,算法终止。预设代数一般为100-500。
6、其它
多变量:将多个变量依次连接
多目标:一种方法是转化为单目标,例如按大小进行排序,根据排序和进行选择,可以参考 https://blog.csdn.net/paulfeng20171114/article/details/82454310

③ 有关遗传算法的疑问:“以一定概率进行交叉和变异”的含义

是对每一个个体按概率操作。
不是整体随机选多少个。

问题补充里的做法是对的。

④ 遗传算法<sup>[1,]</sup>

遗传算法,又称基因算法(Genetic Algorithm,简称GA),也是一种启发式蒙特卡洛优化算法。遗传算法最早是由Holland(1975)提出,它模拟了生物适者生存、优胜劣汰的进化过程,具有不依赖于初始模型的选择、不容易陷入局部极小、在反演过程中不用计算偏导数矩阵等优点。遗传算法最早由Stoffa和Sen(1991)用于地震波的一维反演,之后在地球物理资料的非线性反演中得到广泛的应用。GA算法对模型群体进行追踪、搜索,即模型状态通过模型群体传送,具有比模拟退火法更大、更复杂的“记忆”,潜力更大。

遗传算法在反演中的基本思路和过程是:

(1)将生物体看成模型,模型参数看成染色体,有多少个模型的参数就有多少个染色体。对每个模型的参数(染色体)用二进制进行编码,这个编码就是基因。

(2)随机生成一个模型群体(相当于生物的种群),然后在模型群体中进行繁殖,通过母本的选择、交换和变异等遗传操作产生下一代,然后保留较好基因,淘汰较差基因。

(3)通过一代一代的繁殖优胜劣汰的进化过程,最后所剩下的种群基本上都是最优的基因,种群趋于一致。所谓群体“一致”,即群体目标函数的方差或标准差很小,或者群体目标函数的均值接近于极值(可能是极大值或极小值),从而获得非线性反演问题所对应的最优解或近似最优解。

下面以一个实例来简述遗传算法的基本过程。

[例1]设m是正整数,且0≤m≤127,求方程φ(m)=m2的极大值。

这个例子极为简单,只有一个模型参数,因此只有一条染色体,目标函数的极值是极大值(此例子来自阮百尧课件)。遗传算法通过以下7个步骤来实现:

(1)模型参数二进制编码。

每个模型参数就是一条染色体,把十进制的模型参数表示为二进制,这就是基因。首先确定二进制码的长度(基因的长度):

2N=[mmax(i)-mmin(i)]/Δm(i) (8.20)

其中:N为第i条染色体基因的长度(也就是第i个模型参数的二进制码位数);[mmin(i),mmax(i)]为第i个模型参数的取值范围;Δm(i)为第i个模型参数的分辨率。这样就把模型参数离散化了,它只能按Δm(i)的整数倍变化。基因的长度按下式计算:

地球物理反演教程

其中:c为实数;N为基因长度,是整数;int[ ]为取整函数。上式表示如果c不是整数,那么基因长度N就是对c取整后加1,这样保证最小分辨率。

基因的编码按下式进行:

地球物理反演教程

其中:式(8.22)是编码公式;k为基因编码的十进制数,是整数;int[ ]为取整函数。把k转化为二进制就是基因的编码。解码是按照式(8.23)进行的。首先把一个基因的二进制编码转化为十进制数k,然后按式(8.23)可以计算出第i个模型参数m(i)的十进制值。

例如:电阻率参数ρ(1),它的变化范围为10~5000Ω·m,分辨率为2Ω·m,设当前参数ρ(1)=133Ω·m,按式(8.21)计算得

c=11.28482,N=12

所以二进制基因长度为13位。

利用式(8.22)计算基因编码k的十进制数:

k=int[(133-10)/2]=61

把它转化为二进制数为:000000111101。所以ρ(1)=133 的二进制基因编码为:000000111101。

解码过程就是把二进制基因编码变为十进制数k后用式(8.23)计算:

ρ(1)=10+61×2=132(Ω·m)

注意:基因编码并不是直接把电阻率值变为二进制。此外,133这个值在基因里不会出现,因为分辨率是2,所以表示为最接近的132。

对于[例1]问题来说,选分辨率为1,0~127用二进制编码需7位。

(2)产生初始模型种群。

生物繁殖进化需要一定数量的生物体种群,因此遗传算法开始时需要一定数量的初始模型。为保证基因的多样性,随机产生大量的初始模型作为初始种群,按照上面的编码方式进行编码。个体在模型空间中应分布均匀,最好是模型空间各代表区域均有成员。初始模型群体大,有利于搜索,但太大会增加计算量。

为保证算法收敛,在初始模型群体中,有时候应增加各位都为0和都为1的成员。遗传算法就是在这个初始模型种群的基础上进行繁殖,进化求解的。

对于[例1]问题来说,模型空间是0~127个数字,这样初始种群最多具有128个个体。为了简单,随机选择4个个体作为初始种群。初始种群的编码、目标函数值见表8.1。

表8.1 初始种群编码表

(3)模型选择。

为了生成新一代模型,需要选择较优的个体进行配对。生物进化按照自然选择、优胜劣汰的准则进行。对应地,遗传算法按照一定的准则来选择母本(两个),然后进行配对繁殖下一代模型,这个选择称为模型选择。模型配对最基本的方法是随机采样,用各模型的目标函数值对所有模型目标函数的平均值的比值定义繁殖概率,即

地球物理反演教程

其中:p(mi)为繁殖概率;φ(mi)为第i个模型的目标函数;φAVG为目标函数的平均值。对于极小化问题来说,规定目标函数值高于平均值的不传代;对于极大化问题来说,反之即可。

就[例1]来说,要求目标函数取极大值,所以规定目标函数小于平均值的模型不传代,大于它的可以传代。对第一代,为了防止基因丢失,可先不舍去繁殖概率小的模型,让它与概率大的模型配对。如:本例中70与56配对,101与15配对产生子代,见表8.2。

表8.2 基因交换表

(4)基因交换。

将配对的两个亲本模型的部分染色体相互交换,其中交换点可随机选择,形成两个新的子代(见表8.2)。两个染色体遗传基因的交换过程是遗传算法的“繁殖”过程,是母本的重组过程。

为了使染色体的基因交换比较彻底,Stoffa等人提出了一个交换概率px来控制选择操作的效果。如果px的值较小,那么交换点的位置就比较靠低位,这时的交换操作基本是低位交换,交换前后模型的染色体变化不是太大。如果px的值较大,那么交换点的位置就比较靠高位,此时的交换操作可以在较大的染色体空间进行,交换前后模型数值变化可以很大。

在[例1]中:15、101和56、70作为母本通过交换繁殖出子代5、6、111、120。所选择的基因交换位置见表8.2。有下划线的,是要交换的基因位置。

(5)更新。

母本模型和子本模型如何选择保留一定数量作为新的母本,就是模型更新。不同的策略会导致不同的结果。一般而言,若产生的新一代模型较好,则选择新一代模型而淘汰上一代模型。否则,则必须根据一定的更新概率pu来选择上一代模型来取代新一代中某些较劣的模型。

经过更新以后,繁殖时对子代再进行优胜劣汰的选择。对于极大值问题,大于目标函数平均值的子代可以繁殖,小于目标函数平均值的子代不能繁殖。由于新的种群能繁殖的个体数量减小了,所以要多繁殖几次,维持种群个体的数量保持平衡。

在[例1]中,子代较好,所以完全淘汰上一代模型,完全用子代作为新的母本。选择子代目标函数最大的两个模型进行繁殖,分别是111、120。

(6)基因变异。

在新的配对好的母本中,按一定比例随机选择模型进行变异,变异操作就是模拟自然界中的环境因素,就是按比较小的变异概率pm将染色体某位或某几位的基因发生突变(即将0变为1或将1变为0)。

变异操作的作用是使原来的模型发生某些变化,从而成为新的个体。这样可使群体增加多样性。变异操作在遗传算法中也起着至关重要的作用。实际上,由于搜索空间的性质和初始模型群体的优劣,遗传算法搜索过程中往往会出现所谓的“早熟收敛”现象,即在进化过程中早期陷入局部解而中止进化。采用合适的变异策略可提高群体中个体的多样性,从而防止这种现象的出现,有助于模型跳出局部极值。表8.3为[例1]的基因变异繁殖表。

表8.3 基因变异繁殖表

在[例1]中,用111、120分别繁殖两次,形成4个子代,维持种群数量平衡。随机选择120进行变异,变异的位数也是随机的。这里把它的第2位进行变异,即从1变为0,繁殖后形成子代为:70、110、121、127。可以看出新的子代比初始种群要好得多,其中甚至已经出现了最优解。如果对于地球物理的极小值问题,我们可以预先设置一个拟合精度,只要在种群中出现一个达到拟合精度的模型就可以终止反演了。

(7)收敛。

重复(3)~(6)的步骤,模型群体经多次选择、交换、更新、变异后,种群个体数量大小不变,模型目标函数平均值趋于稳定,最后聚集在模型空间中一个小范围内,则找到了全局极值对应的解,使目标函数最大或最小的模型就是全局最优模型。

对于具有多解性的地球物理反演问题来说,通过这一步有可能找到满足拟合精度的多个模型,对于实际反演解释、推断具有较高的指导意义。

遗传算法中的各种概率包括交换概率px、变异概率pm以及更新概率pu,这些参数的选择与设定目前尚无统一的理论指导,多数都视具体问题而定。Stoffa等(1991)的研究表明,适中的交换概率(px≈0.6)、较小的变异概率(pm≈0.01)和较大的更新概率(pu≈0.9),遗传算法的性能较优。

与模拟退火反算法相同,遗传算法与传统的线性反演方法相比,该方法具有:不依赖初始模型的选择、能寻找全局最小点而不陷入局部极小、在反演过程中不用计算雅克比偏导数矩阵等优点。另外,遗传算法具有并行性,随着并行计算和集群式计算机技术的发展,该算法将会得到越来越广泛的研究与应用。

但是遗传算法作为类蒙特卡洛算法同样需要进行大量的正演计算,种群个体数量越大,繁衍代数越多,则计算量越大。所以和前面的最小二乘法相比,速度不是它的优势。

⑤ 遗传算法的有效性和复杂度

遗传算法其实就是二重迭代,时间复杂度不超过n平方遗传算法是一种全局优化概率算法,主要的优点有
1.遗传算法对所求解的优化问题没有太多的数学要求,由于他的进化特性,搜素过程中不需要问题的内在性质,对于任意形式的目标函数和约束,无论是线性的还是非线性的,离散的还是连续的都可处理。
2.进化算子的各态历经性使得遗传算法能够非常有效地进行概率意义的全局搜素。
3.遗传算法对于各种特殊问题可以提供极大的灵活性来混合构造领域独立的启发式,从而保证算法的有效性。
目标函数就是你希望得到的优化结果,比如函数最大值或者最小值.而适应度函数是为了计算个体的适配值. 适配值是非负的,而且要求适配值越大则该个体越优越.而目标函数则有正有负,它们之间关系多种多样,比如求最小值时,目标函数最小,则适配值越大,求最大值时目标值越大,适配值越大。
只要目标函数是递增或者递减的就可以,但是目标函数值要为正,目标函数对遗传算法影响很大的,所以要经过不断的尝试得出正确的结果,建议你把每一次的结果平均值都记录下来,然后画出图形观察遗传算法的有效性。

阅读全文

与遗传算法是什么概率相关的资料

热点内容
对称密钥加密后的长度 浏览:290
微制造编程软件下载 浏览:104
旋住宿酒店用哪个App最好 浏览:58
三菱编程中怎么创建子程序 浏览:199
在单片机温度输入采集信号有 浏览:680
电脑云服务器同步 浏览:416
方舟生存进化手游版怎么转服务器 浏览:87
哪个app可以听小说 浏览:160
网络发送数据如何加密 浏览:201
教材完全解读pdf 浏览:820
什么是多台服务器 浏览:36
菜鸟音乐编辑app哪个好 浏览:547
人工鱼群算法matlab 浏览:82
算法coursera 浏览:124
潍坊诸城DNS服务器地址联通 浏览:10
共享文件夹不显示任务栏 浏览:251
唱歌给党听是哪个app的活动 浏览:499
bp算法源代码 浏览:648
发票服务器怎么选 浏览:387
哪个app陪伴运动 浏览:882