1、西南交通大学本科毕业设计(论文)第 I 页西 南 交 通 大 学本科毕业设计(论文)基于鱼群算法的函数寻优算法年 级:2013 级学 号:20133798姓 名:林安森专 业:数学与应用数学指导老师:卿铭西南交通大学本科毕业设计(论文)第 II 页2017 年 5 月 院 系 数学学院 专 业 数学与应用数学 年 级 2013 姓 名 林安森 题 目 基于鱼群算法的函数寻优算法 指导教师评 语 西南交通大学本科毕业设计(论文)第 III 页指导教师 (签章)评 阅 人评 语评 阅 人(签章)成 绩答辩委员会主任 (签章)年 月 日西南交通大学本科毕业设计(论文)第 IV 页毕业设计(论文)任务
2、书班 级学生姓名学 号发题日期: 年 月 日 完成日期: 月 日题 目1、本论文的目的、意义2、学生应完成的任务西南交通大学本科毕业设计(论文)第 V 页西南交通大学本科毕业设计(论文)第 VI 页3、论文各部分内容及时间分配:(共 12 周)第一部分( 周) 第二部分( 周) 第三部分( 周)第四部分( 周) 第五部分( 周)评阅及答辩( 周)备 注指导教师: 年 月 日审 批 人: 年 月 日西南交通大学本科毕业设计(论文)第 7 页摘 要群体智能算法已经成为寻优算法的重要研究方向,国内外的学者都在不断的探索新的智能算法。在一些寻优问题中,如在对 Rosenbrock 函数这一类非凸,病态
3、单峰函数的寻优,传统方法如牛顿法等并不能得到全局最优解,容易陷入局部最优解,并且计算过程复杂,但群体智能算法就能很好的解决此类问题。智能优化算法包括遗传算法、蚁群算法。模拟退火算法和人工鱼群算法等。本文主要讲述人工鱼群算法。该算法是一种模拟低等生物行为的仿生算法,是一种新型的寻优策略,并且具有鲁棒性强、全局收敛性好、对初值敏感度低等众多优点。本文首先对人工鱼群算法的原理以及基本行为思想和实现方式进行了详细的描述,给出了流程图和主要实现方法,并编写寻优代码,利用经典智能算法验证函数,带入实验进行模拟仿真。然后通过对其中一些关键参数如视野、步长等进行分析,了解到算法后期收敛精度低收敛速度慢等缺点,
4、对该算法进行改进。加入了自适应步长,初始值均匀分布等改进方案,使得算法在前期能更好的照顾全局性,在后期加快收敛速度。最后把改进后的人工鱼群算法应用到了组合优化问题中。通过旅行商问题(Travelling Salesman Problem 简称TSP)举例,描述人工鱼群算法在该问题上的实现方式,编程解决了 16 个城市的 TSP 问题。目前鱼群算法的应用还局限于无约束、连续、单目标的确定性优化问题上,在日后的研究中,应当注重该算法在多约束、离散、多目标等不确定优化问题上的研究和应用。关键词:人工鱼群算法 全局 邻域 最优值AbstractGroup intelligence algorithm
5、has become an important research direction of the optimization algorithm, domestic and foreign scholars are constantly exploring new intelligent algorithms. In some problems, for example, in the case of Rosenbrock function, we can not obtain the global optimal solution, which is easy to fall into th
6、e local optimal solution and the 西南交通大学本科毕业设计(论文)第 8 页complicated process, but the traditional method such as Newton method can be obtained. The group intelligence algorithm can solve such problems well. The intelligent optimization algorithm includes ant colony algorithm, particle swarm algorithm,
7、artificial fish swarm algorithm and so on.This paper focuses on the artificial fish swarm algorithm. The algorithm is a kind of bionic algorithm which simulates the low biological behavior. It is a new kind of optimization strategy, and has many advantages such as strong robustness, good global conv
8、ergence and low sensitivity to the initial value. In this paper, the principle of artificial fish swarm algorithm and the basic behavior thought and realization method are described in detail. The flow chart and main implementation method are given, and the optimal code is written, and the function
9、is verified by classical intelligent algorithm. simulation. Then, some key parameters such as field of view, step length and so on are analyzed, and the shortcomings of low convergence speed and low convergence speed are obtained. The algorithm is improved. Adding the adaptive step size, the initial
10、 value of uniform distribution and other improved programs, making the algorithm in the early to better take care of the overall situation, in the latter part of the convergence rate to speed up. Finally, the improved artificial fish swarm algorithm is applied to the combinatorial optimization probl
11、em. This paper describes how the artificial fish swarm algorithm is implemented on the problem by programming the Traveler Salesman Problem (TSP), and the programming solves the TSP problem of 16 cities.At present, the application of fish algorithm is also limited to the problem of deterministic opt
12、imization of unconstrained, continuous and single target. In the future research, we should pay attention to the research of discrete, multi-objective and other uncertain optimization problems. application.key words:AFSA Global Area The optimal value西南交通大学本科毕业设计(论文)第 9 页摘 要 5Abstract57绪论 81.课题学术背景和意
13、义 82.国内外进展 83.论文各部分的主要内容 9第一章 鱼群算法原理 91.1 群体智能 91.1.1 群体智能遵守五条行为准则:10西南交通大学本科毕业设计(论文)第 10 页1.1.2 群体智能的特点:101.2 人工鱼群模式 101.2.1 人工鱼群算法的概念 111.1.2 人工鱼群算法的主要行为 121.3 人工鱼 131.4 问题的解决 13第二章 鱼群算法的实现 132.1 变量及函数定义 142.2 行为描述 152.3 算法描述 172.4 算法验证 182.5 各个参数对结果的影响 202.6 人工鱼群算法的收敛基础 23第三章 算法的改进 243.1 自适应步长鱼群算
14、法 243.1.2 仿真实验以及分析 263.2 初始均匀分布全局人工鱼群算法 283.2.1 初始均匀分布 283.2.2 全局人工鱼群算法 293.2.3 仿真实验以及分析 30第四章 鱼群算法应用 324.1 组合优化问题 334.2 旅行商问题 334.3TSP 问题求解 344.3.1TSP 求解一般思路 34西南交通大学本科毕业设计(论文)第 11 页4.3.2 人工鱼群算法求解 TSP354.3.3 行为选择 364.4.4 仿真实验 36结论 38参考文献 39绪论1.课题学术背景和意义随着大数据时代的到来,科学研究正式步入了多学科相互交叉、渗透、影响的时代。人类对宇宙奥秘的探
15、寻从未停止前进的步伐,在探索的过程中,越来越多的问题开始呈现在我们的眼前。面对系统的复杂性,传统方法已然陷入困境,寻找一个适合大规模并行操作,且具有智能特征的优化算法已成为许多有关学科的主要研究目标。最优化(Optimization)问题,是应用数学的一个重要分支,是一门研究问题相当广泛的学科,它主要目标是寻找目标函数的最优解,然后来选择决策问题的最佳方案,并讨论这种算法的理论基础和在实际问题中的表现。在计算机时代随着技术的进步,越来越多的大规模优化问题得到了解决方案。所以最优化问题才能广泛的应用于经济计划、工程设计、生产管理、交通运输、国防等重要领域,并受到政府部门、科研机构和产业部门的高度
16、重视。国内外的应用研究表明,通过经过优化技术的处理,能大大提高系统效率,降低能耗,经济效益和资源利用的方式均有显著的提升,随着问题规模的扩大,这种效果越加显著。在面对一些大型问题时,常规的寻优算法无论是在计算速度,精度,收敛方式等方面都不能满足要求。因此,针对常规算法的缺点,应运而生出了一些群体智能优化算法,研究群体智能优化算法来解决这些问题,对于时代具有很重要的意义。西南交通大学本科毕业设计(论文)第 12 页一些常见的群体智能算法,如遗传算法,粒子群算法,混沌算法和人工鱼群算法等。2.国内外进展人工鱼群算法自 2002 年李晓磊等人提出以来,已经获得了国内外学者的广泛关注,算法已经应用实施
17、到了许多领域,从一维静态问题发展到解决多维组合动态问题,从连续问题发展到解决离散问题。一些学者对本算法的参数,结构以及各种行为进行调整,从而提出了改进的鱼群算法,在文献1中,主要针对人工鱼群算法寻优精度不高,后期收敛慢等特点,通过采用一种自适应步长的调整方式对算法进行了改进。文献2中从鱼群生活的行文特性出发,从图论的角度观察算法的搜索过程,控制搜索过程中每条鱼的行进方向,对基本人工鱼群算法进行改进。而其他一些文献表明,从去除步长限制,加入“跳跃”行为来改变人工鱼的参数,或者通过基于多群体竞争的改进方式对本算法做出了改进。而为了提高算法的性能,一些学者把其他的智能算法,如模拟退火算法,粒子算法等
18、智能算法与人工鱼群算法相结合,大大加快了算法的收敛速度,加强了算法的局部搜索性能。经过几年的发展,虽然人工鱼群算法没有像蚁群算法,遗传算法等算法受到广泛关注和应用,但是在国内的电力系统,神经网络,油田定位,信号处理,模糊控制器设计等方面得到了初步的应用。3.论文各部分的主要内容本文的第一章主要是对群体智能模式和低级物种的群体行为来展开叙述,由鱼群的一些基本行为来引申出算法的一些基本步骤,图示给出算法实现的基本原理。第二章主要给出了基本行为(如觅食行为,聚群行为等)的具体实现方法和算法描述以及流程图,再通过验证函数编程对算法进行验证,再而讨论算法的参数对算法结果的影响。第三章根据目前对算法的改进
19、建议做出改进,西南交通大学本科毕业设计(论文)第 13 页评价改进前后算法的优劣程度。第四章对主要介绍了了本算法在组合优化问题上的运用,以一个实际的案例,旅行商(TSP)问题举例,利用人工鱼群算法来求解该问题。第一章 鱼群算法原理1.1 群体智能人类在早起就开始对自然界中存在的群体行为产生了浓厚的研究兴趣,比如为什么鸟群在集体迁徙过程中,几万只鸟一起飞行而不会产生碰撞。大雁排成人字形飞行更符合空气动力学,蝙蝠在黑暗的洞穴中快速飞行却不会碰撞到岩壁。对于这现象,有一种解释是说群居生物有自己的一套行为准则,个体在准守这种行为准则的前提下活动,就可以表现出上述行为。群体智能(Swarm/Collec
20、tion Intelligence)这个概念是通过对自然界中的群居生物是观察而得来的。在自然界中,如蚂蚁一般的群居生物在对觅食方法和交流方式上与独居生物的表现形式不同,其中不具备人类所认为的高级智能是最明显的特征。群居生物通过合作交互来表现出的宏观智能即为群体智能。1.1.1 群体智能遵守五条行为准则:(1) 邻近原则( Proximity Principle) ,群体能够进行简单的空间和时间计算;(2) 品质原则(Quality Principle) ,群体能够响应环境中的品质因子;(3) 多样性反应原则( Principle of Diverse Response) ,群体的行动范围不应该
21、太窄;西南交通大学本科毕业设计(论文)第 14 页(4) 稳定性原则(Stability Principle) ,群体不应在每次环境变化时都改变自身的行为;(5) 适应性原则(Adaptability Principle) ,在所需代价不太高的情况下,群体能够在适当的时候改变自身的行为。1.1.2 群体智能的特点:(1) 控制是分布式的,不存在中心控制。具有很强的鲁棒性,对工作环境的适应性强,不会应为个体的故障而影响群体的性能。(2) 个体之间通过“激发工作”方式来间接通信,这种工作模式下个体都具有改变环境的能力。与非直接通信方式相比,这种模式通信具有更高的可扩充性和更低的通信损耗。(3) 由
22、于群体中个体能力的行为规则相对简单,所以能更方便的实现群体智能,因此具有简单性。(4) 群体的复杂行为都是通过个体的简单交互来实现 ,因此群体具有自组织性。1.2 人工鱼群模式鱼群生活在水里,通过觅食来养活自身,在觅食的过程中,鱼个体主要通过探寻环境和尾随其它个体来寻找食物浓度更高的地方,所以在个体大规模聚集的地方一般是本水域中食物浓度较高的地方,也是寻优过程中函数值较优的区域。人工鱼群算法主要是通过模仿鱼群觅食和追尾这一系列特征来实现函数寻优。1.2.1 人工鱼群算法的概念人工鱼群算法(Artificial Fish Swarm Algorithm,AFSA)是 2002 年,李晓磊博士等人
23、受鱼群行为的启发,基于群体智能而提出的优化算法,该算法主要是通过模仿鱼群生活习性,在搜索域中寻找最优值,是群体智能思想的一个具体应用。西南交通大学本科毕业设计(论文)第 15 页生物的视觉功能是极其复杂的,即使是尖端的影像技术也不能达到生物视觉的能力。为了 简单的实现鱼类视觉概念,通过以 下方式来实现人工鱼的视觉功能。图 1- 1 人工鱼视觉如图 1-1 所示,设置在位置 处放置一条人工鱼, 视野 表示它能观察到环境X的最远距离,记为 ,每次移动的最大距离称为步长记为 .位置 是当Visual StepvX前时刻人工鱼 的一个视点,如果视点位置处的食物浓度高于当前所处位置,X那么人工鱼则向视点
24、方向前进一步,即到达位置 ;如果视点位置 的食物nextXv浓度低于当前位置的食物浓度,那么人工鱼继续观察视野范围内其他的视点,如等位置。随着巡视的次数增多,人工鱼对环境中食物的分布情况了解更全面,1nx这样有助于做出下一步相应的判断和决策。在巡视状态无限循环的情况下可以通过随机行为来跳出巡视,这样能一定程度的帮助算法摆脱局部最优,有利于全局寻优。设上图中人工鱼所处的位置 为 ,视点位置 为X)( nx,.21vX那么巡视过程如式(1-1)、移动过程如式(1-2):)x,.(v2v1nVX(1-1)nirisualivi ,.21,西南交通大学本科毕业设计(论文)第 16 页(1-2 )rSt
25、epXXv |next其中, 为区间0,1之间的随机数, 和 分别为视野和步长的最大rVisualSte值。由于在环境中同伴的个体数目有限,所以人工鱼个体在环境中感应其他同伴的距离和同伴处的食物浓度并作出相应决策并调整自身位置的方式与以上方法类似。1.1.2 人工鱼群算法的主要行为1.觅食行为鱼群通过觅食生存,个体觅食的行为称为觅食行为,该行为主要体现在人工鱼向食物浓度高的地方移动。该行为的主要实现方式是通过视觉等功能,寻找环境中的食物分布。基本原理和上诉视觉概念的实现方式相同。该过程的算法描述为向着较优的方向前进。食物浓度即为函数值。2.聚群行为鱼类在生活中,为了躲避天敌来保证生存,会自然的
26、聚集在一起,而聚集更多鱼的地方一般为食物浓度较高的地方,这是鱼类生活的常见现象,称为聚群行为。聚群要保证尽量避免过多的个体拥挤在一起,个体的方向保持是一致,尽量向伙伴的中心一动。3.追尾行为当邻近的一条或者几条鱼发现食物后,附近范围内的鱼会尾随其后,向它游来,进而会招致更远的鱼游向该方向。算法可以理解为向附近最优的方向移动。4.随机行为当鱼在水中自由的游动时,可以认为该鱼的游动方向是随机的,事实上这是为了在大范围中搜寻食物和伙伴。在寻优算法中可以描述为随机寻找一个初西南交通大学本科毕业设计(论文)第 17 页值,计算其函数值。以上行为是鱼的典型行为,基本行为每时每刻都会发生,他们之间既能相互转
27、换也能相互联系。在算法实施过程中,如何利用有效的方法来实现以上行为将会是未来寻优算法建立所面临的重要问题。1.3 人工鱼生物鱼的虚拟实体称为人工鱼,主要是用来存储数据和通过一些列行为对环境实现探索。通过感知环境刺激来做出一些列的行为,从而改变自身的参数。人工鱼所处的环境是问题的定义域,目标函数的函数值表示当前位置食物浓度。它下一时刻的行为选择取决于自身状态和目前的环境,还通过自身的行为,影响其他同伴的活动。人工鱼能够自主游动是通过行为评价的方式来实现的。在优化问题中,可以选用以下两种评价方式:选择最优行为执行,即在当前状态下,哪一种行为的前进方向最优,则选择哪种行为;选择较优行为前进,即任意选
28、择一种行为,只要该行为能向优的方向前进,则选择该行为。两种评价方式的选择应该根据具体问题具体分析。1.4 问题的解决问题的解决是通过人工鱼自治体的活动以某种形式表现出来的。在寻优过程中,通过两种方式表现出:一种是通过人工鱼在寻优的最终结果分布情况在确定最优解,随着在寻优的过程的进行,人工鱼最终会向极值点附近聚集,在全局极值点周围的人工鱼会更多;另一种表现方式是通过个体来表现出来的,在寻优过程中,记录最优个体的状态,并在寻优结束后比较分析所以状态中的最优值。西南交通大学本科毕业设计(论文)第 18 页第二章 鱼群算法的实现通过上一章对人工鱼模式的介绍,我们对人工鱼有了初步的理解,对人工鱼个体的自
29、治行为有所了解,本章将从深层意义上对人工鱼群算法的机制原理进行探讨分析,实现人工鱼行为的算法描述,从解决问题的角度对基本人工鱼群算法的数学模型进入深入的分析,给出具体的实现步骤和程序流程图并编程计算函数寻优问题。算法基于 animals 模式,采用自上而下的设计方法,所有代码通过 matlab 实现。带入具体函数寻优问题,用本算法解决该问题,寻找最优值。2.1 变量及函数定义算法中所用到的变量名以及变量含义如表 2-1 所示,各个行为所用的函数命名以及功能如表 2-2 所示,实现的代码在附件中。序号变量名 变量含义1 N人工鱼群个体数目2 iX人工鱼个体的位置状态, 其中),.(21i nxX
30、(i=1,2,.,n)为待优化变量iX3 )(iifY为目标函数,即为 i 号人工鱼所处位置的食物浓iY度4 |,ijijXD人工鱼个体之间的距离西南交通大学本科毕业设计(论文)第 19 页表 2- 1 变量名称序号 函数名 函数功能1 init 初始化鱼群函数2 prey 觅食行为函数3 swarm 聚群行为函数4 follow 追尾行为函数5 dist 计算鱼群个体距离函数6 foodconsistence 当前位置的食物浓度表 2- 2 函数名称2.2 行为描述1.初始化鱼群(init)鱼群中每条人工鱼初始值为一组实数,该实数在待优化问题的定义域随机生成。例如,一个二元的优化问题,生成鱼
31、群的大小为 N,待优化参数 x,y 的5 Visual人工鱼的感知距离6 Step人工鱼移动的最大步长7 拥挤度8 nuberTry_觅食行为尝试的最大次数9 当前觅食行为次数10 MAXGEN最大迭代次数西南交通大学本科毕业设计(论文)第 20 页取值范围分别为x1,y1x2,y2,那么产生 2 行 N 列的初始鱼群,每条人工鱼的两个参数由列向量表示,所以人工鱼初值储存在一个 2 行 N 列的矩阵中,以后对个体的参数改变均通过改变该矩阵的参数实现。2.觅食行为(prey)设当前人工鱼的状态(即位置)为 ,在其视野范围内 按式(2-1 )感知环iX境中的某一随机位置 。 表示生成一个0,1内的
32、随机数。jX()Rand(2.1 )VisulXij 如果在求极大值为问题中 (极大值问题和极小值问题之间可以相互jYi转化,所以下文均只讨论极大值问题。),那么人工鱼则向该方向前进一步到下一位置 ,前进方式如式(2-2)所示:nextiX|(2.2 )();|inexti| randStepij如果不满足 ,则再按式(2.1)重新选择视点 ,判断是否满足前进jYi jX条件,这样总共尝试 次后,如果任不满足条件,则随机移动一步。numberTry_该过程算法流程如图 2-1 所示: 1n ()jRadVisulX()|inext|i randStepXij0|ijiYumberty_()|
33、andSpXiextiYNYN图 2- 1西南交通大学本科毕业设计(论文)第 21 页3.聚群行为(swarm)设人工鱼当前状态为 ,探索当前视野范围内( )的伙伴数目iXvisualji,d以及 伙伴中心位置 ,其中心位置计算方式如式(2.3):fnc(2.3)();d)/(,1VisualnXjinjfjcf ,如果满足 ,那么则表示当前视野内伙伴中心有较多的食物并且不太ifYc拥挤,则按照式(2.4)向伙伴中心方向移动(2.4 )();|inexti| randStepXXic;否者执行觅食行为。流程图如 2-2:ix()|inext|i randStepXXicifcYc,dXnVsu
34、alfji和 中 心 位 置的 个 数 中 人 工 鱼确 定 进 行 觅 食 行 为iYN图 2- 24.追尾行为设人工鱼当前状态为 ,巡视视野范围内( )的伙伴数目 及伙iXvisualji,dfn伴中食物浓度 最大的伙伴位置 ,如果满足 ,则伙伴 所处位置不jYj ifYnj jX拥挤且有多远的食物,那么则按照 式(2.5 )向伙伴 方向移动;j西南交通大学本科毕业设计(论文)第 22 页(2.5)();|maxinexti| randStepXXi否者执行觅食行为。流程图如 2-3 如下ix()|inext|i randStepXicifcYjj,dXnVsualfi最 大 的 鱼和的
35、个 数 中 人 工 鱼确 定 进 行 觅 食 行 为iYN图 2- 35.随机行为在视野内随机选择一个视点,向该视点方向移动,这种行为是觅食行为的默认行为。移动方式如式(2-6)(2.6)();nexti| RandVisulXi2.3 算法描述人工鱼群算法开始时并行指定算法的必要参数如人工鱼的条数 ,函数定N义域,视野 迭代次数 等参数,然后利用 init 函数根据定义域初VisualMAXGEN始化鱼群,计算初始鱼群当前的食物浓度,每条人工鱼根据自身的参数开始执行觅食行为,鱼群在一次迭代中,分别根据聚群行为和追尾行为得到的食物浓度进行判断,选择较为优秀的结果方向前进,并把本次迭代的较优结果
36、记录下来,在进行 MAXGEN 次后,选择最优的结果视为寻优结果。流程图如 2-4 所示:西南交通大学本科毕业设计(论文)第 23 页确 定 最 优 解结 束开 始设 定 N, step,Viual,try_nmber,dltaxgn,e=1在 给 定 范 围 内 初 始化 鱼 群 X1,2.i=Xi聚 群 行 为 , 得 到 ( Xnext1,Yt) Xi追 尾 行 为 , 得 到 ( Xnext2,Yt)Xi=next1Ynext1Y2NXi=next2Ni=+1Ni=Ygen+1eMAXGENY图 2- 42.4 算法验证本次验证我们选择 Rastrigin 函数的反函数,该函数式如(2
37、-7)(2-7) Di iixxxf121 10,10)cos(0-)(该函数是一个多峰函数,在 时取得全局最大值点,最大),.2(DiX值为 0。由于为了实验的直观性,我们本次函数选取的维数 D=2。该函数的三维图象如图 2-5 所示,极值点位于(0,0)处,极值为 0 并且可以看出该函数在极值周围有许多的局部极值点,通常算法易陷入局部极值或者在局部极值附近震荡,所以该函数比较适和用于智能算法的验证。西南交通大学本科毕业设计(论文)第 24 页图 2- 5本次实验我们设定鱼群数量 N=50,迭代次数 MAXGEN=50,Try_number=50,视野 visual=2,拥挤度 =0.618
38、 ,步长 step=1.2。经过仿真实验可以得到如下四幅图,图中的黑点表示当前迭代次数内的最优值。可以看出,鱼群迭代的最优值开始比较离散,鱼群没有向最优值附近靠近。随着迭代次数的增加,鱼群越来越向(0,0)点靠近。最后几乎都在极值点附近搜寻。但是从图 2-10 可以看出,在迭代的过程中,鱼群陷入了局部最优,在第 37 次迭代才跳出局部最优,找到了全局最优,所以该算法目前还是有瑕疵的(容易长时间停留在局部最优,损失迭代精度)。以后的改进可以从该方面入手。图 2- 6.10 次迭代结果 图 2- 7.25 次迭代结果西南交通大学本科毕业设计(论文)第 25 页图 2- 8.40 次迭代结果 图 2
39、- 9.50 次迭代结果图 2- 10.迭代过程运行 10 次算法,所得结果如表 2-3 所示次数 1 2 3 4 5 6 7 8 9 10最优X0.001220.002520.00722-0.001570.00713-0.0116-0.00014-0.000930.00536-0.0016最优Y0.00017-0.002730.000930.00195-0.0031-0.002790.00655-0.005090.00250.00002西南交通大学本科毕业设计(论文)第 26 页最优值f(x)-0.0003-0.00274-0.01051-0.00124-0.01201-0.02822-0.
40、00852-0.00531-0.00693-0.00054最优解平均值-0.017926最优解最小值-0.02822表 2- 3表中结果可以看出,算法目前的精度还不够高,需要进一步的改进。2.5 各个参数对结果的影响算法存在一定的随机性,在相同的参数下,收敛的结果也存在差异,所以在接下来的讨论中所有的验证函数为 Rastrigin 函数,设置不同的参数,对每一组参数的多次寻优结果作为一组数据,然后再多组数据中进行分析,从而确定参数的性质和影响。1.拥挤度因子 (delta)拥挤度因子 是人工鱼群算法中的一个基本参数之一,算法是通过拥挤度因子来限制人工鱼的聚群规模,使得在较优的领域内尽可能多的聚
41、集人工鱼,在次优或者更为次的领域内少的聚集人工鱼最好能做的不聚集。在聚群行为和追尾行为中,分别用到了 和 两个公ifYnj ifYnc式,分别用来判断鱼群伙伴中心位置和人工鱼视野中心的位置是否能前进。如果不拥挤则前进,拥挤则不前进,执行觅食行为。通过文献3中的介绍可以得知 的由来是根据一下公式(2-8)得到(2-8)( 101fn其中 为极值接近水平, 为该期望邻域内聚集的最大人工鱼数目。例如,fn希望在接近极值 70水平的领域内不会聚集超过 3 只人工鱼,那么西南交通大学本科毕业设计(论文)第 27 页=1/(0.7x3)=0.47。那么当 ,则认为当前邻域内人工与聚集过多,不适合向 位置f
42、nYij jY移动。为了验证拥挤度因子对算法的影响,我们通过两个求极大值的函数来验证进行仿真实验,其中人工鱼的总数设为 10,迭代次数为 50,Try_number=10,视野和步长根据函数的定义域来选取。F1 函数如式(2-9)(2-9)10,.sini)(max ytsxyf该函数在(0,0)处有极大值为 1,设其阀值为 0.99F2 函数如式(2-10)(2-10)12.5.x)x03() ma 22xyyf )()(该函数在(0,0)处有全局极值点为 3600,四个局部极值点分别为(-5.12,5.12)(-5.12,-5.12)(5.12,-5.12)(5.12,5.12)局部极值为
43、2758.7823设其阀值为 3500.其中平均迭代次数为收敛到阀值内所需迭代次数的平均值。仿真结果如表2-4 所示。函数 拥挤度因子0.000010.01 0.1 1 10 100 1000西南交通大学本科毕业设计(论文)第 28 页平均迭代次数8.2 9.4 10.5 15.2 17.3 15.6 16.6F1均值 0.9978 0.99 0.9987 0.9998 0.9980 0.9989 0.9992平均迭代次数27.7 25.8 19.2 27.9 31.6 36.2 32.8F2均值 3597.2 3597.6 3596.4 3592.3 3591.7 3596.9 3589.6
44、表 2- 4由仿真结果可以看出拥挤度因子的变化对收敛性能的影响没有明显的规律,对收敛结果的影响也不大,基本上可以忽略不计。在此后的改进过程中,基本可以忽略拥挤度因子对算法的影响,也可把算法设计成不需要拥挤度因子的简单鱼群算法。2.Step 对算法的影响在觅食行为中,人工鱼个体在邻域内搜寻更优的前进方案,这就奠定了算法的收敛基础。分别设步长 Step=10 和 0.5,人工鱼数目为 50,迭代次数为 100,进行算法仿真,图 2-11 中,横坐标为迭代次数,纵坐标为本次迭代最优结果,有图可以看出,大步长的震荡大,迭代精度也不如小步长。而对于不同步长值所用时间,我们计算仿真十次取平均时间可以得到大
45、步长所用时间为 5.3s,小步长所用时间为 7.9s。西南交通大学本科毕业设计(论文)第 29 页图 2- 11由以上仿真结果可以看出,选择较大的步长,有利于人工鱼快速的向极值点收敛,而且收敛速度比小步长快,但是在算法迭代过程中会造成人工鱼在全局极值点附近来回震荡。小步长虽然不能快速的收敛到想要的结果,但是对于算法的后期,靠近极值点的精度会有所提高,震荡幅度也没有大步长大。对于算法的改进,可以考虑在计算前期采用较大的步长,以使算法能快速的收敛,而在算法的后期,可以减小步长,然算法能得到更高的精度。2.6 人工鱼群算法的收敛基础对于一种优化算法,其收敛性往往是大家所关心的问题。在人工鱼群算法中,
46、人工鱼的觅食行为奠定了算法的收敛基础,聚群行为能增强算法收敛的全局性和稳定性,追尾行为则能加快算法的收敛速度和保持算法的全局性。总体看来,算法对于各个参数的取值范围要求还是很宽松的,并且对于算法的初始值并无基本要求。在人工鱼群算法中,查找文献3可知,以下几点因素可以使得人工鱼逃离局部极值实现全局最优。在觅食行为中,如果有较少的 Try_number 次数,那么人工鱼在视野范围内能觅食的更加食物浓度的几率大大减少,那么人工鱼执行随机行为,从而能西南交通大学本科毕业设计(论文)第 30 页实现跳出局部极值范围。聚群行为能实现让少数陷入局部极值领域内的人工鱼向全局极值的人工鱼方向聚集。从而跳出局部极
47、值领域。追尾行为则加快了人工鱼向更优方向移动,使得陷入局部极值的人工鱼跳出局部极值范围。每次移动的步长是在-step,step范围内的一个随机步长,那么当人工鱼向局部极值方向游动时,也有可能转向游向更优方向。当然也有可能游向更坏的方向,但是通过聚群行为等趋于更优的行为的加入,鱼群大体能保持向更优方向移动。拥挤度因子的加入,使得鱼群不会无限制的聚集在一个领域中,食物浓度越大的地方越能聚集更多的鱼群,控制了鱼群的聚集规模,使得鱼群能更为广泛的分布在整个领域。但是这种性质也限制了人工鱼在全局最优点附近不能聚集更多的人工鱼。该方法的设计思想采用自上而下的设计方式,各个人工鱼之间即相互独立也相互联系,使得算法具有更为稳定的收敛基础。