MATLAB: Genetic algorithm with non linear constraints

genetic algorithmnon linear constraints

Does the genetic algorithm ensure that all non linear constraints are satisfied before passing variables to the fitness function?
Background: I drive a simulation software using genetic algorithm to optimize parametrized electric machine designs. The software will give an error and exit unless the constraints in nonlcon are satisfied. The constraints I create in nonlcon are to avoid geometrical infeasibility of the model and the software would exit with error if such parameters were passed to it. Since global optimization simulations take weeks, it is very costly (in terms of time) to deal with such an error somewhere in the middle. Currently, I take care of not passing anything infeasible to the program within the fitness function (before calling the program using VB scripts). What I do is set a very high cost for infeasible instances and skip running the electromagnetic simulation altogether, but I am considering letting GA handle the non linear constraints.

Best Answer

Sorry, as documented, no nonlinear solver ensures that it passes only feasible points with respect to nonlinear constraints. ga passes points that are feasible with respect to bounds and linear constraints, but not nonlinear constraints.
Your solution sounds reasonable.
However, I would suggest that you will likely be happier using patternsearch instead of ga as a solver. patternsearch is usually faster, more robust, and easier to tune. You can search for a global optimum with patternsearch using a variety of techniques.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Related Question