1701011594
(4)蚁群算法
1701011595
1701011596
蚁群算法是由意大利学者M.Dorigo等人于20世纪90年代初期通过观察自然界中蚂蚁的觅食行为而提出的一种群体智能优化算法。蚂蚁在运动的路线上能留下信息素,在信息素浓度高的地方蚂蚁会更多,相等时间内较短路径里信息素浓度较高,因此选择较短路径的蚂蚁也随之增加,如果某条路径上走过的蚂蚁越多,后面的蚂蚁选择这条路径的概率就更大,从而导致选择短路径的蚂蚁越来越多而选择其他路径(较长路径)的蚂蚁慢慢消失,蚁群中个体之间就是通过这种信息素的交流并最终选择最优路径来搜索食物的,这就是蚁群算法的生物学背景和基本原理。
1701011597
1701011598
蚁群算法目前已成功应用到了许多优化问题上,如二次分配、大规模集成电路设计、网络QoS路由及车辆调度问题等。但蚁群算法也同样存在一些缺陷,比如由于蚁群算法中个体运动随机,面对复杂优化问题时需要很长的搜索时间,同时还容易陷入局部最优中,这些问题还有待进一步深入研究并得到相应改进以使得该算法更加完美。
1701011599
1701011600
(5)人群搜索算法
1701011601
1701011602
人群搜索算法(SOA)是对人的随机搜索行为进行分析,借助脑科学、认知科学、心理学、人工智能、多Agents系统和群体智能等的研究成果,分析研究人作为高级Agent的利己行为、利他行为、自组织聚集行为、预动行为和不确定性推理行为,并对其建模用于计算搜索方向和步长。由于SOA直接模拟人的智能搜索行为,立足传统的直接搜索算法,概念明确、清晰、易于理解,是进化算法研究领域的一种新型群体智能算法。
1701011603
1701011604
在优化计算中,人的随机搜索行为可理解为:在连续空间的搜索过程中,较优解的周围可能存在更优的解,最优解可能存在于较优解的邻域内。因此,当搜寻者所处位置较优时,应该在较小领域内搜索;当搜寻者所处位置较差时,应该在较大领域内搜索。为此,SOA利用能有效描述自然语言和不确定性推理的模糊逻辑来对上述搜索规则进行建模,并确定搜索步长。
1701011605
1701011606
(6)鱼群算法
1701011607
1701011608
在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食。聚群及追尾行为,从而实现寻优,以下是鱼的几种典型行为。
1701011609
1701011610
(1)觅食行为:一般情况下鱼在水中随机地自由游动,当发现食物时,则会向食物逐渐增多的方向快速游去。
1701011611
1701011612
(2)聚群行为:鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群,鱼聚群时所遵守的规则有以下三条。
1701011613
1701011614
1701011615
1701011616
分隔规则:尽量避免与临近伙伴过于拥挤; 对准规则:尽量与临近伙伴的平均方向一致; 内聚规则:尽量朝临近伙伴的中心移动。 (3)追尾行为:当鱼群中的一条或几条鱼发现食物时,其临近的伙伴会尾随其快速到达食物点。
1701011617
1701011618
(4)随机行为:单独的鱼在水中通常都是随机游动的,这是为了更大范围地寻找食物点或身边的伙伴。
1701011619
1701011620
人工鱼群算法特点:
1701011621
1701011622
1701011623
1701011624
具有较快的收敛速度,可以用于解决有实时性要求的问题; 对于一些精度要求不高的场合,可以用它快速的得到一个可行解; 不需要问题的严格机理模型,甚至不需要问题的精确描述,这使得它的应用范围得以延伸。 现实中的鱼群如图10-9所示,鱼群表现聚群行为和觅食行为,当然在水中游动,位置是随机的,其他的鱼都是尾随前面的鱼,表现一种群体行为。
1701011625
1701011626
1701011627
1701011628
图10-9 现实鱼群 图10-10 人工鱼群算法 人工鱼群算法则将鱼觅食行为进行简化,如图10-10所示,鱼群的中心鱼Si为鱼群的优化点,具体的人工鱼群算法流程如下:
1701011629
1701011630
(1)确定种群规模fishnum,在变量可行域内随机生成fishnum个个体,迭代次数gen,设定人工鱼的可视域Visual,半径为rij(鱼si到鱼sj的距离),步长step,拥挤度因子δ,尝试次数try_number。
1701011631
1701011632
(2)计算初始鱼群各个体适应值,取最优人工鱼状态及其值赋给公告板。
1701011633
1701011634
(3)个体通过觅食、聚群和追尾行为更新自己,生成新鱼群。
1701011635
1701011636
(4)评价所有个体。若某个体优于公告板,则将公告板更新为该个体。
1701011637
1701011638
(5)当公告板上最优解达到满意误差界内,算法结束,否则转(3)。
1701011639
1701011640
应用人工鱼群算法进行函数寻优分析,待分析函数编程如下:
1701011641
1701011642
clc,clear,close all %清屏和清除变量 warning off %消除警告 tic %开始计时 figure(‘color’,[1,1,1]) [X1,X2] = meshgrid(-10
:0.1:10,-10:0.1:10); %平面栅格化 Y=sin(X1)./X1.*sin(X2)./X2; %对应的Z值 mesh(X1,X2,Y) %曲面绘制 toc %结束计时
1701011643
[
上一页 ]
[ :1.701011594e+09 ]
[
下一页 ]