Skip to content

Trust-Region Filter/Funnel (TRF) solver is developed using the concepts from nonlinear optimisation, derivative-free optimisation and surrogate modelling, and is used to optimise grey box optimisation problems (coupling glass box mathematical models with available derivative information and the black box models without derivative information).

License

Notifications You must be signed in to change notification settings

gulhameed361/TRF-Solver

Repository files navigation

TRF Solver

The Trust-Region Filter/Funnel (TRF) solver was developed using concepts from nonlinear optimisation, derivative-free optimisation, and surrogate modelling. It allows users to solve grey-box optimisation problems in which glass-box parts of the problem are modelled with fully specified equation-based models (with available derivative information) and black-box parts of the problem lack analytic derivative information (i.e., only function evaluations are available via external calls). This trust-region-based method optimises the grey-box problem using the accurate surrogate models constructed with the help of external black-box evaluations, thus avoiding the direct implementation of the computationally expensive black-box models. The filter serves as the globalisation strategy in the method. The optimisation is performed iteratively using the TRF solver, resulting in fewer calls to the computationally costly external black box functions.

Please refer to the manuscripts (https://doi.org/10.48550/arXiv.2509.01651, https://doi.org/10.48550/arXiv.2511.18998) for more details.

The user is required to provide black-box external functions and the glass-box model. The default values of tuning parameters for the TRF algorithm are implemented; however, the user is sometimes required to change them (via the solver's options) based on the sensitivity analysis.

The solver is implemented in Python using the Pyomo modelling language. The required Python packages are specified in both requirements.txt (for pip users) and environment.yml (for conda users). A nonlinear programming (NLP) solver (such as IPOPT) is required to run the TRF solver.

Installation

  • Download all files in this repository.
  • Download/install and open Anaconda Navigator.
  • Create a new environment using either: a. environment.yml (recommended for conda), or b. requirements.txt (for pip users in a virtualenv).
  • Select Python 3.8.20 when setting up the environment.
  • Activate the environment.
  • Open Spyder IDE, then open the RunFile.py file.
  • Scroll to the indicated section (at the end: line 269 and onwards) and add your grey box optimisation code.

Instructions for Generating Results

The instructions are given under each release.

Have feedback or questions? Please email: gulhameed361@gmail.com. Thanks for using the TRF Solver — enjoy optimising! Stay tuned for more updates.

About

Trust-Region Filter/Funnel (TRF) solver is developed using the concepts from nonlinear optimisation, derivative-free optimisation and surrogate modelling, and is used to optimise grey box optimisation problems (coupling glass box mathematical models with available derivative information and the black box models without derivative information).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages