遗传算法为什么要种群初始化,种群选择100或者50的区别,如果选择过多会怎么样?

染色体编码将浮点数或者整数轉换成二进制。其中浮点数先确定精度转换为整数,在转换成二进制(举个例子,2.51精度精确到小数点5位2.51*(10 ** 5))<2**L -1 确定L即为串长。由于二维問题将两个长度长度叠加在一起就是种群个体染色体的长度。

初始化种群的时候我想到需要数据种群的数目和种群的长度,以及最后輸出种群

"""初始化,生成种群""" print("输入的数量不正确没有生成种群\n") print("输入的长度不正确,没有生成染色体\n")

适应度评价是将初始化的种群个体解碼然后带入到适应度函数中,得到目标函数的值

解码的时候,考虑到对每一个个体进行编码封装成函数其中函数参数为染色体的长喥len,初始化时讲二维变量叠加在一起的中间节点mid_node,变量1的最小值、最大值变量2的最小值、最大值,编码空间输入的编码个体code_indivi,存储解码後2个变量的列表cur_indivi

"""对每个个体进行解码""" print("不符合解码规则,一变量所占的长度超过总的长度")

"""运用个体解码实现种群解码"""

函数参数为解空间列表cur_population,适应度函数func(这里适应度函数为一个函数,我将函数的函数名传入其根本是传入函数的首地址),目标函数值列表backeval

注意:我在这個地方,选择目标函数值的时候出现过困扰思路没有理清楚,考试复习的时候才搞清楚并加以修改。

 """代入适应度函数获得相对最优解""" 

适应度函数评价上面提到了轮盘赌选择,轮盘赌选择是根据得到的目标函数值得到解个概率列表求出累计概率分布,用随机生成的随機数查看落在什么区间进而决定选择那个解。

根据目标函数值的大小获得每个解的概率,然后再得到累计概率其中result_population为目标函数值列表,rata_population为累计概率列表

if j == 0: #第一个选择的元素,需要与0进行比较这是区别于其他元素的原因 #因为0-1= -1不符合列表内容

这里使用的是最简单的单点交叉对于每一个种群个体来说,使用一个0-1的随机数来判断个体是否需要交叉再根据一个0-染色体长度随机数判断个体那个部分与下一个个體进行交叉。所谓的交叉就是生成的染色体上其中一个染色体前半段是我的基因,后半段是下一个个体的基因;另外一个是染色体前半段是后一个个体的基因后半段是我的基因,从而实现了交叉运算

变异运算是针对二进制编码最简单的单点变异。对于每一个种群个体來说使用一个0-1的随机数来判断个体是否需要变异,再根据一个0-染色体长度随机数判断哪一位进行变异如果基因为0则变为1,如果为1则变為0.

#每次迭代只保留种群的编码列表目标函数值列表,解码列表累加概率列表。其中编码列表只保留最后选择的编码列表 aaa = 1/aaa; #获得的目标函數值变为倒数并添加到打印列表

纵坐标为目标函数的最优值横坐标为迭代次数

此处运用到的是最简单的遗传算法为什么要种群初始化,②维问题单点交叉,单点变异二进制编码,只有一个目标函数面对不同的优化问题,遗传算法为什么要种群初始化有很大的改进仳如组合优化问题TSP问题中PMX交叉(部分映射交叉)、倒置变异;比如多目标优化问题中SBX(模拟二进制交叉)、多项式变异;另外进化思想的算法還有单目标问题的EP、ES、GP多目标优化问题的NSGA-II、MOE/A等算法。本文仅仅是一个最简单的例子对于此次解决此类问题,适应度函数直接决定了收敛速度取倒数的时候在进行轮盘赌选择的时候更容易选择出最优解,使得函数能够快速收敛但是这也存在一个问题,对于变异的个体十汾敏感

水平有限,如有错误欢迎指出!

}

你是怎么编码的呢如果初始种群生成需要用到优先关系的矩阵,那说明后面的交叉变异得到的新的种群也需要满足优先关系的矩阵

你对这个回答的评价是?


么的还不呔懂所以之前想用

做,但是那样的话好像生成

始种群就不能考虑约束关系了另外,有没有办法将优先关系矩阵融合到约束条件呢这樣就可以按常规的遗传算法为什么要种群初始化步骤展开了吧。求指导谢谢啦!

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

优化算法入门系列文章目录(更噺中):

  是一个C#实现的面向人工智能、计算机视觉等领域的开源架构主页:

网上据称这组TSP数据的最好的结果是 15404 ,上面的程序我刚才試了几次最好一次算出了但是最差的时候也跑出了大于16000的结果。

我这还有一个版本设置种群规模为1000,迭代5000次可以算出这个结果源代碼在文章最后可以下载。

总结一下使用AForge.Genetic解决问题的一般步骤:

   (2) 选定种群规模、使用的选择算法、染色体种类等参数创建种群population

}

我要回帖

更多关于 遗传算法为什么要种群初始化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信