【优化求解】基于matlab蚁群算法的函数优化分析【含Matlab源码 219期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源: 【优化求解】基于matlab蚁群算法的函数优化分析【含Matlab源码 219期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、简介
1 蚁群算法的提出
蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。遗传算法在模式识别、神经网络、机器学习、工业优化控制、自适应控制、生物科学、社会科学等方面都得到应用。
2 算法的基本原理
三、部分源代码
%% 基于蚁群算法ACO的函数优化分析
% Designed by Yu Shengwei, From SWJTU University, 2014 08 12
clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口
warning off
tic; % 计时开始%% 取值范围
popmax = 5; % 待寻优阈值最大取值初始化
popmin = -5; % 待寻优阈值最小取值初始化%% 蚁群算法ACO参数初始化
Ant = 100; % 蚂蚁数量
Times = 100; % 蚂蚁移动次数
Rou = 0.8; % 信息素挥发系数
P0 = 0.2; % 转移概率常数%% 产生初始粒子和速度
for i=1:Ant% 随机产生一个种群for j = 1: 2pop(i,j) = (rand(1,1) * ( popmax-popmin ) + popmin ); % 初始种群个体end% 计算适应度fitness(i) = Fitness_ACO( pop(i,:), 'aco'); % 染色体的适应度
end% 找最好的染色体
[bestfitness bestindex]=min(fitness); % 最大适应度值
zbest = pop(bestindex,:); % 全局最佳
gbest = pop; % 个体最佳
fitnessgbest = fitness; % 个体最佳适应度值
fitnesszbest = bestfitness; % 全局最佳适应度值%% 迭代寻优
for T = 1:Times disp(['迭代次数: ',num2str(T)]) % 迭代次数lamda = 1/T; % 随着迭代次数进行,蚂蚁信息素挥发参数[bestfitness, bestindex]=min(fitness); % 找最好的适应度值ysw(T) = bestfitness; % 存储最好的适应度值for i=1:AntP(T,i)=(fitness(bestindex)-fitness(i))/fitness(bestindex); % 计算状态转移概率end% 蚂蚁个体更新for i=1:Antif P(T,i)<P0 % 局部搜索temp(i,:) = pop(i,:)+(2*rand-1)*lamda;else % 全局搜索temp(i,:) = pop(i,:)+(popmax-popmin)*(rand-0.5);end% 越界处理temp(i,find(temp(i,:)>popmax))=popmax;temp(i,find(temp(i,:)<popmin))=popmin;% 判断蚂蚁是否移动if Fitness_ACO( temp(i,:), 'aco') < Fitness_ACO(pop(i,:), 'aco') % 判断蚂蚁是否移动pop(i,:) = temp(i,:);end
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
【优化求解】基于matlab蚁群算法的函数优化分析【含Matlab源码 219期】相关推荐
- 【飞行器】基于matlab蚁群算法飞行器巡检路径【含Matlab源码 268期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[飞行器]基于matlab蚁群算法飞行器巡检路径[含Matlab源码 268期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】
一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab车牌识别】停车计费系统【含GUI源码 735期】
一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab水果识别】自助水果超市【含GUI源码 594期】
一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...
- matlab蚁群算法 路径规划,基于蚁群算法的机器人路径规划MATLAB源码
基于蚁群算法的机器人路径规划MA TLAB源码 使用网格离散化的方法对带有障碍物的环境建模,使用邻接矩阵存储该环境,使得问题转化为蚁群算法寻找最短路径. function [ROUTES,PL,Tau ...
- 【优化求解】基于matlab蚁群算法配电网故障定位【含Matlab源码 165期】
⛄一.蚁群算法简介 1 引言 在自然界中各种生物群体显现出来的智能近几十年来得到了学者们的广泛关注,学者们通过对简单生物体的群体行为进行模拟,进而提出了群智能算法.其中, 模拟蚁群觅食过程的蚁群优化算 ...
- 【配送路径规划】基于matlab蚁群算法求解配送路径最短问题【含Matlab源码 2222期】
⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...
- 【TWVRP】基于matlab蚁群算法求解带时间窗车辆路径规划问题【含Matlab源码 1930期】
⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...
最新文章
- [Web 开发] 定制IE下载对话框的按钮(打开/保存)
- python get sheet_使用xlwt’get_sheet’方法访问工作表
- unity 角色 动画脚本_Unity Animation --动画剪辑(外部来源的动画)
- Hibernate List集合映射
- 如何让Docker镜像飞起来
- [JavaWeb-JDBC]JDBC_快速入门_idea jdbc连接Mysql数据库
- 【渝粤教育】国家开放大学2018年秋季 1317T社会工作行政(本) 参考试题
- “李宏毅老师对不起,我要去追这门美女老师的课了” ,台大陈蕴侬深度学习课程最新资料下载...
- RuoYi-Cloud 部署篇_02(linux环境 Oracle +nginx版本)
- js中给多个class属性的标签赋值
- Spring容器创建流程——总结
- python自定义函数的关键字_Python3.x中自定义比较函数
- 函数 getaddrinfo 学习
- 全球最大编程问答社区 Stack Overflow 宣布裁员 15%!
- php抽象类初始化方法,php – 抽象类方法声明
- ca证书申请流程有哪些?
- 微信、qq可以上网,但是浏览器却不能上网怎么办
- 1分钟搞定ubuntu下配置mysql 奥利给
- css设置高度和宽度相同
- [洛谷] P2357 守墓人