?? evalution_gini_36.m
字號:
% =========================================================================% Copyright (c)2006, 東南大學移動通信國家重點實驗室% All rights reserved.%% 文件名稱:evalution_Gini_36.m% function描述:調度算法性能評估,36用戶,Gini Index% 當前版本: 1.0% 作 者:梁浩% 完成日期: 2006年10月%==========================================================================clear;clc;%隨機集合的再現、歸一化、從小到大排序rand('state',0);N3 = 36;for m=1:1400 test_rand = rand(1);endfor m=1:N3 aveSNR(m) = rand(1);endsum_set = sum(aveSNR);aveSNR = aveSNR / sum_set * 360;%從小到大排列aveSNR_sorted = sort(aveSNR);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 分組#1(折中分組,多取一個轉置),Hybird N/A K=2N = 36;clear aveSNR_grouped;K = 2;uses_per_group = N ./ (36/K);vecN = uses_per_group .* ones(1,(36/K));for k = 1:36/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 = 36;clear aveSNR_grouped;K = 4;uses_per_group = N ./ (36/K);vecN = uses_per_group .* ones(1,(36/K));for k = 1:36/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=12N = 36;clear aveSNR_grouped;K = 12;uses_per_group = N ./ (36/K);vecN = uses_per_group .* ones(1,(36/K));for k = 1:36/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=18N = 36;clear aveSNR_grouped;K = 18;uses_per_group = N ./ (36/K);vecN = uses_per_group .* ones(1,(36/K));for k = 1:36/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, 200)[PBFS_Th_500, PBFS_Fair_500] = PBFS_Gini(N, aveSNR, ones(1, N), 1000, 800)[PBFS_Th_3000, PBFS_Fair_3000] = PBFS_Gini(N, aveSNR, ones(1, N), 1000, 11800)% [S_PBFS_Th, S_PBFS_Fair] = S_PBFS_Gini(N, aveSNR, ones(1, N), 1000)load mat_precise_12_24_36.matfigureplot(aimFair_set3_gini,opTh_set3_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=12','Hybrid A/N K=18', 'PBFS D=400', 'PBFS D=1600', 'PBFS D=23600', 4)xlabel('Fairness');ylabel('Throughput (bps/Hz)');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -