Initial convergence mixed integer ga optimization - only unfeasible results?

8 views (last 30 days)
Hello everyone
I'm currently working on a mixed integer ga optimization problem. The code works fine, after a while a get I get o logical solutions with a good fitness function. However, when I look to the convergence plot, I notice something weird. In the beginning, the penalty value is very low, then suddenly jumping to a more logic value. I asume that in the beginning, only unfeasible results are found, but I cannot explain why the penalty value is so low. From the definition of the penalty function:
  • The genetic algorithm attempts to minimize a penalty function, not the fitness function. The penalty function includes a term for infeasibility. This penalty function is combined with binary tournament selection by default to select individuals for subsequent generations. The penalty function value of a member of a population is:
  • If the member is feasible, the penalty function is the fitness function.
  • If the member is infeasible, the penalty function is the maximum fitness function among feasible members of the population, plus a sum of the constraint violations of the (infeasible) point.
So if it is true that in the first generations there are only unfeasible individuals, how can the low value be explained. The sum of the constraint violations should than be much higher I suppose? When I look to the webpage from Mixed integer ga optimization ( https://nl.mathworks.com/help/gads/mixed-integer-optimization.html ), the examples show the same behaviour, but is not explained.
Thanks in advance

Accepted Answer

Walter Roberson
Walter Roberson on 9 May 2025
If the member is infeasible, the penalty function is the maximum fitness function among feasible members of the population, plus a sum of the constraint violations of the (infeasible) point.
Suppose that to start with, all of the points are infeasible, but the constraint violations are mathematically small. Then the maximum fitness function among feasible members would be empty (which is probably taken to be 0), and the sum of the constraint violations would be small. The overall calculated value would be small.
Eventually feasible points are found, and at that point the maximum fitness function among the feasible members starts kicking in -- and that value is potentially large.
  1 Comment
Robbe
Robbe on 10 May 2025
Edited: Robbe on 10 May 2025
That was I was thinking as well, but the value in the beginning is just very low (order of magnitude 10^-3). With over 600 constraints, and the nature of my constraints, it seems impossible to me that that value is the sum of the violated constraints. Is there maybe some kind of scaling applied to the violated constraints?

Sign in to comment.

More Answers (0)

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!