IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【蚁狮算法】基于柯西变异的蚁狮优化算法求解单目标优化问题matlab代码 -> 正文阅读

[人工智能]【蚁狮算法】基于柯西变异的蚁狮优化算法求解单目标优化问题matlab代码

1 简介

针对蚁狮优化算法较易陷入局部最优停滞,收敛精度低以及收敛速度较慢等问题,将自适应t分布的柯西变异融入到蚁狮优化算法中,提出了基于柯西变异的蚁狮优化算法(CALO).该算法采用轮盘赌的方法挑选出精英蚁狮个体,改善蚁狮群体的适应性,提高种群的总体寻优效率;采用具有自适应的柯西变异算子使得蚁狮个体受局部极值点约束力下降,能够快速跳出局部最优,大大提高了全局搜索能力和收敛速度;通过9个单模态,多模态标准测试函数对CALO,ALO,FPA和BA四种算法进行函数测试对比,实验仿真结果表明该改进算法是切实可行的,具有更优的收敛速度和寻优精度

2 部分代码

%___________________________________________________________________%%  Ant Lion Optimizer (ALO) source codes demo version 1.0           %?% You can simply define your cost in a seperate file and load its handle to fobj % The initial parameters that you need are:%__________________________________________% fobj = @YourCostFunction% dim = number of your variables% Max_iteration = maximum number of generations% SearchAgents_no = number of search agents% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n% If all the variables have equal lower bound you can just% define lb and ub as two single number numbers?% To run ALO: [Best_score,Best_pos,cg_curve]=ALO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj)?function [min_value,Elite_antlion_fitness,Elite_antlion_position,Convergence_curve]=ALO(N,Max_iter,lb,ub,dim,fobj)?% Initialize the positions of antlions and antsantlion_position=initialization(N,dim,ub,lb);ant_position=initialization(N,dim,ub,lb);?% Initialize variables to save the position of elite, sorted antlions, % convergence curve, antlions fitness, and ants fitnessSorted_antlions=zeros(N,dim);Elite_antlion_position=zeros(1,dim);Elite_antlion_fitness=inf;Convergence_curve=zeros(1,Max_iter);antlions_fitness=zeros(1,N);ants_fitness=zeros(1,N);?% Calculate the fitness of initial antlions and sort themfor i=1:size(antlion_position,1)    antlions_fitness(1,i)=fobj(antlion_position(i,:)); end?[sorted_antlion_fitness,sorted_indexes]=sort(antlions_fitness);    for newindex=1:N     Sorted_antlions(newindex,:)=antlion_position(sorted_indexes(newindex),:);end    Elite_antlion_position=Sorted_antlions(1,:);Elite_antlion_fitness=sorted_antlion_fitness(1);?% Main loop start from the second iteration since the first iteration % was dedicated to calculating the fitness of antlionsCurrent_iter=2; while Current_iter<Max_iter+1        % This for loop simulate random walks    for i=1:size(ant_position,1)        % Select ant lions based on their fitness (the better anlion the higher chance of catching ant)        Rolette_index=RouletteWheelSelection(1./sorted_antlion_fitness);        if Rolette_index==-1              Rolette_index=1;        end              % RA is the random walk around the selected antlion by rolette wheel        RA=Random_walk_around_antlion(dim,Max_iter,lb,ub, Sorted_antlions(Rolette_index,:),Current_iter);                % RA is the random walk around the elite (best antlion so far)        [RE]=Random_walk_around_antlion(dim,Max_iter,lb,ub, Elite_antlion_position(1,:),Current_iter);                ant_position(i,:)= (RA(Current_iter,:)+RE(Current_iter,:))/2; % Equation (2.13) in the paper              end        for i=1:size(ant_position,1)                  % Boundar checking (bring back the antlions of ants inside search        % space if they go beyoud the boundaries        Flag4ub=ant_position(i,:)>ub;        Flag4lb=ant_position(i,:)<lb;        ant_position(i,:)=(ant_position(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;                  ants_fitness(1,i)=fobj(ant_position(i,:));                   end        % Update antlion positions and fitnesses based of the ants (if an ant     % becomes fitter than an antlion we assume it was cought by the antlion      % and the antlion update goes to its position to build the trap)    double_population=[Sorted_antlions;ant_position];    double_fitness=[sorted_antlion_fitness ants_fitness];            [double_fitness_sorted I]=sort(double_fitness);    double_sorted_population=double_population(I,:);            antlions_fitness=double_fitness_sorted(1:N);    Sorted_antlions=double_sorted_population(1:N,:);            % Update the position of elite if any antlinons becomes fitter than it    if antlions_fitness(1)<Elite_antlion_fitness         Elite_antlion_position=Sorted_antlions(1,:);        Elite_antlion_fitness=antlions_fitness(1);    end          % Keep the elite in the population    Sorted_antlions(1,:)=Elite_antlion_position;    antlions_fitness(1)=Elite_antlion_fitness;      % Update the convergence curve    Convergence_curve(Current_iter)=Elite_antlion_fitness;?    % Display the iteration and best optimum obtained so far    if mod(Current_iter,1)==0        display(['At iteration ', num2str(Current_iter), ' the elite fitness is ', num2str(Elite_antlion_fitness)]);    endmin_value(Current_iter)=Elite_antlion_fitness;    Current_iter=Current_iter+1; end

3 仿真结果

4 参考文献

[1]于建芳, 刘升, 韩斐斐,等. 基于柯西变异的蚁狮优化算法[J]. 微电子学与计算机, 2019, 36(6):6.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:21:38  更:2022-03-16 22:22:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:21:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码