Open jvanhoefer opened 3 years ago
Thanks for pointing us in that direction. Three things to pyswarm:
1) If I am not mistaken the key difference in the implementation of optimization configuration is that
for
loop (pro: simple)In HYBRO you create your own OptimizationManager by inheriting from OptimizationManagerBase
(pros: every OptimisationManager will adhere to a standardized user interface; An OptimizationManager can be reused in another higher level OptimizationManager.
I believe our approach is better for HYBRO. What's your take on that?
2) I see that they call their population Swarm
whereas we call it ReferenceSet
. The former term is used in PSO, the latter in SS. Unless we want HYBRO to specifically use SS but no other global optimizer, I suggest to rename ReferenceSet
to Population
. What's your opinion?
3) In pyswarm the particles in the Swarm
class are represented as rows of a matrix (they have separate matrices for several attributes such as position
, velocity
etc. (see here)). Our ReferenceSet
is essentially a list of ReferenceSetMembers
, which themselves store attributes such as position x
, fval
etc.. Do you think there would be a performance improvement if we would use a matrix based approach like pyswarm?
Just found out that pyswarm also allows configuration of the optimization step https://pyswarms.readthedocs.io/en/latest/examples/tutorials/custom_optimization_loop.html might be good to look at for ideas.