好文档 - 专业文书写作范文服务资料分享网站

40MF-TDMA系统中多用户多业务的无线接入控制和时隙分配算法MATLAB源代码

天下 分享 时间: 加入收藏 我要投稿 点赞

欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim 邮箱:greensim@163.com MF-TDMA系统中多用户多业务的无线接入控制和时隙分配算法

MATLAB源代码

假设在调度时间之内,有M个用户发出资源调度请求,每个用户请求的时隙数量互不相同,但均小于超帧能够提供的最大时隙数量(注:如果大于超帧数量,则用整个超帧进行传输,剩下不足一个超帧的再进行调度)。假设这M个用户请求的时隙个数为1≤xi<P,i=1,…,M,其中P表示超帧包含的传输时隙个数。系统可供利用的信道数为N,信道和时隙联合分配的目的就是:如何在各个信道的超帧中安排这些业务请求,以使得占用的信道数尽可能少,并且各超帧的承载尽可能均衡。传统的信道和时隙分配是分开的,在做信道分配的时候不能做到全局考虑和统筹兼顾,导致最终的资源分配并不是最优的。本算法将信道分配和时隙分配作为一个整体考虑,使用全局优化的遗传模拟退火加以解决。

function

[BestX,BestY,BestZ,AllFarm,LC1,LC2,LC3,LC4,LC5]=GSAALB(M,N,Pm,Pd,K,t0,alpha,TaskP,TaskT,TaskV,RT,RV)

%% MF-TDMA系统中信道和时隙联合分配的遗传模拟退火算法 % GreenSim团队——专业级算法设计&代写程序 % 欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim %% 输入参数列表

% M------------遗传算法进化代数 % N------------种群规模,取偶数 % Pm-----------变异概率调节参数 % Pd-----------变异程度调节参数,0

% BestX--------最好个体的编码

% BestY--------最好个体对应的装配方案 % BestZ--------最好个体的目标函数值

%% -----------------------初始化---------------------------------- n=size(TaskP,1);

[AA,BB]=QJHJ(TaskP);

farm=Initialization(N,TaskP,AA,BB);%调用子函数,种群初始化 %输出参数初始化 BestX=zeros(1,n); BestY=zeros(1,n); BestZ=0;

LC1=zeros(M,1);

第1页

欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim 邮箱:greensim@163.com LC2=zeros(M,1); LC3=zeros(M,1); LC4=zeros(M,1); LC5=zeros(M,1); AllFarm=cell(M,1); %控制参数初始化 m=1;%迭代计数器 t=t0;%温度指示器

BestPos=1;%初始时任意指定被保护个体

%% -----------------------迭代过程--------------------------------- while m<=M%设置停止条件

%% ----------------------变异退火算子------------------------------ for i=1:N

if rand>Pm&&i~=BestPos

%如果随机数大于变异概率门限值,并且不属于保护个体,就对其实施变异 I=farm(i,:);%取出该个体 k=1;

while k<=K%每一个温度下的状态转移次数 %调用变异子函数

J=Mutation(I,Pd,AA,BB); %调用计算适应值子函数

[YI,ZI,FI,TGWI,VGWI,f1I,f2I]=Fitness(I,TaskT,TaskV,RT,RV); [YJ,ZJ,FJ,TGWJ,VGWJ,f1J,f2J]=Fitness(J,TaskT,TaskV,RT,RV); if FJ>FI

farm(i,:)=J; elseif rand

farm(i,:)=I; end k=k+1; end end end

%% -----------------------交叉算子--------------------------------- newfarm=zeros(size(farm));

Ser=randperm(N);%用这个函数保证随机配对 for i=1:2:(N-1)

FA=farm(Ser(i),:); FB=farm(Ser(i+1),:);

[SA,SB]=CrossOver(FA,FB); newfarm(i,:)=SA; newfarm(i+1,:)=SB; end

第2页

欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim 邮箱:greensim@163.com %新旧种群合并

FARM=[farm;newfarm];

%% -----------------------选择复制--------------------------------- FIT_Y=zeros(2*N,n); FIT_Z=zeros(2*N,1); FIT_F=zeros(2*N,1); FIT_f1=zeros(2*N,1); FIT_f2=zeros(2*N,1); fit_Y=zeros(N,n); fit_Z=zeros(N,1); fit_F=zeros(N,1); fit_f1=zeros(N,1); fit_f2=zeros(N,1); for i=1:(2*N)

XX=FARM(i,:);

[Y,Z,F,TGW,VGW,f1,f2]=Fitness(XX,TaskT,TaskV,RT,RV); FIT_Y(i,:)=Y; FIT_Z(i)=Z; FIT_F(i)=F; FIT_f1(i)=f1; FIT_f2(i)=f2; end

Ser=randperm(2*N); for i=1:N

ff1=FIT_F(Ser(2*i-1)); ff2=FIT_F(Ser(2*i)); if ff1>=ff2

farm(i,:)=FARM(Ser(2*i-1),:); fit_Y(i,:)=FIT_Y(Ser(2*i-1),:); fit_Z(i)=FIT_Z(Ser(2*i-1)); fit_F(i)=FIT_F(Ser(2*i-1)); fit_f1(i)=FIT_f1(Ser(2*i-1)); fit_f2(i)=FIT_f2(Ser(2*i-1)); else farm(i,:)=FARM(Ser(2*i),:); fit_Y(i,:)=FIT_Y(Ser(2*i),:); fit_Z(i)=FIT_Z(Ser(2*i)); fit_F(i)=FIT_F(Ser(2*i)); fit_f1(i)=FIT_f1(Ser(2*i)); fit_f2(i)=FIT_f2(Ser(2*i)); end end

%% -----------------------记录与更新------------------------------- maxF=max(fit_F);

第3页

40MF-TDMA系统中多用户多业务的无线接入控制和时隙分配算法MATLAB源代码

欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim邮箱:greensim@163.comMF-TDMA系统中多用户多业务的无线接入控制和时隙分配算法MATLAB源代码假设在调度时间之内,有M个用户发出资源调度请求,每个用户请求的时隙数量互不相同,但均小于超帧能够提供的最大时隙数量(注:如果大于超帧数量,则用整
推荐度:
点击下载文档文档为doc格式
1rqgr9b1ii3cwgi88zui
领取福利

微信扫码领取福利

微信扫码分享