You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Botorch with cardinality constraint via sampling (#301)
(edited by @AdrianSosic)
This PR adds support for cardinality constraints to
`BotorchRecommender`. The core idea is to tackle the problem in an
exhaustive search like manner, i.e. by
* enumerating the possible combinations of in-/active parameters
dictated by the cardinality constraints
* optimizing the corresponding restricted subspaces, where the
cardinality constraint can then be simply removed since the in-/active
sets are fixed within these subspaces
* aggregating the optimization results of the individual subspaces into
a single recommendation batch.
The PR implements two mechanisms for determining the configuration of
inactive parameters:
- When the combinatorial list of possible inactive parameter
configurations is not too large, we iterate the full list
- otherwise, a fixed amount of inactive parameter configurations is
randomly selected
The current aggregation step is to simply optimize all subspaces
independently of each other and then return the batch from the subspace
where the highest acquisition value is achieved. This has the
side-effect that the set of inactive parameters is the same across the
entire recommendation batch. This can be a desirable property in many
use cases but potentially higher acquisition values can be obtained by
altering the in-/activity sets across the batch. A simple way to achieve
this (though out of scope for this PR) is by generalizing the sequential
greedy principle to multiple subspaces.
### Out of scope
* Fulfilling cardinality constraints by passing them in suitable form as
nonlinear constraints to the optimizer
* Sequential greedy optimization to achieve varying in-/activity sets
(see explanation above)
0 commit comments