差分算法及其函数模型

差分进化算法Python实现

2016-10-11  本文已影响1463人  LucasJin

本文you清华大学硕士大神金天撰写,欢迎大家转载,不过请保留这段版权信息,对本文内容有疑问欢迎联系作者微信:jintianiloveu探讨,多谢合作~

导语

差分进化算法是一种寻优算法,提出时间比遗传算法,粒子群算法晚,但是我在实现差分进化算法的时候看不出任何牛逼之处,唯一我觉得牛逼的一点是不像遗传算法一样使用二进制编码令人头大,实数编码好理解一点,而且变异,交叉,选择这三大过程也很简单。本篇文章就是传授老夫多年的科研装逼手艺,如果觉得好,可以小小的赞一下,嘿嘿。

洪荒初始-差分进化算法的步骤

差分进化算法和遗传算法没有任何区别,如果你甚至没有听过遗传算法没有关系,它只有简单的以下几步:

h_i = x_g_without_i[1] + f*(x_g_without_i[2] - x_g_without_i[3])

这里的h_i指的是对上一代种群中第i个个体进行变异,变异方法是从上一代种群中,除了第i个个体以外的剩下个体中随机抽取三个,按照上面的公式得到第i个的变异个体。

差分进化算法详细讲解

上面只是给大家一个感性的认识,真正你看了上面就理解了进化差分算法要么你牛逼要么我牛逼,不过为了把算法解释清楚,我决定在详细讲解一下

共识

首先我们要明确我们要优化什么?优化的量是什么?怎么跟差分进化算法里面的东西对应起来?
我们要优化的东西无非就是一个函数,这个函数可能只有一个变量,也可能有两个,当然更多的情况是有很多参数,比如一个量子对撞机控制系统,影响因素就很多,当然我们的进化算法还无法牛逼到处理辣么复杂的问题。
而函数的参数就是我们算法里面的个体,参数的个数就是个体的元素个数。对,就是这样。

还有啥

还有啥要说的呢,基本上没有了,小学生应该也懂了,好了开始上代码

Talk is cheap, show me the code

接下来开源进化差分算法的代码,用python实现的哟,如果代码中有任何问题欢迎加我微信:jintianiloveu或者加入文章结尾二维码群。

Screen Shot 2016-10-11 at 10.44.32 AM.png ECEEC40D57CF165D6E9AB7488C6C8685.jpg
上一篇下一篇

猜你喜欢

热点阅读