📄 sqp_optimization_gini.m
字号:
% =========================================================================% Copyright (c)2006, 东南大学移动通信国家重点实验室% All rights reserved.%% 文件名称:SQP_Optimization_Gini.m% function描述:自编SQP的最优折中曲线搜索,Gini Index% 当前版本: 1.0% 作 者:梁浩% 完成日期: 2007年6月%==========================================================================function [op_th op_fair op_w] = SQP_Optimization_Gini(N, aimFair, mean, sigma)precision = 10.^(-6);epsilon_g = 100; % 放松对梯度的要求,因为最大值点不一定是局部的极大值点epsilon_F = 10 .^ (-4);% 步骤(i)iter_num = 0;w = 1 .* ones(1, N-1);% 步骤(ii)[T F] = T_F_w_Gini(w, N, aimFair, mean, sigma);[g A] = g_A_w_Gini(w, N, aimFair, mean, sigma, precision);lambda = A' \ g';[x,fval,exitflag,output,grad,W] = W_w_lambda_Gini(N, aimFair, mean, sigma, lambda); % 用fmincon求初始时刻的Hessian矩阵:W[T F g A S] = T_F_g_A_S_w_Gini(w, N, aimFair, mean, sigma, lambda, precision); % 求目标函数、限制函数和Lagrangian函数的梯度% % 步骤(iii)-(x)的循环while 1% % % abs(g)% % % abs(F) if (sum(abs(g))<epsilon_g) && (abs(F)<epsilon_F) break end mat_for_solving_A = W; [size_row size_col] = size(mat_for_solving_A); mat_for_solving_A(size_row+1,:) = A; mat_for_solving_A(:,size_col+1) = [A, 0]'; mat_for_solving_b = -[g+lambda.*A, F]'; solution = mat_for_solving_A \ mat_for_solving_b; delta_w = solution(1:length(solution)-1); delta_lambda = solution(length(solution)); S_old = S; % 记录当前状态,以便于计算delta_S w = w + delta_w'; lambda = lambda + delta_lambda'; % 更新参数 [T F g A S] = T_F_g_A_S_w_Gini(w, N, aimFair, mean, sigma, lambda, precision); g A S T F delta_S = S - S_old; % 更新Hsessian矩阵% % % W = W - W * delta_w * (W * delta_w)' ./ (delta_w' * W * delta_w) + delta_S' * delta_S ./ (delta_S * delta_w); [x,fval,exitflag,output,grad,W] = W_w_lambda_Gini(N, aimFair, mean, sigma, lambda); endop_th = -T;op_fair = F + aimFair;op_w = w;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -