Genetic Algorithm hardly converges in a large Integer optimization problem
2 views (last 30 days)
Show older comments
My problem has 30-50 integer decision variables, and around 100 nonlinear constraints.
I run it with pupulation size = 300, elite count = 30, function tolerance=1e-11.
Usually, the algorithm stops without finding a feasible solution (exitflag=-2, "average change in the penalty fitness value less than options.FunctionTolerance but constraints are not satisfied")
When I run it many times, with different random numbe seed, it finds a fesible solution which is a local minimun (there are around 10 local minima).
Only if I run it about 50-100 times, it finds the global solution. This approach is very inefficient, since I got a large class of similar problems in structure, but with different numeric data sets.
I played with the parameters (e.g., changed populationsize between 100 to 1000) - there qasn't much change in GA's ability to find a fesible solution in less trials.
I can send the code for your inspection if you give me your email.
Thanks,
Miki
0 Comments
Answers (2)
Alan Weiss
on 2 Dec 2019
This type of problem is challenging for ga. If you have a recent MATLAB version, you could try using surrogateopt with integer variables, using the workaround for nonlinear constraints shown here. But I am not sure that surrogateopt will work any more efficiently, if it works for this problem at all.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
0 Comments
Miki Weiss
on 2 Dec 2019
1 Comment
Alan Weiss
on 3 Dec 2019
Sorry, surrogateopt was introduced in R2018b, and integer constraints in surrogateopt were introduced in R2019b, as you can see in the release notes.
I don't have any other suggestions to give, sorry.
Alan Weiss
MATLAB mathematical toolbox documentation
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!