⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pso_main.m

📁 采用标准群粒子优化计算方法
💻 M
字号:
%标准粒群优化算法程序
%求解函数最小值
clc;
clear all;
global Fun_Select;        %目标函数选择
global D;                 %搜索空间维数(未知数个数)
global popsize;           %种群规模
global gen;               %迭代次数
global w;                 %惯性权重
global c1;                %学习因子(个体最优导向系数)
global c2;                %学习因子(全局最优导向系数)
global x_min;             %x的下限
global x_max;             %x的上限
global max_velocity;      %最大速度
global best_fitness;      %全局最优解的适应值 
global best_in_history;   %历史全局最优解的适应值    
global pop;               %种群
global gbest;             %全局最优解
global exetime;           %当前迭代次数



Initial_Param;            %参数初始化

for exetime=1:gen   
    pop=Fun_ComputeFitness(pop,Fun_Select,D,popsize); %计算适应值
    PSO;                                              %用PSO算法更新粒子位置
    Outputdata;                                       %实时输出结果
    pause(0.001);                                     %程序暂停0.001秒
end

disp('******************************************************************************************************')
switch Fun_Select
    case 1     
        disp('函数F1(Spherical函数)的全局最优位置为:');
        Gbest=gbest
        
        disp('最后得到函数F1(Spherical函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F1(Spherical函数) 的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 2
        disp('函数F2(Rosenbrock函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F2(Rosenbrock函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F2(Rosenbrock函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 3
        disp('函数F3(Shaffers f6函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F3(Shaffers f6函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F3(Shaffers f6函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 4
        disp('函数F4(Rastrigrin函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F4(Rastrigrin函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F4(Rastrigrin函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 5
        disp('函数F5(Griewank函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F5(Griewank函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F5(Griewank函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 6
        disp('函数F6(Ackley函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F6(Ackley函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F6(Ackley函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history       
    case 7
        disp('函数F7(Axis Parallel hyper-ellipsoid函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F7(Axis Parallel hyper-ellipsoid函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F7(Axis Parallel hyper-ellipsoid函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    case 8
        disp('函数F8(Schwefel函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F8(Schwefel函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F8(Schwefel函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
    otherwise
        disp('函数F8(Schwefel函数)的全局最优解为:');
        Gbest=gbest
        
        disp('最后得到函数F8(Schwefel函数)最优解的适应值为:');
        Fitness_Gbest=best_fitness
        
        %disp('函数F8(Schwefel函数)的历史最优解的适应值为:');
        %Fitness_Gbest_In_History=best_in_history
end        
disp('******************************************************************************************************')





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -