MATLAB Answers

Genetic Algorithm hardly converges in a large Integer optimization problem

1 view (last 30 days)
Miki Weiss
Miki Weiss on 29 Nov 2019
Commented: Alan Weiss on 3 Dec 2019
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

Sign in to comment.

Answers (2)

Alan Weiss
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

Sign in to comment.


Miki Weiss
Miki Weiss on 2 Dec 2019
Thanks Allan,
My version is R2017b, does it support it?
I am enclosing the m. files you can try them,
Run Main.m, it will call the functions
Miki Weiss

  1 Comment

Alan Weiss
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

Sign in to comment.

Sign in to answer this question.