-
Notifications
You must be signed in to change notification settings - Fork 567
Feature/add funnel globalization mechanism to trf #3832
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Feature/add funnel globalization mechanism to trf #3832
Conversation
…added tests for both funnel and filter methods
…ttps://github.com/gulhameed361/pyomo into feature/add-funnel-globalization-mechanism-to-trf
|
Thank you for reviewing this PR! Please let me know if there are any changes or clarifications needed. I have tested the feature locally, and all tests passed successfully. |
mrmundt
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some initial requests for changes that will be stoppers on this PR.
|
Also, please install the most recent version of |
gulhameed361
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Many thanks for the quick feedback. I have addressed the requested changes:
- Added copyright headers to
funnel.pyandtest_funnel.py. - Consolidated Funnel and Filter tests into
test_TRF.pyand removed duplicate test files (test_TRF_w_Funnel.pyandtest_TRF_w_Filter.py). - Formatted the updated files using
black. - Verified functionality with
pytest, and all tests passed successfully.
Please let me know if further changes are required. Thank you!
…py, made small theoretical changes to TRF.py as per the funnel mechanism published in AIChE, added a comment in example2.py showing how funnel mechanism can imprive solver's performance.
…ttps://github.com/gulhameed361/pyomo into feature/add-funnel-globalization-mechanism-to-trf
gulhameed361
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All the requested changes have been addressed. Made a few additional changes as well to the code to make it concise/efficient.
…y as per reviewers' suggestion, updated test_TRF.py as per the changes made in TRF.py
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3832 +/- ##
==========================================
- Coverage 89.48% 89.47% -0.02%
==========================================
Files 904 905 +1
Lines 105385 105454 +69
==========================================
+ Hits 94299 94350 +51
- Misses 11086 11104 +18
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I have added a test for lines which were not tested, and updated both the main and feature branches. |
Fixes # .
Summary/Motivation:
This PR introduces the Funnel globalization strategy to the Trust Region Framework (TRF) solver in Pyomo. The Funnel method is an alternative to the existing Filter globalization mechanism.
The solver functionality remains unchanged by default and will continue to work as it has in previous versions unless the user explicitly selects the Funnel strategy in solver's options (globalization_strategy=1). This ensures backward compatibility.
The Funnel strategy is based on the methodology introduced in the paper "A Trust-region Funnel Algorithm for Grey-Box Optimisation" (https://arxiv.org/abs/2511.18998), which is accepted in AIChE Journal and will be live in the upcoming days.
Changes proposed in this PR:
funnel.pyto implement the Funnel globalization strategy.TRF.pyto integrate the Funnel strategy into the Trust Region Framework solver.test_funnel.py: Tests for the Funnel class.test_TRF_w_Funnel.py: Tests for the integration of Funnel with TRF.Legal Acknowledgement
By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution: