⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t_f_g_a_s_w_gini.m

📁 TDM系统中的最优折中曲线搜索及调度算法性能评估
💻 M
字号:
% =========================================================================
% Copyright (c)2006, 东南大学移动通信国家重点实验室
% All rights reserved.
%
% 文件名称:T_F_g_A_S_w_Gini.m
% function描述:Gini Index下的目标函数

% 当前版本: 1.0
% 作    者:梁浩
% 完成日期: 2007年6月
%==========================================================================

function  [T F g A S] = T_F_g_A_S_w_Gini(w, N, aimFair, mean, sigma, lambda, precision)

ww = [1, w];                % ww是将w向量的第一个元素固定为1之后的结果
for i = 1:N
    Th(i) = quadl(@IntegralGene, -20, 100, 10^(-6), [], N, ww, mean, sigma, i);
end
T = 0 - sum(Th);
F = Fairness_Gini(N, Th) - aimFair;
L = T + lambda .* F;

%%% 为求梯度,将w再各个方向上按照precision散开
for gradient_num = 1:length(w)
    w_for_gradient_low(gradient_num,:) = w;
    w_for_gradient_high(gradient_num,:) = w;
    
    w_for_gradient_low(gradient_num,gradient_num) = w_for_gradient_low(gradient_num,gradient_num) - precision;     % precision为梯度求解的精度,即横坐标间隔
    w_for_gradient_high(gradient_num,gradient_num) = w_for_gradient_high(gradient_num,gradient_num) + precision;
end

%%% 求中心点两侧点处的取值
for gradient_num = 1:length(w)
%     gradient_num
    ww_for_gradient_low = [1, w_for_gradient_low(gradient_num,:)];                % ww是将w向量的第一个元素固定为1之后的结果
    ww_for_gradient_high = [1, w_for_gradient_high(gradient_num,:)];                % ww是将w向量的第一个元素固定为1之后的结果
    
    for i = 1:N
        Th_low(i) = quadl(@IntegralGene, -20, 100, 10^(-6), [], N, ww_for_gradient_low, mean, sigma, i);
        Th_high(i) = quadl(@IntegralGene, -20, 100, 10^(-6), [], N, ww_for_gradient_high, mean, sigma, i);
    end
    T_low = 0 - sum(Th_low);
    F_low = Fairness_Gini(N, Th_low) - aimFair;
    L_low = T_low + lambda .* F_low;

    T_high = 0 - sum(Th_high);
    F_high = Fairness_Gini(N, Th_high) - aimFair;
    L_high = T_high + lambda .* F_high;
    
    g_temp = gradient([T_low T T_high], precision);
    A_temp = gradient([F_low F F_high], precision);
    S_temp = gradient([L_low L L_high], precision);
    
    g(gradient_num) = g_temp(2);              % 取中心差分值
    A(gradient_num) = A_temp(2);              % 取中心差分值
    S(gradient_num) = S_temp(2);              % 取中心差分值
    
    clear ww_for_gradient_low
    clear ww_for_gradient_high
end


















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -