【优化组合】基于matlab多种群混沌蚁群算法求解机组组合优化问题【含Matlab源码 2017期】_matlab进行组合优化-程序员宅基地

技术标签: matlab  Matlab优化求解 (进阶版)  

博主简介:热爱科研的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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TIQCmatlab/article/details/128570439

智能推荐

串口通信入门介绍_串口通信的间隔-程序员宅基地

文章浏览阅读1.8k次,点赞4次,收藏21次。一、串口通信串口是串行接口(serial port)的简称,也称为 串行通信接口 或 COM接口。串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。二、串行通信在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。串行通信的数据是逐位传输的,发送方发送的每一位都具有固_串口通信的间隔

关于Android集成高德地图的那些事儿...地图标注Marker 、Poi 搜索_高德地图bitmapdescriptorfactory.fromview-程序员宅基地

文章浏览阅读1.7k次。上一篇博客介绍了地图的显示,不要太简单了, 我们要实现的效果当然不仅仅是显示地图这么废了, 现在地图是有了 , 怎么在地图上添加一个标注呢? 添加一个圆形?又或者是我想在地图上添加个自定义的View, 会不会很6? 呵呵 答案全在AMap aMap=mapView.getMap(); 我们添加的这些东西都是要在aMap上操作的 , 之前有说道定位回调的方法里面显示了系统的定位小..._高德地图bitmapdescriptorfactory.fromview

PCIe 中 RCB(Read Completion Boundary) 地址边界对齐 返回完成报文_pcie rcb-程序员宅基地

文章浏览阅读5.5k次。Exp: 当主机发送一个读取128B MemRd的TLP时,虽然MPS(Max Payload Size)= 512B, 但返回多个CqlD。 如果RCB=64Bytes,返回完成报文长度=128Bytes,读取起始地址=10020h,则返回完成报文组合可以是: 32, 96 32, 64, 32 96, 32 128(..._pcie rcb

详谈单元测试-xUnit-程序员宅基地

文章浏览阅读1.8w次,点赞15次,收藏13次。简介xUnit.net 是针对 .NET 的免费,开源单元测试工具。可并行测试、数据驱动测试。测试项目需引用被测试项目,从而对其进行测试,测试项目同时需要引用 xUnit。测试编写后,用 Test Runner 来测试项目,Test Runner 可以读取测试代码,并且知道所会使用的测试框架,然后执行,并显示结果。如下图:支持平台xUnit.net 目前支持 .Net Framework、.Net Core、.Net Standard、UWP、Xamarin 这些平台的测试。_xunit

计算机毕业设计springboot基于Java的校园互助平台系统7k5xd9【附源码+数据库+部署+LW】_校园互助平台设计与实现-程序员宅基地

文章浏览阅读300次。选题背景:随着大学生活的日益繁忙和多样化,校园内的互助需求也逐渐增加。传统的互助方式往往存在信息不对称、匹配困难等问题,无法满足学生们的实际需求。基于Java的校园互助平台系统的设计与实现成为了解决这些问题的迫切需求。该系统利用Java技术和数据库技术,通过建立一个在线的校园互助平台,实现学生之间的互助信息发布、匹配、交流和协作,提供高效、便捷的校园互助服务。意义:基于Java的校园互助平台系统具有重要的意义。首先,它可以提供全面的互助信息管理和匹配功能。传统的校园互助方式往往需要学生通过社交媒体或_校园互助平台设计与实现

ubuntu qt 交叉编译龙芯平台_error: cannot compile a minimal program. the toolc-程序员宅基地

文章浏览阅读4.1k次,点赞4次,收藏14次。qt源码下载:https://download.qt.io/development_releases/qt/ 例如这个版本https://download.qt.io/archive/qt/5.13/5.13.2/single/ 我们需要编译的是这个版本 linux-mipsel-broadcom-97425-g++ 进到路径 cd qt-everywhere-src-5.13.2/qtbase/mkspecs/devices/linux-mipsel-broadcom-97425-g++ 先看一下_error: cannot compile a minimal program. the toolchain or qmakespec is broke

随便推点

硬件虚拟修改神器——VirtualHardware_vmwarehardware-程序员宅基地

文章浏览阅读4.7w次,点赞14次,收藏51次。最近,因为研究需要,需要用到windows硬件修改工具,网上寻觅了一番,找到了一款国内公司开发的叫VirtualHardware的工具,经过一番研究使用,发现这是一款简单而强大的硬件信息虚拟工具,今天就来给大家做一个介绍。一、概述 VirtualHardwares是一款windows下可视化可定制虚拟硬件信息的工具。VirtualHardwares并不是真正的修改,而是虚拟修改,重启计算..._vmwarehardware

Python-Django毕业设计基于的二手房交易系统(程序+Lw)_基于python的二手房交易系统的设计与实现-程序员宅基地

文章浏览阅读295次。房源委托管理,用户可在房源委托管理页面查看房源类型、房屋户型、封面、面积、价格、房源地址、委托时间、用户账号、用户姓名、联系电话、账号、姓名、手机、审核回复、审核状态等内容,还可进行新增、修改或删除等操作,如图5-7所示。房源委托管理,管理员可在房源委托管理页面查看房源类型、房屋户型、封面、面积、价格、房源地址、委托时间、用户账号、用户姓名、联系电话、账号、姓名、手机、审核回复、审核状态等内容,还可进行删除等操作,如图5-14所示。或者 Mac OS;charm环境:pycharm都可以。_基于python的二手房交易系统的设计与实现

学习c语言——关于数据结构_学习c语言的时候会学到数据结构吗-程序员宅基地

文章浏览阅读51次。这个星期上了第二次c语言课堂,经过了一个星期的学习,我发现了一个很重要的问题,因为自己上学期学习了python,但是python的语法跟c语言有所不同,我每次写代码的时候都会无意间拿出python的语法来,所以每次莫名其妙的运行错误...这个真的很难改掉。记得老师第一次上课时说过:要把之前学过的语法全部都忘掉,但是上学期的python还没期末考试,现在让我忘掉python我实在是做不到。书上第二章的第一节的大标题就是:程序=算法+数据结构,由此可见数据结构的重要性,数据结构就是。_学习c语言的时候会学到数据结构吗

Springboot+vue火车票售票系统-idea_基于springboot的火车票售卖系统-程序员宅基地

文章浏览阅读444次。有代码视频讲解参考,对项目进行黑盒测试和白盒测试,搭建开发环境、编写相关文档、搭建对象、数据库设计、编写功能代码、设计网页、用例测试,代码的整合打包,完成服务器的相关配置,最后得到项目成品。实现管理员:首页、个人中心、用户管理、列车信息管理、票务信息管理、订单信息管理、订单退票管理、订单改签管理、管理员管理、系统管理,用户;首页、列车信息、票务信息、公告信息、个人中心、后台管理、客服中心,从而达到对火车票售票系统信息的高效管理。3.2.1技术可行性:技术背景 5。1.2 国内外研究概况 1。_基于springboot的火车票售卖系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(29)-T4模版-程序员宅基地

文章浏览阅读121次。系列目录本节不再适合本系统,在58,59节已经重构。请超过本节这讲适合所有的MVC程序很荣幸,我们的系统有了体验的地址了。演示地址之前我们发布了一个简单的代码生成器,其原理就是读取数据库的表结构,生成文本的一个方式来生成代码!为了替代重复的劳动,微软自己有一套T4模版,我不想把T4模版说得那么的复杂,因为这个复杂我自己也不知道。原理跟市面的代码生成器一个道理,但是T..._asp.net ef+t4

glide加载gif图不显示动画_Glide4-入门教程-4-加载gif图片-程序员宅基地

文章浏览阅读2.3k次。一、简介glide库非常强大,能够加载gif图片就是其中之一,今天,我们就一起看一看如何用gide4加载gif动态图片。二、使用方法1,加载gif动画,同加载普通图片一样,使用如下代码就可以加载gif动画Glide.with(this).load(...).into(...)例如:ImageViewimageView=findViewById(R.id.image_view);Glide.w..._glide加载gif为什么不会动

推荐文章

热门文章

相关标签