优化选址基于matlab改进的粒子群算法求解充电桩选址优化问题含matlab源码1964期(代码片段)

海神之光 海神之光     2022-12-06     314

关键词:

一、粒子群算法简介

1 粒子群算法的概念
粒子群优化算法(PSO:Particle swarm optimization) 是一种进化计算技术(evolutionary computation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解.
PSO的优势:在于简单容易实现并且没有许多参数的调节。目前已被广泛应用于函数优化、神经网络训练、模糊系统控制以及其他遗传算法的应用领域。

2 粒子群算法分析
2.1基本思想
粒子群算法通过设计一种无质量的粒子来模拟鸟群中的鸟,粒子仅具有两个属性:速度和位置,速度代表移动的快慢,位置代表移动的方向。每个粒子在搜索空间中单独的搜寻最优解,并将其记为当前个体极值,并将个体极值与整个粒子群里的其他粒子共享,找到最优的那个个体极值作为整个粒子群的当前全局最优解,粒子群中的所有粒子根据自己找到的当前个体极值和整个粒子群共享的当前全局最优解来调整自己的速度和位置。下面的动图很形象地展示了PSO算法的过程:

2 更新规则
PSO初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次的迭代中,粒子通过跟踪两个“极值”(pbest,gbest)来更新自己。在找到这两个最优值后,粒子通过下面的公式来更新自己的速度和位置。

公式(1)的第一部分称为【记忆项】,表示上次速度大小和方向的影响;公式(1)的第二部分称为【自身认知项】,是从当前点指向粒子自身最好点的一个矢量,表示粒子的动作来源于自己经验的部分;公式(1)的第三部分称为【群体认知项】,是一个从当前点指向种群最好点的矢量,反映了粒子间的协同合作和知识共享。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。以上面两个公式为基础,形成了PSO的标准形式。

公式(2)和 公式(3)被视为标准PSO算法。
3 PSO算法的流程和伪代码

二、部分源代码

clear all;
clc;
close all
tic;
%速度更新参数
load city_data.mat;
load cars_data.mat;
global cars_data;
global city_data;
global congDianZhan_shuliang;
congDianZhan_shuliang=5;%充电站的数量

radui=2;%服务半径的值
c1=1.2;
c2=1.2;
maxgen=200;
w=zeros(1,maxgen);%惯性权重的生成
w(1)=1;
sizepop=50;%种群规模
%% 种群初始化
for i=1:sizepop
    %随机产生一个种群
    pop(i,:)=randperm(10,congDianZhan_shuliang);
    v(i,:)=0.5*rands(1,congDianZhan_shuliang);
    fitness(i)=fun(pop(i,:));
end
%% 寻找初始值
[bestfitness,bestindex]=min(fitness);
zbest=pop(bestindex,:);%群体极值位置
gbest=pop;%个体极值位置
fitnessgbest=fitness;%个体极值适应度值
fitnesszbest=bestfitness;%群体极值适应度值
%% 迭代寻优
for i=1:maxgen
    %粒子位置和速度更新
    for j=1:sizepop
        a=rand;
        v(j,:)=w(i)*v(j,:)+c1*a*rand*(gbest(j,:)-pop(j,:))+c2*rand*(zbest-pop(j,:))+c1*(1-a)*rand*(min(gbest(j,:))-pop(j,:));%pnd当代种群粒子的最优值,a为可变权重值
        %粒子更新
        pop(j,:)=pop(j,:)+v(j,:);
        r=rand;%交叉随机权重
        pop(j,:)=r*gbest(j,:)+(1-r)*zbest;
        %新粒子适应度值
        pop(j,:)=fix(pop(j,:));
        for m=1:4
            for g=m+1:5
                if pop(j,m)==pop(j,g)
                    pop(j,m)=randperm(10,1);
                    for h=1:4
                      for z=h+1:5
                           if pop(j,h)==pop(j,z)
                                 pop(j,h)=randperm(10,1);
                                 for g=1:4
                                        for f=g+1:5
                                            if pop(j,g)==pop(j,f)
                                                pop(j,g)=randperm(10,1);
                                            end
                                        end
                                 end
                           end
                      end
                    end
                end
            end
        end
        fitness(j)=fun(pop(j,:));
    end

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

物流选址基于matlab粒子群算法求解物流选址问题含matlab源码410期

...方式获取代码方式1:完整代码已上传我的资源:【物流选址】基于matlab粒子群算法求解物流选址问题【含Matlab源码410期】点击上面蓝色字体,直接付费下载,即可。获取代码方式2:付费专栏Matlab路径规划(初级版)备注:点击... 查看详情

物流选址基于matlab粒子群算法求解多物流中心选址问题含matlab源码1458期

一、物流选址简介1LRP问题本质LRP问题的本质是为了满足区域类客户的配送需求,需要建立一个多级配送网络,一般由配送枢纽、配送中心、配送末端网点三级构成(其他类型可类比)。要求满足客户的需求量,不同设施有其吞... 查看详情

优化求解基于惯性权值非线性递减的改进粒子群算法(impso)matlab源码(代码片段)

 一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情

优化求解基于惯性权值非线性递减的改进粒子群算法(impso)matlab源码(代码片段)

 一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情

三维装箱基于matlab粒子群算法求解三维装箱优化问题含matlab源码950期

一、简介1粒子群算法的概念粒子群优化算法(PSO:Particleswarmoptimization)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协作和信息共享来寻找最优解... 查看详情

优化算法基于matlab量子粒子群算法求解单目标优化问题含matlab源码2203期

...代码方式获取代码方式1:完整代码已上传我的资源:【优化算法】基于matlab量子粒子群算法求解单目标优化问题【含Matlab源码2203期】点击上面蓝色字体,直接付费下载,即可。获取代码方式2:付费专栏优化求解(Matlab)备注:... 查看详情

优化求解基于matlab遗传算法结合粒子群算法求解单目标优化问题含matlab源码1659期(代码片段)

一、GA-PSO混合优化算法的基本思想对于遗传算法来讲,传统的遗传算法中变异算子是对群体中的部分个体实施随机变异,与历史状态和当前状态无关。而粒子群算法中粒子则能保持历史状态和当前状态。遗传算法的进化初期,变异有... 查看详情

优化充电基于matlab粒子群算法电动汽车充电动态优化策略含matlab源码2163期(代码片段)

一、粒子群算法电动汽车充电优化1电动汽车充电负荷估算电动汽车的充电负荷主要与电动汽车起始充电时刻和充电时长相关,而起始充电时刻是由电动汽车用户的到家时间决定的,充电时长主要与电动汽车的行驶里程和充电倍率相... 查看详情

优化充电基于matlab粒子群算法电动汽车充电动态优化策略含matlab源码2163期(代码片段)

一、粒子群算法电动汽车充电优化1电动汽车充电负荷估算电动汽车的充电负荷主要与电动汽车起始充电时刻和充电时长相关,而起始充电时刻是由电动汽车用户的到家时间决定的,充电时长主要与电动汽车的行驶里程和充电倍率相... 查看详情

优化覆盖基于matlab粒子群算法求解传感器覆盖优化问题含matlab源码1493期(代码片段)

一、粒子群算法简介1粒子群算法的概念粒子群优化算法(PSO:Particleswarmoptimization)是一种进化计算技术(evolutionarycomputation)。源于对鸟群捕食的行为研究。粒子群优化算法的基本思想:是通过群体中个体之间的协... 查看详情

优化选址基于matlab帝国企鹅算法求解工厂-中心-需求点三级选址问题含matlab源码2081期

一、帝企鹅算法简介目前,关于帝企鹅算法在国内外研究较少,在中对该算法进行了分析,并且与常见的粒子群算法、萤火虫算法进行了对比分析.帝企鹅从事各种活动,如狩猎、群体觅食,是群居性动物.每当... 查看详情

优化选址基于matlab帝国企鹅算法求解工厂-中心-需求点三级选址问题含matlab源码2081期

一、帝企鹅算法简介目前,关于帝企鹅算法在国内外研究较少,在中对该算法进行了分析,并且与常见的粒子群算法、萤火虫算法进行了对比分析.帝企鹅从事各种活动,如狩猎、群体觅食,是群居性动物.每当... 查看详情

优化求解基于matlab粒子群算法求解函数极值问题含matlab源码1202期

一、粒子群算法简介1引言自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家CraigReynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个体相撞:匹配邻域... 查看详情

优化求解基于加权变异的粒子群优化算法(wvpso)matlab源码(代码片段)

  一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演... 查看详情

优化求解基于加权变异的粒子群优化算法(wvpso)matlab源码(代码片段)

 一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情

优化求解基于竞争学习的粒子群优化算法(clpso)matlab源码(代码片段)

 一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化... 查看详情

优化求解基于竞争学习的粒子群优化算法(clpso)matlab源码(代码片段)

一、粒子群算法粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化过... 查看详情

多式联运基于帝国企鹅算法+遗传算法+粒子群算法求解不确定多式联运路径优化问题含matlab源码2073期

一、联运运输简介1引言运输问题(TransportationProblem)是一类特殊的线性规划问题,最早是由Hichcock于1941年提出的,由于它不仅能解决物资的合理调运和车辆的合理调度,而且许多实际问题如生产存储问题、工厂选址问题等经过适当变换... 查看详情