【优化组合】基于matlab多种群混沌蚁群算法求解机组组合优化问题【含Matlab源码 2017期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、多种群混沌蚁群算法求解机组组合优化问题

0 引言
机组组合问题(Unit Commitment,UC)又称开停机计划,是电力系统解决优化潮流(OPF)、经济调度(ED)进而实现自动发电控制(AGC)、自动电压控制(AVC)的前提。机组组合问题具有高维数、非凸、离散、非线性的特点,在数学上为NP-Hard问题。实际中最多地运用于解决这类问题的方法有:优先级表法[1]、混合整数规划法[2]、拉格朗日松弛法[3]、动态规划法[4]等。随着启发式方法的发展,人工智能算法也被应用于机组组合问题中,其中包括:蚁群算法[5]、粒子群算法[6]、模拟退火算法[7]、遗传算法[8]、免疫算法[9]等。

蚁群算法(Ant Colony Optimization algorithm,ACO)因其高度并行性、合作性和鲁棒性被成功运用于求解多种组合优化问题当中。多种群蚁群算法(Multi colony ant Optimization algorithm,MCAO)将蚁群分类,对不同种类蚁群赋予不同的任务,通过各类蚁群之间的信息交流与合作来提高算法的计算效率以及解的质量。本文提出的多种群混沌蚁群算法(Multi colony chaotic ant Optimization algorithm,MCCAO)将蚁群分为搜索蚁、侦察蚁和工蚁。在蚁群算法选择路径过程中为信息素加入混沌量,使得蚁群在路径搜索时有更多的机会脱离局部最优,发现最优解。

1 机组组合问题的描述
机组组合的目标函数通常为系统运行成本G最小,其表达式为
在这里插入图片描述
其中:Uit为0,1变量,表示第i台机组t时刻机组开关机状态;Fi(Pit)一般可以表示为
在这里插入图片描述
机组组合问题的约束条件可以分为系统约束和机组特性约束。系统约束包括系统功率平衡约束、备用约束,如式(3)式(4)所示。机组特性约束包括机组输出功率约束、机组爬坡速率约束、最小开停机时间约束,如式(5)式(8)所示。
在这里插入图片描述
其中:Uit含义与式(1)中相同;iPt为第i台机组在t时段的出力;PDt为时段t系统负荷;SDt为时段t的备用要求;为机组i的出力上/下限;Rui和Rdi为机组i每个时段允许可调的出力上/下限;T1i和T2i为机组i的最小开机时间和最小关机时间[9]。

2 多种群蚁群算法
2.1 种群间合作的作用原理

多种群蚁群算法把蚁群分为:搜索蚁,侦察蚁和工蚁三个蚁群。

搜索蚁的任务是寻找最优解。侦察蚁的作用是在搜索蚁已经找到的优质路径以外的路径中寻优,这样做的目的是尽可能使得蚁群算法避免落入局部最优。在多种群蚁群算法中,工蚁是整个蚁群算法的核心。工蚁的工作是做最优解的分析、总结以及信息素的调整。搜索蚁和侦察蚁把各自找到的路径信息传递给工蚁,工蚁找出收到信息中的最优解,形成最优解集。之后对最优解集中的解做整理、加权,调整最优解集的信息。最后根据得到的最优解集信息,为搜索蚁和侦察蚁调整信息素。

多种群蚁群算法各种群之间的信息交换机制可以用图1表示。
在这里插入图片描述
图1 多种群蚁群算法信息交互原理

2.2 搜索蚁、侦查蚁的路径选择原理
搜索蚁和侦查蚁采用相同的路径选择原理。在运用蚁群算法解决机组组合优化问题时,把某时段机组的一种随机组合状态当做蚂蚁在该时段的一条候选路径,蚁群选择转移路径的概率公式为
在这里插入图片描述
式中:τij(t)表示t时刻路径ij上的信息素量;ηij为与解决问题相关的启发式信息,在机组组合优化中可选为t时刻运行费用的倒数;ij表示在k时段里从i到j的一条路径;is表示在k时段里从i出发的任意一条候选路径;α,β分别表示蚂蚁在运动过程中所积累的信息及启发式因子在蚂蚁选择路径过程中所起作用的重要程度;T(k)为k时段的候选路径表集合,在机组组合优化中为通过开停机时间约束和爬坡约束筛选后的可选机组组合办法所组成的集合。

2.3 混沌量的引入
混沌优化是运用混沌序列的随机性、遍历性和初值敏感性来提高随机优化算法的效率。Logistic序列是一种常用的混沌序列,它的表达式描述为
在这里插入图片描述
其中,μ为常数,取值在区间[3.46,4]上。当μ=4,x取在[0,1]上时,Logistic完全处于混沌状态。

本文提出的多种群蚁群算法中搜索蚁和侦察蚁按照式(9)来选取路径,与基本蚁群算法不同的是在运用式(9)之前,对信息素做如下混沌的扰动。
在这里插入图片描述
其中:Xij为混沌扰动,由混沌系统Logistic映射得到;δ为相关系数;b为扰动尺度。

需要指出的是,本文所用到的混沌优化实质上最后并没有改变信息素的调整,混沌扰动只是在选取路径过程起作用。这样做一方面维护了蚁群算法在寻优过程中知识积累的准确性;另一方面也使得路径选择加入了一定的随机性。

2.4 工蚁的作用原理
从多种群蚁群算法种群间合作原理中可以看出,工蚁是多种群混沌蚁群算法的核心。工蚁在接受搜索蚁和侦察蚁得到的路径后,对路径进行筛选,找出较优的一组路径,形成最优解集,并将最优解集中的最优解复制加权。然后根据最优解集中的路径,利用全局信息素更新规则来为搜索蚁和侦查蚁更新路径上信息素信息。搜索蚁信息素更新公式为
在这里插入图片描述
式中:0<ρ<1表示信息素的挥发因子,以减少历史记忆对选择的影响;Q为常数表示信息素强度。分析以上公式可以看出,在所有候选路径中,某条路径上的信息素越多且路径越短,则蚂蚁选择该路径的概率也越大。

为侦察蚁更新信息素时,所用到的信息素调整方式与式(12)不同,改做用式(15)来调整。
在这里插入图片描述
其中,ξ是恢复系数,为常数。从式(15)中容易看出:与搜索蚁不同,侦察蚁通过减少在最优路径上信息素的含量来避开已经找到的最优路径。其他路径上信息素含量的相对提高使蚁群有更多的机会探索没有搜索到的区域,这样做可以使蚁群算法避免落入局部最优。

3 多种群蚁群算法流程
多种群蚁群算法流程如图2,步骤描述如下:

(1)初始化。读取系统信息,初始化各参数,计迭代次数Nt=0。

(2)Nt=Nt+1,搜索蚁和侦查蚁按照式(8)、式(13)选取路径寻优。在找到的路径中,每组选取解中前n个最优解。

(3)工蚁接收搜索蚁和侦察蚁每次寻优得到的各自前n个最优解。将这2n个结果再排序,找到前n个最优解,将这n个最优解归入最优集Tbest。

(4)将最优解复制m份,其中m=λn(0<λ<1)。

(5)将Tbest中最优解重新排序,找到最优的n个解。

(6)为搜索蚁和侦察蚁更新信息素。搜索蚁的信息素更新方法采用式(12)式(14)基本蚁群全局信息素更新的算法。侦察蚁采用式(13)式(15)来更新信息素。

(7)判断是否已经达到收敛要求。如果是,则输出最优解;如果不是,则返回(2)。
在这里插入图片描述
图2 多种群蚁群算法流程

⛄二、部分源代码

clear
clc
n=33;%n=input(‘请输入节点数’);
b=32;%b=input(‘请输入支路数’);
disp(‘请输入支路阻抗和节点功率矩阵,第一列存支路号,第二列存首节点号,第三列存尾节点号,第四列存支路自阻抗,第五列存尾节点给定功率’);
Sb=10;%基准功率
Ub=12.66;%基准电压
Zb=Ub^2/Sb%基准阻抗
Z=[1,0,1,0.0922/Zb+i0.047/Zb,100/(Sb1000)+i60/(Sb1000)
2,1,2,0.4930/Zb+i0.2511/Zb,90/(Sb1000)+i40/(Sb1000)
3,2,3,0.3660/Zb+i0.1864/Zb,120/(Sb1000)+i80/(Sb1000)
4,3,4,0.3811/Zb+i0.1941/Zb,60/(Sb1000)+i30/(Sb1000)
5,4,5,0.8190/Zb+i0.7070/Zb,60/(Sb1000)+i20/(Sb1000)
6,5,6,0.1872/Zb+i0.6188/Zb,200/(Sb1000)+i100/(Sb1000)
7,6,7,0.7114/Zb+i0.2351/Zb,200/(Sb1000)+i100/(Sb1000)
8,7,8,1.0300/Zb+i0.7400/Zb,60/(Sb1000)+i20/(Sb1000)
9,8,9,1.0440/Zb+i0.7400/Zb,60/(Sb1000)+i20/(Sb1000)
10,9,10,0.1966/Zb+i0.0650/Zb,45/(Sb1000)+i30/(Sb1000)
11,10,11,0.3744/Zb+i0.1238/Zb,60/(Sb1000)+i35/(Sb1000)
12,11,12,1.4680/Zb+i1.1550/Zb,60/(Sb1000)+i35/(Sb1000)
13,12,13,0.5416/Zb+i0.7129/Zb,120/(Sb1000)+i80/(Sb1000)
14,13,14,0.5910/Zb+i0.5260/Zb,60/(Sb1000)+i10/(Sb1000)
15,14,15,0.7463/Zb+i0.5450/Zb,60/(Sb1000)+i20/(Sb1000)
16,15,16,1.2890/Zb+i1.7210/Zb,60/(Sb1000)+i20/(Sb1000)
17,16,17,0.3720/Zb+i0.5740/Zb,90/(Sb1000)+i40/(Sb1000)
18,1,18,0.1640/Zb+i0.1565/Zb,90/(Sb1000)+i40/(Sb1000)
19,18,19,1.5042/Zb+i1.3554/Zb,90/(Sb1000)+i40/(Sb1000)
20,19,20,0.4095/Zb+i0.4784/Zb,90/(Sb1000)+i40/(Sb1000)
21,20,21,0.7089/Zb+i0.9373/Zb,90/(Sb1000)+i40/(Sb1000)
22,2,22,0.4512/Zb+i0.3083/Zb,90/(Sb1000)+i50/(Sb1000)
23,22,23,0.8980/Zb+i0.7091/Zb,420/(Sb1000)+i200/(Sb1000)
24,23,24,0.8960/Zb+i0.7011/Zb,420/(Sb1000)+i200/(Sb1000)
25,5,25,0.2030/Zb+i0.1034/Zb,60/(Sb1000)+i25/(Sb1000)
26,25,26,0.2842/Zb+i0.1447/Zb,60/(Sb1000)+i25/(Sb1000)
27,26,27,1.0590/Zb+i0.9337/Zb,60/(Sb1000)+i20/(Sb1000)
28,27,28,0.8042/Zb+i0.7006/Zb,120/(Sb1000)+i70/(Sb1000)
29,28,29,0.5075/Zb+i0.2585/Zb,200/(Sb1000)+i600/(Sb1000)
30,29,30,0.9744/Zb+i0.9630/Zb,150/(Sb1000)+i70/(Sb1000)
31,30,31,3105/Zb+i0.3619/Zb,210/(Sb1000)+i100/(Sb1000)
32,31,32,0.3410/Zb+i0.5362/Zb,60/(Sb1000)+i40/(Sb1000)]
k=0;
V=ones(n,1);
t=0;
%迭代开始处
while t<b & k<1000
%算节点注入电流
x1=Z(b,3);x=x1-n;
for l=1:b
j=Z(l,3);
ua=V(j+1,1);
I(j,1)=conj(Z(j,5)/ua);
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李颖浩,郭瑞鹏.求解机组组合问题的多种群混沌蚁群算法[J].电力系统保护与控制. 2012,40(09)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于MATLAB的粒子与遗传算法混合算法可以用于求解切削参数优化问题。切削参数优化问题是指在特定的切削过程中,通过改变切削参数的数值,使得切削过程的效率最大化或者成本最小化。 粒子算法(Particle Swarm Optimization,PSO)是一种模拟自然界体行为的优化算法。它通过模拟粒子在搜索空间中的迭代跳跃来搜索全局最优解。在切削参数优化问题中,可以将切削参数视为粒子的位置,通过更新粒子的速度和位置,逐步接近全局最优解。 遗传算法(Genetic Algorithm,GA)是一种模拟生物进化过程的优化算法。它通过模拟自然界的选择、交叉和变异操作,进化出适应度更高的个体。在切削参数优化问题中,可以将切削参数视为个体的基因,通过选择、交叉和变异操作,搜索到最优的切削参数组合。 粒子与遗传算法的混合算法将PSO和GA相结合,充分利用两种算法的优势。首先使用PSO进行初步搜索,通过粒子的迭代跳跃逐渐接近全局最优解。然后使用GA进行局部搜索,通过交叉和变异操作进一步优化切削参数。最后,将PSO和GA的搜索结果进行比较,选择最优的切削参数组合作为最终解。 基于MATLAB的实现,可以利用MATLAB的编程环境和相关工具箱,编写PSO和GA的优化函数,并定义初始种和适应度函数。通过迭代更新粒子的速度和位置,以及进行选择、交叉和变异操作,逐步搜索出最优的切削参数组合。 总之,基于MATLAB的粒子与遗传算法混合算法能够有效地求解切削参数优化问题,通过利用粒子算法和遗传算法的优势,能够得到更精确的结果,提高切削过程的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海神之光

有机会获得赠送范围1份代码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值