遗传算法

最近开发了一个模型辨识的软件,发现在计算速度方面需要进行优化,于是查找优化相关的算法,这两天在网上搜了搜关于遗传算法相关的资料,记录一下自己对遗传算法的理解。

遗传算法通过模拟自然界生物种群进化的过程,通过选择、交叉、变异等机制,在某个范围的解空间内寻找一个最优解。遗传算法中通过适应度函数(可以看做目标函数的变形)来评价一个个体(解)与最优解的近似程度,设计适应度函数一定意义上与问题本身的目标函数线性相关。

遗传算法的组成:

1.编码。把解空间内的元素用一定的编码方式表示(常见为二进制数)。

2.初始化群体。选定种群大小(每次迭代过程中需要计算、评价的解的个数),随机填充

3.适应度。根据适应度函数对种群进行排序。

4.遗传算子。即通过选择、交叉、变异产生下一代种群。

5.根据终止判定法则判断是否已找到最优解或者继续循环。


这里有几个问题:

遗传算法的优点在于无需对解空间内的每一个解进行计算和比较,一定程度上优化了计算速度,但是收敛速度具有随机性。这里我对遗传算法还有一些疑问:假如解空间的规模不是很大,例如几百,那么如果选取的种群太大,可能进行一两次迭代就几乎遍历了解空间内的所有元素,与顺序遍历没什么差别;如果选取的种群太小,进行交叉、变异操作时,由于基数小,会不会导致算法停滞?(子代与父代完全相同)

选择(以轮盘赌选择方法为例)是不是相当于对父代进行种群大小次数的选择,产生子代,那么子代中适应度较高的解会重复出现,适应度越高偿付概率越大。重复项需要剔除,然后从解空间内随机填充吗?还是说保留重复项?(同理交叉、变异种出现的重复项如何处理?)

另外,该如何终止判定法则该如何确定?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:张艺伦 学号:17011210282 转载自:https://www.zhihu.com/question...
    DZNGGZGY阅读 1,330评论 0 0
  • 遗传算法 遗传算法(Genetic Algorithm)是一种模拟自然界的进化规律-优胜劣汰演化来的随机搜索算法,...
    请叫我林小李阅读 4,188评论 2 6
  • 姓名:彭帅 学号:17021210850 参考:http://blog.csdn.net/emi...
    重露成涓滴阅读 1,221评论 0 0
  • 我有一初中同学,名叫丹阳,患有先天性的小儿麻痹症。 她的症状算是比较严重的,面黄肌瘦,手指和腿都无法伸直,她双腿呈...
    齐天大文阅读 567评论 0 0
  • 修身养性齐家治国,古人诚不欺我! 前面的习性是修身,这篇文章是对养性的一个推演。 性,天性、秉性、习性。习性纯恶不...
    颜满媛阅读 271评论 0 1