http://blog.sina.com.cn/jambo[订阅][手机订阅]
字体大小: 正文
Summary: 遗传算法(GA) 粒子群优化(PSO)(2007-10-06 20:26:48)
由于某道面试题目的驱使,GA和PSO成了这个暑期里面最有意义的东西。
 
---------------------------我是好好味的分界线------------------------
 
GA:遗传算法其实是一个很大同时很热的课题,掌握好GA并不容易。关于GA的研究,主要集中在交叉和变异算子上,同时编码也是每一个实际应用中不可回避的问题。因此,这两个方面就构成了GA在应用上所要解决的问题,也直接决定了得出结果的好坏。
 
PSO:这是一种相当有意思的算法。理论基础是动物的群体智慧和个体经验对行为的影响。这其实是我在国庆前已经在宿舍看着维基百科写出来了。效果也是相当的好,连后来的GA都突破不了。附上关键公式:
 
第i个微粒表示为Xi = (xi1, xi2, …, xiD),它经历过的最好位置(有最好的适应值)记为Pi = (pi1, pi2, …, piD),也称为pbest。在群体所有微粒经历过的最好位置的索引号用符号g表示,即Pg,也称为gbest。微粒i的速度用Vi = (vi1, vi2, …, viD)表示。对每一代,它的第d维(1 ≤ d ≤ D)根据如下方程进行变化:
  vid = w*vid+c1*rand()*(pid-xid)+c2*Rand()*(pgd-xid)  (1a)
xid = xid+vid (1b)

其中w为惯性权重(inertia weight),c1和c2为加速常数(acceleration constants),rand()和Rand()为两个在[0,1]范围里变化的随机值。
                                             (源自维基百科)
后话:我承认我的GA在实现时并不十分理想,有个小bug我没理,而且实践表明并不能有效地让种群像优秀的方向发展。虽然我有另一种方法,可以很好地填补这些缺陷,但这又会带来另一种问题--过早收敛,这是GA所要经常面临的问题。
这里面有个结论:我不是一个好的上帝,还不能把一堆猩猩变成人;却是一个不错的农夫,能够把成千上万的小鸟放出去找到我要去的地方。
加载中,请稍候...
  • 评论加载中,请稍候...

验证码:请点击后输入验证码  收听验证码

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

相关博文
读取中...
推荐博文
读取中...