# 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,

2 views (last 30 days)
Matthew Worker on 3 Jun 2021
Edited: Rena Berman on 16 Dec 2021
%% 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
Rena Berman on 16 Dec 2021

Abdolkarim Mohammadi on 3 Jun 2021
Indeed vectorization helps a lot for non-simulation objective functions. You should use the UseVectorized option.

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!