Genetic Algorithm hardly converges in a large Integer optimization problem

2 visualizaciones (últimos 30 días)
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

Respuestas (2)

Alan Weiss
Alan Weiss el 2 de Dic. de 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

Miki Weiss
Miki Weiss el 2 de Dic. de 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 comentario
Alan Weiss
Alan Weiss el 3 de Dic. de 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

Iniciar sesión para comentar.

Categorías

Más información sobre Solver Outputs and Iterative Display en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by