文档库 最新最全的文档下载
当前位置:文档库 › 一种改进的人工鱼群算法

一种改进的人工鱼群算法

一种改进的人工鱼群算法
一种改进的人工鱼群算法

—192

一种改进的人工鱼群算法

王联国1,2,洪 毅1,赵付青1,余冬梅1

(1. 兰州理工大学电气工程与信息工程学院,兰州 730030;2. 甘肃农业大学信息科学技术学院,兰州 730070)

摘 要:人工鱼群算法是一种基于动物行为的群体智能优化算法。该文提出一种改进的人工鱼群算法,在觅食行为中让人工鱼直接移动到较优位置,以加快算法的搜索速度,动态调整人工鱼的视野和步长,使其在算法运行初期保持最大值,并逐渐由大变小。该算法较好地平衡了全局搜索能力和局部搜索能力,提高了算法运行效率和精度。仿真结果表明,改进的人工鱼群算法收敛性能比原有算法提高了1倍以上。

关键词:人工鱼群算法;群体智能;优化

Improved Artificial Fish Swarm Algorithm

WANG Lian-guo 1,2, HONG Yi 1, ZHAO Fu-qing 1, YU Dong-mei 1

(1. College of Electrical Engineering and Information Engineering, Lanzhou University of Technology, Lanzhou 730030;

2. College of Information Science and Technology, Gansu Agricultural University, Lanzhou 730070)

【Abstract 】The artificial fish swarm algorithm is a swarm intelligence optimization algorithm based on the animal behavior. An improved artificial fish swarm algorithm is presented. This algorithm directly moves artificial fishes to the superior position while searching food so that increasing the algorithm’s searching speed. It dynamically adjusts the vision and step of artificial fish, makes the vision and step maintain maximum during the initial period of running, and then makes them smaller gradually. This algorithm can keep the balance between global and local search ability, and enhance the running efficiency and precision of the algorithm. The simulation results show that the improved artificial fish swarm algorithm’s convergence performance is more than twice of the former algorithm.

【Key words 】artificial fish swarm algorithm; swarm intelligence; optimization

计 算 机 工 程Computer Engineering 第34卷 第19期

Vol.34 No.19 2008年10月

October 2008

·人工智能及识别技术·文章编号:1000—3428(2008)19—0192—03

文献标识码:A

中图分类号:TP18

1 概述

受鱼群行为的启发,文献[1-2]于2002年提出人工鱼群算

法(Artificial Fish Swarm Algorithm, AFSA),该算法是行为主义人工智能的一个典型应用。AFSA 具有克服局部极值、取得全局极值的能力,算法中仅使用目标问题的函数值,对搜索空间有一定自适应能力,并具有对初值与参数选择不敏感、鲁棒性强、简单易实现、收敛速度快和使用灵活等优点。目前AFSA 已应用于连续性优化问题、组合优化、时变系统的在线辩识、鲁棒PID 的参数整定、优化前向神经网络、电力系统无功优化、多用户检测器、信息检索和油田多级站定位中,取得了较好效果。但AFSA 存在保持探索与开发平衡的能力较差、算法运行后期搜索的盲目性较大、寻优结果精度低和运算速度慢等缺点,影响了其搜索质量和效率。因此,一些研究者从不同方面对人工鱼群算法进行改进,提出了一些改进的人工鱼群算法(Improved Artificial Fish Swarm Algorithm, IAFSA)[3-4]。

文献[5-6]对粒子群优化算法的惯性权重调整策略进行研究,本文参考其基本思想,在基本人工鱼群优化算法的基础

上采用动态调整人工鱼视野和步长的方法,提出一种IAFSA 。

2 AFSA 和IAFSA

2.1 基本AFSA

人工鱼群算法通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优。人工鱼个体的状态可以表示为向量X =(x 1,x 2,…,x n ),其中,x i (i =1,2,…,n )为需要寻优的变量。人工鱼当前所在位置的食物浓度表示为Y =f (x ),其中,Y 为目标函数值。人工鱼个体之间的距离表示为d i ,j =‖X i -X j ‖。

Visual 表示人工鱼的感知范围,Step 表示人工鱼移动的步长,δ表示拥挤度因子。AFSA 初始化一群人工鱼,通过迭代搜寻最优解,在每次迭代过程中,人工鱼通过觅食、聚群及追尾等行为来更新自己。 2.1.1 觅食行为

设人工鱼当前状态为X i ,在其感知范围内随机选择一个状态X j ,如果在求极小问题中Y j

设人工鱼当前状态为X i ,探索当前邻域内,即d i ,j

设人工鱼当前状态为X i ,探索当前邻域内,即d i ,j

基金项目:甘肃省教育厅科研基金资助项目(0602-12)

作者简介:王联国(1968-),男,副教授、在职博士研究生,主研方向:计算智能及其工程应用,智能信息处理;洪 毅,教授、博士生导师;赵付青,副教授、博士;余冬梅,教授 收稿日期:2008-01-09 E-mail :wanglg@https://www.wendangku.net/doc/c110996627.html,

—193—

的状态为具有较高食物浓度且其周围不太拥挤,就朝伙伴X j 的方向前进一步,否则执行觅食行为。 2.1.4 随机行为

人工鱼在视野中随机选择一个状态,然后向该方向移动,它是觅食行为的一个缺省行为。在觅食行为中,当重复尝试次数try _number 较小时,为人工鱼提供了随机游动的机会,增加了种群的多样性,以实现跳出局部极值。 2.1.5 行为选择

行为选择是根据需要解决问题的性质,对人工鱼当前所处环境进行评价,从而选择一种合适的行为。可以按进步最快的原则或进步即可的原则进行选择。例如,先执行追尾行为,如果没有进步则执行觅食行为,如果仍然没有进步则执行聚群行为,若依然没有进步就执行随机行为。 2.1.6 公告板

在算法中设立一个公告板,定义为一条人工鱼,用于记录最优人工鱼的状态。每条人工鱼在每次行动后,将自身的当前状态与公告板的状态进行比较,如果自身状态优于公告板状态,则用自身状态取代公告板状态。

2.2 IAFSA

2.2.1 人工鱼视野和步长的改进

文献[1]的研究结果表明,视野对算法中各种行为和收敛性能有较大影响。若视野范围较大,则人工鱼的全局搜索能力强并能快速收敛;若视野范围较小,则人工鱼的局部搜索能力强。步长越大,收敛速度越快,但有时会出现振荡现象;步长越小,收敛速度越慢,但求解精度越高。

根据上述分析,越难优化的函数越需要加强全局搜索能力,定位到最优解的大致位置后,需要加强局部搜索能力。因此,在算法运行前期,为了增强算法的全局搜索能力和收敛速度,采用较大的视野和步长,使人工鱼在更大范围内进行粗搜索,随着搜索的进行,视野和步长逐渐减小,算法逐步演化为局部搜索,定位在最优解附近区域并进行精细搜索,从而提高算法的局部搜索能力和寻优结果的精度。视野Visual 和步长Step 可按式(1)动态调整。

min min

max exp(30(/))

s Visual Visual a Visual Step Step a Step a t T ?=×+?

=×+??=?×? (1) 其中,Step =Visual /8; Visual min =0.001; Step min =0.000 2;t 为当前迭代次数;T max 为最大迭代次数。一般情况下,Visual 的初值为Z max/4(Z max 为搜索范围的最大值)。该视野Visual 和步长Step 函数由3段构成,算法运行初期保持最大值,然后逐渐由大变小,最后保持最小。函数a 的值由大到小的变化速率s 为大于1的整数,本文s 取值范围为[1,30]。s 分别等于3, 5, 10,T max =1 000时,函数a 的变化曲线如图1所示。

0.0

0.20.40.60.81.01.2

函数a 的

t /T max

图1 函数a 的变化曲线

2.2.2 觅食行为的改进

在觅食行为中,人工鱼随机选择一个状态,如果该状态优于当前位置,则向该方向前进一步。这种方式搜索速度慢,

为了加快搜索速度,人工鱼可以直接移动到该位置。 2.2.3 IAFSA 的流程

IAFSA 的流程如下:

(1)初始化人工鱼群规模M 、每条人工鱼的初始位置、视野Visual 和步长Step 、拥挤度δ、最大重复尝试次数try_number 、最大迭代次数等参数。

(2)计算每条人工鱼的适应度,并与公告板的状态比较,若较好,则将其赋给公告板。

(3)按式(1)计算视野Visual 和步长Step 。

(4)每条人工鱼体通过觅食、聚群、追尾和随机行为更新自己的位置。

(5)检查终止条件(通常为达到预定进化次数或足够好的适应值),如果满足终止条件,则输出最优解,算法终止;否则转(2)。

3 仿真实验及分析

本文以求3个测试函数的最小值为例,进行仿真实验,测试软件平台为Visual C ++和Windows XP ,机器主频为 P4 1.7 GHz ,内存为512 MB 。3个测试函数如下:

(1)Rastrigin

函数211()[10cos(2)10)] , D

i i i f Z z z ==?π+∑

-1010i z <<,是多峰函数,在z i =0(i =1,2,…,D )时达到全局最

小点,最小值为0。

(2)Griewank

21112()1,4000D

D i i i f Z z ===

?+∑∏

-600600i z ≤≤,是多峰函数,很难找到全局最优点,在

z i =0(i =1,2,…,D )时达到全局最优点,最优值为0。

(3)Rosenbrock 函数1

222113()[100()(1-)],D i i i i f Z z z z ?+==?+∑

-100100i z ≤≤,是非凸、病态单峰函数,在z i =1(i =1,2,…,D )

时达到全局最优点,最优值为0。

算法性能评价采用如下方法:(1)固定进化迭代次数,评估算法收敛速度和精度;(2)固定收敛精度目标值,评估算法达到该精度所需要的迭代次数;(3)与文献[7]的优化结果进行比较。

3.1 固定进化迭代次数的收敛速度和精度

固定进化迭代次数的收敛速度和精度实验参数设置如下:人工鱼群规模为50,3个测试函数的维数为2,觅食行为中重复次数try_number=5,在AFSA 中,对于函数f 1,Visual =2.85, Step =1.25;对于函数f 2,Visual =300, Step =18;

对于函数f 3,

Visual =25, Step =3。在IAFSA 中,Visual min =0.001, Step min =0.000 2, s =3。2种算法的进化代数为40,连续运行 50次。表1列出了AFSA 和IAFSA 求解函数f 1, f 2和f 3所得的寻优结果。由表1可以看出,IAFSA 的平均优化结果和最优结果明显优于AFSA 。图2~图4分别是f 1, f 2和f 3采用AFSA 和IAFSA 运行50次后得到的函数平均最小值H1,H2,H3的进化曲线。由图2~图4可以看出,IAFSA 的收敛性能明显优于AFSA 。

表1 2种优化算法的寻优结果

函数 AFSA 的平均最小值/最小值 IAFSA 的平均最小值/最小值 f 1 0.045 879/0.000 929 0.000 005/0.000 000 f 2 0.062 184/0.008 411 0.005 752/0.000 000 f 3

0.113 494/0.002 914

0.011 271/0.000 000

—194

—-14

-12-10-8-6-4-2

0240

5

10

15

2025

30

35

40

进化代数

l n H

1

图2 函数f 1平均最小值的进化曲线

-6-5-4-3-2-1

010

5

10

15

2025

30

35

40

进化代数

l n H

2

图3 函数f 2平均最小值的进化曲线

024

680

5

10

15

202530

35

40

进化代数

l n H 3

图4 函数f 3平均最小值的进化曲线

3.2 固定收敛精度下的进化迭代次数

固定收敛精度下的进化迭代次数实验参数设置如下:人工鱼群规模为20,目标收敛精度为0.000 1,最大迭代次数为500,其他参数同上。

表2为3个测试函数在指定收敛精度下独立运行50次后的迭代次数,其中,成功率等于达到目标精度的运行次数除以总实验次数。

表2 目标精度下的进化迭代次数

算法 函数 成功率/(%)

平均迭代次数

最小迭代次数

最大迭代次数

f 1 50 336 196 492 f 2 8 463 400 495 AFSA

f 3 14 379 85 238 f 1 100

203 54 254 f 2 62 260 224 287 IAFSA

f 3 100

251

144

286

由表2可以看出,AFSA 对f 2和f 3的成功率分别为8%和14%,对f 1的成功率达50%。IAFSA 对f 1和f 3都获得了100%的成功率,对f 2的成功率达62%。可见,IAFSA 比AFSA 的收敛性能提高了1倍以上。IAFSA 对3个测试函数的平均迭代次数都少于AFSA 。以上结果说明,IAFSA 的优化效果显著优于AFSA 。 3.3 十维函数~三十维函数的优化实验

用IAFSA 对十维、二十维和三十维的Rosenbrock 函数和Griewank 函数进行寻优计算,迭代次数设置为1 000次、1 500次和2 000次,其他参数同上。对每个函数进行50次实验,计算算法找到的平均最优值。

表3和表4分别给出了群体规模为20条人工鱼的IAFSA 对十维、二十维和三十维的Rosenbrock 函数和Griewank 函数的优化结果,并与FPSO [7]的优化结果进行比较,结果表明,IAFSA 可以用来优化高维多峰函数,且优化效果明显。表5给出了群体规模为10条人工鱼的IAFSA 对十维、二十维和三十维的Rosenbrock 函数和Griewank 函数的平均优化结果。比较表3~表5可以发现,人工鱼的数目为10条和20条的优化结果区别不大,可见,对于一般的函数优化,人工鱼的数目在10条~20条之间较合适。

表3 群体规模为20时Rosenbrock 的平均最优值

维数 迭代次数 FPSO IAFSA 10 1 000 66.014 09 4.865 123 6 20 1 500 108.286 50 17.990 926 0 30

2 000

183.803 70

23.254 345 0

表4 群体规模为20时Griewank 的平均最优值

维数 迭代次数 FPSO IAFSA 10

1 000 0.091 623 0.017 626 9 20 1 500 0.027 275 0.000 007

2 30

2 000

0.021 560

0.000 000 2

表5 群体规模为10时Rosenbrock 和Griewank 的平均最优值

维数 迭代次数 Rosenbrock Griewank 10 1 000 5.396 017 0.024 666 20 1 500 19.927 200 0.000 995 30

2 000

26.770 473

0.000 019

4 结束语

IAFSA 较好地平衡了算法的全局搜索能力和局部搜索能力,提高了算法的自适应能力和优化精度。此算法的优化效果明显,可以用于优化高维多峰函数。但随着函数维数和群体规模的增加,其运行时间明显变长,该问题有待进一步研究并解决。

参考文献

[1] 李晓磊, 邵之江, 钱积新. 一种基于动物自治体的寻优模式: 鱼

群算法[J]. 系统工程理论与实践, 2002, 22(11): 32-38.

[2] 李晓磊, 钱积新. 基于分解协调的人工鱼群优化算法研究[J].

电路与系统学报, 2003, 8(1): 1-6.

[3] 张梅凤, 邵 诚, 甘 勇, 等. 基于变异算子与模拟退火混合的

人工鱼群优化算法[J]. 电子学报, 2006, 34(8): 1381-1385.

[4] 罗方芳, 陈国龙, 郭文忠. 基于改进的Fish-search 算法的信息检

索研究[J]. 福州大学学报: 自然科学版, 2006, 34(2): 184-188.

[5] 胡建秀, 曾建潮. 微粒群算法中惯性权重的调整策略[J]. 计算机

工程, 2007, 33(11): 193-195.

[6] 雷开友, 邱玉辉, 贺 一. 一种优化高维复杂函数的PSO 算

法[J]. 计算机科学, 2006, 33(8): 202-205.

[7] Shi Y , Eberhart R. Fuzzy Adaptive Particle Swarm Optimiza-

tion[C]//Proceedings of the IEEE Congress on Evolutionary Computation. Seoul, Korea: IEEE Press, 2001.

I n H 1 I n H 2 I n H 3

人工鱼群算法的仿真程序-matlab

tic figure(1);hold on ezplot('x*sin(10*pi*x)+2',[-1,2]); %% 参数设置 fishnum=50; %生成50只人工鱼 MAXGEN=50; %最多迭代次数 try_number=100;%最多试探次数 visual=1; %感知距离 delta=0.618; %拥挤度因子 step=0.1; %步长 %% 初始化鱼群 lb_ub=[-1,2,1]; X=AF_init(fishnum,lb_ub); LBUB=[]; fori=1:size(lb_ub,1) LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)]; end gen=1; BestY=-1*ones(1,MAXGEN); %每步中最优的函数值 BestX=-1*ones(1,MAXGEN); %每步中最优的自变量 besty=-100; %最优函数值 Y=AF_foodconsistence(X); while gen<=MAXGEN fprintf(1,'%d\n',gen) fori=1:fishnum %% 聚群行为 [Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y); %% 追尾行为 [Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y); if Yi1>Yi2 X(:,i)=Xi1; Y(1,i)=Yi1; else X(:,i)=Xi2; Y(1,i)=Yi2; end end [Ymax,index]=max(Y); figure(1); plot(X(1,index),Ymax,'.','color',[gen/MAXGEN,0,0]) ifYmax>besty besty=Ymax; bestx=X(:,index); BestY(gen)=Ymax;

人工鱼群算法matlab实现

functionlhl_AF clc;clear all; close all; format long Visual = 2.5; %人工鱼的感知距离 Step = 0.3; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=0.618; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中, figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

改进的人工鱼群算法(1)

改进的人工鱼群算法 江铭炎、袁东风、程永明著 山东大学信息科学与工程学院 Email:jiangmingyan@https://www.wendangku.net/doc/c110996627.html,

摘要: 人工鱼群算法(AFSA)是一种新型的智能优化算法。它有许多优点,比如鲁棒性好、全局搜索能力强、参数公差的设定,而且它也被证明对初始值不敏感。然而,它有一些弱点,表现为在后期优化的优化精度和收敛速度比较差。在本文中,提出了一种改进AFSA(IAFSA),在更新的过程中它将全局信息添加到人工鱼的位置。这实验结果表明,该优化精度和收敛速度的方法与原AFSA相比有明显地改善。 1.简介 人工鱼群算法(AFSA)[1]是(SAS)鱼群优化算法的一种。近年来,如蚁群优化(ACO)的算法的SA [2],粒子群优化(PSO)[3]算法,蜂群算法(BA)[4]越来越多的应用到工程应用中,由此他们在研究领域成为了热点。 这是一种把鱼群行为寻找食物比为社会行为的基础上智能优化算法AFSA。在鱼群行为包括觅食,聚群行为,尾随行为[1],随机行为[5]和觅食行为[6]。与其他(SAS)相似,和它工作在一起的每个种群的个体被称为一个人工鱼(AF),每个人工鱼在“游”的搜索空间根据自己的经验及附近的伙伴来寻找有食物的地区。结果, 随着共享的社会信息、来自于之前人工鱼附近搜索的经验和发现的食物浓度, AFSA可以像其他SA有能力在很宽的空间找到更好的解决方案,有效地搜索全局最优的自适应。 仿照AFSA动物行为的过程,并通过个人的局部优化找出全局最优。在这种算法中,有时人工鱼个体的行为很难避免个体为时过早的

寻找局部最优[1][5]。在这种情况下,许多人工鱼陷入局部最优,只有少数的鱼能达到全局最优的区域。因此,AFSA的优化精度和收敛速度的往往不是十分令人满意。为了提高AFSA的性能, 在IAFSA更新过程中全区域最好的AFSA数据被加到了这个位置。三个基准函数是用来检测新算法的性能;实验结果表明,该IAFSA提高了AFSA的性能,并保留其很多优点,如鲁棒性、公差的参数的设置,寻找适应性等。2.人工鱼群算法 在自然界中,鱼能通过个体独立的搜索还有跟随其它鱼找到更有营养的区域,这个地区的鱼所在的地方通常是营养最丰富的。AFSA 的基本思想是模仿鱼类行为,如觅食,聚群和追尾使鱼个体局部搜索并达到全局最优[1][5]。人工鱼所在环境主要包括解的空间和其它人工鱼的状态。它的下一个行为取决于它现在的状态和地方环境状况(包括解决目前问题的特性和周围同伴的状态)。一人工鱼将会通过其自己的活动影响环境和它的同伴的活动。 从算数角度来讲,把一群人工鱼的N popsize,AF i 和位置向量X i相联系,(D是最优参数)在一个最优的问题中是一种可行的解决方案。让X i(t)表示一个人工鱼现在的位置,X i(t+1)是下一个选择的位置。每次迭代步长t+1, 人工鱼的行为的执行和位置矢量X i(t+1)的更新是通过增加一个增量更新向量△X i(t+1),仅包括局部最优信息。向量的增加是通过当前状态X i(t)和更好的状态X better (t+1),方程如下:

一种基于粒子群和鱼群的混合优化算法

Vol.29No.2 Feb.2013 赤峰学院学报(自然科学版)JournalofChifengUniversity(NaturalScienceEdition)第29卷第2期(上) 2013年2月1 引言 从二十世纪九十年代就产生了通过模拟生物群体行为 来解决优化问题的演化计算技术,称为群体智能[1].在1995年,美国学者Kennedy和Eberhart提出了粒子群优化算法(ParticleSwarmOptimization),就是通过对鸟群的某些行为的观察研究,提出的一种新颖而有效的进化算法[2].李晓磊等在2002年提出的人工鱼群算法(ArtificialFish)则是通过模拟人工鱼的觅食行为来处理优化问题.但两个算法都存在不足,鉴于二者的关系,结合二者的优点,提出了一种混合优化算法,可有效地提高算法的寻优能力. 2关于粒子群算法和人工鱼群算法的基本原理及其存在 的问题 2.1 粒子群优化算法原理 PSO算法的基本原理是通过个体间的协作与竞争,实现复杂空间中的最优解的搜索.首先,在D维可行解空间中初始化一群粒子(设有N个),对应于优化问题在D维空间中的N个潜在的解,然后根据下面两个值来确定它的下次迭代的速度和位置:一个是每个粒子目前搜索到的最优位置,称为个体最优极值;另一个是整个群体迄今为止搜索到的最优位置,称为全局极值.根据这两个值来进行迭代,直到找到满意的解为止[3]. 基本的PSO的迭代模型如下: vidk+1=wk×vidk+c1×rand1k×(pbidk-xidk) +c2×rand2k×(gbdk-cidk)(1)xidk+1=xidk+vidk+1(2)其中vidk是第i个粒子在第k次迭代中第d维的速度,wk是压缩因子(称为惯性因子)调节算法的全局和局部搜索能力.c1和c2是加速因子(称为学习因子),分别调节粒子向个体最好粒子和全局最好粒子方向飞行的最大步长,通常取c1=c2=2.rand1k和rand2k是[0,1]范围内的随机量,对每个粒子按(1)(2)迭代,直到找到满意的解为止.2.2人工鱼群算法的基本原理 在一片水域中,鱼往往能自行或尾随其他鱼找到食物多的地方,因而鱼生存多的地方就是食物多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的 觅食、 聚群及追尾行为,从而实现寻优.人工鱼群算法[4]具体行为描述如下:设x=(x1,x2,…,xN)为人工鱼当前状态,对应优化函数中的N个潜在解(其中N表示人工鱼的个数),yi=f(xi)(i=1,2,…,N)表 示人工鱼当前的食物浓度,对应优化函数中的N个函数值,dij=||xi-xj||表示人工鱼个体之间的距离,Visual表示人工鱼视野范围,Step表示移动的最大步长,σ表示拥挤度因子. (1)觅食行为:人工鱼群当前状态为xi(i=1,2,…,N)野范围内随机选择一个状态xj,当该环境的状态优于原来的状态时,则向该方向前进一步;反之,则重新选择随机状态xj, 判断是否满足前进条件;如此反复Trynumber次后,如果仍不满足,则随机移动一步. (2)聚群行为:人工鱼群当前状态为xi(i=1,2,…,N),其视野范围内伙伴数为nf,如果(nf/N)<h,则表明xmax周围不太拥挤,则向xmax方向前进一步,否则执行觅食行为. 每条人工鱼搜索当前所处环境的状态,按照“进步最快的原则”或者“进步即可的原则”从中选择一个合适的行为,使得各人工鱼不断向最优化方向前进,并且在公告板上记录其每次搜索到的最值,最终全部人工鱼集结在几个局部极值的周围,且较优的极值区域周围能集结较多的人工鱼. 根据以上对粒子群和人工鱼群的叙述可以看出,二者均属于种群优化算法,由于二者概念简单,需要调整的参数少,易于编程,本身没有类似求导等复杂的数学操作,且在搜索的过程中是多个粒子同时展开搜索,具有隐含并行性,在处理优化问题尤其是复杂问题时,已经相对于传统的优化算法显示出了明显的优势,因而受到人们广泛的关注和青睐,近几年已成功应用于多个领域.2.3两个算法存在的问题 粒子群算法和人工鱼群算法都有各自的优缺点,对于粒子群算法它的优点是收敛速度快,缺点是由于在算法初期各粒子很快地向最优值聚拢,也就是在最优值附近粒子群表现出强烈的“趋同性”,算法容易陷入局部最优但收敛 速度快,最终收敛到某一局部极值,即出现 “早熟”现象,尤其是当解空间是非凸集时,更易陷入局部收敛.人工鱼群算法由于其引入了拥挤度因子[5],从而能够很好地跳出局部极值,并尽可能地搜索到其他的极值,最终向全局极值靠拢,却在接近最优值时往往停滞不前,而且算法对初值和各种参数的选择也不很敏感,但是当寻优域较大或处于变化平坦的区域时,一部分人工鱼将处于无目的的随机游动中,这 一种基于粒子群和鱼群的混合优化算法 李玉毛1,于志远2 (1.赤峰学院数学与统计学院,内蒙古赤峰024000;2.赤峰学院附属医院,内蒙古赤峰024000) 摘要:本文通过分析和比较粒子群和人工鱼群算法的优点和缺点,提出了一种新的混合优化算法,并用此算法求解无约束优化问题,实际仿真数值结果表明,新算法的收敛精度和收敛速度都明显优于粒子群和鱼群算法,且亦然符合动物的自然规律,是一种很高效的优化算法. 关键词:粒子群;鱼群;群智能中图分类号:O6-39文献标识码:A文章编号:1673-260X(2013)02-0010-02 10--

基本人工鱼群算法

基本人工鱼群算法 摘要人工鱼群算法(Artificial Fish-Swarm Algorithm,AFSA)是由李晓磊等在2002年提出的,源于对鱼群运动行为的研究,是一种新型的智能仿生优化算法。它具有较强的鲁棒性、优良的分布式计算机制易于和其他方法结合等优点。目前对该算法的研究、应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。人工鱼群算法已经成为交叉学科中一个非常活跃的前沿性学科。本文主要对鱼群算法进行了概述,引入鱼群模式的概念,然后给出了人工鱼的结构,接下来总结出了人工鱼的寻优原理,并对人工鱼群算法的寻优过程进行仿真,通过四个标准函数选取不同的拥挤度因子进行仿真实验,证实了利用人工鱼群算法进行全局寻优确实是有效的。 关键词:人工鱼群算法;拥挤度因子;寻优 0 引言 动物在进化过程中,经过漫长的优胜劣汰,形成了形形色色的觅食和生存方式,这些方式为人类解决生产生活中的问题带来了不少启发和灵感。动物不具备复杂逻辑推理能力和综合判断等高级智能,但他们通过个体的简单行为和相互影响,实现了群体的生存和进化。动物行为具有以下几个特点。 (1)适应性:动物通过感觉器官来感知外界环境,并应激性的做出各种反应,从而影响环境,表现出与环境交互的能力。 (2)自治性:在不同的时刻和不同的环境中能够自主的选取某种行为,而无需外界的控制或指导。 (3)盲目性:单个个体的行为是独立的,与总目标之间没有直接的关系。 (4)突现性:总目标的完成是在个体行为的运动过程中突现出来的。 (5)并行性:各个个体的行为是并行进行的。 人工鱼群算法是根据鱼类的活动特点提出的一种基于动物行为的自治体寻优模式。 1 鱼群模式描述 1.1 鱼群模式的提出 20世纪90年代以来,群智能(swarm intelligence,SI)的研究引起了众多学者的极大关注,并出现了蚁群优化、粒子群优化等一些著名的群智能方法。 集群是生物界中常见的一种现象,如昆虫、鸟类、鱼类、微生物乃至人类等等。生物的这种特性是在漫长的进化过程中逐渐形成的,对其生存和进化有着重

基于全局最优的快速人工鱼群算法及其应用研究

基于全局最优的快速人工鱼群算法及其应用研究 人工鱼群算法是一种有关动物行为的算法,这种算法 具有一定的智能性,是最近几年国内学者提出来的。这种人工鱼群算法是从行为方面进行的主要研究,并对原来存在的问题进行解决。 关键词】人工鱼群算法优化方法群体智能 众多实验能够证明,群体智能优化的相关算法在很多问 题的解决上都发挥了至关重要的作用,也得到了十分广泛的应用。 1人工鱼群算法 1.1鱼群及其算法的基本思想人工鱼群算法主要依据的是鱼群的行为启 发,在2002 年被提出的一种有关动物行为的比较优化的算法。一般情况 个范围之内,鱼群中的鱼会跟随群体中的其它成员 起找到食物比较多的地方。而通常情况下,一片水域范围内食物最多的地方往往会有最多的鱼群数目。根据这个特点,使用人工制作的鱼对鱼群的各种行为进行模拟,进而完成直线寻优的目的。 1.2人工鱼模型有关人工鱼模型的算法使用的是基于animats 的模 式,

设计采用的顺序是从上到下的,因此先进行的步骤就是人工 鱼模型的建造。通常情况下使用的是面向对象的技术方式, 并用会用C++语言的伪代码形式来加以说明。人工鱼一般的 模型描述方式如下: Various : float AF_swarm (); //the behavior of swarm float AF_evaluate (); //evaluate and select the behavior float AF_init (); //to initialize the AF Aritificial_fish (); float AF_X[n] ; //AF 's position step float AF_step ; //the distance that AF can moue for each float AF_visual ; //the visual diatance of AF float try_number ; //attempt time in the behavior of prey float AF_delta ; //the condition of jamming Functions : float AF_foodconsistence (); //the food consistence of AF ' s current position float AF_move (); //AF move to the next position float AF_follow (); //the behavior of follow float AF_prey (); //the behavior of prey

人工鱼群算法源代码

人工鱼群算法源代码 %人工鱼群算法;formatlong;Visual=2.5;;Step=0.3;;N=50;;Try_numb er=50;;a1=-10;;b1=10;;a2=-10;;b2=10;;d=[];;h=1e-1;;Friend_numb er=50;;k=0;;m=50;;X1=rand(N,1)*(b1-a1)+a1;;X2=rand(N,1)*(b2-a2) %人工鱼群算法 format long Visual=2.5; Step=0.3; N=50; Try_number=50; a1=-10; b1=10; a2=-10; b2=10; d=[]; h=1e-1; Friend_number=50; k=0; m=50; X1=rand(N,1)*(b1-a1)+a1; X2=rand(N,1)*(b2-a2)+a2; X=[X1 X2];%人工鱼数量 for i=1:N wwww=[X(i,1),X(i,2)]; d(i)=maxf(wwww); end [w,i]=max(d); maxX=[X(i,1),X(i,2)];%初始公告板记录 maxY=w;%初始公告板记录

figurex=[]; figurey=[]; figurez=[]; figurex(numel(figurex)+1)=maxX(1); figurey(numel(figurey)+1)=maxX(2); figurez(numel(figurez)+1)=maxY; kkk=0; while(kmaxf(XX)) XXnext1=XX+rand*Step*(Xc-XX)/norm(Xc-XX); if(XXnext1(1)>b1) XXnext1(1)=b1; end if(XXnext1(1)b2) XXnext1(2)=b2; end if(XXnext1(2)

人工鱼群算法matlab实现

function lhl_AF clc;clear all; close all; format long Visual = 2、5; %人工鱼的感知距离 Step = 0、3; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=0、618; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1与X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w与最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中, figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认就是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法综述

人工鱼群改进算法研究综述 摘要:人工鱼群算法源于对鱼群运动行为的研究,是一种新型的群体智能随机全局优化算法,人工鱼群算法(AFSA)起步较晚,还存在着许多不足之处。因此本文主要通过阐述鱼群算法的基本理论的同时,对人工鱼群算法的改进方法进行文献综述,并根据这些改进方法指出了人工鱼群算法未来的改进与研究方向。 关键词:人工鱼群算法算法改进综述 1.引言 1.1 人工鱼群算法的基本概念 人工鱼群算法是李晓磊等[1]人于2002年提出的一种基于动物自治体[2-3]的优化方法,是集群智能思想[4]的一个具体应用,该算法根据水域中鱼生存数目最多的地方就是本水域中富含营养物质最多的地方这一特点来模拟鱼群的觅食行为而实现寻优。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度[5]。 人工鱼群算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸显出来的目的[6]。 (1)觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物两或食物浓度来选择行动的方向[6]。 (2)聚群行为:大量或少量的鱼聚集成群,进行集体觅食和躲避敌害,这是它们在进化过程中形成的一种生存方式[6]。 (3)追尾行为:当某一条鱼或几条鱼发现食物时,它们附近的鱼会尾随而来,导致更远处的鱼也会尾随过来[6]。

人工鱼群算法就是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优的。 1.2 人工鱼群算法的行为描述 觅食行为:设置人工鱼当前状态,并在其感知范围内随机选择另一个状态,如果得到的状态的目标函数大于当前的状态,则向新选择得到的状态靠近一步,反之,重新选取新状态,判断是否满足条件,选择次数达到一定数量后,如果仍然不满足条件,则随机移动一步[6]。 聚群行为:人工鱼探索当前邻居内的伙伴数量,并计算伙伴的中心位置,然后把新得到的中心位置的目标函数与当前位置的目标函数相比较,如果中心位置的目标函数优于当前位置的目标函数并且不是很拥挤,则当前位置向中心位置移动一步,否则执行觅食行为[6]。 追尾行为:人工鱼探索周围邻居鱼的最优位置,当最优位置的目标函数值大于当前位置的目标函数值并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则执行觅食[6]。 根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从而选择一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行为中使得人工鱼的下一步状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用随机行为。 1.3 人工鱼群算法步骤[6] Step1:设定鱼群的参数,包括鱼群的规模m, 最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d等; Step2:在参数区间内随机生成m条人工鱼个体作为初始鱼群; Step3:计算每条鱼的食物浓度函数(目标函数),把最优的值放入公告板[7]中; Step4:对于每条人工鱼执行以下操作 (1)计算出追尾行为、聚群行为的值,采用行为选择策略,选择最优的行为作为鱼的移动方向,缺省行为是觅食行为。 (2)计算出每条鱼的食物浓度函数(目标函数),其最优值与公告板中的值

一种新型的智能优化方法—人工鱼群算法

浙江大学 博士学位论文 一种新型的智能优化方法—人工鱼群算法 姓名:李晓磊 申请学位级别:博士 专业:控制科学与工程 指导教师:钱积新 2003.1.1

加,,Z掌博士学位论文一III- 摘要 (优化命题的解决存在于许多领域,对于国民经济的发展也有着巨大的应用前景。随着优化对象在复杂化和规模化等方面的提高,基于严格机理模型的传统优化方法在实施方面变得越来越困难。厂吖 本文将基于行为的人工智能思想通过动物自治体的模式引入优化命题的解决中,构造了一种解决问题的架构一鱼群模式,并由此产生了一种高效的智能优化算法一人工鱼群算法。 文中给出了人工鱼群算法的原理和详细描述,并对算法的收敛性能和算法中各参数对收敛性的影响等因素进行了分析;针对组合优化问题,给出了人工鱼群算法在其中的距离、邻域和中心等概念,并给出了算法在组合优化问题中的描述;针对大规模系统的优化问题,给出了基于分解协调思想的人工鱼群算法;给出了人工鱼群算法中常用的一些改进方法;给出了人工鱼群算法在时变系统的在线辨识和鲁棒PID的参数整定中两个应用实例j最后指出了鱼群模式和算法的发展方向。 f在应用中发现,人工鱼群算法具有以下主要特点: ?算法只需要比较目标函数值,对目标函数的性质要求不高; ?算法对初值的要求不高,初值随机产生或设定为固定值均可以; ?算法对参数设定的要求不高,有较大的容许范围; ?算法具备并行处理的能力,寻优速度较快; ?算法具备全局寻优的能力; 鱼群模式和鱼群算法从具体的实施算法到总体的设计理念,都不同于传统的设计和解决方法,同时它又具有与传统方法相融合的基础,相信鱼群模式和鱼群算法有着良好的应用前景。∥ / 关键词人工智能,集群智能,动物自治体,人工鱼群算法,f优∥ ,l/。7

人工鱼群算法源代码

%人工鱼群算法 format long Visual=2.5; Step=0.3; N=50; Try_number=50; a1=-10; b1=10; a2=-10; b2=10; d=[]; h=1e-1; Friend_number=50; k=0; m=50; X1=rand(N,1)*(b1-a1)+a1; X2=rand(N,1)*(b2-a2)+a2; X=[X1 X2];% 人工鱼数量 for i=1:N wwww=[X(i,1),X(i,2)]; d(i)=maxf(wwww); end [w,i]=max(d); maxX=[X(i,1),X(i,2)];% 初始公告板记录 maxY=w;% 初始公告板记录 figurex=[]; figurey=[]; figurez=[]; figurex(numel(figurex)+1)=maxX(1); figurey(numel(figurey)+1)=maxX(2); figurez(numel(figurez)+1)=maxY; kkk=0; while(k

nf=0; Xc=0; for j=1:N %聚群行为开始 XXX=[X(j,1),X(j,2)]; if(norm(XXX-XX)maxf(XX)) XXnext1=XX+rand*Step*(Xc-XX)/norm(Xc-XX); if(XXnext1(1)>b1) XXnext1(1)=b1; end if(XXnext1(1)b2) XXnext1(2)=b2; end if(XXnext1(2)b1) XXnext1(1)=b1; end if(XXnext1(1)

人工鱼群算法实现最佳路径选择源码

无约束连续函数优化的人工鱼群算法通用MATLAB源码(2008-11-15 09:49:29)标签:杂谈 题目:无约束连续函数优化的人工鱼群算法通用MATLAB源码 此源码是对人工鱼群算法的一种实现,用于无约束连续函数的优化求解,对于含有约束的情况,可以先使用罚函数等方法,把问题处理成无约束的模型,再使用本源码进行求解,本源码由GreenSim团队原创,转载请注明,有意购买源码或代写相关程序,请与GreenSim团队联系(主页.cn/greensim)。 function [BESTX,BESTY,ALLX,ALLY]=FSOUCP(K,N,V,Delta,L,LB,UB) %% Fish Swarm Optimization for Unconstrained Continuous Problem %% FSOUCP.m %% 无约束连续函数的人工鱼群优化算法 % GreenSim团队原创作品,转载请注明 % Email: % GreenSim团队主页:.cn/greensim % [color=red]欢迎访问GreenSim——算法仿真团队→ [url=.cn/greensim].cn/greensim[/url][/color] %% 此函数实现人工鱼群算法,用于求解无约束连续函数最小化问题 %% 对于最大化问题,请先将其加负号转化为最小化问题 %% 输入参数列表 % K 迭代次数 % N 鱼群规模 % V 人工鱼的感知范围 % Delta 拥挤程度的判决门限,取值0~1之间 % L 觅食行为的试探次数 % LB 决策变量的下界,M×1的向量 % UB 决策变量的上界,M×1的向量 %% 输出参数列表 % BESTX K×1细胞结构,每一个元素是M×1向量,记录每一代的最优人工鱼的状态% BESTY K×1矩阵,记录每一代的最优人工鱼的评价函数值 % ALLX K×1细胞结构,每一个元素是M×N矩阵,记录每一代人工鱼的位置 % ALLY K×N矩阵,记录每一代人工鱼的评价函数值 %% 测试函数设置 % 测试函数用单独的子函数编写好,在子函数FIT.m中修改要调用的测试函数名即可 % 注意:决策变量的下界LB和上界UB,要与测试函数保持一致 %% 参考设置 %[BESTX,BESTY,ALLX,ALLY]=FSOUCP(50,30,0.5,0.3,20,LB,UB)

人工鱼群算法matlab实现

人工鱼群算法m a t l a b 实现 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

function lhl_AF clc;clear all; close all; format long Visual = ; %人工鱼的感知距离 Step = ; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中,figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法matlab实现

人工鱼群算法m a t l a b实 现 Revised by Jack on December 14,2020

function lhl_AF clc;clear all; close all; format long Visual = ; %人工鱼的感知距离 Step = ; %人工鱼的移动最大步长 N = 10; %人工鱼的数量 Try_number = 50;%迭代的最大次数 delta=; %拥挤度因子 a1 = -10; b1 = 10; a2 = -10; b2 = 10; d = [];%存储50个状态下的目标函数值; k = 0; m = 50;%迭代次数 X1 = rand(N,1)*(b1-a1)+a1; %在-10~10之间,随机生成50个数; X2 = rand(N,1)*(b2-a2)+a2; X = [X1 X2]; %X = ones(N,2); %for i = 1:N % X(i,1)=-10; % X(i,2)=10; %end % 人工鱼数量,两个状态变量X1和X2; %计算50个初始状态下的; for i = 1:N www = [X(i,1),X(i,2)]; d(i) = maxf(www); end %公告牌用于记录人工鱼个体的历史最好状态 [w,i] = max(d); % 求出初始状态下的最大值w和最大值的位置i; maxX = [X(i,1),X(i,2)]; % 初始公告板记录,最大值位置; maxY = w; % 初始化公告板记录,最大值; figurex = []; figurey = []; figurez = []; figurex(numel(figurex)+1) = maxX(1); % 将maxX(1)放入figurex中,figurey(numel(figurey)+1) = maxX(2); % numel返回数组或者向量中所含元素的总数,matlab数组下标默认是从1开始的 figurez(numel(figurez)+1) = maxY; while(k

人工鱼群算法的现状与改进分析

人工鱼群算法的现状与改进分析 王闯,薛婷,孙林燕 大连海事大学,辽宁大连 (116026) E-mail: wch-7408549@https://www.wendangku.net/doc/c110996627.html, 摘要:本文首先对人工鱼群算法目前的发展情况进行了简单的综述。然后,通过分析人工鱼群算法的优点和缺点,提出了四种改进思路-改进参数、改进鱼群行为、高阶行为模式、与其它优化算法相融合,并用已有的改进算法加以论证。进而为人工鱼群算法的改进研究提供了新的便利。 关键词:人工鱼群算法,优化算法,算法改进 1. 引言 优化命题的解决存在于许多领域,对于国民经济的发展也有着巨大的应用前景。随着优化对象在复杂化和规模化等方面的提高,基于严格机理模型的传统优化方法在实施方面变得越来越困难。 人工鱼群算法(Artificial Fish-swarm Algorithm,AFSA)是一种基于模拟鱼群行为的优化算法,是由李晓磊等[1]于2002年提出的一种新型的寻优算法。AFSA是一种新型的思路,从具体的实施算法到总体的设计理念,都不同于传统的设计和解决方法,但同时它又能与传统方法相融合。因此,AFSA自提出以来,得到了国内外学者的广泛关注,对算法的研究应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。AFSA己经成为交叉学科中一个非常活跃的前沿性研究问题。 2. 研究现状 在基本AFSA中,主要是利用了鱼群的觅食、聚群和追尾行为,从构造单条鱼的底层行为做起,通过鱼群中各个体的局部寻优,达到全局最优值在群体中突现出来的目的。通过研究发现,AFSA具有以下特点[1]: l)算法只需要比较目标函数值,对目标函数的性质要求不高; 2)算法对初值的要求不高,初值随机产生或设定为固定值均可以; 3)算法对参数设定的要求不高,有较大的容许范围; 4)算法具备并行处理的能力,寻优速度较快; 5)算法具备全局寻优的能力,能够快速跳出局部极值点。 从目前对AFSA的研究来看,绝大部分集中在如何应用AFSA解决实际问题,对于算法本身的研究和优化,见到的还不多。 通过深入研究和实践发现,AFSA虽然具有很多优良的特性,但它本身也还是存在一些问题,如随着人工鱼数目的增多,将会需求更多的存储空间,也会造成计算量的增长;对精确解的获取能力不够,只能得到系统的满意解域;当寻优的区域较大,或处于变化平坦的区域时,收敛到全局最优解的速度变慢,搜索效率劣化;算法一般在优化初期具有较快的收敛性,而后期却往往收敛较慢。这些算法本身存在的问题,在一定程度上也影响了算法的实际应用。 因此,针对以上缺点,研究如何对人工鱼群算法进行优化、改进,解决算法本身存在的问题,提高算法求解各类优化问题的适应性,提高算法的搜索效率,具有比实际应用研究更重要的意义。

群智能优化算法综述

现代智能优化算法课程群智能优化算法综述 学生姓名: 学号: 班级: 2014年6月22日

摘要 工程技术与科学研究中的最优化求解问题十分普遍,在求解过程中,人们创造与发现了许多优秀实用的算法。群智能算法是一种新兴的演化计算技术,已成为越来越多研究者的关注焦点,智能优化算法具有很多优点,如操作简单、收敛速度快、全局收敛性好等。群智能优化是智能优化的一个重要分支,它与人工生命,特别是进化策略以及遗传算法有着极为特殊的联系。群智能优化通过模拟社会性昆虫的各种群体行为,利用群体中个体之间的信息交互和合作实现寻优。本文综述群智能优化算法的原理、主要群智能算法介绍、应用研究及其发展前景。 关键词:群智能;最优化;算法

目录 摘要 (1) 1 概述 (3) 2 定义及原理 (3) 2.1 定义 (3) 2.2 群集智能算法原理 (4) 3 主要群智能算法 (4) 3.1 蚁群算法 (4) 3.2 粒子群算法 (5) 3.3 其他算法 (6) 4 应用研究 (7) 5 发展前景 (7) 6 总结 (8) 参考文献 (9)

1 概述 优化是人们长久以来不断研究与探讨的一个充满活力与挑战的领域。很多实际优化问题往往存 在着难解性,传统的优化方法如牛顿法、共扼梯度法、模式搜索法、单纯形法等己难以满足人们需求。 因此设计高效的优化算法成为众多科研工作者的研究目标。随着人类对生物启发式计算的研究, 一些社会性动物( 如蚁群、蜂群、鸟群) 的自组织行为引起了科学家的广泛关注。这些社会性动物在漫长的进化过程中形成了一个共同的特点: 个体的行为都很简单, 但当它们一起协同工作时, 却能够“突现”出非常复杂的行为特征。基于此,人们设计了许多优化算法,例如蚁群算法、粒子群优化算法、混合蛙跳算法、人工鱼群算法,并在诸多领域得到了成功应用。目前, 群智能理论研究领域主要有两种算法: 蚁群算法(Ant Colony Optimization, ACO) 和粒子群优化算法(ParticleSwarm Optimization, PSO)。 2 定义及原理 2.1 定义 群集智能优化算法源于对自然界的生物进化过程或觅食行为的模拟。它将搜索和优化过程模拟成个体的进化或觅食过程,用搜索空间中的点模拟自然界中的个体;将求解问题的目标函数度量成个体对环境的适应能力;将个体的优胜劣汰过程或觅食过程类比为搜索和优化过程中用好的可行解取代较差可行解的迭代过程。从而,形成了一种以“生成+检验”特征的迭代搜索算法,是一种求解极值问题的自适应人工智能技术。各类优化算法实质上都是建立问题的目标函数,求目标函数的最优解,因而实际工程优化问题均可转化为函数优化问题。其表达形式如下: 求: , ,2,1,0)(..), (min , ,,2,1,),,,(21Lm j X g t s X f n L i x L x x X i T n i =≤== 。Ω∈X 其中, i X 为设计变量;)(X f 为被优化的目标函数;0)(≤X g j 为约束函数;Ω为设计变量的 可行域。

相关文档