资源简介
该程序是基于蜂群算法的QOS多播路由技术,可以将随机节点进行自适应路径选择,能量最低
代码片段和文件信息
function [MRTEDGEScost]=ACA_QoS_MR(CDSEDmaxKMAlphaBetaGammaTauRhoQ)
%% Ant Colony Algorithm for QoS Multicast Routing
% QoS组播路由蚁群算法
% 【GreenSim.C原创】QoS组播路由问题的蚁群算法通用Matlab源码
% GreenSim团队原创作品,转载请注明
% 此源代码完整无删减,请放心使用
% 欲与原作者技术交流请发邮件aihuacheng@gmail.com
%% 输入参数列表
% C 费用邻接矩阵(N×N)
% D 延时邻接矩阵(N×N)
% S 源节点
% E 组播目的节点(行向量)
% Dmax 延时约束
% K 迭代次数(指蚂蚁出动多少波)
% M 蚂蚁个数(每一波蚂蚁有多少个)
% Alpha 表征信息素重要程度的参数
% Beta 表征启发式因子(费用)重要程度的参数
% Gamma 表征启发式因子(延时)重要程度的参数
% Tau 初始信息素矩阵
% Rho 信息素蒸发系数
% Q 信息素增加强度系数
%% 输出参数列表
% MRT 最优组播树(01邻接矩阵表示)
% EDGES 最优组播树所有的边
% cost 最优组播树的费用
%%
C=rand(88);
D=rand(88);
S=3;
E=[61];
Dmax=10;
K=10;
M=3;
Alpha=0.63;
Beta=0.4;
Gamma=0.8;
Tau=ones(88);
Rho=ones(88);
Q=2;
%% 第一步:变量初始化
N=size(C1);%网络节点个数为N
P=length(E);%目的节点个数为M
MRT=zeros(NN);
cost=inf;
ROUTES=cell(PKM);%用细胞结构存储到每一个目的节点的每一代的每一只蚂蚁的爬行路线
DELAYS=inf*ones(PKM);%用三维数组存储每代每个蚂蚁爬行到各个目的节点的延时
COSTS=inf*ones(PKM);%用三维数组存储每代每个蚂蚁爬行到各个目的节点的费用
%% 第二步:启动到P个目的节点的K轮蚂蚁觅食活动,每轮派出M只蚂蚁
for p=1:P
Tau=ones(NN);
for k=1:K
for m=1:M
%% 第三步:状态初始化
W=S;%当前节点初始化为起始点
Path=S;%爬行路线初始化
PD=0;%爬行路线延时初始化
PC=0;%爬行路线费用初始化
TABU=ones(1N);%禁忌表初始化
TABU(S)=0;%S已经在初始点了,因此要排除
CC=C;%费用邻接矩阵备份
DD=D;%延时邻接矩阵备份
%% 第四步:下一步可以前往的节点
DW=DD(W:);
DW1=find(DW for j=1:length(DW1)
if TABU(DW1(j))==0
DW(j)=inf;
end
end
LJD=find(DW Len_LJD=length(LJD);%可选节点的个数
%% 觅食停止条件:蚂蚁未遇到食物或者陷入死胡同
while (W~=E(p))&&(Len_LJD>=1)
%% 第五步:转轮赌法选择下一步怎么走
PP=zeros(1Len_LJD);
for i=1:Len_LJD
PP(i)=(Tau(WLJD(i))^Alpha)*(C(WLJD(i))^Beta)*(D(WLJD(i))^Gamma);
end
PP=PP/(sum(PP));%建立概率分布
Pcum=cumsum(PP);
Select=find(Pcum>=rand);
to_visit=LJD(Select(1));%下一步将要前往的节点
%% 第六步:状态更新和记录
Path=[Pathto_visit];%#ok %路径增加
PD=PD+DD(Wto_visit);%路径延时累计
PC=PC+CC(Wto_visit);%路径费用累计
W=to_visit;%蚂蚁移到下一个节点
for kk=1:N
if TABU(kk)==0
CC(Wkk)=inf;
CC(kkW)=inf;
DD(Wkk)=inf;
DD(kkW)=inf;
end
end
TABU(W)=0;%已访问过的节点从禁忌表中删除
DW=DD(W:);
DW1=find(DW
- 上一篇:倒立摆simuli
nk控制仿真.zip - 下一篇:多层bp神经网络代码附带数据集
相关资源
-
模糊控制的matlab simuli
nk仿真 -
基于Matlab/SIMUli
nk的 OPGW感应取电仿真 - 装配生产线任务平衡问题的遗传算法
- IEEE33节点matlab潮流程序.doc
- BP算法的MATLAB实现
- DQPSK调制与解调
- 绘制天线方向图
- 基于matlab的相机标定程序
- Matlab实现kl变换
- 图像显著性检测
- matlab 显示txt数据图片
- USM算法锐化图像 拉普拉斯算法处理图
- 基于matlab的海明窗带阻滤波器的设计
- matlab房间脉冲响应模拟工具
- pagerank matlab
- PSO-optimize-RBF matlab实现
- 异步电机软起动matlab仿真文件
- 单高斯背景建模MATLAB
- 神经网络解决TSP问题
- matlab批量读入图片
- LDPC的matlab 仿真 BP算法 BPSK调制
- FFT实现快速卷积 MATLAB
- 中值,均值,高斯滤波MATLAB处理,含
- MATLAB BP神经网络工具箱
- 基于MATLAB的发动机万有特性曲线绘制
- 带整流负载同步发电机的Matlab建模和
- aodv的matlab程序
- 物流配送路线matlab源程序
- MATLAB语音处理
- dijkstra算法通用matlab程序
评论
共有 条评论