What's needed?
There is a need to differentiate between two types of algorithms currently present in the DistributionAlgorithm implementation. This distinction is necessary to prevent confusion and improve clarity.
Proposed solution
To address this issue, the following improvements can be implemented:
- Transform
DistributionAlgorithm into an abstract base class.
- Introduce two new subclasses:
SoCBalancingAlgorithm and BlindDivisionAlgorithm and BlindAverageAlgorithm (name to be defined).
Additionally, it is suggested to reorganize the power package hierarchy by adding another level. This would result in classes such as power.distribution.Algorithm, power.distribution.SoCBalancingAlgorithm, etc. This restructure enables convenient usage like from ...power import distribution, distribution.SoCBalancingAlgorithm.
Additional context
For more detailed context, please refer to the initial discussion at #365 (comment)