遗传算法
1个回答
展开全部
最近开发了一个模型辨识的软件,发现在计算速度方面需要进行优化,于是查找优化相关的算法,这两天在网上搜了搜关于遗传算法相关的资料,记录一下自己对遗传算法的理解。
遗传算法通过模拟自然界生物种群进化的过程,通过选择、交叉、变异等机制,在某个范围的解空间内寻找一个最优解。遗传算法中通过适应度函数(可以看做目标函数的变形)来评价一个个体(解)与最优解的近似程度,设计适应度函数一定意义上与问题本身的目标函数线性相关。
遗传算法的组成:
1.编码。把解空间内的元素用一定的编码方式表示(常见为二进制数)。
2.初始化群体。选定种群大小(每次迭代过程中需要计算、评价的解的个数),随机填充
3.适应度。根据适应度函数对种群进行排序。
4.遗传算子。即通过选择、交叉、变异产生下一代种群。
5.根据终止判定法则判断是否已找到最优解或者继续循环。
这里有几个问题:
遗传算法的优点在于无需对解空间内的每一个解进行计算和比较,一定程度上优化了计算速度,但是收敛速度具有随机性。这里我对遗传算法还有一些疑问:假如解空间的规模不是很大,例如几百,那么如果选取的种群太大,可能进行一两次迭代就几乎遍历了解空间内的所有元素,与顺序遍历没什么差别;如果选取的种群太小,进行交叉、变异操作时,由于基数小,会不会导致算法停滞?(子代与父代完全相同)
选择(以轮盘赌选择方法为例)是不是相当于对父代进行种群大小次数的选择,产生子代,那么子代中适应度较高的解会重复出现,适应度越高偿付概率越大。重复项需要剔除,然后从解空间内随机填充吗?还是说保留重复项?(同理交叉、变异种出现的重复项如何处理?)
另外,该如何终止判定法则该如何确定?
遗传算法通过模拟自然界生物种群进化的过程,通过选择、交叉、变异等机制,在某个范围的解空间内寻找一个最优解。遗传算法中通过适应度函数(可以看做目标函数的变形)来评价一个个体(解)与最优解的近似程度,设计适应度函数一定意义上与问题本身的目标函数线性相关。
遗传算法的组成:
1.编码。把解空间内的元素用一定的编码方式表示(常见为二进制数)。
2.初始化群体。选定种群大小(每次迭代过程中需要计算、评价的解的个数),随机填充
3.适应度。根据适应度函数对种群进行排序。
4.遗传算子。即通过选择、交叉、变异产生下一代种群。
5.根据终止判定法则判断是否已找到最优解或者继续循环。
这里有几个问题:
遗传算法的优点在于无需对解空间内的每一个解进行计算和比较,一定程度上优化了计算速度,但是收敛速度具有随机性。这里我对遗传算法还有一些疑问:假如解空间的规模不是很大,例如几百,那么如果选取的种群太大,可能进行一两次迭代就几乎遍历了解空间内的所有元素,与顺序遍历没什么差别;如果选取的种群太小,进行交叉、变异操作时,由于基数小,会不会导致算法停滞?(子代与父代完全相同)
选择(以轮盘赌选择方法为例)是不是相当于对父代进行种群大小次数的选择,产生子代,那么子代中适应度较高的解会重复出现,适应度越高偿付概率越大。重复项需要剔除,然后从解空间内随机填充吗?还是说保留重复项?(同理交叉、变异种出现的重复项如何处理?)
另外,该如何终止判定法则该如何确定?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迈杰
2024-11-29 广告
2024-11-29 广告
迈杰转化医学研究(苏州)有限公司于2013年成立,其前身为凯杰(苏州)转化医学研究有限公司。基于基因组学、蛋白组学、细胞组学及病理组学等综合性转化医学平台,丰富的伴随诊断开发经验,高质量的管理体系以及高素质的研发管理团队,迈杰转化医学为全球...
点击进入详情页
本回答由迈杰提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |