Wallacei: standard deviation graphs disappear at nth gen

Hallo, I´m struggling to use Wallacei, especially to understand whether it´s working or if my problem is correcly formulated.

When I launch my simulation (multiple examples on different scripts) it typically happen:

  • starting a certain generation, the standard deviation graph disappear
  • the last generation is the pareto front
  • the last generation is made of individuals that are very similar one to each other (not to mention, several individuals are identical).

I interpret these results: the optimization algorythm converges from a certain generation on to a certain solution and it´s incapable of moving further from there. Reason for this behaviour is unclear to me. I wish to understand what happens and how to fix this behaviour, which I reckon has a theorical issue behind.

Attached pictures that refer to a problem with only one fitness criteria, as I´m trying to understand whether wallacei at least converges towards the value i´m looking for (which seems to be the case).

WallaceiX_SnapShot_19102022-104432

you’re running a single objective problem, which is usually associated with a single optimal solution.

  • the reason the last generation is pareto front, and the reason that the pareto front solutions are identical, is because the simulation has converged towards the optimal solution. if you look at your fitness values graph, you’ll see that the blue lines are at ‘0’ on the y-axis, which means that the simulation has converged… the algorithm found the best solution, and so every solution that it creates after that is worst then the optimal solution it found, and so it just keeps creating the same optimal solution over and over again. its not that the algorithm is incapable of moving forward, there is nowhere for it to go… it found the best solution possible.

the reason that your standard deviation graphs are disappearing is because there is a huge difference between the first curve (which is wide) and the last curve which is super narrow… so when you try to remap the curves so that you show the first wide curve and the very narrow last curve, it makes everything very small, there isn’t anything wrong with the graphs… its just a sign that you converged.

Thanks for your answer Mohammed.

Noted - when implementing multiple objectives the convergence is not so sudden. Yet I´m interested in Wallacei not because of the possibility of finding the one optimal solution, rather MANY plausible ones.

I have instead the feeling that the algorythm coverged towards ONE optimal solution and stopped searching in other directions way too early in the evolution process. I say this because my algorythm implements 2 scenarions, that generate fundamentally different geometries, managed with a parameter that can be either 0 or 1. All pareto solutions are biased with either 0 or 1. If I chnge manually the parameters with the scenario that Wallacei is not carrying towards the Pareto front, I can manually find more than one solution that satisfies all my fitness objectives - but the alog does not look in that direction.

How do you foster diversity in the resulting Pareto fronts? Perhaps simulation parameters are reccomended? Other tip and tricks from you developers?

change the algorithm settings in tab 1, especially the crossover and mutation rates/distribution indices.

Read the primer here (Wallacei Primer 2.pdf - Google Drive) and go to page 28 to see how changing these settings can either increase or decrease convergence/variation.

1 Like

thanks Mohammend - this is much helpful and I could immediately spot more variance in the results. I´ll keep playing with the simulation values. One last question, which I´m not finding in the primer.

My most important fitness objective works like this:
FO = ( Abs(max - value) + Abs(min - value) - (max - min) )
meaning its value is 0 when the FO is within the target domain. How can I export all solutions whose value of FO is 0? I reckon this group of solutions to be different from the Pareto front (it is).

Hi Marco,

if you want to export the solutions that have converged to 0… which in this case are the fittest solutions, they will be part of the pareto front. You can export the pareto front and then filter out the solutions that have ‘0’ for that specific fitness objective.