设想这样一个场景:一群鸟在随机搜索食物,在这个区域里只有一块食物。
所有的鸟都不知道食物在那里,但是它们知道当前的位置离食物还有多远。
那么找到食物的最优策略是什么呢,最简单有效的就是搜寻目前离食物最近的鸟的周围区域。
pso算法就是从这种模型中得到启示并用于解决优化问题。
但是,不同的仿生算法之间,也有很多不同的。
就拿同属于仿生算法的遗传算法和pso算法做比较,pso算法没有遗传算法中的交叉和变异,而是根据自己的速度来决定搜索。
而且它的粒子还有一个重要的特点,就是有记忆。
与遗传算法比较, pso算法的信息共享机制是完全不同的。
在遗传算法中,染色体互相共享信息,所以整个种群的移动是比较均匀的向最优区域移动。
在pso算法中, 只有gbest(or lbest)给出信息给其他的粒子,这是单向的信息流动,整个搜索更新过程是跟随当前最优解的过程,与遗传算法比较, 在大多数的情况下,所有的粒子可能更快的收敛于最优解。
但这份资料中所列举的仿生算法,却是将仿生算法中一些共性的过程总结了出来。
比如大部分仿生算法,都有这样的过程,首先对种群随机初始化,然后对种群内的每一个个体计算适应值,适应值与最优解的距离直接有关种群根据适应值进行复制,如果终止条件满足的话,就停止,否则转步骤二。
安昕自然看得出来,杨林所编写的这套算法,已经综合了上述所有仿生算法的有点,并且用更加本质的数学语言将仿生算法总结了出来,而原来的那些仿生算法几乎都可以在这个算法的基础上推演出来。
这种算法中仅涉及各种基本的数学操作,其数据处理过程对cpu和内存的要求也不高。
而且,这种方法只需目标函数的输出值,而无需其梯度信息。
这是一种能够有效解决大多数全局优化问题的新方法。更为重要是,这种仿生算法在的并行性和分布式特点为处理大量的以数据库形式存在的数据提供了技术保证。
安昕自然明白,无论是从理论研究还是应用研究的角度分析,杨林所提出的仿生算法理论都是具有非常重要的学术意义和现实价值的。
她平复了下心绪,继续往下看。
接下来讲述的是另一种启发式算法。
这种算法和仿生算法类似,同样分为了许多种,但杨林将它们一一总结了出来,用非常简练的数学语言将其描述了出来。
如果用杨林的方法去编程解决一些数学问题的话,其所需的内存和cpu都比以往要简练不知多少倍。
安昕不由得揉了揉脑袋,有些震惊道:“什么时候这小子的水平到这地步了?”(未 完待续 ~^~)