paref.express.express_search#
Classes
|
High level MOO algorithms |
- class paref.express.express_search.ExpressSearch(blackbox_function: BlackboxFunction, constraints: ndarray | None = None, training_iter: int = 2000)[source]#
Bases:
objectHigh level MOO algorithms
Paref express provides high level MOO algorithms that are easy and robust to use. The algorithms are designed to cover most frequently used MOOs and to provide a good starting point for further optimization. Those include:
- minimal search: Determine the edges and a maximal point of the Pareto front, i.e. Pareto points laying on the
boundary of the Pareto front and some Pareto point which is a real trade-off between all components. This algorithm should always be applied prior to any other MOO algorithm.
- priority search: Find Pareto points which reflect your priorities of certain components. With this algorithm you
can find Pareto points which are optimal for your specific needs.
Warning
Paref’s ExpressSearch is still under development. If you run into any problems, errors or have suggestions how to make it user-friendlier, please contact me or open an issue on GitHub. Many thanks!
- Parameters:
blackbox_function (BlackboxFunction) – blackbox function to apply the MOO algorithm to
constraints (np.ndarray) – constraints for the target space i.e. what the maximal acceptable value of each component is
training_iter (int) – number of iterations for the underlying Gaussian Process Regressors
- minimal_search(max_evaluations: int)[source]#
Determine the edges and a maximal point of the Pareto front
This algorithm provides a minimal search for the Pareto front which allow to get a feeling for the problem and which algorithms to use in the next step.
- Parameters:
max_evaluations (int) – maximum number of allowed evaluations of the blackbox function
Examples
>>> from paref.express.express_search import ExpressSearch >>> moo = ExpressSearch(bbf,) >>> moo.minimal_search(3) # minimal search granting 3 evaluations of the blackbox function
- priority_search(priority: ndarray, max_evaluations: int)[source]#
Find Pareto points which reflect your priorities of certain components
prioritymust be a vector of length equal to the number of components of the target space. each entry represents how much weight is assigned to the corresponding component, i.e. the higher the value the more important the component.- Parameters:
priority (np.ndarray) – priority vector
max_evaluations (int) – maximum number of allowed evaluations of the blackbox function
Examples
>>> from paref.express.express_search import ExpressSearch >>> moo = ExpressSearch(bbf,) >>> moo.minimal_search(3) # minimal search granting 3 evaluations of the blackbox function
- search_for_best_real_trade_off(max_evaluations: int)[source]#
Find some Pareto point which is a real trade-off between all components
- Parameters:
max_evaluations (int) – maximum number of allowed evaluations of the blackbox function
Examples
>>> from paref.express.express_search import ExpressSearch >>> moo = ExpressSearch(bbf,) >>> moo.search_for_best_real_trade_off(3) # determine real-trade off in all components with 3 evaluations
- search_for_minima(max_evaluations: int, component: int)[source]#
Find Pareto points minimal in some component
- Parameters:
max_evaluations (int) – maximum number of allowed evaluations of the blackbox function
component (int) – component to minimize
Examples
>>> from paref.express.express_search import ExpressSearch >>> moo = ExpressSearch(bbf,) >>> moo.search_for_minima(max_evaluations=3, component=0) # search for Pareto point minimal in the 0th obj
- property edge_points: ndarray#
Pareto points minimal in some components
- Returns:
Pareto points minimal in some components where the ith entry is the Pareto points minimal in the ith component
- Return type:
np.ndarray
- property max_point: ndarray#
Real trade-off closest to the theoretical global optimum
- Returns:
Real trade-off closest to the theoretical global optimum
- Return type:
np.ndarray
- property minima_components: ndarray#
Pareto points minimal in some components
- Returns:
Pareto points minimal in some components where the ith entry is the Pareto points minimal in the ith component
- Return type:
np.ndarray
- property priority_point: List[ndarray]#
Pareto points reflecting your priorities of certain components
- Returns:
Pareto points reflecting your priorities of certain components. The ith element corresponds to the ith priority.
- Return type:
List[np.ndarray]