I'm solving a weight minimization problem (wmin) for my master thesis with nonlinear constraint and integer variables. I've read about the penalty method for this type of problems but I can't interpret the results.
Here is an image of the fitness value at each iteration (i had to change the scale on the y axis to logarithmic or all the points before iteration 8 would appear over the x axis, also ignore the y-axis subtitle, it should be penalty value, I changed to fitness)
I know for this type of problems the initial population will be mainly composed of infeasible individuals. I know that the penalty method penalizes infeasible individuals and their fitness value is now the fitness of the worst feasible individual +penalty factor.
At all iterations the fitness function wmin takes values from the order of 1e4.
How come I get values of the order of 10 for the first generations when the fitness values for these generations are of the order 1e4?
Does the penalty factor subtract to the fitness value? That would make no sense, it would create better fitness instead of worst, encouraging the infeasible solutions to multiply...it all makes sense after the 8th iteration, the individuals are feasible and it converges, but that beggining makes no sense
I really need to interpret these results correctly so all help is welcome! Thanks!
As you can infer from the defintion here, the penalty might not really kick in until at least one individual is feasible. After that, infeasible individuals are penalized by the maximum fitness function of feasible individuals. Before any individual is feasible, the penalty is the constraint violation, and the constraint violation might not be appreciable compared to the fitness function value.
MATLAB mathematical toolbox documentation