精华内容
下载资源
问答
  • 群体智能优化算法

    万次阅读 多人点赞 2018-11-20 08:32:51
    群体智能优化算法介绍什么是群体智能优化算法群体智能优化算法的定义群体智能优化算法的原则常见的群体智能优化算法挖坑蚁群算法粒子群优化算法菌群算法蛙跳算法人工蜂群算法总结 由于在研究生期间一直研究粒子群...


    由于在研究生期间一直研究 粒子群优化算法(Particle Swarm Optimization),所以对其他的一些 群体智能优化算法(Swarm Intelligence)也是有一定的了解的,既然自己在这方面还算有一些自己的见解,所以,就把这些内容分享出来,让更多的人了解这方面的内容,在需要用到这方面内容去做研究或者写毕设或者做项目的过程中,能够快速的入门。

    什么是群体智能优化算法

    在研究生期间我研究的是粒子群优化算法,主要将其用在目标跟踪等方面,所以,有了介绍粒子群优化算法的想法,但是,在介绍粒子群优化算法之前,有必要先介绍一下群体智能优化算法,因为粒子群优化算法是属于群体智能优化算法中的一种比较常用的算法。

    群体智能优化算法的定义

    定义:群体智能优化算法主要模拟了昆虫、兽群、鸟群和鱼群的群体行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。任何一种由昆虫群体或者其他动物社会行为机制而激发设计出的算法或分布式解决问题的策略均属于群体智能(Swarm Intelligence)
    白话解释:模仿昆虫或者一些动物的觅食或者其他行为,这些动物群体按照一中合作的方式寻找食物,不断的交流食物信息,能够很快的找到更多的食物。通过对他们的行为的研究抽象出来的一种算法,就是群体智能优化算法。(例如,一个个体找到了食物,就会通知其他个体来这个有食物的地方,这就是一种行为)

    群体智能优化算法的原则

    • 邻近原则:群体能够进行简单的空间和时间计算;
    • 品质原则:群体能够响应环境中的品质因子;
    • 多样性反应原则:群体的行动范围不应该太窄;
    • 稳定性原则:群体不应在每次环境变化时都改变自身的行为;
    • 适应性原则:在所需代价不太高的情况下,群体能够在适当的时候改变自身的行为。

    常见的群体智能优化算法

    群体智能优化算法出现后,可以说是非常的受欢迎,很多研究学者也都提出了一些自己的群体智能优化算法,但是,受到大家认可(应用较为广泛)的算法大致为:

    • 蚁群算法-------------1992年提出
    • 粒子群优化算法----1995年提出
    • 菌群算法-------------2002年提出
    • 蛙跳算法-------------2003年提出
    • 人工蜂群算法-------2005年提出
    • 花朵授粉算法-------2012年提出

    除了几种常见的算法之外,还有很多很多被提出的群体智能优化算法,例如:萤火虫算法、布谷鸟算法、蝙蝠算法、狼群算法、烟花算法、合同网协议算法等等。

    挖坑

    后续会对一下几种算法进行详细的介绍(先挖个坑-_-)。

    蚁群算法

    未完待续

    粒子群优化算法

    粒子群优化算法在1995 年由Eberhart 博士和kennedy 博士提出,源于对鸟群捕食的行为研究 。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。已填坑,点击查看

    菌群算法

    菌群优化算法(BFO)是近些年来发展起来的,基于大肠杆菌觅食行为模型的一种新型群智能算法。它是一种简单有效的随机全局优化技术。已填坑,点击查看

    蛙跳算法

    蛙跳算法的思想是:在一片湿地中生活着一群青蛙。湿地内离散的分布着许多石头,青蛙通过寻找不同的石头进行跳跃去找到食物较多的地方。每只青蛙个体之间通过文化的交流实现信息的交换。每只青蛙都具有自己的文化。每只青蛙的文化被定义为问题的一个解。湿地的整个青蛙群体被分为不同的子群体,每个子群体有着自己的文化,执行局部搜索策略。在子群体中的每个个体有着自己的文化,并且影响着其他个体,也受其他个体的影响,并随着子群体的进化而进化。当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流(全局信息交换)实现子群体间的混合运算,一直到所设置的条件满足为止。未完待续(会单独写一篇文章详细介绍)

    人工蜂群算法

    人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。未完待续(会单独写一篇文章详细介绍)

    总结

    本博文对群体智能优化算法进行了简单的介绍,并对几种群体智能优化算法进行了简单的描述,留着后续填坑。
    如果您有任何需要,都可以加我微信,进行讨论。
    在这里插入图片描述

    展开全文
  • 集群智能-蚁群优化算法

    千次阅读 2018-11-01 00:18:06
    群体智能1.集群智能 众多无智能的个体,通过相互之间的简单合作所表现出来的智能行为2.博弈 具备一定智能的理性个体,按照某种机制行动,在群体层面体现出的智能3.众包 设计合适的机制,激励个体参与,从而实现...

    群体智能
     1.集群智能
        众多无智能的个体,通过相互之间的简单合作所表现出来的智能行为
    2.博弈
       具备一定智能的理性个体,按照某种机制行动,在群体层面体现出的智能
    3.众包
       设计合适的机制,激励个体参与,从而实现单个个体不具备的社会智能


    集群智能是分布式、 自组织的(自然/人造)系统表现出的一种群体智能
     

    集群智能系统一般由一群简单的智能体构成,智能体按照简单的规则彼此进行局部交互,智能体也可以环境交互,灵感通常来自生物系统
     

    集群智能
     特点
     分布式:无中心控制
     随机性:非确定性
     自适应:个体根据环境进行策略调整
     正反馈:好的尝试会对个体产生正反馈
     自发涌现:会在群体层面涌现出一种智能

     

    代表性方法
     蚁群优化算法
     粒子群优化算法
     

    蚁群优化算法

         旅行商问题的蚁群优化求解

    ⑴初始化 随机放置蚂蚁
    ⑵迭代过程
    iter =1
    while iter =< ItCount do (执行迭代)
    for i = 1 to m do (对m只蚂蚁循环)
    for j = 1 to n - 1 do (对n个城市循环)
    根据式(1),采用轮盘赌方法在窗口外选择下一个城市j;
    将j置入禁忌表,蚂蚁转移到j;
    end for
    end for
    计算每只蚂蚁经过的路径长度;
    根据式(2)更新所有蚂蚁路径上的信息量;
    iter = iter + 1;
    end while
    ⑶输出结果,结束算法
    


    蚁群大小
     一般情况下,蚁群中的蚂蚁个数不超过TSP图中节点的
    个数
     终止条件
     设定迭代轮数
     设定最优解连续保持不变的迭代轮数

     

    思想
     局部随机搜索+正反馈(自增强)
     个体通过释放信息素改变环境,个体能够感知环境
    的实时变化,个体间通过环境实现间接通信
     
     缺点

     收敛速度慢
     对于解空间为连续的优化问题不适用



     

     

    展开全文
  • 群体智能优化算法之总结

    千次阅读 多人点赞 2019-11-15 16:28:22
    总结一下最近一段时间关于群体智能优化算法的文章,这方面的文章目前一共发表了13篇,涉及粒子群(鸟)、人工蜂群、蜘蛛猴、蚁群、布谷鸟、萤火虫群、萤火虫、蝙蝠、鱼群、蟑螂、猫群、细菌觅食和烟花算法,虽然这都...

    在这里插入图片描述

    获取更多资讯,赶快关注上面的公众号吧!

    第十六章 群体智能优化算法总结

    总结一下最近一段时间关于群体智能优化算法的文章,这方面的文章目前一共发表了13篇,涉及粒子群(鸟)人工蜂群蜘蛛猴蚁群布谷鸟萤火虫群萤火虫蝙蝠鱼群蟑螂猫群细菌觅食烟花算法,虽然这都是些五花八门的小东西,但也不是无规律可循,这里需要注意的是,群体智能一般是指具有生命的种群(鸟、鱼等),但也有像烟花这样的无生命个体,这里我们将所有这些个体统称为智能体,认为它们具有一定的能动性,可以在解空间中进行搜索。图1为各主要优化算法的提出时间和提出者,可以看出大多数算法诞生于2000~2010年这十年左右,随着计算机计算能力的提升,人们开始依赖于这种既能得到较优的结果又不会消耗太多计算时间的元启发式算法。
    在这里插入图片描述

    图1 群体智能优化算法发展历程

    下面总结一下这些算法的共同点:

    1. 都有多个粒子,代表每种智能体;
    2. 每个个体通过一定的机制进行位置的变化或者移动,来对解的空间进行搜索;
    3. 个体之间具有一定的独立性,利用局部信息和全局信息进行交互;
    4. 群体在演变过程中都引入了随机数,以便进行充分地探索。

    其实人群也算是一种特殊的群体,只不过他不像其他的群体那样,仅仅是觅食,人作为一种高级动物,除了吃饱肚子以外,还有其他很多精神方面的需求,比如幸福度、快乐度和舒适度等等各个方面,并且人类具有的最大优势是语言沟通和学习能力,因此,基于这样的特性也可以提出基于人群的优化算法,只不过可能需要结合更多的组织行为学和行为心理学等相关的知识,对人的群集行为进行理论解释,同时可以采用更多以机器学习或人工智能为基础的高级策略,并应用于多目标优化问题。不过好像在2006年就已经有类似的算法了,至于为什么没有普及开来,可能还是人的行为太复杂了吧。

    对于群体智能优化方面的更新将暂时告一段落,接下来将更多的关注另一种元启发式算法-进化计算,这类算法主要是基于生物的进化理论,包括遗传算法、进化策略、进化规划等,都将在后续的内容中逐渐详细讲解。

    展开全文
  • 1. 常见的群体智能优化算法分类2. 粒子群优化算法思想3. 粒子群优化算法的基本框架4. 对粒子群优化算法中惯性权重的认识5. 粒子群优化算法举例——求解旅行商问题6. 参考文献  同进化算法(见博客《[Evolutionary ...
     
     
    

      同进化算法(见博客《[Evolutionary Algorithm] 进化算法简介》,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简称NN,神经网络是从信息处理角度对人脑的神经元网络系统进行了模拟的相关算法)一样,群体智能优化算法也属于一种生物启发式方法,它们三者可以称为是人工智能领域的三驾马车(PS:实际上除了上述三种算法还有一些智能算法应用也很广泛,比如模拟金属物质热力学退火过程的模拟退火算法(Simulated Algorithm,简称SA),模拟人体免疫系统在抗原刺激下产生抗体过程的人工免疫系统算法(Artificial Immune System,简称AIS)等,但是相对三者而言,模拟退火和人工免疫系统算法已逐渐处于低潮期)。群体智能优化算法主要模拟了昆虫、兽群、鸟群和鱼群的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。群体智能优化算法的突出特点就是利用了种群的群体智慧进行协同搜索,从而在解空间内找到最优解。

    1. 常见的群体智能优化算法分类

      常见的群体智能优化算法主要有如下几类:

      (1)蚁群算法(Ant Colony Optimization,简称ACO)[1992年提出];

      (2)粒子群优化算法(Particle Swarm Optimization,简称PSO)[1995年提出](简单易于实现,也是目前应用最为广泛的群体智能优化算法);

      (3)菌群优化算法(Bacterial Foraging Optimization,简称BFO)[2002年提出];

      (4)蛙跳算法(Shuffled Frog Leading Algorithm,简称SFLA)[2003年提出];

      (5)人工蜂群算法(Artificial Bee Colony Algorithm,简称ABC)[2005年提出];

      除了上述几种常见的群体智能算法以外,还有一些并不是广泛应用的群体智能算法,比如萤火虫算法、布谷鸟算法、蝙蝠算法以及磷虾群算法等等。

    2. 粒子群优化算法思想

      由于博主对粒子群优化算法比较熟悉,在硕士期间也进行了比较系统的学习,所以利用本博文系统的介绍一下应用最为广泛的PSO算法。

      粒子群优化算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使得整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。我们可以利用一个有关PSO的经典描述来对PSO算法进行一个直观的描述。设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是是搜寻目前距离玉米地最近的鸟群的周围区域PSO就是从这种群体觅食的行为中得到了启示,从而构建的一种优化模型。

      在PSO中,每个优化问题的解都是搜索空间中的一只鸟,称之为“粒子”,而问题的最优解就对应为鸟群要寻找的“玉米地”。所有的粒子都具有一个位置向量(粒子在解空间的位置)和速度向量(决定下次飞行的方向和速度),并可以根据目标函数来计算当前的所在位置的适应值(fitness value),可以将其理解为距离“玉米地”的距离。在每次的迭代中,种群中的粒子除了根据自身的“经验”(历史位置)进行学习以外,还可以根据种群中最优粒子的“经验”来学习,从而确定下一次迭代时需要如何调整和改变飞行的方向和速度。就这样逐步迭代,最终整个种群的粒子就会逐步趋于最优解。

    3. 粒子群优化算法的基本框架

      在介绍PSO的算法流程之前,我们写给出PSO中常用的迭代算子的形式。令          

    代表粒子   的位置向量,           代表粒子   的速度向量(其中  

    为优化问题的维度大小),最早版本的粒子群优化算法的迭代算子形式如下:

      速度向量迭代公式:

                       

          (1)

      位置向量迭代公式:

           

           (2)

    其中在公式(1)中,    

      分别代表粒子  

    的历史最佳位置向量和种群历史最佳位置向量。根据公式(1)(2)可以看出,种群中的粒子通过不断地向自身和种群的历史信息进行学习,从而可以找出问题的最优解。

      但是,在后续的研究中表明,上述原始的公式中存在一个问题:公式(1)中    

    的更新太具有随机性,从而使得整个PSO算法的全局优化能力很强,但是局部搜索能力较差。而实际上,我们需要在算法迭代初期PSO有着较强的全局优化能力,而在算法的后期,整个种群应该具有更强的局部搜索能力。所以根据上述的弊端,Shi和Eberhart通过引入惯性权重修改了公式(1),从而提出了PSO的惯性权重模型:

      速度向量迭代公式:

                       

          (3)

    其中参数  

    称为是PSO的惯性权重(inertia weight),它的取值介于[0,1]区间,一般应用中均采取自适应的取值方法,即一开始令   ,使得PSO全局优化能力较强,随着迭代的深入,参数   进行递减,从而使得PSO具有较强的局部优化能力,当迭代结束时,   。参数         称为是学习因子(learn factor),一般设置为1.4961;而        

    为介于[0,1]之间的随机概率值。

       整个粒子群优化算法的算法框架如下:

      Step 1 种群初始化:可以进行随机初始化或者根据被优化的问题设计特定的初始化方法,然后计算个体的适应值,从而选择出个体的局部最优位置向量    

    和种群的全局最优位置向量  

      Step 2 迭代设置:设置迭代次数    

    ,并令当前迭代次数  

      Step 3 速度更新:根据公式(3)更新每个个体的速度向量;

      Step 4 位置更新:根据公式(2)更新每个个体的位置向量;

      Step 5 局部位置向量和全局位置向量更新:更新每个个体的    

    和种群的  

      Step 6 终止条件判断:判断迭代次数时都达到    

    ,如果满足,输出  

    ;否则继续进行迭代,跳转至Step 3

      对于粒子群优化算法的运用,主要是对速度和位置向量迭代算子的设计。迭代算子是否有效将决定整个PSO算法性能的优劣,所以如何设计PSO的迭代算子是PSO算法应用的研究重点和难点。

    4. 对粒子群优化算法中惯性权重的认识

      参数  

    被称之为是惯性权重,顾名思义   实际反映了粒子过去的运动状态对当前行为的影响,就像是我们物理中提到的惯性。如果   ,从前的运动状态很少能影响当前的行为,粒子的速度会很快的改变;相反,   较大,虽然会有很大的搜索空间,但是粒子很难改变其运动方向,很难向较优位置收敛,由于算法速度的因素,在实际运用中很少这样设置。也就是说,较高的   设置促进全局搜索,较低的  

    设置促进快速的局部搜索。

    5. 粒子群优化算法举例——求解旅行商问题

      旅行商问题(Traveling Salesman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题和最典型的NP难问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。最早的旅行商问题的数学规划是由Dantzig等人于1959年提出的。

      下面为一个TSP问题的数据集,城市个数为50:

    37    52
       49    49
       52    64
       20    26
       40    30
       21    47
       17    63
       31    62
       52    33
       51    21
       42    41
       31    32
        5    25
       12    42
       36    16
       52    41
       27    23
       17    33
       13    13
       57    58
       62    42
       42    57
       16    57
        8    52
        7    38
       27    68
       30    48
       43    67
       58    48
       58    27
       37    69
       38    46
       46    10
       61    33
       62    63
       63    69
       32    22
       45    35
       59    15
        5     6
       10    17
       21    10
        5    64
       30    15
       39    10
       32    39
       25    32
       25    55
       48    28
       56    37
       30    40
    Ctrl+C 复制代码

      50个城市分布图:

      下面为PSO求解旅行商问题的matlab代码:

      主函数main.m:

    %% 该文件演示基于TSP-PSO算法
    clc;clear
    
    %% 载入数据
    data=load('eil51.txt')
    cityCoor=[data(:,2) data(:,3)];%城市坐标矩阵
    
    figure
    plot(cityCoor(:,1),cityCoor(:,2),'ms','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g')
    legend('城市位置')
    ylim([4 78])
    title('城市分布图','fontsize',12)
    xlabel('km','fontsize',12)
    ylabel('km','fontsize',12)
    %ylim([min(cityCoor(:,2))-1 max(cityCoor(:,2))+1])
    
    grid on
    
    %% 计算城市间距离
    n=size(cityCoor,1);           %城市数目
    cityDist=zeros(n,n);           %城市距离矩阵
    for i=1:n
        for j=1:n
            if i~=j
                cityDist(i,j)=((cityCoor(i,1)-cityCoor(j,1))^2+...
                    (cityCoor(i,2)-cityCoor(j,2))^2)^0.5;
            end
            cityDist(j,i)=cityDist(i,j);
        end
    end
    nMax=1000;                      %进化次数
    indiNumber=50;               %个体数目
    individual=zeros(indiNumber,n);
    %^初始化粒子位置
    for i=1:indiNumber
        individual(i,:)=randperm(n);    
    end
    
    %% 计算种群适应度
    indiFit=fitness(individual,cityCoor,cityDist);
    [value,index]=min(indiFit);
    tourPbest=individual;                              %当前个体最优
    tourGbest=individual(index,:) ;                    %当前全局最优
    recordPbest=inf*ones(1,indiNumber);                %个体最优记录
    recordGbest=indiFit(index);                        %群体最优记录
    xnew1=individual;
    
    %% 循环寻找最优路径
    L_best=zeros(1,nMax);
    for N=1:nMax
        N
        %计算适应度值
        indiFit=fitness(individual,cityCoor,cityDist);
        
        %更新当前最优和历史最优
        for i=1:indiNumber
            if indiFit(i)<recordPbest(i)
                recordPbest(i)=indiFit(i);
                tourPbest(i,:)=individual(i,:);
            end
            if indiFit(i)<recordGbest
                recordGbest=indiFit(i);
                tourGbest=individual(i,:);
            end
        end
        
        [value,index]=min(recordPbest);
        recordGbest(N)=recordPbest(index);
        
        %% 交叉操作
        for i=1:indiNumber
           % 与个体最优进行交叉
            c1=unidrnd(n-1); %产生交叉位
            c2=unidrnd(n-1); %产生交叉位
            while c1==c2
                c1=round(rand*(n-2))+1;
                c2=round(rand*(n-2))+1;
            end
            chb1=min(c1,c2);
            chb2=max(c1,c2);
            cros=tourPbest(i,chb1:chb2);
            ncros=size(cros,2);      
            %删除与交叉区域相同元素
            for j=1:ncros
                for k=1:n
                    if xnew1(i,k)==cros(j)
                        xnew1(i,k)=0;
                        for t=1:n-k
                            temp=xnew1(i,k+t-1);
                            xnew1(i,k+t-1)=xnew1(i,k+t);
                            xnew1(i,k+t)=temp;
                        end
                    end
                end
            end
            %插入交叉区域
            xnew1(i,n-ncros+1:n)=cros;
            %新路径长度变短则接受
            dist=0;
            for j=1:n-1
                dist=dist+cityDist(xnew1(i,j),xnew1(i,j+1));
            end
            dist=dist+cityDist(xnew1(i,1),xnew1(i,n));
            if indiFit(i)>dist
                individual(i,:)=xnew1(i,:);
            end
            
            % 与全体最优进行交叉
            c1=round(rand*(n-2))+1;  %产生交叉位
            c2=round(rand*(n-2))+1;  %产生交叉位
            while c1==c2
                c1=round(rand*(n-2))+1;
                c2=round(rand*(n-2))+1;
            end
            chb1=min(c1,c2);
            chb2=max(c1,c2);
            cros=tourGbest(chb1:chb2); 
            ncros=size(cros,2);      
            %删除与交叉区域相同元素
            for j=1:ncros
                for k=1:n
                    if xnew1(i,k)==cros(j)
                        xnew1(i,k)=0;
                        for t=1:n-k
                            temp=xnew1(i,k+t-1);
                            xnew1(i,k+t-1)=xnew1(i,k+t);
                            xnew1(i,k+t)=temp;
                        end
                    end
                end
            end
            %插入交叉区域
            xnew1(i,n-ncros+1:n)=cros;
            %新路径长度变短则接受
            dist=0;
            for j=1:n-1
                dist=dist+cityDist(xnew1(i,j),xnew1(i,j+1));
            end
            dist=dist+cityDist(xnew1(i,1),xnew1(i,n));
            if indiFit(i)>dist
                individual(i,:)=xnew1(i,:);
            end
            
           %% 变异操作
            c1=round(rand*(n-1))+1;   %产生变异位
            c2=round(rand*(n-1))+1;   %产生变异位
            while c1==c2
                c1=round(rand*(n-2))+1;
                c2=round(rand*(n-2))+1;
            end
            temp=xnew1(i,c1);
            xnew1(i,c1)=xnew1(i,c2);
            xnew1(i,c2)=temp;
            
            %新路径长度变短则接受
            dist=0;
            for j=1:n-1
                dist=dist+cityDist(xnew1(i,j),xnew1(i,j+1));
            end
            dist=dist+cityDist(xnew1(i,1),xnew1(i,n));
            if indiFit(i)>dist
                individual(i,:)=xnew1(i,:);
            end
        end
    
        [value,index]=min(indiFit);
        L_best(N)=indiFit(index);
        tourGbest=individual(index,:); 
        
    end
    tourGbest
    minbest=min(L_best)
    %% 结果作图
    figure
    plot(L_best)
    title('算法训练过程')
    xlabel('迭代次数')
    ylabel('适应度值')
    grid on
    
    
    figure
    hold on
    plot([cityCoor(tourGbest(1),1),cityCoor(tourGbest(n),1)],[cityCoor(tourGbest(1),2),...
        cityCoor(tourGbest(n),2)],'ms-','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g')
    hold on
    for i=2:n
        plot([cityCoor(tourGbest(i-1),1),cityCoor(tourGbest(i),1)],[cityCoor(tourGbest(i-1),2),...
            cityCoor(tourGbest(i),2)],'ms-','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g')
        hold on
    end
    legend('规划路径')
    scatter(cityCoor(:,1),cityCoor(:,2));
    title('规划路径','fontsize',10)
    xlabel('km','fontsize',10)
    ylabel('km','fontsize',10)
    
    grid on
    ylim([4 80])
     目标函数:fitness.m

    function indiFit=fitness(x,cityCoor,cityDist)
    %% 该函数用于计算个体适应度值
    %x           input     个体
    %cityCoor    input     城市坐标
    %cityDist    input     城市距离
    %indiFit     output    个体适应度值 
    
    m=size(x,1);
    n=size(cityCoor,1);
    indiFit=zeros(m,1);
    for i=1:m
        for j=1:n-1
            indiFit(i)=indiFit(i)+cityDist(x(i,j),x(i,j+1));
        end
        indiFit(i)=indiFit(i)+cityDist(x(i,1),x(i,n));
    end

      PSO迭代收敛曲线图:

      PSO求解50个城市的TSP问题最小距离为473.1536,TSP求解规划路径图如下:

    6. 参考文献

    [1] Eberhart R C and Kennedy J. A new optimizer using particle swarm theory.  1995.

    [2] Shi Y and Eberhart R C. A modified particle optimizer. 1998.

    [3] Kennedy J. Particle swarm optimization. 2010.

     



    展开全文
  • 群集蜘蛛算法 群体智能算法,一种模拟蜘蛛群集行为的新型群智能优化算法
  • 智能算法优化网络的权重和偏置 搭建网络,随机给参数赋初值 智能算法的决策变量为网络的所有w b
  •   尊海鞘优化算法(Salp Swarm Algorithm,SSA)是由澳大利亚的Seyedali Mirjalili于2017年提出的一种新型优化算法,该算法模拟了樽海鞘在海洋中航行和觅食时的群集行为,今天将给大家带来尊海鞘算法的原理介绍,...
  • 文章目录第十一章 鱼群优化算法11.1 介绍11.2 人工鱼群算法参考文献 第十一章 鱼群优化算法 11.1 介绍 人工鱼群算法(Artificial Fish Swarm Algorithm,AFSA)是Li Xiao-lei在2002年提出的(Yazdani, Toosi, & ...
  • 智能优化算法:蜻蜓优化算法-附代码 文章目录智能优化算法:蜻蜓优化算法-附代码1.算法原理1.1分离2.2 排队2.3 结盟2.4 寻找猎物2.5 躲避天敌2.算法流程3.算法结果4.参考文献5.MATALAB代码 摘要:蜻蜓优化算法( ...
  • 斑点鬣狗优化算法-附代码 文章目录斑点鬣狗优化算法-附代码1.算法原理1.1包围机制1.2 狩猎机制1.3 攻击猎物(局部搜索)1.4 算法流程图2. 算法结果:参考文献: 摘要:斑点鬣狗优化是印度塔帕尔大学 Dhiman 等[7]...
  • XinShe Yang教授提出的Cuckoo Search优化算法Matlab原代码,可用于全局优化,并附有算法原理的文章及测试函数,供大家参考学习。
  • 近年来,智能仿生算法因其群集智慧和生物择优特性而被广泛应用于移动机器人路径规划优化中。首先,按照智能仿生算法仿生机制的来源,对应用于路径规划优化中的智能仿生算法进行了分类。然后,按照不同的类别,系统的...
  • 群体智能动态优化算法及其应用综述[A survey of swarm intelligence for dynamic optimization: Algorithms and applications]摘要一.前言二.动态优化2.1动态优化问题2.2离散空间与连续空间2.3应用2.4测试2.5基准...
  • 《基于混沌蚂蚁的群集协同求解算法及应用》是研究群集智能的学术专著。全书共分8章,第1章阐述了群集智能研究现状,提出了《基于混沌蚂蚁的群集协同求解算法及应用》所研究的科学问题;第2章介绍了《基于混沌蚂蚁的...
  • 粒子群优化算法是根据乌群觅食过程中的迁徙和群集模型而提出的用于解决优化问题。该文讨论 粒子群优化算法的基本原理和实现步骤,分析了该算法中各参数的设置。通过一个测试函数,对粒子群优化算法 与遗传算法进行了...
  • SMO 优化算法.zip

    2019-11-06 09:52:50
    蜘蛛猴算法(Spider Monkey Optimization,SMO)是受蜘蛛猴觅食行为启发提出的一种群集智能优化算法
  • 现代优化算法的评价方法 算法复杂性 【现代优化(启发式)方法种类】 禁忌搜索(tabu search) 模拟退火(simulated annealing) 遗传算法(genetic algorithms) 神经网络(neural networks) 蚁群算法(群体(群集...
  • 根据群集智能优化原理, 给出了一种基于萤火虫寻优思想的新算法——萤火虫群优化算法, 并针对0-1背包问题进行求解。经仿真实验并与蜂群算法、蚁群算法和微粒群算法进行了比较, 获得了满意的结果, 这说明了算法在0-1...
  • 智能算法综述

    万次阅读 多人点赞 2017-04-14 20:26:41
    1、什么是智能算法  智能计算也有人称之为“软计算”,是们受自然(生物界)规律的启迪,根据其原理,模仿求解问题的算法。从自然界得到启迪,模仿其结构进行发明创造,这就是仿生学。这是我们向自然界学习的一个...
  • 粒子群优化算法是在对鸟群捕食行为模拟的基础上提出的一种群 集智能算法,是进化计算领域中一个新的分支。它的主要特点是原理简 单、参数少、收敛速度较快、易于实现。因此,该算法一提出就吸引了 的广泛关注,逐渐...
  • 蜘蛛猴算法(Spider Monkey Optimization,SMO)是受蜘蛛猴觅食行为启发提出的一种群集智能优化算法,为增强蜘蛛猴算法的局部搜索性能,提出一种基于动态自适应惯性权重的SMO算法(DWSMO)。通过在惯性权重中引入...
  • 智能优化算法

    万次阅读 2007-06-03 12:57:00
    引言粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),由Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究 PSO同遗传算法类似,是一种基于迭代的优化工具。系统初始化为一组随机解,...
  • 地址抽取是信息采集研究的热点,但是如何保证高...这个不断迭代的过程就是基于群集智能的ACG算法流程,最后再通过组合多个分类器的结果形成最终结果。实验表明,该方法可以把召回率和准确率分别提高到96.44%和97.73%。
  • 同进化算法(见博客《[Evolutionary Algorithm] 进化算法简介》,进化算法是受...群体智能优化算法也属于一种生物启发式方法,它们三者可以称为是人工智能领域的三驾马车(PS:实际上除了上述三种算法还有一些智能算...
  • Tony White结合群集智能的思想,以及蚂蚁觅食的特点,设计了蚁群路由系统,它具有正反馈、分布式计算、贪婪启发等特点,已在许多问题中得到成功的应用。讨论了供应网络的模型和蚁群路由算法在适应性供应网络的应用。
  • 摘 要 深度强化学习的出现有效解决了强化学习遇到的维度灾难问题当智能体处 于高维环境中时深度强化学习使用深度神经网络对环境进行特征提取并利用 强化学习方法进行智能体策略的学习随着深度强化学习在单智能体环境...
  • 经典的PSO算法,是一种基于种群的随机优化技术,粒子群算法模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按照一种合作的方式寻找食物。适用于入门学习。通过判断粒子停滞状态,陷入局部最优时重启粒子继续搜索...
  • 人工蜂群算法优化

    2018-08-27 20:43:40
    人工蜂群算法(ABC)是一种模拟蜜蜂采蜜行为的群集智能优化算法,它为解决存在于科学领域的全局优化问题提供了一种新的方法。由于它具有控制参数少、易于实现、计算简单等优点,已经被越来越多的研究者所关注。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,311
精华内容 924
关键字:

群集智能优化算法