Exiting due to infeasibility: 1 lower bound exceeds the corresponding upper bound. Error using test13 (line 43) Optimization failed to converge

30 次查看(过去 30 天)
Below metioned code is giving error: as failed to converge as [x, fval] are empty. Kindly please help to reolve it? Thank You!!
% Define parameter ranges
f_rad_min = 5e9; % minimum radar frequency
f_comm_min = 2e9; % minimum communication frequency
gamma_min = 0.5; % minimum SINR threshold
P_max = 10; % maximum power
f_rad_max = 1000; % maximum radar frequency
gamma_max = 5; % maximum SINR threshold
f_comm_max= 10e9;
% Define objective functions
f1 = @(x) -x(1); % maximize communication rate
f2 = @(x) x(2); % minimize interference power
f3 = @(x) x(3); % minimize total power
% Define constraints
g1 = @(x) -(x(3) - x(2)); % ensure P_int <= P_out
g2 = @(x) x(1) - log2(1 + x(4)*x(5)/(x(3) - x(2) + eps));
g3 = @(x) x(2) - x(6); % ensure P_int <= gamma
g4 = @(x) x(4) - f_rad_min; % ensure f_rad >= f_rad_min
g5 = @(x) x(5) - f_comm_min; % ensure f_comm >= f_comm_min
g6 = @(x) x(3) - P_max; % ensure P_total <= P_max
g7 = @(x) f_rad_max - x(4); % ensure f_rad <= f_rad_max
g8 = @(x) gamma_max - x(6); % ensure gamma <= gamma_max
% Define number of variables and population size
nvars = 6; % number of variables
popsize = 100; % population size
% Define initial population
init_pop = repmat([f_rad_min, f_comm_min, 0.5*P_max, gamma_min, gamma_min, gamma_min], popsize, 1) ...
+ rand(popsize, nvars) .* repmat([f_rad_max-f_rad_min, f_comm_max-f_comm_min, P_max, gamma_max-gamma_min, gamma_max-gamma_min, gamma_max-gamma_min], popsize, 1);
% Clip the values within the bounds
init_pop = min(max(init_pop, [f_rad_min, f_comm_min, 0, gamma_min, gamma_min, gamma_min]), [f_rad_max, f_comm_max, P_max, gamma_max, gamma_max, gamma_max]);
% Run genetic algorithm
options = optimoptions('ga', 'PopulationSize', popsize, 'MaxGenerations', 100);
[x, fval] = ga(@(x) [f1(x), f2(x), f3(x)], nvars, [], [], [], [], [f_rad_min, f_comm_min, 0, gamma_min, gamma_min, 0.1], [f_rad_max, f_comm_max, P_max, gamma_max, gamma_max, gamma_max], ...
@(x) deal([g1(x), g2(x), g3(x), g4(x), g5(x), g6(x), g7(x), g8(x)], []), options);
Exiting due to infeasibility: a lower bound exceeds the corresponding upper bound.
% Check if optimization succeeded
if isempty(fval)
error('Optimization failed to converge')
end
Optimization failed to converge
% Plot Pareto front
figure
scatter3(-fval(:,1), fval(:,2), fval(:,3), 'filled')
xlabel('Communication rate')
ylabel('Interference power')
zlabel('Power consumption')
title('Pareto front')

回答(1 个)

Walter Roberson
Walter Roberson 2023-4-10
[f_rad_min, f_comm_min, 0, gamma_min, gamma_min, 0.1]
Those are your lower bounds
[f_rad_max, f_comm_max, P_max, gamma_max, gamma_max, gamma_max]
those are your upper bounds
f_rad_min = 5e9; % minimum radar frequency
f_rad_max = 1000; % maximum radar frequency
The lower bound exceeds the corresponding upper bound there

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by