本项目收集了多种经典及新兴的群智能(Swarm Intelligence)与元启发式优化算法的 MATLAB 实现,涵盖路径规划、函数优化、神经网络权值优化、光谱变量选择等应用场景。
| 目录 | 算法 | 英文缩写 | 应用场景 |
|---|---|---|---|
AOC/ |
蚁群优化算法 | ACO | 栅格地图路径规划 |
pso/ |
粒子群优化算法 | PSO | 栅格地图路径规划 |
Bas/ |
天牛须搜索算法 | BAS | 函数优化 |
BSOA/ |
细菌觅食优化算法 | BFO/MBFOA | 函数优化 |
woa/ |
鲸鱼优化算法 | WOA | 光谱波长选择 + PLS建模 |
bp/ |
遗传算法优化BP神经网络 | GA-BP | 回归预测(波士顿房价) |
白鹭群优化算法/ |
白鹭群优化算法 | ESOA | 函数优化 + BP神经网络优化 |
蚁群/ |
蚁群 + 遗传算法 + 模拟退火 | ACO/GA/SA | 路径规划(含避障) |
蚁群2/ |
蚁群算法(Floyd最短路) | ACO | 路径规划 |
蜂群/ |
人工蜂群算法 | ABC | 函数优化 |
蜘蛛猴/ |
蜘蛛猴优化算法 | SMO/SSMO | 多目标函数优化 |
- MATLAB R2018a 及以上版本
- 部分子项目可能需要以下工具箱:
- Neural Network Toolbox / Deep Learning Toolbox(BP神经网络相关)
- Statistics and Machine Learning Toolbox
原理:模拟蚂蚁觅食行为,蚂蚁在路径上释放信息素,后续蚂蚁倾向于选择信息素浓度高的路径,最终收敛到最短路径。
实现细节:
- 20×20 栅格地图,1 表示障碍物,0 表示可通行
- 50 只蚂蚁,100 次迭代
- 轮盘赌法选择下一节点
- 信息素蒸发系数 ρ=0.3,信息素增强系数 Q=1
- 支持 8 方向移动(含对角线)
文件:
main.m— 完整的蚁群路径规划程序(含G2D地图转邻接矩阵函数)
输出:收敛曲线 + 最优路径可视化
原理:模拟鸟群觅食,每个粒子根据自身历史最优和群体最优更新速度和位置。
文件:
DrawMap.m— 绘制栅格地图并标注编号OPW.m— 约束障碍物对角穿越(优化邻接矩阵)Untitled4.m/Untitled6.m— PSO 路径规划主程序2/Untitled.m— PSO 变体实现3/Path Planning/— 完整的 PSO 路径规划框架(Yarpiz)pso.m— PSO 主算法CreateModel.m— 创建地图模型MyCost.m— 代价函数ParseSolution.m— 解析路径解PlotSolution.m— 绘制路径
原理:模拟天牛利用两根触须感知左右气味浓度差异来定位食物源,根据浓度差决定前进方向。
实现细节:
- 触须间距和步长逐步衰减(衰减系数 η=0.95)
- 支持随机游走扰动
- 测试函数:Michalewicz 函数
文件:
BAS_pro.m— BAS 算法完整实现(含可视化)BAS_example.m— 使用示例Beetle-Antennae-Search-master/bas.m— 原始开源版本
原理:模拟大肠杆菌的趋化、繁殖和驱散行为进行全局优化。
文件:
Alejandro-Lopez-Rivera-master/— MBFOA(改进细菌觅食算法)MATLAB 实现MBFOA-Principal.m— 主程序quimiotaxis.m— 趋化过程eliminacionD.m— 消除-扩散过程- 含模块化版本(06~16号文件)
Bacterial-Foraging-Optimization-Algorithm-master/bo.py— Python 版本
原理:模拟座头鲸的气泡网捕食策略(包围猎物、螺旋更新、随机搜索)。
应用:紫外光谱波长变量选择 + 偏最小二乘法(PLS)建模
文件:
main_WOA_PLS_UV_three_PerillaSoy_20180601.m— WOA-PLS 主程序- KS 法划分训练集/测试集
- WOA 选择最优波长子集
- PLS 建模并计算 RMSEP、相关系数
main_EP_PLS_UV_three_PerillaSoy_20180601.m— 对比方法(EP-PLS)
原理:用遗传算法(选择、交叉、变异)搜索 BP 神经网络的最优初始权值和阈值,避免 BP 陷入局部最优。
实现细节:
- 网络结构:输入层 → 6个隐藏层神经元 → 输出层
- 遗传算法:种群40,迭代500代,交叉概率0.4,变异概率0.05
- 数据集:波士顿房价(Boston Housing)
文件:
gabp.m— GA-BP 主程序(完整流程)gabp1.m— 变体版本fitness1.m— 适应度函数(BP网络误差)select.m— 选择操作(轮盘赌)Cross.m— 交叉操作Mutation.m— 变异操作Boston.txt— 波士顿房价数据
原理:模拟白鹭群体的觅食行为(坐等、行走、俯冲)进行全局优化。
文件:
Published/main.m— 标准测试函数优化主程序(F1-F23)Published/ESOA.m— ESOA 算法核心Published/Get_Functions_details.m— 23个标准测试函数定义Published/initialization.m— 种群初始化Published/func_plot.m— 函数3D可视化Published/2/bp_esoa.m— ESOA 优化 BP 神经网络(波士顿房价预测)Published/2/ESOA.m— ESOA 算法(BP优化版)Published/2/gra.m— 适应度函数Published/3/PSO-BP-main/PSOBP050.m— PSO-BP 对比实验
包含三种算法的路径规划对比:
Artificial Bee Colony/ABC_Planning/— 人工蜂群路径规划Genetic Algorithm/GA_Planning/— 遗传算法路径规划Simulated Annealing/SA_Planning/— 模拟退火路径规划- 各算法均含
GA_ObstacleAvoidance/避障子模块
文件:
蚁群算法/main_1.m— 主程序蚁群算法/antalg.m— 蚁群算法核心蚁群算法/floyed.m— Floyd 最短路径算法(用于启发式信息)蚁群算法/getPath.m— 路径提取蚁群算法/getpI.m— 转移概率计算
原理:模拟蜜蜂群体分工(雇佣蜂、观察蜂、侦察蜂)进行全局搜索。
文件:
abc.m— ABC 算法主程序lunpandu.m— 轮盘赌选择Sphere.m— Sphere 测试函数
原理:模拟蜘蛛猴群体的裂变-融合社会结构,含局部领导者和全局领导者两级决策。
文件:
SMO/smo.m— 标准 SMO 算法主程序SSMO 2020/ssmo.m— 改进版 SSMO(2020年)- 两个版本均包含完整的阶段函数:
LocalLeaderPhase.m— 局部领导者阶段GlobalLeaderPhase.m— 全局领导者阶段LocalLeaderLearningPhase.m— 局部学习阶段GlobalLeaderLearningPhase.m— 全局学习阶段LocalLeaderDecisionPhase.m— 局部决策阶段GlobalLeaderDecisionPhase.m— 全局决策阶段
- 打开 MATLAB,将当前目录切换到对应算法的文件夹
- 运行主程序文件(通常为
main.m或算法名称对应的.m文件) - 观察收敛曲线和优化结果
各子目录相互独立,可单独运行。
群智能算法/
├── AOC/ # 蚁群算法路径规划
├── pso/ # 粒子群路径规划
│ ├── 2/ # PSO 变体
│ └── 3/Path Planning/ # Yarpiz PSO 框架
├── Bas/ # 天牛须搜索算法
├── BSOA/ # 细菌觅食优化算法
├── woa/ # 鲸鱼优化算法(光谱分析)
├── bp/ # GA-BP 神经网络
├── 白鹭群优化算法/
│ └── Published/ # ESOA 标准测试 + BP优化
├── 蚁群/ # ACO/GA/SA 路径规划对比
├── 蚁群2/ # 蚁群 + Floyd
├── 蜂群/ # 人工蜂群算法
├── 蜘蛛猴/ # SMO / SSMO
│ ├── SMO/
│ └── SSMO 2020/
└── README.md
- Dorigo M. Ant Colony Optimization, 1992
- Kennedy J, Eberhart R. Particle Swarm Optimization, 1995
- Jiang X, Li S. BAS: Beetle Antennae Search Algorithm, 2017
- Mirjalili S, Lewis A. The Whale Optimization Algorithm, 2016
- Chen Z, Francis A, et al. Egret Swarm Optimization Algorithm, 2022
- Bansal J C, et al. Spider Monkey Optimization, 2014
- Karaboga D. Artificial Bee Colony Algorithm, 2005
- Passino K M. Bacterial Foraging Optimization, 2002