How I can specify more parameters to GA in order to speed up my code execution. with the help of (optimoptions function of ga).. opts = optimoptions(@ga,
조회 수: 3 (최근 30일)
이전 댓글 표시
%% Genetic Algorithm
FT=@(x)-Genetic_A(x);
A = []; % No other constraints
b = [];
Aeq = [];
beq = [];
lb = zeros(1,n);
ub = ones(1,n);
[x,fval] = ga(FT,n,A,b,Aeq,beq,lb,ub);
C_ga = -fval;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function C_ga = Genetic_A(x)
global G Pn Pt F H %G,F,H Matrices and Pn,Pt scalar
theta = (2*pi)*(x); %Reflecting Angle IRS, where x is a vector of size 1xn
Phi = diag(exp(1i*theta)); %phase shift Matrix for IRS, % Set Amp = 1
HT = H+F*Phi*G; %Channel Matrix
W = pinv(HT); %Precoding Matrix
W_bar = W./vecnorm(W,2,1); %Normalized
D_Matrix = HT*W_bar; %Diagonal Matrix
D_Square = (abs(diag(D_Matrix))').^2; % Channel gains
%% Water_filling
P = waterfill(Pt,Pn./D_Square);
R = P.*D_Square/Pn;
C_ga = sum(log2(1+R)); %Capacity
답변 (1개)
Abdolkarim Mohammadi
2021년 6월 3일
Indeed vectorization helps a lot for non-simulation objective functions. You should use the UseVectorized option.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!