Genetic Algorithm for points External To a Specific Volume

1 回表示 (過去 30 日間)
ADSW121365 2022 年 8 月 10 日
コメント済み: ADSW121365 2022 年 8 月 11 日
I'm using the GA to select measurement points in a three-dimensional physics problem.
I can tell GA to select only N_points inside some specified plane above my problem simply as:
X.min = -10; X.max = 10; Y.min = -10; Y.max = 10; Z.min = 0; Z.max = 2;
lb = repmat([X.min Y.min Z.min],[1 N_points]);
ub = repmat([X.max Y.max Z.max],[1 N_points]); %Lower/Upper Boundaries [X,Y,Z]
Is it possible to instead set up constraints so points are only selected outside of some cube? For clarity, a physical example would be there exists volume which a measurement device cannot enter, so the problem searches for points external to that region.
Ideally, I would select points only within a hollow-cube: External to a specific volume, but extending to reasonable limits - thereby minimising the possible search space.


Matt J
Matt J 2022 年 8 月 10 日
編集済み: Matt J 2022 年 8 月 10 日
You would have to use a non-linear constraint function for that:
function [cineq,ceq]=nonlcon(x)
x=reshape(x,3,[]); %reshape to 3xN_points
cineq(1,:)=vecnorm(x./[Xmax;Ymax;Zmax],inf)-1; %inside box of dimensions Xmax x Ymax x Zmax
cineq(2,:)=1-vecnorm(x./[Xmin;Ymin;Zmin],inf); %outside box of dimensions Xmin x Ymin x Zmin
  4 件のコメント
Matt J
Matt J 2022 年 8 月 11 日
編集済み: Matt J 2022 年 8 月 11 日
That would be,
ub=ones(3,N_points); lb=-ub; %outside box
function [cineq,ceq]=nonlcon(x)
x=reshape(x,3,[]); %reshape to 3xN_points
cineq=1-vecnorm(x./0.5,inf); %inner box
ADSW121365 2022 年 8 月 11 日
Perfect I understand now, thankyou!


その他の回答 (0 件)


Help Center および File ExchangeDirect Search についてさらに検索




Community Treasure Hunt

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

Start Hunting!

Translated by