基于免疫遗传算法(IGA)的多目标优化与改进遗传寻优系统
项目介绍
本项目是一个基于免疫遗传算法(Immune Genetic Algorithm, IGA)的高性能多目标优化系统。系统通过模仿生物免疫系统的防御、自调节及记忆机制,增强了传统遗传算法在处理复杂高维问题时的性能。其核心在于引入了“免疫平衡”的思想,既保证了搜索过程向帕累托最优前沿(Pareto Front)的快速逼近,又通过抗体浓度抑制机制防止算法在单一解附近过度聚集,从而维持了优异的解集多样性。
功能特性
- 双重评价机制:不仅考虑个体的目标函数表现(亲和度),还考虑种群的分布密度(浓度),自动调节选择压力。
- 免疫疫苗机制:通过从当前最优解集中提取统计特征作为“疫苗”,指导后续种群的进化,显著提高收敛速度。
- 非支配排序优化:采用多层级非支配排序方法,能够精准识别并保存不同等级的Pareto解。
- 自适应搜索策略:变异算子的力度随进化代数线性衰减,实现前期全局广度搜索与后期局部精细搜索的平衡。
- 多维度可视化统计:系统自动生成Pareto前沿分布图、收敛特性曲线、等级分布直方图及决策变量分布图。
使用方法
- 环境准备:确保安装了MATLAB环境。
- 参数设置:在算法启动部分,可以根据实际问题修改种群规模(pop_size)、变量维度(dim)、交叉变异概率以及相似度阈值(delta)。
- 运行算法:直接运行主脚本,系统将自动开始迭代优化。
- 结果查看:迭代结束后,系统会自动弹出可视化窗口,展示Pareto最优解的分布情况,并在控制台输出最优解的数量及目标函数取值范围。
系统要求
- MATLAB R2016b 或更高版本。
- 无需特殊工具箱,算法逻辑完全由自编程函数实现。
程序实现逻辑分析
主控制流程严格遵循以下闭环逻辑:
- 种群初始化:在给定的决策变量决策空间(下界lb,上界ub)内,生成符合均匀分布的初始抗体种群。
- 目标函数评估:系统内置了经典的ZDT1测试函数,计算每个个体的两个相互冲突的目标值:f1反映问题的基本表现,f2代表受约束的复杂性能指标。
- 免疫特性计算:
-
非支配排序:通过层层对比,将种群划分为不同的Pareto等级,等级1即为当前的非支配解。
-
浓度计算:利用欧几里得距离评价个体间的相似度,距离小于阈值delta的个体将被计入浓度。
-
综合评价:结合Pareto等级(亲和度)与浓度抑制因子,计算综合免疫适应度,作为后续选择的依据。
- 疫苗干预:提取Pareto第一等级个体的变量平均值作为“疫苗模板”,以一定概率对普通个体进行接种,通过特征引导加速种群向优质区域迁移。
- 算子操作:
-
锦标赛选择:基于综合免疫适应度,优先保留高性能且处于低浓度区域的个体。
-
SBX模拟二进制交叉:通过线性重组产生子代个体的基因。
-
自适应变异:根据当前迭代进度动态调整变异扰动范围,确保算法在后期能够精细化搜索。
- 循环与收敛:重复上述过程直至达到最大迭代次数,最后提取所有非支配解进行输出。
关键函数模块说明
- 目标计算模块:实现了多目标函数映射,通过向量化操作计算g函数及其对应的f1、f2值。
- 非支配排序模块:实现了一套帕累托支配检查算法,通过计数和集合记录,为每个抗体赋予准确的Pareto等级。
- 多样性维护模块:核心在于浓度计算函数,它通过空间距离普查,有效地量化了种群的拥挤程度。
- 抗体选择模块:实现了免疫克隆选择机制,确保综合评分高的抗体(亲和度高、浓度低)有更大的概率进入下一代。
- 疫苗接种模块:这是一种先验知识利用机制,将当代挖掘出的优良特征强制注入种群,体现了免疫记忆的特性。
- 可视化统计模块:实时记录每一代的均值表现,并在结束时利用subplot绘制四象限分析图,直观展现算法的优化效能。