📄 evalution_gini_24.m
字号:
% =========================================================================% Copyright (c)2006, 东南大学移动通信国家重点实验室% All rights reserved.%% 文件名称:evalution_Gini_12.m% function描述:调度算法性能评估,24用户,Gini Index% 当前版本: 1.0% 作 者:梁浩% 完成日期: 2006年10月%==========================================================================clear;clc;%随机集合的再现、归一化、从小到大排序rand('state',0);N2 = 24;for m=1:1800 test_rand = rand(1);endfor m=1:N2 aveSNR(m) = rand(1);endsum_set = sum(aveSNR);aveSNR = aveSNR / sum_set * 240 ;%从小到大排列aveSNR_sorted = sort(aveSNR);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 分组#1(折中分组,多取一个转置),Hybird N/A K=2N = 24;clear aveSNR_grouped;K = 2;uses_per_group = N ./ (24/K);vecN = uses_per_group .* ones(1,(24/K));for k = 1:24/K aveSNR_grouped(k,:) = aveSNR_sorted( [( (k-1) * uses_per_group + 1) : (k * uses_per_group)] );endaveSNR_grouped = aveSNR_grouped';clear uses_per_group;clear vecN;uses_per_group = N ./ K;vecN = uses_per_group .* ones(1,K);%计算Hybrid N/A方法的Throughput、FairnesshyNAFair12 = HyNAFair_Gini(K, vecN, aveSNR_grouped)hyNATh12 = HyNATh(K, vecN, aveSNR_grouped)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 分组#2(折中分组,多取一个转置),Hybird N/A K=4N = 24;clear aveSNR_grouped;K = 4;uses_per_group = N ./ (24/K);vecN = uses_per_group .* ones(1,(24/K));for k = 1:24/K aveSNR_grouped(k,:) = aveSNR_sorted( [( (k-1) * uses_per_group + 1) : (k * uses_per_group)] );endaveSNR_grouped = aveSNR_grouped';clear uses_per_group;clear vecN;uses_per_group = N ./ K;vecN = uses_per_group .* ones(1,K);%计算Hybrid N/A方法的Throughput、FairnesshyNAFair2 = HyNAFair_Gini(K, vecN, aveSNR_grouped)hyNATh2 = HyNATh(K, vecN, aveSNR_grouped)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 分组#3(折中分组,多取一个转置),Hybird A/N K=8N = 24;clear aveSNR_grouped;K = 8;uses_per_group = N ./ (24/K);vecN = uses_per_group .* ones(1,(24/K));for k = 1:24/K aveSNR_grouped(k,:) = aveSNR_sorted( [( (k-1) * uses_per_group + 1) : (k * uses_per_group)] );endaveSNR_grouped = aveSNR_grouped';clear uses_per_group;clear vecN;uses_per_group = N ./ K;vecN = uses_per_group .* ones(1,K);%计算Hybrid A/N方法中用到的中间参数aveSNRnfor n = 1:K aveSNRn(n) = quadl(@HyANmodpdf, 10^(-3), 10^3, 10^(-12), [], vecN, aveSNR_grouped, n);end%计算Hybrid A/N方法的Throughput、Fairnessfor i = 1:K for j= 1:vecN(i) Th12(i,j) = double_int(10^(-4),'x_hi',10^(-3) ,10^3, K, vecN, aveSNR_grouped, aveSNRn, i, j) endendhyANFair12 = Fairness_Gini(N, Th12)hyANTh12 = sum(sum(Th12))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 分组#4(折中分组,多取一个转置),Hybird A/N K=12N = 24;clear aveSNR_grouped;K = 12;uses_per_group = N ./ (24/K);vecN = uses_per_group .* ones(1,(24/K));for k = 1:24/K aveSNR_grouped(k,:) = aveSNR_sorted( [( (k-1) * uses_per_group + 1) : (k * uses_per_group)] );endaveSNR_grouped = aveSNR_grouped';clear uses_per_group;clear vecN;uses_per_group = N ./ K;vecN = uses_per_group .* ones(1,K);%计算Hybrid A/N方法中用到的中间参数aveSNRnfor n = 1:K aveSNRn(n) = quadl(@HyANmodpdf, 10^(-3), 10^3, 10^(-12), [], vecN, aveSNR_grouped, n);end%计算Hybrid A/N方法的Throughput、Fairnessfor i = 1:K for j= 1:vecN(i) Th2(i,j) = double_int(10^(-4),'x_hi',10^(-3) ,10^3, K, vecN, aveSNR_grouped, aveSNRn, i, j) endendhyANFair2 = Fairness_Gini(N, Th2)hyANTh2 = sum(sum(Th2))%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 其它几种调度算法:max C/I、PF、M-LWDFmaxCIFair= MaxCIFair_Gini(N, aveSNR)maxCITh = MaxCITh(N, aveSNR)pfFair = PFFair_Gini(N,aveSNR)pfTh = PFTh(N,aveSNR)rrFair = RRFair_Gini(N,aveSNR)rrTh = RRTh(N,aveSNR)[PBFS_Th_100, PBFS_Fair_100] = PBFS_Gini(N, aveSNR, ones(1, N), 1000, 150)[PBFS_Th_500, PBFS_Fair_500] = PBFS_Gini(N, aveSNR, ones(1, N), 1000, 600)[PBFS_Th_3000, PBFS_Fair_3000] = PBFS_Gini(N, aveSNR, ones(1, N), 1000, 2500)% [S_PBFS_Th, S_PBFS_Fair] = S_PBFS_Gini(N, aveSNR, ones(1, N), 1000)load mat_precise_12_24_36.matfigureplot(aimFair_set2_gini,opTh_set2_gini,'k.-')hold on;plot(rrFair,rrTh,'kh')hold on;plot(maxCIFair,maxCITh , 'ks');hold on;plot(pfFair,pfTh , 'kd');hold on;plot(hyNAFair12, hyNATh12, 'k<')hold on;plot(hyNAFair2, hyNATh2, 'k>')hold on;plot(hyANFair12, hyANTh12, 'k^')hold on;plot(hyANFair2, hyANTh2, 'kv')hold on;plot(PBFS_Fair_100,PBFS_Th_100, 'k*')hold on;plot(PBFS_Fair_500,PBFS_Th_500, 'k+')hold on;plot(PBFS_Fair_3000,PBFS_Th_3000, 'kp')hold on;% plot(S_PBFS_Fair,S_PBFS_Th, 'k+')% hold on;grid on;legend('Optimal Curve','RR','Max C/I','PF','Hybrid N/A K=2','Hybrid N/A K=4','Hybrid A/N K=8','Hybrid A/N K=12', 'PBFS D=300', 'PBFS D=1200', 'PBFS D=5000', 4)xlabel('Fairness');ylabel('Throughput (bps/Hz)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -