Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions botorch/acquisition/logei.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ def __init__(
tau_relu: float = TAU_RELU,
marginalize_dim: int | None = None,
incremental: bool = True,
infeasible_obj: Tensor | float | None = None,
Copy link

@renzph renzph Sep 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this also be added to qNoisyExpectedImprovement?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - if the changes look good to whoever reviews, then I will also apply them to qNEI, as well as investigating q(Log)NEHVI too. Just wanted to get confirmation that the changes were good before making them elsewhere :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decided to remove this argument, since the issue is best resolved by using ProbabilityOfFeasibility.

) -> None:
r"""q-Noisy Expected Improvement.

Expand Down Expand Up @@ -324,6 +325,9 @@ def __init__(
incremental: Whether to compute incremental EI over the pending points
or compute EI of the joint batch improvement (including pending
points).
infeasible_obj: A Tensor to be used calculating the best objective when
no feasible points exist. If None, automatically calculate lower
bound on objective values from the GP posterior.

TODO: similar to qNEHVI, when we are using sequential greedy candidate
selection, we could incorporate pending points X_baseline and compute
Expand All @@ -333,6 +337,7 @@ def __init__(
# TODO: separate out baseline variables initialization and other functions
# in qNEI to avoid duplication of both code and work at runtime.
self.incremental = incremental
self.infeasible_obj = infeasible_obj

super().__init__(
model=model,
Expand Down Expand Up @@ -570,6 +575,7 @@ def _compute_best_feasible_objective(self, samples: Tensor, obj: Tensor) -> Tens
objective=self.objective,
posterior_transform=self.posterior_transform,
X_baseline=self.X_baseline,
infeasible_obj=self.infeasible_obj,
)


Expand Down