首页 > 编程语言 >【随机接入】基于随机接入代价的异构网络速率分配算法

【随机接入】基于随机接入代价的异构网络速率分配算法

时间:2022-12-23 23:33:47浏览次数:49  
标签:异构 min 接入 miu3 sum 随机 Ind miu Fz

1.软件版本
matlab2013b

2.本算法理论知识
在协作传输中,把业务流分拆到不同网络进行传输可解决单一网络无法传输的问题,同时降低接入阻塞率并提高网络利用率。随机接入的退避机制决定了碰撞率随接入用户数的增多而快速增大。因此,盲目追求资源分配的公平性对数据流进行拆分和并行传输相当于增加了网络的用户数,会导致随机接入网络的性能快速下降。本课题要求用信道利用率描述网络状态,构造相应的价格函数对速率分配进行协调,按照最小接入代价获取最大吞吐量收益的原则对速率分配进行建模。

3.部分源码

clc;
clear;
close all;
warning off;
%初始化网络可用带宽,注意,论文中场景2给出了网络的可用带宽
%但场景1却没给出这个指标,下面几个参数根据论文的结论推导的
miu1 = 3;
miu2 = 2.5;
miu3 = 1.5;
%初始化网络权值
Fz(1) = 1/miu1;
Fz(2) = 1/miu2;
Fz(3) = 1/miu3;
w = Fz/sum(Fz);
wpj = Fz/sum(Fz);
miu = [miu1,miu2,miu3];
%仿真尺度
Stime = [0:0.5:10];
%开始循环
Ind = 0;
for i = Stime
Ind = Ind + 1;
%本文算法
%本文算法
%计算剩余贷款
LBS1(Ind) = w(1)*(sum(miu)-i);
LBS2(Ind) = w(2)*(sum(miu)-i);
LBS3(Ind) = w(3)*(sum(miu)-i);
%进行速率的分配
x1(Ind) = miu1 - LBS1(Ind);
x2(Ind) = miu2 - LBS2(Ind);
x3(Ind) = miu3 - LBS3(Ind);
%N=3;
if LBS3(Ind) > miu3
x3(Ind) = 0;
w1 = Fz/sum(Fz(1:2));
LBS1(Ind) = w1(1)*(LBS1(Ind)/w(1) - miu3);
LBS2(Ind) = w1(2)*(LBS2(Ind)/w(2) - miu3);
%进行速率的分配
x1(Ind) = miu1 - LBS1(Ind);
x2(Ind) = miu2 - LBS2(Ind);
end
if LBS2(Ind) > miu2
x2(Ind) = 0;
w11 = Fz/sum(Fz(1));
LBS1(Ind) = w11(1)*(LBS1(Ind)/w1(1)-miu2);
%进行速率的分配
x1(Ind) = miu1 - LBS1(Ind);
end
if LBS3(Ind) > miu3
x3(Ind) = 0;
end
x1(Ind) = min(x1(Ind),miu(1));
x2(Ind) = min(x2(Ind),miu(2));
x3(Ind) = min(x3(Ind),miu(3));
R1(Ind) = x1(Ind)/miu(1);
R2(Ind) = x2(Ind)/miu(2);
R3(Ind) = x3(Ind)/miu(3);
Rs =(R1(Ind)+R2(Ind)+R3(Ind))^2;
Rm =(R1(Ind)^2+R2(Ind)^2+R3(Ind)^2)*3;
I1(Ind) = Rs/Rm;

%平均分配算法
%平均分配算法
wpj = [1/3,1/3,1/3];
LBS1pj(Ind) = wpj(1)*(sum(miu)-Ind/3);
LBS2pj(Ind) = wpj(2)*(sum(miu)-Ind/3);
LBS3pj(Ind) = wpj(3)*(sum(miu)-Ind/3);
%进行速率的分配
x1pj(Ind) = miu1 - LBS1pj(Ind);
x2pj(Ind) = miu2 - LBS2pj(Ind);
x3pj(Ind) = miu3 - LBS3pj(Ind);
x1pj(Ind) = min(x1pj(Ind),miu(1));
x2pj(Ind) = min(x2pj(Ind),miu(2));
x3pj(Ind) = min(x3pj(Ind),miu(3));
R1pj(Ind) = x1pj(Ind)/miu(1);
R2pj(Ind) = x2pj(Ind)/miu(2);
R3pj(Ind) = x3pj(Ind)/miu(3);
Rs =(R1pj(Ind)+R2pj(Ind)+R3pj(Ind))^2;
Rm =(R1pj(Ind)^2+R2pj(Ind)^2+R3pj(Ind)^2)*3;
I2(Ind) = Rs/Rm;

%比例分配算法
%比例分配算法
x1(Ind) = min(miu(1)/sum(miu)*i,miu(1));
x2(Ind) = min(miu(2)/sum(miu)*i,miu(2));
x3(Ind) = min(miu(3)/sum(miu)*i,miu(3));
R1(Ind) = x1(Ind)/miu(1);
R2(Ind) = x2(Ind)/miu(2);
R3(Ind) = x3(Ind)/miu(3);
Rs =(R1(Ind)+R2(Ind)+R3(Ind))^2;
Rm =(R1(Ind)^2+R2(Ind)^2+R3(Ind)^2)*3;
I3(Ind) = Rs/Rm;
end
figure;
plot(Stime,I1,'-^');
hold on;
plot(Stime,I2,'-x');
hold on;
plot(Stime,I3,'-s');
hold on;
title('场景1')
legend('本文算法','平均分配算法','比例分配算法')
xlabel('数据流速率/(10^3 kb.s-1)')
ylabel('速率分配/(10^6 kb.s-1)')
% axis([0,20,0,1]);

4.仿真结论

 

 

 

 

 

 

 

标签:异构,min,接入,miu3,sum,随机,Ind,miu,Fz
From: https://www.cnblogs.com/matlabfpga/p/17001836.html

相关文章

  • R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析|附代码数据
    全文链接:http://tecdat.cn/?p=22596最近我们被客户要求撰写关于预测心脏病数据的研究报告,包括一些图形和统计输出。本报告是对心脏研究的机器学习/数据科学调查分析。更......
  • argocd接入ldap
    1、在身份提供者中注册应用官网配置参考:​​https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/​​登陆入gitlab工具进入,创建应用2、编辑配置添......
  • 教你用JavaScript实现随机点名器
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript相关知识,做一个随机点名的案例。你可以通过点击开始按钮控制上方名字的闪动,点击停止按......
  • 数据库 从表中随机返回n行数据
    从表中随机返回n行数据MySQL结合使用内置函数RAND、LIMIT和ORDERBY。selectename,jobfromemporderbyrand()limit5SQLServer结合使用内置函数NEWID、TO......
  • 支付宝接入技术
    准备工作:去支付宝开放平台准备好以下东西//沙箱应用私钥(privatekey)privateStringshaxiang_app_private_Key="MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEA......
  • 启科 QuSaaS 真随机数解决方案与 Amazon Braket 结合实践
    作者:1.丘秉宜,2.邵伟,3.黄文,4.郭梦杰1.亚马逊云科技HERO;2.开发者生态负责人;3.DEVOPS工程师;4.资深研发工程师1、概述随机性(Randomness)是偶然性的一种形式,具有某一概率的......
  • 直播软件源码,JS获取指定长度的随机字符
    直播软件源码,JS获取指定长度的随机字符functionrandom_string(len){len=len||32;varchars='ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';  ......
  • 获取随机可用TCP端口号(C#)
    获取随机可用TCP端口号(C#)最近开启MQTT服务,需要获取随机可用的TCP端口号,需要两步:通过System.Net.NetworkInformation中的GetIPGlobalProperties,获取所有可用的端口号;/......
  • 敏捷异构HADOS开发平台,充分释放DPU极致性能
    DSA架构和XPU芯片的兴盛在给解决算力问题带来新机遇的同时,也给软硬件开发带来了新的挑战。与传统的以CPU为核心的应用开发模式相比,DPU在网络、计算、存储等的应用场景相对来......
  • random 产生随机数
    console.info(_.random(0,5));//=>anintegerbetween0and5console.info(_.random(5));//=>alsoanintegerbetween0and5console.info(_.random(5,t......