nasa / bingo

Apache License 2.0
47 stars 28 forks source link

CLO Refactor #52

Closed nightdr closed 2 years ago

nightdr commented 2 years ago

Refactoring ContinuousLocalOptimization to be more flexible for other optimization methods. This version uses the structure I proposed with a separate Optimizer class: separated Optimizer class rather than keeping the optimizer within the wrapper: Optimizer within wrapper I didn't really have a preference when we discussed this, so if you prefer the latter, let me know and it's pretty easy to swap between the two approaches. The only significant difference between the two I can come up with is that it is easier to swap the optimizer in the former approach. Maybe this is useful if a user wants to have a different objective function/optimization method after a period of evolution?

Changing the interface like this would break existing code, do you think it's worth it to provide a legacy version of the class with some switch between the two if the new version can't be used?

On a side note, the linter is complaining about a lot of older code. So I'll probably have to go through that at some point and change things to get the score above the 9.8 threshold.

nightdr commented 2 years ago

Travis build seems to be failing because it can't find a proper scipy version (see here).

gbomarito commented 2 years ago

Also, I'm ok with breaking backwards compatibility at this point (since we are pre v1.0)

And lets ignore travis (we should probably remove it from the CI because we're using github actions now)

nightdr commented 2 years ago

Sounds good with me. Also, all the documentation changes look good to me.

nightdr commented 2 years ago

Renamed the optimization interface, moved it to its own file, and made Chromosome implement it (see the conversation about the interface for more details). Also renamed some of the modules to align with their classes.

I decided to leave the changes in doc/ out of this PR since I'll be looking at the docs in the near future.