GheodeAI / metaheuristic-designer

Framework for designing, testing and evaluating metaheuristic optimization algorithms.
https://metaheuristic-designer.readthedocs.io/en/latest/
MIT License
4 stars 0 forks source link

Operators should act on a popultion instead of an individual. #64

Open eugenioLR opened 7 months ago

eugenioLR commented 7 months ago

It would make a lot more sense if Operators were applied to a list of Individuals, making it so they return a list of modified individuals. This would help reduce some complexity in search strategies since they wouldn't need to implement a loop.

To address the difference between applying the operators to each individual one by one and picking randomly, this would become responsibility of the parent selection method, that should either return the population in its current order or pick individuals at random.

eugenioLR commented 5 months ago

Already implemented, but OperatorMeta and OperatorAdaptative have to be changed, they don't functions the same as in previous versions.

It could be interesting to also vectorize all operator functions since we know we are working with numpy vectors.

eugenioLR commented 2 days ago

A Population class should be added to make vectorized operations more efficiently and avoid converting from lists to arrays all the time.

Things to change: