HYBRO-dev / HYBRO

python HYBRid Optimizer toolbox
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Start writing unit tests #5

Open jvanhoefer opened 3 years ago

yannikschaelte commented 3 years ago

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.

paulflang commented 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

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?