课程设计蜂群算法及其应用

发布 2022-10-01 22:31:28 阅读 8567

1、 研究背景。

伴随着当今社会、经济、文化和科技日新月异的发展,现实生活中面临着许多复杂的非线性大系统和快速反应性系统,这使得我们传统的优化方法逐渐陷入困境。于是,人们开始寻找更快、更好的方法去解决这些复杂问题。在自然界中,那些不起眼的群居低智能的生物表现出来的令人叹为观止的复杂的群体智慧给予我们启迪,如:

蚁群、鸟群、蜜蜂群、鱼群等。在群居生物中,单个个体的智能是简单的,但若干个个体组成的群体却表现出远远超出个体相加的智慧。在群体中,个体间相互合作、相互协调的自组织能力能够完成非常复杂的任务。

这种现象引起众多学者的关注,人们开始研究现象背后存在的机理,并用计算机**其中可循的规律,用以解决传统优化方法难以解决的复杂问题。其中,较为典型且广泛应用的群体智能算法有:蚁群算法、微粒群算法以及蜂群算法等。

二十世纪初期以来,在优化领域中,传统的方法,如:线性规划、非线性规划、对策论、多目标规划、决策论排队论、随机规划、库存论等,不仅在理论上的研究有很大的发展,而且在军事、经济、城市建设规划、工厂生产规划、最优设计等各个方面的应用取得显著成就。但伴随着社会、经济和科学技术的飞速发展,在生产生活**现的许多复杂的非线性系统和快速反应系统等不断的呈现在我们面前,使得传统的优化方法遇到了空前的挑战。

群体智能是指由大量数目的智能个体组成的具有智能的群体,这个群体体现出来的智能绝对不是个体智能的简单相加,而是超过这个和的智能现象。在进行目标搜索时,单个个体虽然也能够寻找到目标,但往往只是局限于局部,并不是全局最好的结果。个体在空间中随机搜寻,在没有得到整个群体的信息反馈时,它的搜索是随机的、低智能的、无规律的。

只有群体问的个体相互合作、相互协调,进行信息共享时,才能表现出来在全局中针对目标的寻优特征。作为智能个体,就其大小和功能来说,又是相对的,要根据所要解决的具体问题而定。另外,群体智能中的个体,在整个群体寻优过程中也并不能时刻保证都具有寻优的特征,其智能寻优方式的实现足通过整个智能群体的优化特征而体现出来的。

人工蜂群算法作为典型的群体智能算法,是基于种群寻优的启发式搜索算法,充分发挥群体中个体问的信息传递,在蜂巢周围寻找到路径最短,食物最丰富的食物源。由于整个觅食过程与旅行商问题的相似性,该算法适合用来解决旅行商的最短路径问题,并取得较好的结果。

蜂群算法(bco,bee colony optimization)是受到自然界的蜜蜂行为启发而提出的一种新颖的元启发式优化算法。根据所受启发的生物机理的不同,蜂群算法可分为两大类:

基于蜜蜂繁殖机理的蜂群算法(bco on propagating)。

基于蜜蜂采蜜机理的蜂群算法(bc0 on gathering)。

两种思想各有其独特的实现原理和发展轨迹。

对于基于繁殖的蜂群算法。abbass发展出一种蜜蜂繁殖优化模型(bmo,bee mating optimization)。 bozorg haddad和a.afshar共同将其发展并应用基于离散变量的水库优化问题中。

随后,bozorg haddad等将同一理论在三种数学问题的测试平台上进行了应用。

蜜蜂的采蜜行为是一种典型的群体智慧行为。yang发展出一种虚拟蜜蜂理论(vba,virtual bee algorithm)来解决数值优化问题。vba中,一群虚拟蜜蜂初始时随机分布在解空间中:

这个蜜蜂根据判决函数计算的适应度来寻找附近的花蜜源。理论中,解的优化程度可以用蜜蜂之间交流的剧烈程度来衡量。对于多变量数值优化问题,karaboga根据蜜蜂采集行为设计了虚拟蜜蜂种群模型(abc,artificial bee colony algorithm),并和basturk一起将abc模型与ga进行了性能上的比较,并进一步与其他比较著名的元启发式理论如:

差分进化(de),粒子群(pso)在非约束数值优化问题上进行了**比较。进而abc理论被扩展应用到解决约束(co,constraint optimization)问题,并在13种比较著名的约束优化问题上与de,pso进行了比较。目前,abc模型的研究主要集中在人工神经网络的训练上。

2、蜂群算法的理论基础。

seely最早提出一种蜂群的群居行为为模型。模型中,群体中的各个角色蜜蜂,只是完成简单的、低智商的任务;但群体中的个体通过舞蹈、气味等信息交互方式使整个群体协同能够完成较为复杂的任务,如建筑蜂巢、繁衍后代和觅食等。

karaboga d在2024年将蜂群算法应用到函数值优化问题上,并提出系统的abc(artificial bee colony algorithm)算法,取得很好的效果。

在人工蜂群算法中,食物源的位置表示待优化问题的一个可行解,食物源的丰富程度代表解的质量,即适应度。在模型中,我们通常设:引领蜂的数量=跟随蜂的数量=群体中解的数量。

算法中,初始化生成m个解,对于每个解都是一个d维向量。而后,蜜蜂开始对全部的食物源进行循环搜索,最大循环次数为mcn。其中,引领蜂会先对全局进行搜索,并比较搜索前后食物源的丰富程度,蜜蜂会选择食物源较为丰富的目标。

当所有的引领蜂完成搜索后,他们会回到信息交流区(舞蹈区)把自己掌握的关于食物源的信息与其他蜜蜂进行信息共享。跟随蜂则会根据引领蜂提供的信息按照一定的概率选择引领蜂进行跟随。越丰富的食物源被选择的概率越大。

然后,跟随蜂会和引领蜂一样进行邻域搜索,并选择较好的解。

人工蜂群算法中,蜜蜂的采蜜行为和函数优化问题的对应关系如表2.1所示:

表2.1 蜂群觅食行为与函数优化的对应关系。

table 2.1 the relationship of bee colony foraging beh**ior and function optimization

初始化时,随机生成ns个可行解并计算函数值,将函数值从优到劣排名,前50%作为蜜源位置即引领蜂,后50%为跟随蜂。随机产生可行解的公式如下:

其中j∈为q维解向量的某个分量。

蜜蜂记录自己到目前为止的最优值,并在当前蜜源附近展开邻域搜索,产生一个新位置替代前一位置的公式为:

其中j∈,k∈(1,2,,sn),k为随机生成且k≠i, 为[一1,1]之间的随机数。

蜜蜂采蜜时采用贪婪原则,将记忆中的最优解和邻域搜索到的解做比较,当搜索解优于记忆中的最优解时,替换记忆解;反之,保持不变。在所有的引领蜂完成邻域搜索后,引领蜂跳摆尾舞与跟随蜂共享蜜源信息。跟随蜂根据蜜源信息以一定概率选择引领蜂,收益度大的引领蜂吸引跟随蜂的概率大于收益度小的引领蜂。

同样,跟随蜂在采蜜源附近邻域搜索,采用贪婪准则,比较跟随蜂搜索解与原引领蜂的解,当搜索解优于原引领蜂的解时,替换原引领蜂的解,完成角色互换;反之,保持不变。

abc算法中,跟随蜂选择引领蜂的概率公式为:

按照如下公式计算适应值:

根据f是否大于零2. 4)

式(2.3)中, 为第f个解的适应值,对应食物源的丰富程度。食物源越丰富,被跟随蜂选择的概率越大。为防止算法陷入局部最优,算法1imit次迭代没有改进,放弃该解,由侦察蜂产生一个新的位置代替。

人工蜂群算法的算法流程:

abc算法的流程为:

1:初始化种群;

2:cycle=l:

3:repeat:

4:雇佣蜂根据公式(2.2)在解的邻域内产生新解(食物源位置),其中,k是i邻域内的一个值,是[一1,1]之间的随机数;

5:应用贪婪原则选择在和之问做出选择;

6:根据公式(2.3)(2.4)计算转移概率;

7:根据转移概率,跟随蜂选择引领蜂进行跟随,并根据公式(2.2)产生一个新解;

8:跟随蜂应用贪婪原则选择在和之问做出选择;

9:放弃一个解,角色转变成侦查蜂,并根据公式(2.1)产生一个新解;

10:记录最好解;

11:cycle=cycle+1;

12:达到最大循环数,最pcycle=mcn。,从上述算法中我们不难看出,abc算法的核心由三个部分构成:

1.引领蜂:进行邻域搜索;

2.跟随蜂:对目标进行“开采”;

3.侦察蜂:对目标进行“探索”。

3、蜂群算法解决函数优化问题。

3.1函数优化问题的描述。

目标优化问题可以描述为:

max f(x3.1.1) x∈s

或:min f( x3.1.2) x∈s

这里s→ 称为搜索空间,f(x):s→称为目标函数。 (3.

1.1)式描述的优化问题称为极大化问题,(3.1.

2)式描述的称为极小化问题。 当把f(x)看成是一序列的函数时上述的问题就转变为多目标优化问题。

对很多实际问题进行数学建模后。可将其抽象为一个数值函数的优化问题。由于问题种类的繁多、影响因素的复杂。

这些数学函数会呈现出不同的数学特征,比如连续的、离散的、凸的、凹的、单峰值的、多峰值的函数等等,经常遇到的函数还有这些不同数学特征的组合。除了在函数是连续、可求导、低阶的简单情况下可解折地求出其最优解外。大部分情况需要通过数值计算方法来进行近似优化计算,尽管人们对这个问题研究了很多年。

但至今仍无一种既能处理各种不同的复杂函数、又具有良好求解结果的数值计算方法。特别是当问题的规模比较大时,优化计算时的搜索空间急剧扩大,人们认识到要严格地求出其最优解不太现实。所以需要研究出一种能够在可接受的时间和可接受的精度范围内求出数值函数近似最优解的方法或通用算法。

蜂群算法提供了求解复杂系统优化问题的通用框架,函数优化正是其最成熟的应用域。也是对蜂群算法进行性能评价的常用算倒。在对各种复杂形式的测试函数的计算中。

由于蜂群算法直接以目标函数值作为搜索信息。同时使用多个搜索点进行索,且这种概率搜索始终遍及整个解空间,都能找到几乎全局最优解。对于一些非线性、多模型、多目标的函数优化问题,在其他优化方法较难求解时.遗传算法也能方便地得到较好的结果。

算法课程设计

目录。1 问题描述第1页。2 算法分析第2页。3 伪 第5页。4 设计流程第6页。5 演示程序设计第8页。6 测试与结论第16页。7 设计过程遇到的问题 思考及解决方法 第17页。八 总结第17页。1 问题描述。八皇后问题是一个古老而著名的问题,它是回溯算法的典型例题。该问题是十九世纪德国著名数学家...

算法课程设计

当一个问题具有最优子结构性质时,根据其具体情况可以用动态规划算法或者贪心算法来求解。但当问题同时具有贪心选择性质时,贪心算法则通常会给出一个更简单 直观和高效的解法。贪心算法则通常会给出一个更简单 直观和高效的解法。贪心算法通过一系列的选择来得到一个问题的解,并且每次贪心选择都能将问题化简为一个更小...

算法课程设计

算法课程设计 实践报告。所属学院。专业班级。学生姓名。学生学号。任课教师。2013年6 月30日。一 实践题目及内容 迷宫问题 回溯法,栈的应用 问题描述 迷宫问题是一个经典的程序设计问题,计算机解迷宫问题的基本思想是 穷举求解 的方法,即从入口出发,顺某一方向向前试探,若能走通,则继续往前走 否则...