Add Egor optimizer wrapper#485
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #485 +/- ##
=======================================
Coverage 82.99% 82.99%
=======================================
Files 1 1
Lines 147 147
=======================================
Hits 122 122
Misses 25 25 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
ewu63
left a comment
There was a problem hiding this comment.
First things first, let's add egobox to the testing deps of pyproject.toml, so that the test you added may run instead of being skipped for optimizer not available.
ewu63
left a comment
There was a problem hiding this comment.
This all looks OK with me, but I will wait for further reviews from @marcomangano and maybe @A-CGray
marcomangano
left a comment
There was a problem hiding this comment.
Thanks a lot for this implementation @relf ! Exciting to have Egor available from pyOptSparse.
See my comments below, mostly formatting/comment request except for the options checks.
Would you also mind to add more docstrings to the class/functions in pyEgor.py? You can probably copy-paste most of them from other optimizer wrappers.
|
@marcomangano Thank you for the review! I've addressed your comments. |
marcomangano
left a comment
There was a problem hiding this comment.
Thanks a lot for the quick fixes! LGTM
Purpose
This PR integrates the surrogate-based optimizer
Egorfrom the EGObox library.Egor uses bayesian optimization techniques well-suited to find the global optimum of an expansive-to-evaluate black-box function.
Basically, it uses a surrogate model to approximate the objective function and an infill criterion (aka acquisition function) to guide the search for the optimum.
Resolves relf/EGObox#439
Expected time until merged
a few weeks
Type of change
Testing
Egor tests have been added to the pyOptSparse test suite.
Checklist
ruff checkandruff formatto make sure the Python code adheres to PEP-8 and is consistently formattedfprettifyor C/C++ code withclang-formatas applicable