How to constrain distance between points in optimization?
7 views (last 30 days)
Show older comments
For example in the matlab problem of placing 10 electrons:
In a similar problem I want to constrain the minimum distance between electrons to 0.1. Would you know how to do that with elecprob.Constraints.spherec?
Thank you very much for your time
2 Comments
Alan Weiss
on 29 Mar 2020
I'm sorry, but I do not understand your constraint. Are you constraining the minimum distance between any pair of electrons to be greater than 0.1? Or the maximum distance to be 0.1? Or that all electrons are exactly 0.1 distance away from each other? Or that some particular pairs of electrons are exactly 0.1 distance from each other?
Alan Weiss
MATLAB mathematical toolbox documentation
Accepted Answer
Matt J
on 29 Mar 2020
Edited: Matt J
on 30 Mar 2020
It can be set up this way, but keep in mind that this is a highly non-convex feasible set. It may be challenging to find a global optimum.
IJ=nchoosek(1:N,2); I=IJ(:,1); J=IJ(:,2);
elecprob.Constraints.MinDist=(x(I)-x(J)).^2+(y(I)-y(J)).^2 +(z(I)-z(J)).^2 >=0.1^2;
2 Comments
More Answers (0)
See Also
Categories
Find more on Nonlinear Optimization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!