Skip to content

[FEATURE REQUEST]: General Repair Function #661

@jduerholt

Description

@jduerholt

Motivation

Within the GA ACQF optimization, we have a repair function that repairs solutions from the GA that they are always feasible. @Jimbo994 observed some problems with the functionality. Maybe @Jimbo994 and @LukasHebing could have a look at it together.

Furthermore, the repair function is currently tight strongly to pymoo as it is based on pymoo's repair class. It would be nice if the core functionality could be also used in every strategy, so that we make sure the solutions from the acqf optimization are always repaired to fit the constraints. Ideally the function would be always called here:

def postprocess_candidates(self, candidates: pd.DataFrame) -> pd.DataFrame:

For this reason, we should put the core functionality into some general utils module and import it then both for the pymoo repair and the general repair from there to prevent circular imports. In its generalized form at the utils module, it should also not have any dependency to pymoo.

Note hat also botorch introduced a basic repair functionality recently (but with some limited functionality):

https://github.com/meta-pytorch/botorch/blob/4e7e903d26b04dfb2f456d34d463f76fa69f4762/botorch/optim/parameter_constraints.py#L719

Describe the solution you'd like to see implemented in BoFire.

see above.

Describe any alternatives you've considered to the above solution.

No response

Is this related to an existing issue in BoFire or another repository? If so please include links to those issues here.

No response

Pull Request

None

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions