heidmic / suprb

GNU General Public License v3.0
6 stars 3 forks source link

Should we rename `Individual` to `Solution`? #74

Closed heidmic closed 2 years ago

heidmic commented 2 years ago

Some users might find it confusing that we use individuals when referring to sets of rules. From a metaheuristic or Pittsburgh-style perspective this is of course fine, but Michigan-style users might already be confused here. Especially, when we account for rule discovery where we optimize rules, sometimes with population based (meta-)heuristics which would also make those rules to individuals from that perspective.

heidmic commented 2 years ago

For example: Solution (from https://github.com/heidmic/suprb2/blob/master/suprb2/base.py) -> SolutionBase Individual (https://github.com/heidmic/suprb2/blob/master/suprb2/individual/base.py) -> Solution and accordingly for all inheriting classes.

Do you see any issues that could arise here, @Saethox?

Saethox commented 2 years ago

I don't see any problems, but we should be consistent and also rename IndividualOptimizer, etc. to SolutionComposition. Additionally, all variables that contain individual_optimizer in SupRB2 should be renamed, and SupRB2.generate_rules and SupRB2.select_rules should be discover_rules and compose_solution, respectively.

We also need to rename the suprb2.individual and suprb2.optimizer.individual modules to their solution counterpart. The component base classes for solutions also contain Individual right now, so they also need to be renamed.

heidmic commented 2 years ago

Keeping this open until the "child" issues have been resolved as well

Saethox commented 2 years ago

I reopened this issue because some doc strings were not updated, for example on SupRB2._compose_solution. On another note, I would prefer IndividualOptimizer to be renamed to SolutionComposition similar to RuleGeneration, and not SolutionOptimizer, as it is now. But this is something we could discuss.

heidmic commented 2 years ago

I reopened this issue because some doc strings were not updated, for example on SupRB2._compose_solution.

Performs rule selection (RS). is said docstring and I think that was slightly confusing beforehand as well. It should be changed

On another note, I would prefer IndividualOptimizer to be renamed to SolutionComposition similar to RuleGeneration, and not SolutionOptimizer, as it is now. But this is something we could discuss.

Sounds better. I agree