粒子群学习记录(三)

首先,我是参考的这个专栏的https://blog.csdn.net/niuyongjie/article/details/1569671的博文,感觉理解起来还行,但是由于我个人的原因,时间的关系暂时先做如下总结,往后有机会再拾起的研究的话再更新更正。如果有什么理解不对的或者需要补充的,欢迎各位指正,谢谢。

最后,我要思考的就是如何才能把这个算法用于实践中,应用于特定场景中呢?

我们所需要寻找的最优解的函数写在适应度函数中,比如 y=1-cos(3*x)*exp(-x) ,他有一个解,所以我的粒子是一维的,我们还需要提供的信息就是这个函数的定义域,有些函数是在定义域内才有最值的,所以我们还需要提供粒子运动的范围,这样他的随机变化加一定规则才不会超出这个定义域,超出定义域了他的值域就没有意义了。如果 y=1-cos(3*x1)*exp(-x2),那么他就有x1,x2两个解了,那么此时的粒子就是二维的,而且每一维的运动范围都要给出。

这样以后,粒子会根据自己的历史记录和他的“圈子”或者全局的粒子的进行比对做出调整,而且那是有权重的,以适应各种场景。

那么我们的实际中,哪里来的函数呢?而且最优解一定是最值?我先保留以后讨论。

经过我的查阅,运动目标的检测中使用粒子群滤波的方法。基本的思想也是相似的。他对比的是感兴趣区域的直方图(相当于上面的函数)与粒子所在区域的直方图的相似度,相似度越高,则权重越大,则粒子往感兴趣区域移动越快,相似度近乎为0的滤除掉,添加新的粒子,新生粒子是最高相似度的copy,但是这样以后就会有一个问题,就是粒子的多样性会降低,导致可能最终得到的结果不是全局最优解,而是局部的最优解,也即极值点而不是最值点。

先暂时写到这吧,有点困了。。。。

猜你喜欢

转载自blog.csdn.net/qq_38960899/article/details/79929129