Sychronization of data in optimization loop for galapagos

We have an issue with our optimization loop with galapagos. The script aims to minimize steel usage in a structure without affecting its integrity.The loop work like this:

  • A genepool alters steel sections, impacting the weight almost instantly, which is the fitness.

  • This updated model is then analyzed in RFEM for design checks, and if any design ratios exceed 1.0, penalties are applied, altering the fitness value a second time within the same loop.

There is a problem that Galapagos may not be synchronizing with the updated values, possibly registering the initial fitness value before RFEM analysis is complete, leading to discrepancies in the results. Does anyone know how this work? If we could somehow make the fitness value update once after the rfem calculations. Could that be a solution? And if so any suggestions on how you do that?

//Sebastian

Hi,

its hard to tell without a minimal example. But it sounds that you are doing something which GH was not designed for. I guess you apply a concurrent workflow, where you implement one of these bad workarounds, where you re-trigger the solution a second time just to unblock the UI. I think there is no real benefit of concurrent workflows with GH, because you gain nothing by unblocking the UI.

With concurrent workflows you rather introduce a whole new category of nasty problems, because you can never be sure to maintain healthy data if the flow of computation is non-deterministic anymore.
Just await the response for any request you make within the main/UI thread whenever you interface to another process or machine and that should solve it… If I understand you correctly here.

1 Like