论文总字数:22142字
摘 要
本文首先分别对差分进化算法、粒子群算法、蚁群算法以及人工鱼群算法这四种群智能优化算法进行了学习研究,然后选择了合适的程序语言分别对四种群智能优化算法的原理进行了代码实现以及程序的界面设计和实现。
本文非常重视群智能优化算法原理的学习和研究,主要是因为对算法原理的充分理解是完成代码实现的一个非常重要的前提。在算法的原理部分分别从算法的简介、算法的基本原理以及算法的基本流程对算法进行了输入的研究和学习。
在进行程序的实现时,分别从需求分析、程序语言选择、程序算法的选择与设计、程序总体设计、程序的界面设计以及程序的具体设计进行了详细的详细的阐述和分析。然后接着对程序的使用方法和步奏也进行了非常详尽的解释。
然后对四种群智能算法进行了34个标准测试函数的测试并展示了测试结果,对整体的测试结果进行了简单的分析。
最后是对本毕业设计的总结。
关键词:群智能优化算法、差分进化算法、粒子群算法、蚁群算法、人工鱼算法、matlab、程序设计、界面设计。
The program design and related research based on swarm intelligence optimization algorithm
Abstract
Firstly, respectively the differential evolution algorithm, particle swarm algorithm, ant colony algorithm and artificial fish swarm algorithm which swarm intelligence optimization algorithm is studied, and then select the appropriate programming language respectively four swarm intelligence optimization algorithm and the principle of the code in order to design and realize the interface and program.
In this paper, we attach great importance to the study and research of swarm intelligence optimization algorithm, which is because the full understanding of the principle of the algorithm is a very important prerequisite for code realization.. In the part of the algorithm, the introduction of the algorithm, the basic principle of the algorithm and the basic flow of the algorithm, the algorithm is studied and studied.
When carrying out a program to achieve, respectively, from the needs analysis, programming language selection, selection and design of the program algorithm, the program overall design, interface design, and detailed design of the program that was elaborated in detail and analysis. Then followed the program instructions also explained in detail.
Then the four of swarm intelligence algorithm has been tested 34 standard test functions and shows the test results, the overall test results for a simple analysis.
Finally, there is a summary of the graduation project..
KEYWORDS: Swarm intelligence optimization algorithm, differential evolution algorithm, PSO algorithm, ant colony algorithm, artificial fish algorithm, MATLAB, programming and interface design.
目录
摘要 I
Abstract II
第1章 绪论 1
1.1 群智能算法 1
1.2 项目背景 1
1.3 项目准备 2
1.4 论文内容安排 2
第2章 四种群智能算法学习与研究 3
2.1 差分进化算法 3
2.1.1 差分进化算法简介 3
2.1.2 差分进化算法原理 3
2.1.3 差分进化算法的研究及改进 5
2.2 粒子群算法 6
2.2.1 粒子群算法简介 6
2.2.2 粒子群算法的原理 6
2.2.3 粒子群算法的研究及改进 7
2.3 蚁群算法 8
2.3.1 蚁群算法简介 8
2.3.2 蚁群算法原理 9
2.3.3 蚁群算法的研究及改进[26] 9
2.4 人工鱼群算法 10
2.4.1 人工鱼群算法的简介 10
2.4.2 人工鱼群算法原理 10
2.4.3 人工鱼群算法的研究及改进 12
第3章 基于MATLB的四种群智能优化算法的程序设计 14
3.1 需求分析 14
3.2 程序语言的选择 14
3.3 程序算法的选择与设计 15
3.3.1 差分进化算法 15
3.3.2 粒子群算法 15
3.3.3 蚁群算法 16
3.3.4 人工鱼群算法 17
3.4 程序的总体设计 18
3.5 程序界面设计 18
3.6 程序的具体实现 22
3.7 程序使用说明 23
第4章 四种群智能算法标准函数测试 26
4.1 参数设置 26
4.2 测试结果 26
4.3 测试结果分析 27
第5章 总结 29
参考文献 30
致谢 32
绪论
群智能算法
和很多种自适应随机搜索算法不同,演化计算技术创新性的提出了“种群”的概念,这种概念对最优解的搜索是通过种群里面的个体之间的相互关系来实现的[1],这种新的概念相对于传统的优化方法在寻找附在比较复杂的优化问题的最优解的时候有着很大的优势。近年来把注意力放在群智能算法上的学者越来越多,群智能算法和人工生命,尤其是进化策略以及遗传算法有很大的关系。进化方法和 群智能中的群体指的是“一群互相之间能之间或者间接传递信息的个体,这些各自也能够相互协作从而对分布式的问题进行解决”,而群智能则是指“没有智能的个体通过相互之间的协作从而展现出的智能行为的特症”。 群智能在缺少相对集中的控制并且没有全局模型的支持的条件下,对寻找相对繁琐的分布式问题提有着非常大的效果[2] 。
群智能是基于概率搜索的算法,和其它的依托于梯度应用的算法是不一样的。 尽管概率搜索算法一般都需要非常多的评价函数,但是它还是好于梯度算法以及经典的演化算法的[3] :(1) 没有集中的控制限制,单独的个体如果出了问题的话整个问题的求解是不会受到牵连的,这使得系统拥有非常好的稳定性; (2) 通过间接的信息传递从而保证了算法的可拓展性; (3) 此算法的模型是并行式的,多处理器在使用这种算法的时候会非常的有效率;(4) 对于连续性以及间断性的问题都能处理; (5) 算法实现起来相对简单。
群智能算法实现起来简单,算法里仅用到一些基本的数学操作,并且群智能算法在处理数据时仅需要很少的运算资源,这样处理器以及内存的负担也会降低很多。并且这种算法在没有目标函数的梯度信息而仅有目标函数的输出值的情况下就能顺利进行。经过很多研究者们对于群智能算法的研究以及测试,已经能充分的表明群智能算法在很多全局的优化问题的处理中有着非常好的效果。 另外,由于群智能算法的并行性以及分布式的特点,使得群智能算法在处理很多大数据处理问题上有着很大的优势。从上面的分析和叙述可以看出,群智能算法不管是在理论研究方面还是实际问题的处理方面都说是有着很大的意义与价值的。
项目背景
群智能算法是一种新的优化算法,在近年来越来越受到很多研究学者们的关注,它和人工生命,尤其是进化策略以及遗传算法有很大的关系[4]。在人类生产生活中起着积极重要的作用,能够指导工业生产,避免资源的浪费。也能通过对实际问题进行建模,并根据群智能算法进行仿真预测,有着非常重大的意义。
在对优化算法的研究中,国内的很多学者提出了很多种新的群智能优化算法。然而,其中的很多种并未经过严格的Computational Study,所以在实际使用中往往难以判断它们究竟适合于哪些函数的寻优计算。
所以就亟需一种客观的比较方法和工具,本毕业设计正是要通过对群智能优化算法进行相关的学习研究,并选取合适的程序语言进行相关编程,最终在统一的界面里面实现各个群智能优化算法的比较,通过调节相应的参数来对各种不同情况进行试验来得出各个群智能优化算法的优点和缺点。
项目准备
本毕设前期的准备工作比较多,首先必须要对四种不同的群智能优化算法进行相关的了解,然后再了解的基础上要对四种算法的原理进行研究学习,这是后期实现程序设计的先决条件。
然后要选择合适的程序语言并进行一定的学习研究,以方便后期对算法原理代码实现的顺利进行,另外还要学习相应程序的界面设计方面的知识,因为本项目旨在设计一个简单并且实用的程序来实现对四种不同的群智能优化算法的测试与横向对比。
论文内容安排
本论文一共分为五个章节:
第一章为绪论,主要简单介绍了群智能优化算法和本项目的项目背景以及为保证项目顺利进行的准备工作,以及论文的内容安排。
第二章分别对差分进化算法、粒子群算法、蚁群算法以及人工鱼群算法进行了相关的学习与研究。
第三章为基于Matlab的程序语言设计,分别从需求分析、语言选择、总体设计、界面设计、具体实现以及使用说明等方面进行了详细的阐述。
第四章对标准的benchmark测试函数进行了试验,然后针对测试的结果进行了简单的分析。
第五章则是对本论文的总结。
四种群智能算法学习与研究
差分进化算法
差分进化算法简介
差分进化算法(DE,Differential Evolution)是Rainer Storn和Kenneth Price为了解切比雪夫多项式而在1996年一同提出的。它是一种采用了浮点矢量编码的算法,它是在连续的空间中进行随机搜索的[5]。它的核心就是个体之间进行的交叉、变异和选择的操作,而这些操作是由父代个体之间的差分矢量所决定的。种群里面不同的个体之间随机地存在合作或者竞争的竞争的关系,而差分进化算法正是靠着不同个体之间的这种关系来实现的,差分进化算法实际上是一种以实数编码为基础的进化算法,但是它同时也具有保优的思想。
差分进化算法原理
差分进化算法通过NP(种群数量)个D(决策变量数量)维向量在搜寻空间里进行直接的搜寻。差分进化算法主要的三个操作是异操作、交叉操作以及选择操作。变异操作是指:先任意地选两个个体矢量,相减得到差分矢量,然后再给差分矢量一定的权值,再将其加到另一个任意算子的个体上,从而生成变异矢量。而交叉是指把变异矢量的参数和目标矢量的参数进行混合,从而产生试验矢量。选择操作是指:假如试验矢量的适应度相比目标矢量的适应度要好的话,试验矢量就会代替目标矢量去承担生成下一代的任务。在种群中的任意一代的进化中,所有的个体矢量都会有一次机会去成为目标矢量。原始的种群是在搜索空间里随机产生的,并且原始的种群规模必须要能够覆盖过整个搜索空间。原始群体是通过均匀的随机分布函数来产生的,此操作的基本原理如下:
变异操作
差分进化算法的变异成部分是由父代的差分矢量组成的,每一个矢量与父代群体中两个不相同的个体相对应。定义为差分矢量[6]。其中 和 代表的是群体里面两个不相同的个体的。将差分矢量加到一个任意选中的个体矢量上,就产生了变异矢量。对任何一个目标矢量,变异操作位,是不相等的整数,并且 与目的标矢量的 i 不同,因此群体的大小必须符合 。
交叉操作
种群里面目的矢量个体,和变异矢量进行交叉,就生成新的试验个体。通过随机抽取,保证 至少有一位是由直接影响的,从而确保了个体的进化。而其余的位,可以通过一个交叉概率因子CR,来由此决定中哪一位是受Vt 1i直接影响的,哪位由贡献。交叉操作的方程为
上式中,是0到1之间任意地一个数,j表示的是第j个变量,CR表示交叉概率。,是任意选择的维数变量的标号,这样次才能确保测试矢量最少有一维变量是被变异矢量决定的,否则的话假如测试矢量和目标矢量相等的话就不会产生新的后代了。由上式可知,对的作用与CR是成正相关关系的,当 CR=1 时,,这会增加局部搜索的速度并且还会增加熟练的速率;对的作用和CR是成负相关关系的,假如 的时候时, 便会 和相等,这会增加物种的多样性并且会对全局搜索产生良好的效果。
选择操作
差分进化算法在群体进化过程中整体上是一种贪婪的策略,父代群体经过交叉和变异的操作产生新的个体,然后和进行相互竞争,谁的适应度更好谁就会被选为子代。
对于在函数应用中有以下说明:
关于适应度函数f,最小化适应度函数是给定一个参数p,然后找到一个合适的m满足,最大化适应度函数是给定一个参数p,然后找到一个合适的m满足。
设 是群体中的一个任意的个体,基本的差分进化算法的描述为:首先初始化群体中的所有的个体。然后在得到适应值合适的个体或者达到最大迭代次数之前,对群体中的所有个体重复如下操作:
首先,在群体中任意地挑选三个个体abc。任意选一个 ,其中n表示为待解决问题的维度。然后对所有的进行下面的操作。可能生成一个随机数 的新个体;如果或者, 则,否则;假如的话,就用新生成的代替原始的来当做搜索结果,假如,就继续将作为搜索结果。
必须要说明的是缩放银子F必须在0到2之间,交叉因子CR必须在0到1之间,种群数量NP必须大于3。
剩余内容已隐藏,请支付后下载全文,论文总字数:22142字
相关图片展示:
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;