4. Safe Bayesian Optimization: SafeOpt & Controller Tuning

SafeOpt, its guarantees, practical variants, and the DSME line of work on BO for controller tuning

Before you start

This module assumes:

How to study this module

Core reading. Read the unknown function, seed, and threshold, then compute the three sets in one SafeOpt round. Use the walkthrough before the explorer, and return to the safety induction and reachable-optimum statement.

Practice route. Try the three readiness checks. If a skill is rusty, use its exact review link, then return. Work through Easy P1–P4, Medium P5–P8, and Hard P9–P12; each has a separate hint and a full worked solution. Reattempt a missed problem later without opening the answer.

Optional research reading. SafeOpt-MC, contexts, StageOpt, alternative acquisition functions, and the later controller-tuning studies are extensions after the single-constraint algorithm. Keep the distinction between a theoretical confidence event and the heuristic multipliers in experiments.

Readiness check — Three prerequisite skills

Try these before opening the answer. The review links lead to earlier material.

  1. If $f$ is 2-Lipschitz and $f(0)=1$, what lower bound follows at $x=0.3$? Review Lipschitz transfer.
  2. Find $[0,2]\cap[1,3]$. Review interval intersections.
  3. Does a 95% statement about each separate round automatically mean 95% for all rounds jointly? Review joint guarantees.
Show readiness answers

The lower bound is $1-2(0.3)=0.4$. The intersection is $[1,2]$. Separate 95% round-wise statements do not automatically give 95% jointly; a simultaneous event or an appropriate allocation of failure probabilities is needed.

Book contents · Apply this chapter to a real decision · Glossary

Contents
1. The Safe BO Problem 2. SafeOpt: Safe Set, Expanders, Maximisers 3. What SafeOpt Guarantees 4. Practical Variants: SafeOpt-MC, StageOpt & Friends 5. BO for Controller Tuning (Trimpe group) 6. Beyond SafeOpt: Constrained BO, Barriers, Information-Theoretic Safe Exploration Walkthrough: One SafeOpt Iteration Interactive: SafeOpt in 1-D Application lab & chapter review Exercises Graded practice: Easy, Medium & Hard Key Papers Flashcards

1. The Safe BO Problem

Intuition — A starting example

Keep four numbers separate. At one candidate, imagine true performance $f(x)=0.4$, noisy observation $y=0.5$, GP mean $\mu=0.3$, and valid interval $[0.1,0.5]$. With threshold $h=0.2$, this point is safe in truth, but the current interval does not certify it because its lower endpoint is 0.1. The algorithm sees observations and model quantities, while the constraint is on the unknown $f$. “Safe,” “measured above threshold,” and “certified safe” are different statements. The seed supplies at least one point safe before learning begins.

Tuning a controller on hardware is a sequence of expensive experiments: choose gains, fly the quadrotor, measure a cost. Standard Bayesian optimization (BO; Primer E) fits a surrogate, a cheap statistical model of the expensive experiment (here a GP), and runs next the experiment that maximises an acquisition function, a score computed from that model. It happily spends a few bad experiments to learn, because in its world a bad experiment only costs regret (defined below). In safety-critical tuning it may cost the platform. Sui, Gotovos, Burdick and Krause (ICML 2015) formalised the version of the problem in which every single evaluation must be safe and gave the first algorithm with guarantees, SafeOpt. This page covers the algorithm, what it proves, the variants that actually run on robots, and how the Trimpe group (DSME, RWTH Aachen; earlier MPI-IS) turned BO into a controller-tuning tool.

Definition — Safe Bayesian optimization (Sui et al. 2015)
Let $D$ be a finite decision set (a grid of controller parameters) and $f: D \to \mathbb{R}$ an unknown function. At round $t = 1, 2, \dots$ we choose $x_t \in D$ and observe $y_t = f(x_t) + n_t$. The goal is to find a maximiser of $f$ while, for all rounds, $f(x_t) \ge h$, where $h \in \mathbb{R}$ is a known safety threshold. Decisions with $f(x) \ge h$ are called safe; which decisions those are is unknown because $f$ is. Safety is judged on the true value $f(x_t)$, never on the noisy measurement $y_t$. (Recall that $\max_D f$ is a number, while $\operatorname{arg\,max}_D f$ is the set of maximisers; with ties, any of them will do: Primer B.)

Regret. Let $x^*$ maximise $f$ over a comparator set $A$ (all of $D$, or only its safely reachable part defined below). The regret of query $x_t$ is $r_t = f(x^*) - f(x_t)$, the cumulative regret after $T$ rounds is $R_T = \sum_{t=1}^T r_t$, and an algorithm is no-regret if $R_T/T \to 0$. A final recommendation $\hat x_T$ is judged instead by its simple regret $f(x^*) - f(\hat x_T)$. (Each $r_t \ge 0$ when $x_t \in A$; a query outside $A$ can have negative regret.) SafeOpt bounds the simple regret with respect to the reachable safe set; it promises nothing about the cumulative regret of its exploratory queries.

Notation clash, said once. In the safe-BO modules $h$ is SafeOpt's scalar threshold, following the papers; in Module 10 the same letter is a barrier function $h(x)$ whose zero superlevel set is the safe set. Likewise $\gamma_t$ below is the maximum information gain, not the RL discount. In controller tuning $f$ is a performance measure $J(a)$ of parameters $a$ and the constraint $J(a) \ge J_{\min}$ declares a controller worse than a baseline unsafe (Berkenkamp, Schoellig and Krause, ICRA 2016); separate constraints $g_i(a) \ge 0$ arrive in Section 4.

Assumption — What SafeOpt needs
  1. A safe seed. A non-empty $S_0 \subseteq D$ with $f(x) \ge h$ for all $x \in S_0$. Why: the algorithm can only ever grow outward from something known to be safe. (The set notation used from here on, $\in$, $\subseteq$, $\cup$, $\cap$, $\setminus$, $|S|$ for the number of elements, $\{x : \dots\}$, indexed unions $\bigcup_{x \in S}$ and the quantifiers $\exists$, $\forall$, is reviewed in Primer 0.)
  2. RKHS regularity. $f$ lies in the RKHS $\mathcal{H}_k$ of a known kernel $k$ with $\|f\|_k \le B$ (module convention; Sui et al. write $\|f\|_k^2 \le B$, so watch their constants). Why: this is what makes GP confidence intervals frequentist-valid (Module 3).
  3. Lipschitz continuity. $|f(x) - f(x')| \le L\,d(x,x')$ for a known metric $d$ on $D$ and a known constant $L$. Why: it transfers safety from a point where we have statistical evidence to points where we have none: dropping the absolute value gives $f(x) - f(x') \le L\,d(x,x')$, i.e. $f(x') \ge f(x) - L\,d(x,x')$, a lower bound on $f$ at $x'$ from one at $x$. Any valid upper bound on the true Lipschitz constant works. (Metrics: Primer A; Lipschitz bounds as safety margins: Primer B.)
  4. Noise. $n_t$ is zero-mean given the history and uniformly bounded by $\sigma$ (Sui et al., via Srinivas et al.); later papers assume $\sigma$-sub-Gaussian noise, $\mathbb{E}[e^{\nu n_t} \mid \text{history}] \le e^{\nu^2\sigma^2/2}$ for all $\nu \in \mathbb{R}$, which covers both noise bounded by $\sigma$ (Hoeffding's lemma) and $\mathcal N(0,\sigma^2)$ noise. The same $\sigma^2$ is used as the GP noise variance. Why: concentration of the GP mean around $f$. The history is everything known when $n_t$ is drawn: the earlier queries and observations, and the query $x_t$, which the algorithm may choose adaptively from them; "zero-mean given the history" says that none of this information predicts the next noise value on average (Primer C; sub-Gaussian variables: Primer C). Two different sigmas: the constant $\sigma$ is a known noise bound or sub-Gaussian scale (not necessarily the true standard deviation) and enters the GP as the regulariser $\lambda = \sigma^2$; the function $\sigma_t(x)$ below is the posterior standard deviation of the unknown value $f(x)$ after $t$ observations.

The GP posterior after $t$ observations is the kernel-ridge estimate of Module 3,

$$\mu_t(x) = k_t(x)^\top (K_t + \sigma^2 I)^{-1} y_{1:t}, \qquad \sigma_t^2(x) = k(x,x) - k_t(x)^\top (K_t + \sigma^2 I)^{-1} k_t(x),$$

with $k_t(x) = [k(x_1,x), \dots, k(x_t,x)]^\top$ and $K_t = [k(x_i,x_j)]_{ij}$. The prior $f \sim \mathcal{GP}(0,k)$ is a computational device only: $f$ is a fixed RKHS function, the noise need not be Gaussian, and every statement below is a frequentist high-probability statement over the noise. The GP is deliberately misspecified but its intervals are provably valid under the assumptions above.

Safe BO is not constrained BO

RegimeWhat may happen during tuningTypical methodGuarantee
Constrained BOInfeasible queries allowed; only the returned solution must be feasibleConstrained EI, CONFIG (Section 6)Feasible optimum in the limit; at best bounded cumulative violation
Safe BO (this page)No unsafe query, ever, w.p. $\ge 1-\delta$ over the whole runSafeOpt, StageOpt, ISE, ITL, LoSBO (Module 5)Every $x_t$ safe (under each method's assumptions); beyond that, method-specific: SafeOpt and StageOpt reach the best reachable safe point, ITL too if its reducible uncertainty converges; ISE proves variance decay on a safe set that has stopped expanding; LoSBO has a (deterministic) safety proof but no exploration guarantee (Section 6)
Crash constraintsFailures tolerable but return no objective valueEIC$^2$, VDP-GIBO, CrashPBO (Section 5)None on safety; failures are data about the constraint

"With probability at least $1-\delta$ over the whole run" is a statement about one event covering every round: $\Pr\big(f(x_t) \ge h \text{ for all } t \ge 1\big) \ge 1-\delta$. It is much stronger than $\Pr\big(f(x_t) \ge h\big) \ge 1-\delta$ for each round separately, which by the union bound only guarantees $1 - T\delta$ for a run of $T$ rounds (Primer C). SafeOpt obtains it from confidence intervals that are valid jointly for all rounds and all inputs (Section 3).

The best any Lipschitz-certifying algorithm could do

If we knew $f$ exactly on the seed, $x$ could be declared safe whenever some $x' \in S_0$ satisfies $f(x') - L\,d(x',x) \ge h$; exploring those points would certify further ones, and so on. With noise we only ever know $f$ up to some accuracy $\epsilon$ inside the safe set. That gives the benchmark against which SafeOpt is measured.

Definition — Reachability operator and the $\epsilon$-reachable optimum (Sui et al. 2015)
For $S \subseteq D$ and $\epsilon \ge 0$ the one-step reachability operator is $$R_\epsilon(S) := S \cup \big\{x \in D : \exists x' \in S,\ f(x') - \epsilon - L\,d(x',x) \ge h\big\},$$ the set that can be established as safe after learning $f$ up to error $\epsilon$ on $S$. Its $n$-fold iterate is $R^n_\epsilon(S)$ and its closure $\bar R_\epsilon(S) := \lim_{n\to\infty} R^n_\epsilon(S)$ (on a finite $D$, reached after at most $|D|$ steps; "closure" means the final set of this expansion, not the topological closure). The benchmark is the $\epsilon$-reachable maximum $f^*_\epsilon := \max_{x \in \bar R_\epsilon(S_0)} f(x)$.
Why the limit exists. Put $S^{(0)} = S$ and $S^{(j+1)} = R_\epsilon(S^{(j)})$. Each step keeps all old points ($R_\epsilon(S) \supseteq S$), and on a finite $D$ each strict change adds at least one point, so after at most $|D|$ steps $S^{(j+1)} = S^{(j)}$ and nothing changes any more. That final set is $\bar R_\epsilon(S)$, and it is a fixed point: $R_\epsilon(\bar R_\epsilon(S)) = \bar R_\epsilon(S)$. The operator is also monotone, $A \subseteq B \Rightarrow R_\epsilon(A) \subseteq R_\epsilon(B)$, because every witness $x' \in A$ is also available in $B$. (Set operators and fixed points: Primer 0; the induction and contradiction arguments of Section 3: Primer 0.)

Three remarks. (i) $R_\epsilon$ depends on the unknown $f$: it is a yardstick, not something the algorithm computes. (ii) $\bar R_\epsilon(S_0) \subseteq \bar R_0(S_0) \subseteq \{x : f(x) \ge h\}$, and the last inclusion can be strict: a safe point behind a shallow valley (where $f$ dips close to $h$) or behind an unsafe gap is safe but unreachable. (iii) Sui et al. argue, explicitly "under the Lipschitz-continuity assumption", that no algorithm that learns $f$ only up to $\epsilon$ can ever certify a point outside $\bar R_\epsilon(S_0)$, so no safe algorithm can be asked to find the global optimum $\max_D f$. The argument presumes that the Lipschitz bound is the only way to carry knowledge to unevaluated points: the closure is the benchmark for Lipschitz certificates, not an absolute limit. An algorithm that also exploits valid kernel structure, e.g. by certifying $x$ whenever its own GP lower bound clears $h$ (Sui et al.'s variant in Section 2, the Lipschitz-free rule of Section 4), can certify points outside it, even across an unsafe gap (Exercise 4.4).

Key insight
Safety changes what "optimal" means. Every SafeOpt-type guarantee is relative to the safely reachable set. When the safe region is disconnected, or connected only through a thin bridge where $f$ nearly touches $h$, the reachable optimum can be far worse than the global one. Escaping this needs extra structure, for instance a dynamical system with backup policies, the subject of Module 6 (Exercise 4.4 shows why Lipschitz certificates alone cannot cross an unsafe gap).
Background — Connectivity and certifiable reachability

For a continuous domain, path-connected means that any two points can be joined by a continuous path staying inside the region. For a finite grid, connectivity instead requires a chosen adjacency rule, such as consecutive points on a line. Neither definition is SafeOpt reachability: that additionally demands a chain of valid lower-bound certificates. For example, with $h = 0$ and $L = 1$, two neighbouring grid points at distance $1$ with $f = 0.01$ at both are safe and adjacent, yet neither can certify the other, since $0.01 - 1 \cdot 1 \lt 0$. This is why a geometrically connected safe region can still be unreachable.

2. SafeOpt: Safe Set, Expanders, Maximisers

SafeOpt maintains three sets: decisions certified safe, safe decisions that could enlarge that certificate, and safe decisions that could be the optimum. It samples the most uncertain point of the last two. Everything is built from GP confidence intervals.

Key equation — Confidence intervals, intersected over time
At round $t$ the posterior after $t-1$ observations gives, for every $x \in D$, $$Q_t(x) := \big[\mu_{t-1}(x) - \beta_t\,\sigma_{t-1}(x),\ \mu_{t-1}(x) + \beta_t\,\sigma_{t-1}(x)\big].$$ (Module convention: $\beta_t$ is the half-width multiplier. Sui et al. write $\beta_t^{1/2}\sigma_{t-1}$; their $\beta_t$ is the square of ours.) SafeOpt uses the contained intervals $$C_t(x) := C_{t-1}(x) \cap Q_t(x), \qquad C_0(x) = [h, \infty) \text{ for } x \in S_0, \quad C_0(x) = \mathbb{R} \text{ otherwise},$$ with lower bound $l_t(x) := \min C_t(x)$, upper bound $u_t(x) := \max C_t(x)$ and width $w_t(x) := u_t(x) - l_t(x)$. By construction $u_t$ is non-increasing and $l_t$ non-decreasing in $t$.

These endpoints are defined when $C_t(x)$ is nonempty. On the simultaneous confidence event, the true value $f(x)$ belongs to every intersected interval, so emptiness is impossible. For example, intersecting a seed interval $[0,\infty)$ with a GP interval $[-2,-1]$ gives an empty set: the two asserted pieces of knowledge conflict. This signals a failed confidence event or numerical error. A confidence event can fail with the allowed probability $\delta$ even when the assumptions hold, so one empty intersection alone does not prove that the assumptions are false.

The initialisation encodes the seed: points of $S_0$ start with $l_1(x) \ge h$ whenever the intersected interval is nonempty, so the seed certifies itself and stays certified. Intersecting is what Sui et al. call a technical choice; Section 3 shows exactly where the proof needs it.

Definition — The three sets and the acquisition rule
Safe set (pessimistic, grown with the Lipschitz constant from the previous safe set): $$S_t := \bigcup_{x \in S_{t-1}} \big\{x' \in D : l_t(x) - L\,d(x,x') \ge h\big\}.$$ Expanders (optimistic): $g_t(x)$ counts the uncertified points that could be certified from $x$ if $f(x)$ were as large as $u_t(x)$, $$g_t(x) := \big|\{x' \in D \setminus S_t : u_t(x) - L\,d(x,x') \ge h\}\big|, \qquad G_t := \{x \in S_t : g_t(x) \gt 0\}.$$ Maximisers (optimistic value at least the best pessimistic value): $$M_t := \Big\{x \in S_t : u_t(x) \ge \max_{x' \in S_t} l_t(x')\Big\}.$$ Acquisition (uncertainty sampling over the union): $\;x_t \in \operatorname*{arg\,max}_{x \in G_t \cup M_t} w_t(x)$.
Algorithm 1: SafeOpt (Sui et al. 2015; module convention for $\beta_t$)
  1. Input: finite $D$, GP prior $(0, k, \sigma^2)$, Lipschitz constant $L$, seed $S_0$, threshold $h$, multipliers $\beta_t$.
  2. $C_0(x) \leftarrow [h, \infty)$ for $x \in S_0$, $\ C_0(x) \leftarrow \mathbb{R}$ otherwise.
  3. for $t = 1, 2, \dots$ do
  4. $C_t(x) \leftarrow C_{t-1}(x) \cap Q_t(x)$ for all $x$ // $Q_t$ from $\mu_{t-1}, \sigma_{t-1}$; the paper's pseudocode calls it $Q_{t-1}$ because it is computed at the end of round $t-1$
  5. $S_t \leftarrow \bigcup_{x \in S_{t-1}} \{x' \in D : l_t(x) - L\,d(x,x') \ge h\}$
  6. $G_t \leftarrow \{x \in S_t : g_t(x) \gt 0\}$,   $M_t \leftarrow \{x \in S_t : u_t(x) \ge \max_{x' \in S_t} l_t(x')\}$
  7. $x_t \leftarrow \operatorname*{arg\,max}_{x \in G_t \cup M_t} w_t(x)$; observe $y_t = f(x_t) + n_t$; update the GP
  8. end for // optional stop when $S_t = S_{t-1}$ and $\max_{G_t \cup M_t} w_t \le \epsilon$; report $\hat x_t = \operatorname{arg\,max}_{x \in S_t} l_t(x)$

Read the three sets as three uses of one interval. The safe set uses the lower bound at an already-safe point and pays the Lipschitz price $L\,d$ to reach a neighbour: this is the only way a point enters $S_t$, and it is deterministic once $l_t$ is valid. Expanders use the upper bound: safe points that, in the best case, would certify something new. Maximisers compare the upper bound with the best lower bound: a point whose optimistic value cannot beat what is already known to be achievable is discarded forever, since its $u_t$ only falls and $\max l_t$ only rises.

Key insight — Statistics inside, geometry outside
The GP supplies valid bounds $l_t \le f \le u_t$ with high probability; the Lipschitz constant transfers them across the domain without further statistics: $f(x') \ge f(x) - L\,d(x,x') \ge l_t(x) - L\,d(x,x') \ge h$. Safety therefore rests on two knobs, the validity of $l_t$ (set by the kernel, $B$ and $\beta_t$) and the Lipschitz constant $L$, and each fails in two directions. If $L$ or $\beta_t$ is too small, the transfer or the bound is invalid and SafeOpt certifies unsafe points (try it in the explorer). If $L$ is too large, a neighbour at distance $d$ is only certified once $l_t(x) \ge h + L\,d$, so expansion stalls; an overly large $\beta_t$ stalls it the same way. $L$ is a second hyperparameter that the user must supply (Sui et al. treat it as known), but it is not independent of the RKHS assumption: by the reproducing property and Cauchy–Schwarz, $|f(x) - f(x')| = |\langle f, k(\cdot,x) - k(\cdot,x')\rangle_k| \le \|f\|_k\, d_k(x,x')$ with the kernel metric $d_k(x,x') = \sqrt{k(x,x) - 2k(x,x') + k(x',x')}$. For the unit-variance squared-exponential kernel with lengthscale $\ell$, $d_k(x,x') \le \|x - x'\|/\ell$ (use $1 - e^{-u} \le u$), so $\|f\|_k \le B$ already gives $L = B/\ell$. This is why Sui et al. call the Lipschitz assumption automatically satisfied for isotropic kernels, and why a wrong $B$ or lengthscale breaks both knobs at once.

Dynamics of a run. $S_t$ is monotone, $S_0 \subseteq S_1 \subseteq \cdots$, and a run consists of stages during which $S_t$ is constant. Within a stage $G_t$ and $M_t$ only shrink; the most uncertain candidate is sampled until its interval is narrow enough to certify a new point (the stage ends with an expansion) or nothing is left to learn. The stopping rule "$S_t = S_{t-1}$ and $\max_{G_t \cup M_t} w_t \le \epsilon$" then delivers, w.h.p., an $\epsilon$-optimal $\hat x_t = \operatorname{arg\,max}_{S_t} l_t$ (Section 3; Steps 4–5 of the derivation apply to such a round, with the width bound supplied by the test instead of Step 3); the algorithm itself never uses $\epsilon$. Sui et al. state the rule with the width test alone, but their own proof sketch says that narrow expanders mean either that $S_t$ will expand after the next evaluation or that it already contains $\bar R_\epsilon(S_0)$, and only the second case licenses stopping. A narrow expander certifies its neighbours only in the next safe-set update, so the width test alone can fire one round too early, right after an expansion. Example: $D = \{0,1,2\}$, $d(x,x') = |x - x'|$, $h = 0$, $L = 1$, $S_0 = \{0\}$, $f = (1.2, 2.2, 3.2)$, the rank-one kernel $k(x,x') = f(x)f(x')/3.2^2$ (so $\|f\|_k = 3.2$), noise bounded by $10^{-5}$, the theoretical $\beta_t$ with $\delta = 0.1$, and $\epsilon = 0.1$. One observation at $0$ gives $S_2 = \{0,1\}$ and $G_2 \cup M_2 = \{1\}$ with $w_2(1) \approx 0.011 \le \epsilon$, so the width test stops with $f(\hat x_2) = 2.2$, although $f^*_\epsilon = 3.2$ and point $2$ is certified from $1$ in round $3$; with the extra condition the run stops in round $4$ at $\hat x = 2$. Sui et al. also mention a variant that additionally certifies $x'$ whenever $l_t(x') \ge h$ directly, i.e. the condition becomes $\max\{l_t(x) - L\,d(x,x'),\ l_t(x')\} \ge h$; the theorem then holds with $|\bar R_0(S_0)| + 1$ replaced by the worse constant $|D|$, and this is the seed of the Lipschitz-free practical variant of Section 4.

To reproduce the numbers: with $\phi(x) = f(x)/3.2 = (0.375, 0.6875, 1)$ the kernel is $k(x,x') = \phi(x)\phi(x')$, whose RKHS consists of the multiples $c\,\phi$ with norm $|c|$, so $\|f\|_k = \|3.2\,\phi\|_k = 3.2$. Take the noise-free observation $y_1 = 1.2$ and $\lambda = \sigma^2 = 10^{-10}$. For a rank-one kernel $\det(I + \sigma^{-2}K_2) = 1 + \sigma^{-2}\big(\phi(x_1)^2 + \phi(x_2)^2\big)$, largest for $x_1 = x_2 = 2$, so $\gamma_2 = \tfrac12\log(1 + 2\cdot 10^{10}) \approx 11.86$ and $\beta_2 = \sqrt{2 \cdot 3.2^2 + 300\,\gamma_2\log^3(2/0.1)} \approx 309$. The one-observation posterior gives $\mu_1(1) = 2.2$ and $\sigma_1^2(1) = k(1,1) - k(1,0)^2/(k(0,0) + \lambda) = \phi(1)^2\lambda/(\phi(0)^2 + \lambda)$, so $\sigma_1(1) \approx 1.83 \times 10^{-5}$ and $w_2(1) = 2\beta_2\sigma_1(1) \approx 0.011$.

Worked example — Why maximisers compare $u_t$ with $\max l_t$, and why the seed needs $C_0 = [h,\infty)$

Take $D = \{a, b\}$, $h = 0$, $S_0 = \{a\}$, and at some round $C_t(a) = [0.9, 1.3]$, $C_t(b) = [0.2, 1.1]$ with $b \in S_t$. Then $\max_{S_t} l_t = 0.9$ and $u_t(b) = 1.1 \ge 0.9$, so $b \in M_t$: it might still be the maximiser although its lower bound is far below $a$'s. If instead $C_t(b) = [0.2, 0.8]$, then $b \notin M_t$, and since $u_t(b)$ only decreases and $\max l_t$ only increases, $b$ never re-enters: on the confidence event $f(b) \le 0.8 \lt 0.9 \le f(a)$, so nothing is lost.

Now the seed. Before any data, $\mu_0 = 0$ and $\sigma_0 = 1$ (say), so $Q_1(a) = [-\beta_1, \beta_1]$ has lower end below $h = 0$. Without $C_0(a) = [h,\infty)$ the seed would not certify itself and $S_1 = \emptyset$. With it, $l_1(a) = \max\{h, -\beta_1\} = h$, so $a \in S_1$, and $a$ is an expander as soon as $u_1(a) = \beta_1 \ge h + L\,d(a,b)$. The seed's lower bound is knowledge injected by assumption; it is also the one place where a wrong seed breaks everything.

3. What SafeOpt Guarantees

Everything hinges on the confidence intervals being valid simultaneously for all rounds and all points. Sui et al. import this from the RKHS analysis of GP-UCB (Srinivas, Krause, Kakade and Seeger, ICML 2010, Theorem 6). The statements are given in the paper's convention, then translated.

Lemma — Valid confidence intervals (Sui et al. 2015, Lemma 1; from Srinivas et al. 2010, Thm. 6)
Suppose $\|f\|_k^2 \le B$ and the noise $n_t$ is zero-mean given the history and uniformly bounded by $\sigma$ for all $t$ (Sui et al.'s Lemma 1 calls this level $\sigma_0$, the GP's noise parameter; it is not the prior standard deviation $\sigma_0(x)$ of the module's notation). Choose $$\beta_t^{\mathrm{Sui}} = 2B + 300\,\gamma_t\log^3(t/\delta), \qquad \gamma_t := \max_{x_1,\dots,x_t \in D} I(f; y_{1:t}) = \max_{x_1,\dots,x_t \in D} \tfrac12\log\det\big(I_t + \sigma^{-2}K_t\big),$$ and $Q_t(x) = [\mu_{t-1}(x) \pm (\beta_t^{\mathrm{Sui}})^{1/2}\sigma_{t-1}(x)]$. Then with probability at least $1-\delta$, $f(x) \in C_t(x)$ for all $t \ge 1$ and all $x \in D$.
Translation. With $\|f\|_k \le B$ (so $\|f\|_k^2 \le B^2$) the module's half-width multiplier is $\beta_t = \sqrt{2B^2 + 300\,\gamma_t\log^3(t/\delta)}$. The maximum information gain $\gamma_t$ is the quantity of Module 3: the mutual information is that of the auxiliary Gaussian model (prior $\mathcal{GP}(0,k)$, noise $\mathcal N(0,\sigma^2)$), not of the true data-generating process. Sui et al. (following Srinivas et al.) write the maximum over sets $A \subseteq D$ with $|A| \le t$; the proof applies it to the points actually sampled, which repeat, so read it as a maximum over designs with repetition, as above (on a finite $D$ a set-based maximum would stop growing at $t = |D|$). The analysis assumes $k(x,x) \le 1$, and $\gamma_t = O((\log t)^{d+1})$ for the squared-exponential kernel. Here $d$ is the dimension of the decision space (not the metric $d(x,x')$); $a_t = O(b_t)$ means $a_t \le C\,b_t$ for some constant $C$ and all large $t$, $a_t = o(b_t)$ means $a_t/b_t \to 0$, and $\tilde O$ also hides logarithmic factors (Primer 0). For the SE kernel $\beta_t^2\gamma_t$ therefore grows only like a power of $\log t$, so $t/(\beta_t^2\gamma_t) \to \infty$ and the $t^*$ of the theorem below is finite.
Theorem — SafeOpt is safe and converges to the $\epsilon$-reachable optimum (Sui et al. 2015, Theorem 1)
Assume $f$ is $L$-Lipschitz, $\|f\|_k^2 \le B$, the noise is as in the Lemma, $S_0 \ne \emptyset$ and $f(x) \ge h$ for all $x \in S_0$. Choose $\beta_t^{\mathrm{Sui}}$ as in the Lemma, define $\hat x_t := \operatorname{arg\,max}_{x \in S_t} l_t(x)$, and let $t^*$ be the smallest positive integer with $$\frac{t^*}{\beta^{\mathrm{Sui}}_{t^*}\,\gamma_{t^*}} \ \ge\ \frac{C_1\big(|\bar R_0(S_0)| + 1\big)}{\epsilon^2}, \qquad C_1 = \frac{8}{\log(1 + \sigma^{-2})}.$$ Then for any $\epsilon \gt 0$ and $\delta \in (0,1)$, when running SafeOpt the following hold jointly with probability at least $1-\delta$:
  • Safety: $f(x_t) \ge h$ for all $t \ge 1$;
  • Optimality: $f(\hat x_t) \ge f^*_\epsilon - \epsilon$ for all $t \ge t^*$.
In the module convention the condition reads $t^*/(\beta_{t^*}^2\gamma_{t^*}) \ge C_1(|\bar R_0(S_0)| + 1)/\epsilon^2$.

In words. On one high-probability event, no evaluation is ever unsafe, and after a number of rounds scaling like $\beta_t^2\gamma_t\,|\bar R_0(S_0)|/\epsilon^2$ the pessimistic best guess is within $\epsilon$ of the best value in the $\epsilon$-reachable set. Both statements share one $\delta$.

Why each assumption matters. The RKHS bound and the noise model give the Lemma; without them $l_t, u_t$ are just numbers. The Lipschitz constant is used twice: to transfer safety (the safety half needs nothing else) and to define $\bar R_\epsilon$, i.e. to say what "reachable" means. The seed is the base case of every induction. Finiteness of $D$ is used to count stages: the safe set can expand at most $|\bar R_0(S_0)|$ times, whence the factor $|\bar R_0(S_0)| + 1 \le |D| + 1$, which is of the order of the whole grid when most of $D$ is safely reachable.

Caveat — Conventions and magnitudes
Three things routinely go wrong when this theorem is quoted. (i) $\beta_t^{1/2}$, not $\beta_t$, multiplies $\sigma_{t-1}$ in Sui et al.; (ii) their $B$ bounds the squared norm; (iii) the constant 300 is not a typo. With $B = 1$, $\gamma_t = 10$, $t = 100$, $\delta = 0.1$: $\beta^{\mathrm{Sui}}_t = 2 + 3000\ln^3(1000) \approx 9.9 \times 10^5$, a half-width of about $994\,\sigma_{t-1}(x)$. The bound of Chowdhury and Gopalan (ICML 2017), $\beta_t = B + R\sqrt{2(\gamma_{t-1} + 1 + \ln(1/\delta))}$ for $R$-sub-Gaussian noise, gives $\approx 1.52$ for $R = 0.1$, and the data-dependent bounds of Module 3 are smaller still; most later safe-BO papers use the Chowdhury–Gopalan form, whose Theorem 2 however holds for a GP posterior computed with regularisation $\lambda = 1 + \eta$, $\eta = 2/T$, not with the physical noise variance. None of these is what implementations use: hardware papers set $\beta \equiv 2$ or $3$, which voids the theorem (Fiedler, Menn, Kreisköther and Trimpe, TMLR 2024). Module 5 is about this gap.

The proof architecture

The ICML paper gives the idea and defers details to a longer version; the complete lemma chain, extended to several constraints, is in the proof section of Berkenkamp, Krause and Schoellig (Machine Learning 2023), which follows Sui et al.'s outline. Three ingredients: safety is by construction once the intervals are valid; the expander definition forces the safe set to grow whenever it can; and the GP-UCB bound $\sum_t \sigma^2_{t-1}(x_t) \le C_1\gamma_t/4$ turns "eventually" into a number.

Derivation — The lemma chain behind Theorem 1 (one constraint, module convention)

0. One event. Let $E$ be the event that $f(x) \in C_t(x)$ for all $t \ge 1$ and $x \in D$; $\Pr(E) \ge 1-\delta$ by the Lemma. Everything below is a deterministic statement on $E$; the probability is paid once.

1. Safety by construction. A point $x' \in S_t$ is certified from some $x \in S_{t-1}$ with $l_t(x) - L\,d(x,x') \ge h$. The Lipschitz inequality, then $f \ge l_t$ on $E$, then the certificate give $$f(x') \ \ge\ f(x) - L\,d(x,x') \ \ge\ l_t(x) - L\,d(x,x') \ \ge\ h .$$ Since $x_t \in G_t \cup M_t \subseteq S_t$, every evaluation is safe. The same chain with $f(x)$ in place of $l_t(x)$ shows $x' \in R_0(\{x\}) \subseteq R_0(S_{t-1})$, so by induction and $R_0(\bar R_0(S_0)) = \bar R_0(S_0)$ we get $S_t \subseteq \bar R_0(S_0)$: SafeOpt never certifies more than the reachable set, whatever the GP does.

2. Monotonicity. $C_{t+1} \subseteq C_t$ gives $u_{t+1} \le u_t$, $l_{t+1} \ge l_t$, $w_{t+1} \le w_t$ pointwise. Certificates persist, so the safe sets are nested: if $z$ entered $S_t$ through a witness $x \in S_{t-1}$ with $l_t(x) - L\,d(x,z) \ge h$, then $x \in S_t$ (by induction; seeds certify themselves because $l_t \ge h$ on $S_0$ and $d(x,x) = 0$) and $l_{t+1}(x) \ge l_t(x)$, so the same witness certifies $z$ again in round $t+1$. Nothing requires $l_t(z) \ge h$ itself. Within a stage ($S_{t+1} = S_t$) the candidates only lose members: $D \setminus S_t$ is fixed and $u_{t+1}(x) - L\,d \ge h$ implies $u_t(x) - L\,d \ge h$, so $G_{t+1} \subseteq G_t$; and $u_{t+1}(x) \le u_t(x)$ while $\max_{S_t} l_{t+1} \ge \max_{S_t} l_t$, so $M_{t+1} \subseteq M_t$. Because $x_t$ maximises $w_t$ over a set that shrinks, the sampled width $w_t(x_t)$ is non-increasing inside a stage. This is what the intersection is for (Exercise 4.2).

3. Width decay. $C_t \subseteq Q_t$ gives $w_t(x_t) \le 2\beta_t\sigma_{t-1}(x_t)$. For $k(x,x) \le 1$, $s = \sigma^{-2}\sigma^2_{t-1}(x_t) \in [0, \sigma^{-2}]$ and $s \mapsto s/\log(1+s)$ increasing, $\sigma^2_{t-1}(x_t) \le \log(1 + \sigma^{-2}\sigma^2_{t-1}(x_t))/\log(1+\sigma^{-2})$; and $\tfrac12\sum_{j \le t}\log(1 + \sigma^{-2}\sigma^2_{j-1}(x_j)) = \tfrac12\log\det(I+\sigma^{-2}K_t) \le \gamma_t$ (Srinivas et al., Lemmas 5.3–5.4; the identity holds for every realised sequence, including adaptively chosen $x_j$, by the sequential-form lemma of Module 3). Consider rounds $t_0+1, \dots, t$ during which the safe set does not change, $S_j = S_{t_0}$. With $\beta_t$ non-decreasing, $$(t - t_0)\,w_t(x_t)^2 \ \le\ \sum_{j=t_0+1}^{t} w_j(x_j)^2 \ \le\ 4\beta_t^2\sum_{j=t_0+1}^{t}\sigma^2_{j-1}(x_j) \ \le\ C_1\,\beta_t^2\,\gamma_t, \qquad C_1 = \frac{8}{\log(1+\sigma^{-2})},$$ where the first inequality is Step 2 (each of the $t - t_0$ terms is at least the last). Note that $\beta_t$ and $\gamma_t$ are evaluated at the absolute round $t$, not at the stage length. Hence after $N$ rounds of a stage that started at $t_0$, with $N/(\beta_{t_0+N}^2\gamma_{t_0+N}) \ge C_1/\epsilon^2$, every point of $G \cup M$ has width at most $\epsilon$ (the sampled point has the largest width there). In Sui's convention the bound reads $C_1\beta_t\gamma_t$, because their $\beta_t$ is the square of ours; Berkenkamp et al.'s Corollary 2 has the same absolute-time indices, $\beta_{n+N_n}\gamma_{|I|(n+N_n)}$.

4. Expansion. Suppose $\bar R_\epsilon(S_0) \not\subseteq S_t$. Then $R_\epsilon(S_t) \ne S_t$ (otherwise $\bar R_\epsilon(S_t) = S_t$ and monotonicity of $R_\epsilon$ with $S_0 \subseteq S_t$ would give $\bar R_\epsilon(S_0) \subseteq S_t$), so there are $z \in S_t$ and $x \notin S_t$ with $f(z) - \epsilon - L\,d(z,x) \ge h$. If the safe set were still $S_t$ after $N$ further rounds, then on $E$ $$\begin{aligned} u_{t+N}(z) - L\,d(z,x) \ &\ge\ f(z) - L\,d(z,x) \ \ge\ h + \epsilon \ \gt\ h \quad\Rightarrow\quad z \in G_{t+N}, \\ l_{t+N}(z) - L\,d(z,x) \ &\ge\ u_{t+N}(z) - \epsilon - L\,d(z,x) \ \ge\ h, \end{aligned}$$ using $w_{t+N}(z) \le \epsilon$ from Step 3 in the second line ($N \ge 1$). Since the safe set has not changed, the witness $z$ lies in $S_{t+N-1} = S_t$, so the update that defines $S_{t+N}$ certifies $x$ from $z$, contradicting $x \notin S_{t+N}$. So whenever something reachable is uncertified, the safe set grows within $N$ rounds. Expanders are defined optimistically precisely so that this argument works: a point that could certify something new stays a candidate until its width is at most $\epsilon$, and at that moment it does certify it.

5. Optimality once expansion stops. If $S_{t+N} = S_t$, Step 4 gives $\bar R_\epsilon(S_0) \subseteq S_{t+N}$. Let $x^* \in \operatorname{arg\,max}_{S_{t+N}} f$ and $\hat x \in \operatorname{arg\,max}_{S_{t+N}} l_{t+N}$. Then $x^*$ is a maximiser ($u(x^*) \ge f(x^*) \ge f(x) \ge l(x)$ for all $x \in S_{t+N}$), so $w_{t+N}(x^*) \le \epsilon$ by Step 3, and $$f(\hat x) \ \ge\ l_{t+N}(\hat x) \ \ge\ l_{t+N}(x^*) \ \ge\ u_{t+N}(x^*) - \epsilon \ \ge\ f(x^*) - \epsilon \ \ge\ f^*_\epsilon - \epsilon ,$$ by, in order, $f \ge l$ on $E$; $\hat x$ maximises $l$; the width bound; $u \ge f$ on $E$; $\bar R_\epsilon(S_0) \subseteq S_{t+N}$. This persists for every later round $t' \ge t+N$ even though $\hat x_{t'}$ may be a different point: nested safe sets and non-decreasing lower bounds give $f(\hat x_{t'}) \ge l_{t'}(\hat x_{t'}) = \max_{S_{t'}} l_{t'} \ge \max_{S_{t+N}} l_{t+N} = l_{t+N}(\hat x) \ge f^*_\epsilon - \epsilon$. Note that the output is the maximiser of the lower bound, not the best observation and not the last query.

6. Counting. Each expansion adds at least one point of $\bar R_0(S_0)$ (Step 1), so there are at most $|\bar R_0(S_0)|$ expansions. Cut the first $t^*$ rounds into $|\bar R_0(S_0)| + 1$ consecutive windows of length $N = t^*/(|\bar R_0(S_0)| + 1)$; at least one window contains no expansion, and Steps 3–5 apply to it. Every window ends by round $t^*$ and $\beta_t^2\gamma_t$ is non-decreasing, so $N/(\beta_{t_0+N}^2\gamma_{t_0+N}) \ge N/(\beta_{t^*}^2\gamma_{t^*})$ for each of them. Hence (up to integer rounding of $N$) the per-window condition of Step 3 holds for all windows as soon as $$\frac{t^*}{\beta_{t^*}^2\,\gamma_{t^*}} \ \ge\ \frac{C_1\,(|\bar R_0(S_0)| + 1)}{\epsilon^2},$$ which is Theorem 1's condition on $t^*$. Strictly, window lengths are integers: with $m = |\bar R_0(S_0)| + 1$ windows of $N = \lfloor t^*/m \rfloor \ge 1$ rounds each (rounds $1$ to $mN \le t^*$), the argument proves the conclusion under the slightly stronger requirement $\lfloor t^*/m \rfloor \ge C_1\beta_{t^*}^2\gamma_{t^*}/\epsilon^2$; the difference from the displayed condition is only this rounding. The factor $|\bar R_0(S_0)| + 1$ is the price of safety: points must be certified one by one, as in level-set estimation, rather than a single maximum localised.

What the theorem does not say. It bounds a sufficient number of rounds $t^*$, not cumulative regret: SafeOpt is a best-arm-identification style result, and nothing is promised about how good the sampled $x_t$ are along the way (expanders are typically mediocre boundary points). Nor can $t^*$ be computed in advance, since it depends on the unknown $|\bar R_0(S_0)|$; the observable stopping test of Section 2 is what tells the user that the guarantee applies. It says nothing about an underestimated $L$, a misspecified kernel or an underestimated $B$; each silently invalidates both halves (an overestimated $L$ or $B$ only slows expansion). And it is stated for finite $D$; continuous domains need a grid with a Lipschitz covering margin, or the grid-free methods of Section 6 and Module 5. The margin works as follows (Primer B): if $f$ is $L$-Lipschitz on the whole continuous domain and every point $x$ lies within distance $r$ of some grid point $z$, then $f(x) \ge f(z) - Lr$, so a grid point with $l_t(z) \ge h + Lr$ certifies the whole ball of radius $r$ around it, whereas $l_t(z) \ge h$ certifies only $z$ itself. Likewise the best certified grid point is within $Lr$ of the continuous optimum whenever the grid point nearest to that optimum is certified.

Connection to Modules 5 and 11
The safety half of the proof uses only "$f \ge l_t$ on the confidence event" plus the Lipschitz inequality. Suppose instead the noise obeys a hard bound $|n_j| \le E$ (Module 5's notation; here $E$ is a number, not the event of Step 0). Then every observation gives the deterministic interval $f(x_j) \in [y_j - E,\ y_j + E]$ at its query point $x_j$, and any $x$ with $y_j - E - L\,d(x_j,x) \ge h$ is safe with certainty: the same one-line argument, now without any probability, is LoSBO's safety proof (Module 5). Replace "$f \ge h$" by a Lyapunov decrease condition and the same template certifies a region of attraction from GP bounds (Module 11; Lyapunov decrease and regions of attraction: Primer D).

4. Practical Variants: SafeOpt-MC, StageOpt & Friends

Three things make the 2015 algorithm awkward on a robot: the Lipschitz constant, the single function that is both objective and constraint, and the coupling of expansion and optimisation. Each was addressed within three years, and each fix trades away part of the theorem.

4.1 Lipschitz-free SafeOpt: the version most code runs

Berkenkamp, Schoellig and Krause (ICRA 2016) tuned a quadrotor's position controller with SafeOpt and, to avoid specifying $L$, defined all three sets from the GP alone ($a \in A$ are parameters, $J_{\min}$ the performance threshold).

Algorithm idea — Lipschitz-free sets (Berkenkamp et al. 2016, eqs. 7 and 9)
With $l_n(a) = \mu_{n-1}(a) - \beta_n\sigma_{n-1}(a)$, $u_n(a) = \mu_{n-1}(a) + \beta_n\sigma_{n-1}(a)$ (no intersection over time), $$S_n = \{a \in A : l_n(a) \ge J_{\min}\}, \qquad M_n = \Big\{a \in S_n : u_n(a) \ge \max_{a' \in S_n} l_n(a')\Big\},$$ $$g_n(a) = \big|\{a' \in A \setminus S_n : l_{n,(a,u_n(a))}(a') \ge J_{\min}\}\big|, \qquad G_n = \{a \in S_n : g_n(a) \gt 0\},$$ where $l_{n,(a,u_n(a))}$ is the lower bound of the GP conditioned on the data and a fictitious noiseless observation $u_n(a)$ at $a$: "if $f(a)$ were as high as it might be, which uncertified points would the GP then certify?" The acquisition is unchanged, and the experiments use $\beta_n \equiv 2$.
The fictitious update is ordinary Gaussian conditioning (Primer C). With current posterior mean $\mu$ and covariance $c$, a noiseless value $v = u_n(a)$ at a point with $c(a,a) \gt 0$ gives $\mu^+(a') = \mu(a') + c(a',a)\,(v - \mu(a))/c(a,a)$ and $s_+^2(a') = c(a',a') - c(a',a)^2/c(a,a)$, hence $l_{n,(a,u_n(a))}(a') = \mu^+(a') - \beta_n s_+(a')$. (If $c(a,a) = 0$ the value at $a$ is already known and nothing changes.) No experiment takes place: the calculation only scores how useful sampling $a$ might be.

The journal version states the practical safe set for several constraints as $S_n = S_0 \cup \{a \in A : l^i_n(a) \ge 0\ \forall i \in I_g\}$ (their eq. 24) and proves in Lemma 2 that, with the theoretical $\beta_n$ of its Lemma 1 (whose printed constant carries the regularisation caveat discussed below 4.3), every evaluated parameter still satisfies all constraints with probability at least $1-\delta$: the safe set is by definition a set of points whose valid lower bounds certify the constraints, and it is never empty because $S_0 \subseteq S_n$. Computing $G_n$ needs one GP update per candidate, but since only the most uncertain candidate is ever selected, it suffices to test the points of $S_n \setminus M_n$ with $w_n$ above $\max_{M_n} w_n$ in decreasing order of $w_n$ and stop at the first expander.

Caveat — What the Lipschitz-free variant loses
Two separate things. First, there is no full-exploration proof: the journal paper says it is "difficult to prove the full exploration of the safely reachable set as in Theorem 1", and only safety (Lemma 2) is shown; expansion now depends on how the GP extrapolates, which the Lipschitz argument no longer controls. Second, the safety lemma needs the theoretical $\beta_n$, but the experiments use $\beta \equiv 2$ (ICRA 2016; $\beta \equiv 3$ in GoSafe, $\beta \equiv 4$ in GoSafeOpt), and Fiedler et al. (TMLR 2024) show what this costs: on one test function, SafeOpt with $\beta \equiv 2$ produced unsafe evaluations in 2862 of $10^4$ runs, while Real-$\beta$-SafeOpt with the true RKHS norm produced none. Turn the $\beta$ slider of the explorer down (and, for the initial function, the noise up) to see the same effect; Module 5 gives the repair.

4.2 SafeOpt-MC: several constraints and contexts

Berkenkamp, Krause and Schoellig (Machine Learning 2023; arXiv since 2016) separate the objective $f$ from $q$ safety constraints $g_i(a) \ge 0$, $i \in I_g = \{1,\dots,q\}$, stacked into one function $h(a,i)$ with $h(a,0) = f(a)$, $h(a,i) = g_i(a)$, modelled by a single GP over the index-augmented input $(a,i) \in A \times I$, $I = \{0\} \cup I_g$ (a kernel block-diagonal in $i$ means independent functions; a shared kernel lets constraints and objective inform each other). Each evaluation returns $|I| = q+1$ measurements. With per-function bounds $l^i_n, u^i_n$ intersected over time as in Section 2:

$$S_n = \bigcap_{i \in I_g}\ \bigcup_{a \in S_{n-1}} \big\{a' \in A : l^i_n(a) - L\,\|a - a'\| \ge 0\big\}, \qquad M_n = \Big\{a \in S_n : u^f_n(a) \ge \max_{a' \in S_n} l^f_n(a')\Big\},$$ $$e_n(a) = \big|\{a' \in A \setminus S_n : \exists i \in I_g,\ u^i_n(a) - L\,\|a - a'\| \ge 0\}\big|, \quad G_n = \{a \in S_n : e_n(a) \gt 0\}, \qquad a_n = \operatorname*{arg\,max}_{a \in G_n \cup M_n}\ \max_{i \in I}\ w_n(a,i).$$

Read the safe set inside out: for each constraint $i$, the union collects the points certified by some old safe point; the intersection keeps a point only if every constraint certifies it. Different constraints may use different witnesses $a_i$ (the order of quantifiers is "for every $i$ there is an $a_i$", weaker than one witness for all constraints; Primer 0). (The function $h(a,i)$ is unrelated to the scalar threshold $h$ of Sections 1–3; SafeOpt-MC writes every constraint as $g_i \ge 0$.) The matching benchmark replaces $l^i_n$ by the true $g_i$ minus the accuracy $\epsilon$ (their eqs. 8–9): $$R_\epsilon(S) = S \cup \bigcap_{i \in I_g}\big\{a \in A : \exists a' \in S,\ g_i(a') - \epsilon - L\|a - a'\| \ge 0\big\},$$ iterated to its closure $\bar R_\epsilon(S_0)$ as in Section 1, and $f^*_\epsilon = \max_{\bar R_\epsilon(S_0)} f$.

A point is safe only if every constraint certifies it (intersection), it is an expander if some constraint might newly certify something, and the acquisition takes the most uncertain function at the most uncertain point. The theory mirrors Section 3 with a Chowdhury–Gopalan-type multiplier (box below; the paper keeps Sui's $\beta^{1/2}$ notation, and the warning below 4.3 applies before reusing its constant with a $\sigma^2$-regularised posterior); the information gain is indexed by $|I|n$ because each iteration yields $|I|$ observations. Contexts $z \in Z$ (battery level, weather, or, in their experiment, the speed of the reference trajectory) are set externally each round; the GP lives on $(a,i,z)$, so data transfer across contexts through the kernel. On the quadrotor this tuned a position controller across trajectory speeds without restarting from scratch.

Theorem — SafeOpt-MC (Berkenkamp, Krause and Schoellig 2023, Lemma 1 and Theorems 1–2)
Let $A$ be finite, the $g_i$ be $L$-Lipschitz, the seed $S_0 \ne \emptyset$ satisfy $g_i \ge 0$ on $S_0$ for all $i \in I_g$, $\|h\|_k \le B$ for the stacked function on $A \times I$, and every measurement carry $\sigma$-sub-Gaussian noise. Lemma 1: with $\beta_n^{1/2} = B + 4\sigma\sqrt{\gamma_{(n-1)|I|} + 1 + \ln(1/\delta)}$, all intervals $|h(a,i) - \mu_{n-1}(a,i)| \le \beta_n^{1/2}\sigma_{n-1}(a,i)$ hold jointly for all $a$, $i$ and $n \ge 1$ with probability at least $1-\delta$. Theorem 1: with $\hat a_n = \operatorname{arg\,max}_{a \in S_n} l^f_n(a)$ and $n^*$ the smallest positive integer with $$\frac{n^*}{\beta_{n^*}\,\gamma_{|I|n^*}} \ \ge\ \frac{C_1\big(|\bar R_0(S_0)| + 1\big)}{\epsilon^2}, \qquad C_1 = \frac{8}{\log(1 + \sigma^{-2})},$$ jointly with probability at least $1-\delta$: $g_i(a_n) \ge 0$ for all $n \ge 1$ and $i \in I_g$, and $f(\hat a_n) \ge f^*_\epsilon - \epsilon$ for all $n \ge n^*$. Theorem 2 (contexts): if in addition every visited context has a non-empty safe set (their Assumption 1) and $\gamma$ is taken over $A \times Z \times I$, safety holds for all $n$, and for each context $z$ the optimality bound $f(\hat a_n, z) \ge f^*_\epsilon(z) - \epsilon$ holds for $n \ge n^*(z)$, where $n^*(z)$ is the first round at which the number $n(z)$ of rounds in which context $z$ was actually observed satisfies the same condition with $n(z)$ in place of $n^*$ (with $\gamma_{n(z)|I|}(z)$ computed at that context and $\beta$ at the global round).
In words. One joint confidence event for all functions, points and rounds supplies the statistics, and per-constraint Lipschitz witnesses supply the geometry, exactly as in Section 3. For contexts, what counts is how often a context has actually been seen, not the global round counter. (The observable stopping test of Section 2 carries over: at a round with $S_n = S_{n-1}$ and all widths on $G_n \cup M_n$ at most $\epsilon$, the argument of Steps 4–5 gives $\bar R_\epsilon(S_0) \subseteq S_n$ and $f(\hat a_n) \ge f^*_\epsilon - \epsilon$; this is derived here, not stated in the paper.)

4.3 StageOpt: expand first, then optimise

SafeOpt's acquisition compares widths of objective and constraints on one scale, which is meaningless when they are dissimilar (the paper's example is temperature versus gripping force; in the clinic, a patient's comfort with a stimulus versus its therapeutic effect). Sui, Zhuang, Burdick and Yue (ICML 2018) split the run into an expansion stage driven only by the safety GPs and an optimisation stage inside the certified region. With $n$ safety functions $g_i$, thresholds $h_i$ and Lipschitz constants $L_i$:

$$\text{stage 1 } (t \le T_0):\quad S_t = \bigcap_i \bigcup_{x \in S_{t-1}}\{x' : l^i_t(x) - L_i\,d(x,x') \ge h_i\}, \qquad x_t = \operatorname*{arg\,max}_{x \in G_t,\ i}\ w^i_t(x);$$ $$\text{stage 2 } (t \gt T_0):\quad x_t = \operatorname*{arg\,max}_{x \in S_t}\ \mu^f_{t-1}(x) + \beta_t\,\sigma^f_{t-1}(x).$$

Here $G_t$ collects the certified points that could still certify a new point under at least one constraint, as in SafeOpt-MC. In the theory the switch happens at a fixed round, $T_0 = t^*$ (box below); a remark in the paper instead ends stage one once every expander width $\max_{G_t} w^i_t$ has fallen below $\epsilon$, and the experiments end it when the safe region has not grown for 10 iterations. Stage two can be any online optimiser (the paper also gives a dueling-bandit version for preference feedback, used in a live clinical spinal-cord-stimulation experiment).

Theorem — StageOpt's two guarantees (Sui, Zhuang, Burdick and Yue 2018, Theorems 1–2)
Assume a finite domain, a non-empty seed $S_0$ on which every $g_i \ge h_i$, $L_i$-Lipschitz safety functions, $\sigma$-sub-Gaussian noise, and $\|g_i\|_k^2 \le B$, $\|f\|_k^2 \le B$ (the paper's squared-norm convention, although its multiplier $\beta_t = B + \sigma\sqrt{2(\gamma_{t-1} + 1 + \log(1/\delta))}$ is designed for $\|\cdot\|_k \le B$; see the warning below). Theorem 1 (expansion): let $t^*$ be the smallest integer with $t^*/(\beta^2_{t^*}\gamma_{nt^*}) \ge C_1(|\bar R_0(S_0)| + 1)/\epsilon^2$, $C_1 = 8/\log(1+\sigma^{-2})$, and $T_0 = t^*$. With probability at least $1-\delta$, $g_i(x_t) \ge h_i$ for all $t$ and $i$, and from round $t^*$ on the $\epsilon$-reachable region $R_\epsilon^{T_0}(S_0)$ (the $T_0$-fold iterate of the multi-constraint operator of Section 4.2, with thresholds $h_i$ and constants $L_i$) is certified. Theorem 2 (optimisation): run GP-UCB on the utility inside that region for $Y$ rounds, $Y$ the smallest integer with $\tfrac{4\sqrt2}{\sqrt Y}\big(B\sqrt{\gamma_Y} + \sigma\sqrt{2\gamma_Y(\gamma_Y + 1 + \log(1/\delta))}\big) \le \zeta$. Then with probability at least $1-\delta$ some point sampled in stage two is $\zeta$-optimal within the region; the bound comes from the average regret, and the paper does not specify which point to return.
Certificate (derived here, not in the paper). The two theorems hold at level $1-\delta$ each; a joint statement for all $n+1$ GPs needs a union bound (warning below). On the joint confidence event an observable rule fixes the recommendation: with $S$ the certified set, return $\hat x \in \operatorname{arg\,max}_S l^f$ once $\max_S u^f - \max_S l^f \le \zeta$; then $\max_S f - f(\hat x) \le \max_S u^f - l^f(\hat x) = \max_S u^f - \max_S l^f \le \zeta$. In words: first learn which experiments are permitted, then optimise within them; the gap between the best optimistic and the best pessimistic value is an error bound one can read off.
Common mistake — Reading the SafeOpt-MC and StageOpt constants
Three things to check before reusing these multipliers. (i) Norm convention. StageOpt's theorems write $\|g_i\|_k^2 \le B$ (Srinivas convention) next to a Chowdhury–Gopalan multiplier $\beta_t = B + \sigma\sqrt{2(\cdot)}$, which is derived for $\|g_i\|_k \le B$. Read $B$ as a bound on the norm itself; the $\beta_t^2$ in the $t^*$ condition is then consistent with Section 3. (ii) Regularisation. Both papers compute the posterior with the noise variance $\sigma^2$, as in Section 1, but Chowdhury–Gopalan's Theorem 2 is proved for a posterior regularised with $\lambda = 1 + \eta$ (Section 3), and its noise term $\sigma\sqrt{\cdot}$ depends on that choice. For a $\sigma^2$-regularised posterior the valid radius is the Abbasi-Yadkori form of Module 3 with $R = \sigma$, $\lambda = \sigma^2$, so $R/\sqrt\lambda = 1$: $\beta_t = B + \sqrt{\ln\det(I + \sigma^{-2}K_{t-1}) + 2\ln(1/\delta)} \le B + \sqrt{2(\gamma_{t-1} + \ln(1/\delta))}$, whose noise term does not shrink with $\sigma$. The printed constants can fail for small $\sigma$. Take $f \equiv 0$ (so $B$ may be tiny) and one observation $y = n$ at a point with $k(x,x) = 1$: then $\mu_1 = n/(1+\sigma^2)$, an error of order $\sigma$, and $\sigma_1 = \sigma/\sqrt{1+\sigma^2}$; the printed multiplier $\approx \sigma\sqrt{2(\gamma + 1 + \ln(1/\delta))}$ with $\gamma \approx \tfrac12\ln(1 + \sigma^{-2}) \approx \ln(1/\sigma)$ gives a radius of order $\sigma^2\sqrt{\ln(1/\sigma)}$, far too small. The corrected factor $R/\sqrt\lambda = 1$ removes the extra power of $\sigma$. (iii) Several functions. StageOpt models each $g_i$ with its own GP and applies a single-function bound with $\log(1/\delta)$ to each; a joint $1-\delta$ statement over $n$ safety GPs needs a union bound (Primer C), $\log(n/\delta)$ in place of $\log(1/\delta)$ (or $\log((n+1)/\delta)$ with the utility GP), as CONFIG (Section 6) does in its Lemma 2.4 with $\ln((N+1)/\delta)$ for $N$ constraints. SafeOpt-MC avoids (iii) by modelling all functions as one GP on $A \times I$.

4.4 Scaling up: lines, trust regions, learned priors

SafeLineBO (Kirschner, Mutný, Hiller, Ischebeck and Krause, ICML 2019) runs BO on a sequence of clipped lines $\mathcal{L}_i = \{\hat x_{i-1} + \alpha\,l_i : \alpha \in \mathbb{R}\} \cap X$ (their $L_i$; calligraphic here to avoid a clash with the Lipschitz constants $L_i$): the line through the current best point $\hat x_{i-1}$ in direction $l_i$, restricted to the allowed decisions $X$. The directions come from a random, coordinate (change one parameter) or descent oracle, and each line is solved with SafeOpt on a finite grid of the line that contains a known safe point, so each 1-D sub-problem inherits SafeOpt's guarantees on that line's reachable grid points. Unconstrained LineBO has global convergence for random directions and fast local rates for strongly convex objectives (box below; strong convexity and smoothness: Primer B), and the method tuned the Swiss Free Electron Laser with up to 40 parameters. The price is that each line only sees the slice of the safe set it intersects.

Theorem — LineBO convergence (Kirschner et al. 2019, Propositions 1–2)
LineBO minimises a cost $J$ (their $f$) by repeated one-dimensional solves; a line solve has accuracy $\eta$ if it returns a point within $\eta$ of the minimum of $J$ on the line, and the best point so far is kept. Global (Prop. 1): if $J$ lies in the RKHS of a twice-differentiable kernel with bounded norm, has effective dimension $d_e \ge 2$ (it depends on $x$ only through a $d_e$-dimensional subspace), and the directions are uniformly random, then after $K$ line solves, with probability at least $1-\delta$, $J(\hat x_K) - J^* = O\big((\log(1/\delta)/K)^{2/(d_e-1)} + \eta\big)$. Local (Prop. 2): if $J$ is $m$-strongly convex and $M$-smooth (their $\alpha$, $\beta$) on a convex region $X_c$ that contains all iterates, the directions are uniform on the sphere or over an orthonormal basis, and $J^*_c = \min_{X_c} J$, then $$\mathbb E\big[J(\hat x_K)\big] - J^*_c \ \le\ \frac{Md}{m}\,\eta + \Big(1 - \frac{m}{Md}\Big)^K\big(J(\hat x_0) - J^*_c\big).$$
Why the local rate. A random direction captures on average a $1/d$ share of the squared gradient, $\mathbb E[(\nabla J^\top l)^2] = \|\nabla J\|^2/d$ (their Lemma 1). $M$-smoothness says that the best point on the line lowers $J$ by at least $(\nabla J^\top l)^2/(2M)$ (minimise $J(x) + s\,\nabla J^\top l + Ms^2/2$ over $s$; the points used must lie in $X_c$), and strong convexity gives $\|\nabla J\|^2 \ge 2m(J - J^*_c)$. Hence $\mathbb E[J_{k+1} - J^*_c] \le (1 - \tfrac{m}{Md})\,\mathbb E[J_k - J^*_c] + \eta$, and iterating with $\sum_k(1 - \tfrac{m}{Md})^k \le \tfrac{Md}{m}$ gives the bound. SafeLineBO: the paper proves no convergence result for the safe version. Each line is solved safely, but a line only reaches the part of the safe set connected to the current point along it, so the optimum is reachable only under extra structure, e.g. a convex safe set (their U-shaped counterexample shows the failure).

HdSafeBO (Wei, Yi, Li, Soedarmadji and Sui, CoRL 2024) combines an isometric embedding, a trust region around the best safe point (both explained below) and optimistic safety identification: a point counts as safe when its upper bound $\mu_{t-1}(x) + \beta_t\sigma_{t-1}(x)$ clears the threshold $0$. Under their Assumption 3.1 ($f$ and $g$ are GP samples, Gaussian noise), choosing $\beta_t$ with $\Phi(\beta_t) \le 1-\alpha$ gives $\Pr(g(x) \ge \mu_{t-1}(x) + \beta_t\sigma_{t-1}(x)) \ge \alpha$ for every $x$ and step (Prop. 4.1), so a point declared safe is safe with probability at least $\alpha$ ($\Phi$ and its quantiles: Primer C). The rule is genuinely optimistic ($\beta_t \ge 0$) only for $\alpha \le 1/2$; a larger $\alpha$ forces $\beta_t \lt 0$, i.e. a lower confidence bound, as the paper notes. Theorem 4.2 states, for $V_T = \sum_t \max(0, -g(x_t))$: with probability at least $1-\delta$, $\mathbb{E}[V_T] \le (1-\alpha)\sqrt{C_1 T\beta^c_T\gamma_T}$ with $C_1 = 8/\log(1+\sigma^{-2})$ and $\beta^c_T = 2\log(|X|T^2\pi^2/(6\delta))$, which presupposes a finite candidate set $X$. Read it with care: the statement does not say what the expectation averages over or what the outer probability refers to, and the proof step that produces the factor $1-\alpha$ (their Lemma A.2, eq. 12) treats the random $g(x_t)$ as a constant; the box below gives what does follow. Either way this is a per-step probabilistic statement about a random $g$, not SafeOpt's joint guarantee for a fixed $g$; it buys scalability to hundreds of dimensions (musculoskeletal control, neural stimulation).

Theorem — HdSafeBO's per-step guarantee (Wei et al. 2024, Proposition 4.1) and two consequences
Assume (their Assumption 3.1) that the safety function $g$ and the objective are samples of Gaussian processes with known priors, observed with i.i.d. Gaussian noise, and let $\mu_{t-1}, \sigma_{t-1}$ be the posterior of $g$ after $t-1$ observations. Proposition 4.1: if $\Phi(\beta_t) \le 1-\alpha$, then for every $x$, conditionally on the data so far, $\Pr\big(g(x) \ge \mu_{t-1}(x) + \beta_t\sigma_{t-1}(x)\big) \ge \alpha$, because $(g(x) - \mu_{t-1}(x))/\sigma_{t-1}(x)$ is standard normal given the data. Consequences (derived here, not in the paper), assuming every query is declared safe and the algorithm's own randomness is independent of $g$ given the data: (i) adding the per-step probabilities (tower rule) bounds the expected number of unsafe queries by $(1-\alpha)T$; (ii) with $g(x_t) \sim \mathcal N(m, s^2)$ given the data, $\mathbb E\big[(-g(x_t))^+\big] = s\,\phi(m/s) - m\,\Phi(-m/s)$, which decreases in $m/s \ge -\beta_t$ and is therefore at most $s\,(\phi(\beta_t) + \beta_t\Phi(\beta_t))$; summing with $\sum_t\sigma_{t-1}(x_t) \le \tfrac12\sqrt{C_1T\gamma_T}$ (Section 3, $k \le 1$) gives $\mathbb E[V_T] \le \tfrac12\max_t\big(\phi(\beta_t) + \beta_t\Phi(\beta_t)\big)\sqrt{C_1T\gamma_T}$, an expectation over the GP draw, the noise and the algorithm, with no $\delta$ and no finiteness of $X$.
In words. HdSafeBO controls the probability of a violation one query at a time, under a Bayesian model of $g$; on average over the model at most a $1-\alpha$ fraction of queries violate, and the total violation grows like the sum of posterior standard deviations. Neither statement says that a whole run is safe, which is SafeOpt's claim.
Background — Isometric embeddings and trust regions

An isometric representation $\psi$ preserves distances between the decisions it represents, $\|\psi(z) - \psi(z')\| = \|z - z'\|$ (norms and distances: Primer A), so a stationary kernel, which depends only on distances, gives the same GP whether it works on $z$ or on $\psi(z)$: the GP can be run in a low-dimensional latent space. A parameter-space trust region restricts the next search to decisions near the current best point, e.g. the box $\{x : |x_j - x^{best}_j| \le r_j \text{ for each } j\}$; with $x^{best} = (1,2)$ and radii $(0.1, 0.2)$ this is $[0.9, 1.1] \times [1.8, 2.2]$. Successful experiments enlarge the radii, repeated failures shrink them. Both make high-dimensional search cheaper; neither proves safety, and every point still needs its own safety test.

Which kernel? Safety in all of the above is only as good as the prior. Rothfuss, Koenig, Rupenyan and Krause (CoRL 2022) meta-learn the GP prior from related tasks (F-PACOH) and pick hyperparameters $\omega$ by maximising sharpness subject to an empirical calibration constraint, $\min_\omega \text{avg-std}(\{D_i\},\omega)$ s.t. $\text{avg-calib}(\{D_i\},\omega) \ge 1$: the data-driven answer to the question every SafeOpt user faces first. Two other answers attack the hyperparameters and the norm bound directly. Berkenkamp, Schoellig and Krause (JMLR 2019) adapt the hyperparameters of a stationary kernel slowly over time, so that the function class expands, and keep no-regret guarantees without knowing lengthscales or $B$ in advance (a regret result for GP-UCB, not a safety result). PACSBO (Tokmak, Schön and Baumann, SysDO 2024) estimates an RKHS-norm bound from data, treated as a local rather than a global quantity, and plugs it into a safe BO algorithm with a probably-approximately-correct safety guarantee; Module 3 discusses the related norm estimate and its i.i.d.-norm assumption. When decisions are states of a system rather than static parameters, safety also requires being able to return; SafeMDP and its descendants add reachability and returnability to the same expander template (Module 6).

Background — Meta-learned priors, sharpness and calibration

A task is one related tuning problem with its own unknown function and dataset $D_i = \{(x_{ij}, y_{ij})\}_j$. Meta-learning uses several such datasets to learn a prior shared by all tasks (F-PACOH learns neural-network mean and kernel functions); $\omega$ denotes the remaining GP hyperparameters, such as a kernel lengthscale and variance. Example: data from five similar motors may suggest a lengthscale for a sixth. Sharpness means narrow uncertainty intervals; calibration means the intervals contain the truth as often as their nominal level says. Both scores are computed by splitting each dataset: fit on its first $t$ observations and validate on the rest. For each nominal level $a$ in a set of 20 levels equally spaced in $[0.8, 1]$, compute the fraction $c_a$ of validation observations inside the level-$a$ interval; the calibration frequency is the fraction of levels with $c_a \ge a$, a number in $[0,1]$. avg-calib averages it over splits and tasks, and avg-std averages the predictive standard deviations at the same validation points. The constraint avg-calib $\ge 1$ therefore demands that every one of these checks pass (the paper relaxes it to $0.95$ for the objective model). It is an empirical check on the training tasks, not a probability of safety on a new task.

VariantSafe set fromNeeds $L$?Proved$\beta$ in experiments
SafeOpt (2015)$l_t$ at safe points + Lipschitz transferyessafety + $\epsilon$-optimality on $\bar R_\epsilon(S_0)$not reported (a heuristic, per Fiedler et al. 2024)
Lipschitz-free (2016, eq. 24)$l_t \ge h$ directlynosafety only$\beta \equiv 2$
SafeOpt-MC (2016/2023)intersection over constraintsyes (shared $L$)safety + optimality, contexts$\beta \equiv 2$ on hardware
StageOpt (2018)as SafeOpt, per-constraint $L_i$yesexpansion, then $\zeta$-optimal utilitynot reported
SafeLineBO (2019)SafeOpt on 1-D linesyes (per line)per-line guaranteesheuristic
HdSafeBO (2024)optimistic UCB rulenoper-step level $\alpha$; $\mathbb{E}[V_T]$ bound w.p. $\ge 1-\delta$ (finite $X$)$\Phi(\beta_t) \le 1-\alpha$

5. BO for Controller Tuning (Trimpe group)

Independently of the safe-BO line, Sebastian Trimpe's group (then MPI for Intelligent Systems, now DSME at RWTH Aachen) built a decade-long programme around one question: how do you tune a real controller from a handful of experiments? The answers reuse GPs and BO, but the safety mechanisms differ from SafeOpt's, and the differences are instructive.

5.1 Automatic LQR tuning with Entropy Search (Marco et al., ICRA 2016)

Marco, Hennig, Bohg, Schaal and Trimpe (ICRA 2016) tune a state-feedback controller without touching its gains directly:

  1. A nominal linear model $\tilde x_{k+1} = A_n\tilde x_k + B_n u_k + w_k$ of the true, unknown, nonlinear dynamics about the equilibrium (linearisation: Primer D).
  2. A performance criterion $J = \lim_{K\to\infty}\frac1K\,\mathbb{E}\big[\sum_{k=0}^{K-1} x_k^\top Q x_k + u_k^\top R u_k\big]$ with fixed performance weights $(Q,R)$ (quadratic costs and LQR: Primer D).
  3. A controller family parametrised through design weights: $u_k = F(\theta)x_k$, $F(\theta) = \mathrm{lqr}(A_n, B_n, W_x(\theta), W_u(\theta))$ with, e.g., diagonal $W_x, W_u$ depending on $\theta \in \mathbb{R}^D$. Two sign conventions change here: this subsection minimises a cost $J$, whereas SafeOpt maximises $f$ (set $f = -J$; then $f \ge h$ means $J \le -h$), and the gain is written $u = Fx$, so the common LQR convention $u = -Kx$ corresponds to $F = -K$.
  4. An experiment of horizon $K$ returning the noisy finite-horizon cost $\hat J(\theta)$, a few minutes of balancing per evaluation.
  5. A GP prior on $J(\theta)$ and Entropy Search (ES) as optimiser: ES keeps a distribution $p_{\min}(\theta) = \Pr[\theta \in \operatorname{arg\,min} J]$ over the location of the minimum and evaluates where the expected entropy reduction of $p_{\min}$ is largest; the answer is the best guess $\theta_{BG} = \operatorname{arg\,max} p_{\min}$, not the last query. On a finite candidate set $\{\theta_1,\dots,\theta_m\}$, $p_{\min}(\theta_j)$ is the posterior probability that $\theta_j$ is the minimiser and its entropy is $H(p_{\min}) = -\sum_j p_{\min}(\theta_j)\log p_{\min}(\theta_j)$ (Primer C); on a continuous domain a single point has probability zero, so $p_{\min}$ is a density over the minimiser's location, which ES approximates on a finite set of points. Exercise 4.5 uses the finite version.

Why the detour through LQR weights? Because every $\theta$ then yields a gain that stabilises the nominal model (under the usual stabilisability and detectability conditions, which positive diagonal weights satisfy whenever $(A_n, B_n)$ is stabilisable; see below), whereas tuning $F$ directly would search a much larger space full of destabilising gains. Marco et al. add an inverse-optimality remark (their footnote 1, citing classical results, among them Kalman's 1964 paper "When is a linear control system optimal?"): any stabilising gain whose return difference exceeds one in magnitude is an LQR solution for some weights, so parametrising by general LQR weights only discards gains that destabilise the nominal plant or have poor robustness. Kalman's frequency-domain criterion is a continuous-time, single-input result; the exact discrete-time test is the matrix condition in the box below. Either way the remark asserts the existence of some weight pair $(W_x, W_u)$; it does not cover a restricted family such as the bounded diagonal $W_x(\theta)$ tuned below, which shrinks the search space further (Marco et al. motivate that restriction separately, as a way to focus on the relevant parameters) and may exclude robust stabilising gains as well. Do not read it the other way round either: "every LQR gain has a return difference of at least one" is the continuous-time result, and in discrete time, the setting here, it can fail. For $A = B = Q = R = 1$ the Riccati equation $P = 1 + P - P^2/(1+P)$ gives $P^2 = P + 1$, so $P = (1+\sqrt5)/2$ and the gain is $K = P/(1+P) \approx 0.618$; with negative feedback $u = -Kx$ the loop transfer function is $K/(z-1)$, and at $z = -1$ the return difference is $|1 + K/(z-1)| = |1 - K/2| \approx 0.69$ (transfer functions and frequency response: Primer D). This is safety by parametrisation: free at run time, but a guarantee only for the nominal plant.

The conditions behind "every $\theta$ stabilises": take $W_u \succ 0$ and $W_x \succeq 0$. $(A_n, B_n)$ is stabilisable if every mode that the input cannot influence already has eigenvalue magnitude below one, and $(A_n, W_x^{1/2})$ is detectable if every mode invisible to the state penalty is already stable (controllability and observability: Primer D). Under these two conditions the stabilising Riccati solution yields a gain $F$ with all eigenvalues of $A_n + B_nF$ inside the unit circle; $W_x \succ 0$ makes detectability automatic. All of this concerns the nominal model.

Fact — Which gains are LQR gains? (discrete time; standard LQR theory)
Take the nominal model $x_{k+1} = Ax_k + Bu_k$ and a stabilising gain $u = -Kx$ (all eigenvalues of $A - BK$ inside the unit circle; $K = -F$ in Marco et al.'s notation). For design weights $W_x \succeq 0$, $W_u \succ 0$ with $(W_x^{1/2}, A)$ detectable, $K$ is the infinite-horizon LQR gain for these weights if and only if some symmetric $P \succeq 0$ satisfies $$B^\top P(A - BK) = W_uK, \qquad P = W_x + K^\top W_uK + (A - BK)^\top P(A - BK).$$ The first equation says $K = (W_u + B^\top PB)^{-1}B^\top PA$, and substituting it into the second gives the discrete Riccati equation. Sufficiency: with these identities, for every $x$ and $u$, $$x^\top W_xx + u^\top W_uu + (Ax + Bu)^\top P(Ax + Bu) - x^\top Px = (u + Kx)^\top(W_u + B^\top PB)(u + Kx) \ \ge\ 0,$$ so summing over $k$ telescopes the $P$-terms: every input sequence with finite cost (for which detectability forces $x_k \to 0$) costs at least $x_0^\top Px_0$, with equality for $u = -Kx$. Necessity is the standard LQR solution through the stabilising Riccati solution.
In words. A gain is an LQR gain exactly when some quadratic value function $x^\top Px$ certifies it. Marco et al.'s footnote appeals to Kalman's frequency-domain criterion instead; either way the statement is about some weights, not about the diagonal family actually tuned.

On the humanoid Apollo balancing an inverted pole with its 7-DoF arm, 20 iterations of 2-D tuning ($W_x(\theta) = \mathrm{diag}(1, 50\theta_1, 10, 50\theta_2)$, $W_u = 10$, $\theta \in [0.01, 10]^2$) improved the nominal LQR's cost by 31.9%; with a pole of double length and the same, now poor, model the initial controller was unstable and ES found a stabilising one; and 46 iterations of 4-D tuning improved on the 2-D long-pole result by a further 31.7%. Experiments that destabilised the system were stopped and assigned a fixed penalty cost $J_u$ (3.0 and 5.0 in the 2-D and 4-D runs), the crude ancestor of the crash-constraint models below.

Why it matters
Marco et al. do not enforce $J(\theta) \ge J_{\min}$ on every query, so this is not safe BO in Sui's sense; unstable controllers were tried. It shows the other lever available to control engineers: choose the parametrisation so that most of the search space is benign, then spend the experiments on information (ES) rather than optimism (UCB). The levers compose: SafeOpt-MC on the quadrotor and MCLoSBO on the test vehicle (Module 5) both tune structured controllers.

5.2 Virtual vs. real: multi-fidelity Entropy Search (Marco et al., ICRA 2017)

Marco, Berkenkamp, Hennig, Schoellig, Krause, Schaal and Trimpe (ICRA 2017) add a simulator as a cheap, biased information source. The model is $J(\theta) = J_{\mathrm{sim}}(\theta) + J_{\mathrm{err}}(\theta)$ with independent GP priors on both terms; extend the input by a fidelity flag $\delta \in \{0,1\}$ ($0$ = simulation, $1$ = robot) and use the kernel

$$k\big((\theta,\delta),(\theta',\delta')\big) = k_{\mathrm{sim}}(\theta,\theta') + \delta\,\delta'\,k_{\mathrm{err}}(\theta,\theta'),$$

with separate noise variances for the two sources. Two robot evaluations covary through both terms, a simulation and a robot evaluation only through $k_{\mathrm{sim}}$, so before any robot data a simulation can explain exactly the $k_{\mathrm{sim}}$ share of the robot cost's variance and nothing about the model error (Marco et al. describe this split of the robot cost's variance "before any data is observed"). Robot data couple the two terms: an experiment constrains their sum, so afterwards $J_{\mathrm{sim}}$ and $J_{\mathrm{err}}$ at the tested parameter are negatively correlated in the posterior (derivation below) and later simulations inform $J_{\mathrm{err}}$ too; at a parameter with noise-free robot and simulation values, their difference is $J_{\mathrm{err}}$ exactly. The distribution over the minimum is defined on the real system, $p_{\min}(\theta) = \Pr[\theta \in \operatorname{arg\,min}_\theta J(\theta,\delta{=}1)]$, and the acquisition trades expected information gain against evaluation effort $t_{\mathrm{sim}} \lt t_{\mathrm{exp}}$ (their eq. 10):

$$(\theta_{n+1}, i_{n+1}) = \operatorname*{arg\,max}_{\theta,\ i \in \{\mathrm{sim},\,\mathrm{exp}\}} \ \frac{\mathbb{E}[\Delta H_i(\theta)]}{t_i}.$$

Here $\Delta H_i(\theta) = H(p_{\min} \mid D) - H\big(p_{\min} \mid D \cup \{(\theta, i, Y)\}\big)$ is the drop in the entropy of $p_{\min}$ if source $i$ were evaluated at $\theta$ and returned $Y$. Since $Y$ is not known before the evaluation, the expectation averages over its current GP predictive distribution; dividing by the effort $t_i$ gives information per second. (Exercise 4.5(d) uses the information about one cost value as a simpler proxy.)

The algorithm decides by itself when the simulator has become uninformative and switches to the robot (and back). On a cart-pole with an LQR-parametrised controller, with simulations 30 times cheaper than experiments ($t_{\mathrm{sim}} = 1$ s, $t_{\mathrm{exp}} = 30$ s), it needed fewer physical experiments than ES on the robot alone. Fewer hardware trials is itself a safety lever.

Derivation — What one simulation tells you about the robot cost under the sum kernel

Fix $\theta$, write $s = k_{\mathrm{sim}}(\theta,\theta)$, $e = k_{\mathrm{err}}(\theta,\theta)$. Prior variances: $\operatorname{Var}J(\theta,1) = s + e$, $\operatorname{Var}J(\theta,0) = s$; cross-covariance $k((\theta,1),(\theta,0)) = s + 1\cdot 0\cdot e = s$. Conditioning on a noise-free simulation $J(\theta,0) = j$ (Gaussian conditioning, Primer C; zero prior means) gives

$$\operatorname{Var}\big[J(\theta,1) \mid J(\theta,0)\big] = (s+e) - \frac{s^2}{s} = e, \qquad \mathbb{E}\big[J(\theta,1) \mid J(\theta,0) = j\big] = j .$$

So, starting from the prior, a simulation removes exactly the simulator share $s$ of the uncertainty and leaves the model-error share $e$ untouched, whatever $j$; a robot experiment with noise variance $\eta^2_{\mathrm{exp}}$ leaves $(s+e) - (s+e)^2/(s+e+\eta^2_{\mathrm{exp}})$. Both are prior-to-first-evaluation calculations. After that robot experiment, whose value $Y = J_{\mathrm{sim}}(\theta) + J_{\mathrm{err}}(\theta) + \xi$ has covariance $s$ with the first term and $e$ with the second, the two terms are no longer independent: $\operatorname{Cov}\big(J_{\mathrm{sim}}(\theta), J_{\mathrm{err}}(\theta) \mid Y\big) = 0 - s\,e/(s+e+\eta^2_{\mathrm{exp}}) \lt 0$ (at this $\theta$; covariances between different inputs need not be negative), so a subsequent noise-free simulation also shrinks the variance of $J_{\mathrm{err}}(\theta)$, from $e(s+\eta^2_{\mathrm{exp}})/(s+e+\eta^2_{\mathrm{exp}})$ to $e\,\eta^2_{\mathrm{exp}}/(e+\eta^2_{\mathrm{exp}})$ (zero for a noise-free experiment). The ratio $e/(s+e)$ is the modeller's statement of how much to trust the simulator. It can be estimated by maximising the marginal likelihood $p(y \mid \omega) = \mathcal N(y;\, m_\omega,\, K_\omega + \Sigma_{\mathrm{noise}})$ of all observations over the kernel hyperparameters $\omega$ (the latent function values integrated out; Primer C), provided the data contain enough simulations and robot runs at informative parameters to tell $s$ and $e$ apart. Exercise 4.5(d) turns this into information per unit effort.

5.3 Crash constraints: failures as data

On a jumping quadruped a bad parameter does not return a large cost, it returns a fall and no cost at all. Marco, Baumann, Khadiv, Hennig, Righetti and Trimpe (RA-L 2021) call this learning with crash constraints: each experiment returns a label $l_i \in \{0,1\}$ (crash / success; their notation, not the lower confidence bound $l_t$ of Section 2) and a value $y_i$ only if $l_i = 1$. Their GP classified regression (GPCR) models a latent constraint $g$ with an unknown threshold $c$ through the likelihood

$$p(y_i, l_i \mid g_i) = \big[H(c - g_i)\,\mathcal{N}(y_i; g_i, \sigma^2_{no})\big]^{l_i}\,\big[H(g_i - c)\big]^{1-l_i}, \qquad H = \text{Heaviside step},$$
Derivation — Reading the crash likelihood piece by piece

Here $g_i = g(x_i)$, and the Heaviside step is $H(v) = 1$ for $v \ge 0$ and $H(v) = 0$ otherwise, so $H(c - g_i)$ is the indicator $\mathbf 1\{g_i \le c\}$ (Primer C; the boundary case $g_i = c$ has probability zero under a Gaussian model). The exponents $l_i$ and $1 - l_i$ switch between two cases. A success ($l_i = 1$) contributes $\mathbf 1\{g_i \le c\}\,\mathcal N(y_i; g_i, \sigma^2_{no})$: an ordinary noisy measurement, plus the information that $g_i$ lies below the threshold. A crash ($l_i = 0$) contributes only $\mathbf 1\{g_i \ge c\}$, because no value $y_i$ was measured. Such an observation is censored: it supplies an inequality instead of a number. The posterior is then no longer Gaussian, which is why an approximation (EP, below) is needed. MAP estimation chooses the parameters, here $c$ and the hyperparameters, that maximise likelihood times prior density.

so successes are regression data below $c$ and crashes are censored observations above $c$; $c$ is learned by MAP together with the hyperparameters after an expectation-propagation approximation. The acquisition is expected improvement with constraints, $\alpha_{EIC}(x) = \mathbb{E}_{f(x)}[\max\{\eta_{cons} - f(x), 0\}]\,\Gamma(x)$, where $\eta_{cons}$ is the best feasible value observed so far and, in EIC$^2$, $\Gamma(x) = \prod_j \Pr(l_j(x) = 1) = \prod_j \Phi\big((\hat c_j - \mu_j(x))/\sigma_j(x)\big)$ is the success probability under the EP-approximated GPCR posterior with the learned threshold $\hat c_j$ (each factor is their eq. 9; plain EIC uses $\Pr(g_j(x) \le 0)$ with a known zero threshold). Before any successful point it uses $\Gamma$ alone, and the reported solution is $\operatorname{arg\,min}\mu(x)$ of the objective's posterior mean subject to $\Gamma(x) \ge 1-\delta$. Crashes are explicitly tolerated: the third regime of the table in Section 1. On the quadruped the learned jumps outperformed manual tuning.

Two independence assumptions hide in these formulas. The product $\prod_j$ in $\Gamma$ equals the probability that all constraints succeed only if the constraint models are independent given the data, and multiplying expected improvement by $\Gamma$ further assumes that improvement and feasibility are independent given the data. Without them the right quantity is the joint expectation $\mathbb E\big[(\eta_{cons} - f(x))^+\,\mathbf 1\{\text{all constraints succeed at } x\} \mid D\big]$, where $v^+ = \max(v,0)$.

Fact — Moment matching, the step inside expectation propagation
For a density $p$ with mean $m$ and positive-definite covariance $V$, the Gaussian $q = \mathcal N(\mu, \Sigma)$ closest to $p$ in the sense of $\mathrm{KL}(p\,\|\,q)$ is $\mathcal N(m, V)$: the terms of $\mathrm{KL}(p\,\|\,q)$ that depend on $(\mu, \Sigma)$ are $\tfrac12\log\det\Sigma + \tfrac12\operatorname{tr}(\Sigma^{-1}V) + \tfrac12(m - \mu)^\top\Sigma^{-1}(m - \mu)$, minimised by $\mu = m$ and then $\Sigma = V$ (KL divergence: Primer C). Expectation propagation (EP) applies this locally. Each non-Gaussian likelihood factor, here the Heaviside cut-offs $H(c - g_i)$ of successes and $H(g_i - c)$ of crashes (the Gaussian noise factors are handled exactly), gets a Gaussian stand-in; EP repeatedly removes one stand-in, multiplies the remaining Gaussian approximation by the exact factor, and replaces this "tilted" density by the Gaussian with the same mean and covariance.
In words. EP returns a Gaussian posterior assembled from local moment matches. It is an approximation, not guaranteed to converge in general, so the probabilities computed from it, such as $\Gamma(x)$ above, are approximate rather than certified. Matching two moments of a truncated Gaussian does not make its tail probabilities exact.

von Rohr, Stenger, Scheurenberg and Trimpe (at – Automatisierungstechnik 2024) bring crash constraints to local BO. VDP-GIBO estimates the objective's gradient from a GP, chooses experiment batches that minimise the gradient's total variance $\alpha_{TV}(x_*, X') = \operatorname{tr}\Sigma_{\nabla,D'}(x_*)$, takes a gradient step on $\nabla\mu_{\hat D}(x_*)$, and handles crashes with adaptive virtual data points: a crashed $\hat x_i$ receives the pessimistic value $\hat y_i = \max\{\mu_D(\hat x_i), \mu_D(x_*)\} + \beta\sqrt{k_D(\hat x_i)}$ ($\beta = 3$ empirically), which pushes the posterior minimum out of the crash region without a classifier; an infeasible iterate resets to the best known feasible point. Menn, Stenger and Trimpe (RA-L 2026) do the same for preferential BO, where a human only says which of two runs was better (probit likelihood $\Phi\big((f(x_A) - f(x_B))/(\sqrt2\sigma)\big)$): CrashPBO adds a virtual duel $x_s \succ x_c$ for every crashed $x_c$ against every successful $x_s$, hyperparameter-free, evaluated on three robot platforms (gradient steps: Primer B).

Background — Derivative Gaussian processes and the gradient's total variance

If the GP mean is differentiable and the kernel has continuous mixed second derivatives, the gradient of the GP exists (in mean square) and is again Gaussian, jointly with the function values: a difference quotient $(f(x + \tau e_j) - f(x))/\tau$ is a linear combination of jointly Gaussian values, and its limit as $\tau \to 0$ stays Gaussian. Differentiating the mean gives the mean of the gradient, and differentiating the kernel once in each argument gives its covariance. After data $D$, the gradient $\nabla f(x_*)$ therefore has a Gaussian posterior with mean $\nabla\mu_D(x_*)$ and covariance matrix $\Sigma_{\nabla,D}(x_*) = \big[\partial_{x_j}\partial_{x'_k}k_D(x,x')\big]_{j,k}$ at $x = x' = x_*$, where $k_D$ is the posterior covariance. Its trace, the sum of the variances of the partial derivatives, is the "total variance" $\alpha_{TV}$ (trace: Primer A); $X'$ is a proposed batch of new inputs and $D'$ the data augmented by them (only their locations matter, since GP variances do not depend on the observed values). Example: for the unit SE kernel $k(x,x') = \exp(-(x - x')^2/(2\ell^2))$ in one dimension, $\partial_x\partial_{x'}k(x,x') = \big(1/\ell^2 - (x-x')^2/\ell^4\big)k(x,x')$, so the prior variance of $f'(x)$ is $1/\ell^2$: shorter lengthscales allow steeper, more uncertain slopes.

Where the probit likelihood comes from: suppose larger utility is better and the human perceives run $x$ as $f(x) + \xi$ with independent $\xi \sim \mathcal N(0, \sigma^2)$. The difference of two perceptions has mean $f(x_A) - f(x_B)$ and variance $2\sigma^2$, so $\Pr(A \text{ preferred}) = \Pr\big(\xi_B - \xi_A \lt f(x_A) - f(x_B)\big) = \Phi\big((f(x_A) - f(x_B))/(\sqrt2\sigma)\big)$. A virtual duel $x_s \succ x_c$ records the successful run as preferred to the crashed one; it is an imposed comparison, not a measurement.

5.4 Robustness, simulation aid, and the 2026 tutorial

Turchetta, Krause and Trimpe (ICRA 2020) make robustness a second objective of model-free policy search: gain and delay margins, the classical robustness indicators, are estimated from experiments with scaled or delayed actions, and multi-objective BO (expected hypervolume improvement) traces the Pareto front between performance and robustness on a Furuta pendulum, in sim-to-real and pure hardware experiments. He, von Rohr, Baumann, Xiang and Trimpe (IEEE T-RO 2025) propose HCI-GIBO, a local zero-order policy search that keeps querying a derivative-GP model until it can certify, with probability at least $\alpha$, that a gradient step improves the policy, and S-HCI-GIBO, which first exhausts gradient information from an imperfect simulator (modelled as robot objective plus a GP reality gap) before querying the robot; the guarantee is on improvement per update, not on constraint safety, validated on a manipulator balancing a pendulum.

The multi-objective vocabulary (Primer E): with two quantities to maximise, one decision dominates another if it is at least as good in both and strictly better in one. The non-dominated decisions form the Pareto front, along which one quantity can only improve at the expense of the other. Fix a reference point worse than every outcome of interest; the hypervolume is the area dominated by the current outcomes and bounded by that reference point, and expected hypervolume improvement queries where the expected increase of this area is largest.

Theorem — Improvement confidence (He et al. 2025, Theorem 1)
Minimise a cost $J$ of the policy parameters $\theta$. Assume $J$ is a sample of a GP with known prior (differentiable mean, twice differentiable kernel), observed with Gaussian noise, and that its gradient is $L$-Lipschitz, $\|\nabla J(a) - \nabla J(b)\| \le L\|a - b\|$ for all $a, b$ (here $L$ bounds how fast the gradient changes). If, given the data, the belief about the gradient at $\theta$ is $\nabla J(\theta) \sim \mathcal N(m, \Sigma)$ with $m \ne 0$, then for the step $\theta - \eta m$ with $\eta \gt 0$ $$\Pr\Big[\big\langle m/\|m\|,\ \nabla J(\theta)\big\rangle \gt \tfrac{L}{2}\,\eta\,\|m\|\Big] \ge \alpha \quad\Longrightarrow\quad \Pr\big[J(\theta - \eta m) \lt J(\theta)\big] \ge \alpha .$$ The projection $Z = \langle m/\|m\|, \nabla J(\theta)\rangle$ is Gaussian with mean $\|m\|$ and variance $s_d^2 = m^\top\Sigma m/\|m\|^2$, so the left-hand probability is $\Phi\big((1 - L\eta/2)\|m\|/s_d\big)$, available in closed form.
Why. An $L$-Lipschitz gradient gives $J(\theta - \eta m) \le J(\theta) - \eta\|m\|\,Z + \tfrac{L}{2}\eta^2\|m\|^2$ (Primer B), which is below $J(\theta)$ as soon as $Z \gt L\eta\|m\|/2$. In words: a confident downhill direction is not enough for a finite step, because curvature can eat the gain; the test combines gradient uncertainty ($s_d$) with step length ($\eta$). It certifies the improvement of one update under the GP model, not constraint satisfaction.

The entry point for practice is the tutorial Stenger, Brunzema, Menn, von Rohr, Schoellig and Trimpe, "A Decade of Bayesian Optimization for Controller Tuning and Robot Learning: Tutorial, Review, and Future Prospects" (arXiv 2026, under review). It positions BO against deep RL and data-driven control, walks through a controller-tuning setup from the practitioner's side, and catalogues constrained, safe, crash-constrained, multi-objective, preferential, contextual, time-varying, local and multi-fidelity BO. Its safe-BO section is candid: "in most practical applications, $\beta$ is set to a constant heuristic value, e.g., $\beta = 2$ […] or $\beta = 3$" (citations elided), and "while such heuristics often invalidate theoretical guarantees, they may still yield useful 'cautious' behavior in practice"; it points to LoSBO as the alternative that needs only a Lipschitz bound and bounded noise, and starts a lightweight benchmark suite for control problems because the field has none.

YearPaperSafety mechanismPlatform
2016Marco et al., ICRALQR parametrisation; penalty $J_u$ on unstable runsApollo humanoid, pole balancing
2017Marco et al., ICRAFewer hardware trials via multi-fidelity ESCart-pole
2020Turchetta, Krause, Trimpe, ICRAGain/delay margins as a second objectiveFuruta pendulum
2021Baumann et al., ICRA (GoSafe)SafeOpt-MC safe set + backup policies (Module 6)Furuta pendulum
2021Marco et al., RA-LCrash constraints, GPCRJumping quadruped
2024Fiedler et al., TMLR / Menn et al., CDCReal-$\beta$-SafeOpt, LoSBO, MCLoSBO (Module 5)Synthetic; test vehicle
2024Holzapfel, Brunzema, Trimpe, L4DC (ETSO)Event-triggered reset to a backup controller (Module 5)Quadcopter
2024–26von Rohr et al.; He et al., T-RO; Menn et al., RA-LVirtual data points; certified improvement; virtual duelsHardware + simulation

6. Beyond SafeOpt: Constrained BO, Barriers, Information-Theoretic Safe Exploration

SafeOpt sits at the hard end of a spectrum. Moving along it one can tolerate bounded violations, replace the Lipschitz certificate by information-theoretic reasoning, replace the GP by a barrier, or restrict the function class to get regret bounds. Each choice changes the guarantee, so the comparison at the end is by guarantee, not by acquisition function.

Constrained BO: feasibility only at the end. Constrained expected improvement (Gardner, Kusner, Xu, Weinberger and Cunningham, ICML 2014) multiplies EI over the best feasible point by the GP probability of feasibility, $\mathrm{EI}_C(x) = \mathrm{PF}(x)\,\mathrm{EI}(x)$, under conditionally independent objective and constraint GPs. It is the default baseline for safe BO and it is not safe: nothing stops it from querying a point with $\mathrm{PF} = 0.3$. (A slip to watch: the paper minimises but prints $Z$ with the sign of the maximisation case; derive EI yourself with $Z = (\ell(x^+) - \tilde\mu(x))/\tilde\sigma(x)$.) Gelbart, Snoek and Adams (UAI 2014) extend the idea to decoupled constraints evaluated independently of the objective.

The EI formula in this notation: Gardner et al. minimise an objective $\ell$; let $b = \ell(x^+)$ be the best feasible value so far and $\ell(x) \mid D \sim \mathcal N(\tilde\mu(x), \tilde\sigma(x)^2)$ the posterior. The improvement is $(b - \ell(x))^+$ with $v^+ = \max(v, 0)$. Writing $\ell(x) = \tilde\mu + \tilde\sigma u$ with $u \sim \mathcal N(0,1)$, the improvement is positive exactly when $u \lt Z := (b - \tilde\mu)/\tilde\sigma$, so $$\mathrm{EI}(x) = \int_{-\infty}^{Z} (b - \tilde\mu - \tilde\sigma u)\,\phi(u)\,du = (b - \tilde\mu)\,\Phi(Z) + \tilde\sigma\,\phi(Z),$$ using $\int_{-\infty}^{Z} u\,\phi(u)\,du = -\phi(Z)$; here $\phi(u) = e^{-u^2/2}/\sqrt{2\pi}$ and $\Phi$ are the standard normal density and CDF (Primer C). If $\tilde\sigma(x) = 0$, $\mathrm{EI}(x) = (b - \tilde\mu(x))^+$.

Soft constraints with bounded cumulative violation. CONFIG (Xu, Jiang, Svetozarevic and Jones, ICML 2023) is optimism applied to everything: $x_t \in \operatorname{arg\,min}_{x \in X} l_{0,t}(x)$ s.t. $l_{i,t}(x) \le 0$ for all constraints, with lower confidence bounds in the Chowdhury–Gopalan form. Theorem 4.3: w.p. $\ge 1-\delta$, cumulative regret $R_T \le 4\beta_{0,T}\sqrt{(T+2)\gamma_{0,T}} = O(\gamma_{0,T}\sqrt T)$ and cumulative violation $V_{i,T} = \sum_t [g_i(x_t)]^+ \le 4\beta_{i,T}\sqrt{(T+2)\gamma_{i,T}}$ for every $i$; infeasibility can be declared when $\min_x \max_i l_{i,t}(x) \gt 0$. Violations are allowed, and their sum grows sublinearly whenever $\gamma_{i,T} = o(\sqrt T)$, which holds for linear and squared-exponential kernels and for Matérn kernels with $\nu \gt d/2$ (their Table 2) but not for every kernel: the right notion for a reactor's temperature excursions, the wrong one for a crash.

Theorem — CONFIG regret and violation bounds (Xu et al. 2023, Theorem 4.3)
Minimise a cost $f_0$ (their $f$) subject to $g_i(x) \le 0$, $i = 1, \dots, N$, over a compact $X$. Assume the problem is feasible with minimiser $x^*$ and value $f^* = f_0(x^*)$, $\|f_0\|_{k_0} \le B_0$ and $\|g_i\|_{k_i} \le B_i$ (with $k_i(x,x) \le 1$, implicit through the Chowdhury–Gopalan lemmas used). In every round all $N+1$ functions are observed at $x_t$ with i.i.d. $\sigma$-sub-Gaussian noise, each posterior is computed with the regulariser $\lambda = 1 + 2/T$ (so the horizon $T$ is known), and $\beta_{i,t} = B_i + \sigma\sqrt{2(\gamma_{i,t-1} + 1 + \ln((N+1)/\delta))}$, i.e. the Chowdhury–Gopalan bound at level $\delta/(N+1)$ for each of the $N+1$ functions (a union bound). Then CONFIG, $x_t \in \operatorname{arg\,min}_x l_{0,t}(x)$ s.t. $l_{i,t}(x) \le 0$ for all $i$, satisfies with probability at least $1-\delta$ $$R_T = \sum_{t=1}^T\big(f_0(x_t) - f^*\big) \ \le\ \sum_{t=1}^T\big[f_0(x_t) - f^*\big]^+ \ \le\ 4\beta_{0,T}\sqrt{(T+2)\gamma_{0,T}}, \qquad V_{i,T} = \sum_{t=1}^T\big[g_i(x_t)\big]^+ \ \le\ 4\beta_{i,T}\sqrt{(T+2)\gamma_{i,T}},$$ where $[v]^+ = \max(v, 0)$.
Why. On the confidence event $x^*$ satisfies every optimistic constraint ($l_{i,t}(x^*) \le g_i(x^*) \le 0$), so $l_{0,t}(x_t) \le l_{0,t}(x^*) \le f^*$ and $f_0(x_t) - f^* \le u_{0,t}(x_t) - l_{0,t}(x_t) = 2\beta_{0,t}\sigma_{0,t-1}(x_t)$; likewise $g_i(x_t) \le u_{i,t}(x_t) - l_{i,t}(x_t) = 2\beta_{i,t}\sigma_{i,t-1}(x_t)$ because $l_{i,t}(x_t) \le 0$ (their Lemma 4.1). Summing with $\sum_{t \le T}\sigma_{i,t-1}(x_t) \le \sqrt{4(T+2)\gamma_{i,T}}$ (their Lemma 4.2) and $\beta_{i,t} \le \beta_{i,T}$ gives the bounds. In words: optimistic constraints never exclude the true optimum but do allow uncertain, actually infeasible experiments; the confidence widths bound how costly those mistakes are in total instead of preventing them. A lower bound $l_{i,t}(x) \le 0$ only says that feasibility is still possible; conversely, if every $x$ has some $i$ with $l_{i,t}(x) \gt 0$, valid lower bounds prove that no feasible point exists, which is the infeasibility test above.

Barriers instead of GPs. LB-SGD (Usmanova, As, Kamgarpour and Krause, JMLR 2024) runs stochastic gradient descent on the log-barrier surrogate $B_\eta(x) = f^0(x) - \eta\sum_{i=1}^m\log(-f^i(x))$ (log barriers: Primer B) with an adaptive step size (their $\gamma_t$, unrelated to the information gain) chosen from the smoothness constants and lower confidence bounds on the current slacks $-f^i(x_t)$ (their eq. 15) so that no constraint can lose more than half of its slack in one step, $f^i(x_{t+1}) \le f^i(x_t)/2 \lt 0$: a constraint at $-0.8$ may rise to $-0.4$ but never reaches $0$. The mechanism is visible already with Lipschitz constants alone: if $\underline s_i \gt 0$ is a valid lower bound on the slack $-f^i(x_t)$, any step $v$ with $L_i\|v\| \le \underline s_i/2$ gives $f^i(x_t + v) \le f^i(x_t) + \underline s_i/2 \le f^i(x_t)/2$. All iterates stay feasible w.h.p. using zeroth- or first-order feedback. The analysis rests on their Assumptions 1–4: a bounded feasible set; objective and constraints $M_i$-smooth and $L_i$-Lipschitz with known constants; a known starting point at which all constraints are strictly negative; and an extended Mangasarian–Fromovitz constraint qualification (box below), plus accuracy conditions on the function and gradient estimators. Under these, counting noisy function measurements (finite-difference batches included), the zeroth-order rates are $O(d^2/\epsilon^7)$ to an $\epsilon$-KKT point (non-convex), $\tilde O(d^2/\epsilon^6)$ (convex, with $\epsilon$ the objective gap) and $\tilde O(d^2/\epsilon^4)$ if the barrier is strongly convex (JMLR version; the earlier arXiv version had $\epsilon^5$). No kernel, no $\gamma_T$, polynomial in $d$: this is what scales, and the paper itself applies it to safe policy search in Safety Gym.

Definition — $\epsilon$-KKT points and the extended MFCQ (Usmanova et al. 2024)
For $\min f^0(x)$ s.t. $f^i(x) \le 0$, $i = 1, \dots, m$, a point $x$ with multipliers $\lambda_i \ge 0$ is an $\epsilon$-KKT point if $f^i(x) \le 0$ and $\lambda_i\,(-f^i(x)) \le \epsilon$ for all $i$, and $\|\nabla f^0(x) + \sum_i\lambda_i\nabla f^i(x)\| \le \epsilon$: the KKT conditions (Primer B, Module 2) with complementary slackness and stationarity relaxed by $\epsilon$. Extended MFCQ (their Assumption 4; the ordinary MFCQ is explained in Primer B): let the starting point satisfy $f^i(x_0) \le -b$ for all $i$ (their $\beta$). There are $\rho \in (0, b/2]$ and $\kappa \gt 0$ (their $l$) such that every feasible $x$ has a unit direction $s_x$ with $\langle s_x, \nabla f^i(x)\rangle \gt \kappa$ for all nearly active constraints, $i \in I_\rho(x) = \{i : f^i(x) \ge -\rho\}$. All of them increase at rate at least $\kappa$ along $s_x$, so $-s_x$ leads away from every nearby boundary at once, uniformly over the feasible set.
Convex constraints satisfy it automatically (their Fact 2): if the feasible set has diameter at most $R$, then $s_x = (x - x_0)/\|x - x_0\|$ works for any $\kappa \lt (b - \rho)/R$. Indeed, for $i \in I_\rho(x)$ convexity gives $\nabla f^i(x)^\top(x - x_0) \ge f^i(x) - f^i(x_0) \ge -\rho + b \gt 0$ (so $x \ne x_0$), and $\|x - x_0\| \le R$. For non-convex constraints the condition is an assumption.
Lemma — A small barrier gradient gives an $\eta$-KKT point (Usmanova et al. 2024, Lemma 7)
If $f^i(x) \lt 0$ for all $i$ and $\|\nabla B_\eta(x)\| \le \eta$, then $x$ with $\lambda_i = \eta/(-f^i(x))$ is an $\eta$-KKT point. Proof: $\nabla B_\eta(x) = \nabla f^0(x) + \sum_i \frac{\eta}{-f^i(x)}\nabla f^i(x) = \nabla f^0(x) + \sum_i\lambda_i\nabla f^i(x)$, so the stationarity residual is $\|\nabla B_\eta(x)\| \le \eta$; moreover $\lambda_i \ge 0$ and $\lambda_i(-f^i(x)) = \eta$ exactly. No convexity is needed.
In words. The barrier gradient is a Lagrangian gradient whose multipliers are inversely proportional to the slacks, so driving it down to $\eta$ delivers approximate stationarity and approximate complementary slackness at once. Near the boundary a small slack amplifies noise in $\nabla f^i$; this is why the estimators must become more accurate as $\eta$ shrinks (for the non-convex rate: function-value noise $O(\eta^2)$, gradient bias and standard deviation $O(\eta)$, obtained by averaging batches), and why the measurement counts above are so large.

Information-theoretic safe exploration. ISE (Bottero, Luis, Vinogradska, Berkenkamp and Peters, NeurIPS 2022) drops both the grid and $L$. The safe set is $S_n = \{x : \mu_n(x) - \beta_n\sigma_n(x) \ge 0\} \cup \{x_0\}$, and the next query maximises an approximate mutual information between a new observation at $x \in S_n$ and the safety indicator $\Psi(z) = \mathbb{1}\{f(z) \ge 0\}$ of any $z$ in the whole domain, $x_{n+1} \in \operatorname{arg\,max}_{x \in S_n}\max_{z \in X}\hat I_n(\{x,y\}; \Psi(z))$, with the closed form from the second-order approximation $\hat H_n[\Psi(z)] = \ln 2\,\exp\!\big(-\mu_n(z)^2/(\pi\ln 2\,\sigma_n(z)^2)\big)$ of the binary entropy. Safety holds w.h.p. by construction of $S_n$. The exploration guarantee (Theorem 1) is conditional: if the safe set eventually stops expanding ($S_{n+1} \subseteq S_n$ for all $n \ge \hat n$) and the posterior mean stays uniformly bounded on it ($|\mu_n(x)| \le M$ for $x \in S_n$, $n \ge \hat n$), then for every $\epsilon \gt 0$ the posterior variance on $S_n$ drops below $\epsilon$ after a finite number $N_\epsilon$ of further rounds, which exists whenever $\gamma_N$ grows sublinearly in $N$. So no informative uncertainty is left unexplored. The authors regard the mean bound as mild, since $|\mu_n| \le 2\beta_n$ w.h.p. for valid, non-decreasing $\beta_n$ (their Lemma 11); but valid $\beta_n$ grow with $\gamma_n$, so this gives no uniform $M$, and a constant heuristic $\beta$ is not valid in the first place: $M$ remains a genuine assumption. ISE-BO (Bottero, Luis, Vinogradska, Berkenkamp and Peters, JMLR 2026) adds the objective, under sub-Gaussian noise, and learns the value of the safe optimum to arbitrary precision.

Theorem — ISE: safety and exploration (Bottero et al. 2022, Lemma 10 and Theorem 1)
Let $f$ have bounded RKHS norm with $k(x,x') \le 1$, let observations carry Gaussian noise $\mathcal N(0, \sigma_\nu^2)$, and let $\beta_n$ be chosen (via Chowdhury–Gopalan) so that $|f(x) - \mu_n(x)| \le \beta_n\sigma_n(x)$ for all $x$ and $n$ with probability at least $1-\delta$; the seed satisfies $f(x_0) \gt 0$. Safety: $\Pr\{f(x_n) \ge 0 \text{ for all } n\} \ge 1-\delta$, since every query lies in $S_n$. Exploration: suppose the queries follow the acquisition rule above and there are $\hat n$ and $M$ such that for all $n \ge \hat n$ the safe set no longer grows, $S_{n+1} \subseteq S_n$, and $|\mu_n(x)| \le M$ on $S_n$. Then $\sigma_n^2(x) \le \epsilon$ for all $x \in S_n$ and all $n \ge \hat n + N_\epsilon$, where $$N_\epsilon = \min\{N : b^{-1}(C\gamma_N/N) \le \epsilon\}, \qquad b(\eta) = \ln 2\; e^{-c_1M^2/\eta}\Big(1 - \sqrt{\sigma_\nu^2/(2c_1\eta + \sigma_\nu^2)}\Big),$$ with $c_1 = 1/(\pi\ln 2)$ and $C = \ln 2/(\sigma_\nu^2\ln(1 + \sigma_\nu^{-2}))$; $N_\epsilon$ is finite whenever $\gamma_N/N \to 0$.
In words. A safe point whose variance is still above $\epsilon$ keeps an information value of at least $b(\epsilon) \gt 0$, while the total information that $N$ rounds can collect grows only like $\gamma_N$; so after about $N_\epsilon$ rounds no such point is left. The exploration part is a deterministic statement about the GP posterior (it does not use the confidence event), and it assumes the safe set has stopped growing rather than proving it.
Derivation — The approximate information gain behind ISE's acquisition

Under the current Gaussian posterior the probability that $z$ is safe is $p_n(z) = \Phi(\mu_n(z)/\sigma_n(z))$, and the entropy of the safety indicator is the binary entropy $h_b(p) = -p\ln p - (1-p)\ln(1-p)$ of that probability (Primer C). With $u = \mu_n/\sigma_n$, $\Phi(u) \approx \tfrac12 + u/\sqrt{2\pi}$ and $h_b(\tfrac12 + v) \approx \ln 2 - 2v^2$ give $h_b \approx \ln 2 - u^2/\pi$ near $u = 0$; the Gaussian-shaped $\hat H_n = \ln 2\,\exp(-u^2/(\pi\ln 2))$ has the same value and curvature there and stays positive for large $|u|$. It is accurate: for $u = 1$ the exact entropy is $0.4374$ nats and $\hat H_n = 0.4379$. The acquisition is the expected drop of this approximate entropy, $\hat I_n = \hat H_n[\Psi(z)] - \mathbb E_{Y}\big[\hat H_{n+1}[\Psi(z)]\big]$, where $Y$ is the not-yet-observed measurement at the candidate $x \in S_n$ (averaged over its GP predictive distribution; the expectation has a closed form, their eq. 5) and $z$ is any point whose safety we would like to learn.

Transductive active learning. ITL (Hübotter, Sukhija, Treven, As and Krause, NeurIPS 2024) keeps a pessimistic safe set $S_n = \{x : l^g_n(x) \ge 0\}$ and an optimistic one $\hat S_n = \{x : u^g_n(x) \ge 0\}$, defines the targets $A_n = \{x \in \hat S_n : u^f_n(x) \ge \max_{x' \in S_n} l^f_n(x')\}$ (possibly unsafe points that might be the optimum) and samples inside $S_n$ where the observation is most informative about the targets, $x_n = \operatorname{arg\,max}_{x \in S_n} I(f_{A_n}; y_x \mid D_{n-1})$, with $f_{A_n}$ the objective values on the targets. This is transductive learning: measurements are allowed only in $S_n$, while accurate predictions are wanted on $A_n$. Theorem 5.1: with $f, g$ in the RKHS and sub-Gaussian noise, w.p. $\ge 1-\delta$ every $x_n$ is safe; and if the reducible uncertainty converges (which they show under a submodularity-type condition, their Assumption 3.2, and sublinear $\gamma_n$), the simple regret on the largest reachable safe set $\mathcal{R}$ drops below $\epsilon$ after finitely many rounds. Here $\mathcal{R}$ is the closure of a reachability operator with $(\epsilon,\beta)$-slack built from the GP's irreducible uncertainty (their Definition C.30), not SafeOpt's Lipschitz $\bar R_\epsilon$, and no Lipschitz constant is needed. Convergence to that closure is guaranteed for finite safe sets; on continuous domains the proof covers a fixed finite number of reachability steps, with a sample complexity growing in that number (their Remark C.31). The pessimistic/optimistic safe-set pair is the one familiar from GoOSE (Turchetta, Berkenkamp and Krause, NeurIPS 2019).

Theorem — ITL for safe BO (Hübotter et al. 2024, Theorem 5.1; formal version Theorem C.37)
Irreducible uncertainty. For a set $S$ and a constraint $g_i$ with kernel $k_i$, $\eta_i(x; S)^2 = \operatorname{Var}(g_i(x) \mid g_i \text{ on } S)$ is the GP variance at $x$ that would remain after observing $g_i$ everywhere on $S$ without noise; for a finite $S$, $\eta_i(x;S)^2 = k_i(x,x) - k_i(x,S)K_i(S,S)^{-1}k_i(S,x)$. The reducible uncertainty is the posterior variance in excess of this limit. Reachability with slack $\epsilon$ and multiplier $\beta$ (their Definition C.30): $$\mathcal R_{\epsilon,\beta}(S) = S \cup \big\{x \notin S : g_i(x) - \beta\big(\eta_i(x;S) + \epsilon\big) \ge 0 \ \text{for all } i\big\},$$ with closure $\bar{\mathcal R}_{\epsilon,\beta}(S_0)$ obtained by repeated application. Statement. Assume $f$ and the $g_i$ have bounded RKHS norms, the noise is conditionally sub-Gaussian, the seed $S_0$ is non-empty and safe, the true safe set is finite, the confidence intervals are nested and valid with probability $1-\delta$, and ITL queries as above. Let $n'$ be the number of rounds after which, within any stage of constant safe set, the reducible uncertainty at the targets has fallen below the level needed for accuracy $\epsilon/2$ (the "reducible uncertainty converges" hypothesis), and let $n^* = (|S^*| + 1)\,n'$, with $S^*$ the true safe set, and $\bar\beta \ge \beta_n$ for all $n \le n^*$. Then with probability at least $1-\delta$ every query is safe, and the recommendation $\hat x_n = \operatorname{arg\,max}_{S_n} l^f_n$ satisfies $\max_{\bar{\mathcal R}_{\epsilon,\bar\beta}(S_0)} f - f(\hat x_n) \le \epsilon$ for all $n \ge n^*$.
In words. The kernel determines what stays unknowable outside a measurement set even with unlimited data inside it. ITL discounts safety by this irreducible uncertainty plus a slack, instead of paying a Lipschitz distance, so its comparator $\bar{\mathcal R}_{\epsilon,\bar\beta}(S_0)$ depends on $\epsilon$ and $\bar\beta$ and is not SafeOpt's $\bar R_\epsilon$. On continuous domains the result covers only a fixed finite number of applications of the operator (their Remark C.31). The appendix's constants are not fully consistent (e.g. a factor 2 in $w_n \le 2\beta_n\sigma_n$ is dropped), so read the slack qualitatively.

Safe bandits and regret. In linear bandits with a linear safety constraint $\mu^\top Bx_t \le c$ for all $t$, Safe-LUCB (Amani, Alizadeh and Thrampoulidis, NeurIPS 2019) explores randomly inside a known safe set, then is optimistic in the loss and pessimistic in the constraint; the regret is $\tilde O(\sqrt T)$ when the safety gap $\Delta = c - \mu^\top Bx^*$ is known to be positive and $\tilde O(T^{2/3})$ in general. In the GP setting, Losalka and Scarlett (AISTATS 2024) show that sublinear cumulative regret under hard per-round safety becomes achievable when the safety function is monotone in a single coordinate $s$ of the action (their algorithms know a lower bound on the growth rate of $g$ and an upper bound on that of $f$ in $s$, a weaker requirement than a global Lipschitz constant). The contrast with SafeOpt's sample-complexity-only statement is the point: hard safety plus cumulative regret needs extra structure, because expanding the safe region is itself expensive in regret.

Theorem — Safe-LUCB (Amani, Alizadeh and Thrampoulidis 2019, Theorems 2–3)
Linear bandit with losses: at round $t$ choose $x_t \in D_0 \subset \mathbb R^d$ and observe $\ell_t = \mu^\top x_t + \eta_t$ with an unknown vector $\mu$ (here $\mu$ is a coefficient vector, not a GP mean, and $B$ below is a known matrix, not a norm bound). Every action must satisfy $\mu^\top Bx_t \le c$ with known $B \in \mathbb R^{d\times d}$ and $c \gt 0$. Assume the noise is conditionally zero-mean and $R$-sub-Gaussian; $\|\mu\| \le S$, $\|x\| \le L$ and $\mu^\top x \in [-1,1]$ on $D_0$; and $D_0$ is a convex body with the origin in its interior. The set $D^w = \{x \in D_0 : \|Bx\| \le c/S\}$ is safe whatever $\mu$ is ($\mu^\top Bx \le \|\mu\|\,\|Bx\| \le c$ by Cauchy–Schwarz). Safe-LUCB first plays $T'$ actions drawn uniformly from $D^w$ (their second-moment matrix has smallest eigenvalue $\lambda_- \gt 0$), then acts optimistically in the loss and pessimistically in the constraint, with a regularised least-squares confidence ellipsoid. Let $x^*$ minimise $\mu^\top x$ over the true safe set and $\Delta = c - \mu^\top Bx^*$ be the safety gap. With probability at least $1 - 2\delta$ every action is safe, and the regret $R_T = \sum_{t \le T}\mu^\top(x_t - x^*)$ satisfies
  • $R_T = O(\sqrt T\log T)$ if $\Delta \gt 0$ and $\Delta$ (or a positive lower bound on it) is known, with an exploration phase of length $T_\Delta \propto L^2\|B\|^2\beta_T^2/(\lambda_-\Delta^2)$, i.e. of order $d\log T/\Delta^2$;
  • $R_T = O(T^{2/3}\log T)$ for any $\Delta \ge 0$ (and $\delta \lt 1/2$), with $T' \propto T^{2/3}$.
In words. A known safe set of full dimension lets random exploration learn every direction of $\mu$ at no risk. A positive gap lets the pessimistic constraint admit $x^*$ after finite exploration; an optimum on the constraint boundary ($\Delta = 0$) costs the slower $T^{2/3}$ rate.
Theorem — Safe BO with a monotone coordinate (Losalka and Scarlett 2024, Theorem 1)
Actions are pairs $(s, x) \in [0,1] \times D_X$ with $D_X \subset \mathbb R^d$ compact; maximise $f$ while keeping $g(s_t, x_t) \le h$ in every round (the paper's convention; $g \ge h$ is equivalent after a sign change). Assume $f$ and $g$ lie in RKHSs with known norm bounds and kernels with $k(z,z) \le 1$, both observations have conditionally sub-Gaussian noise, the slice $s = 0$ is safe ($g(0, x) \le h$ for all $x$), and for all $x$ and $s' \lt s$, with known constants $L_f, L_g' \gt 0$, $$f(s,x) - f(s',x) \le L_f\,(s - s'), \qquad g(s,x) - g(s',x) \ge L_g'\,(s - s'),$$ i.e. $f$ cannot increase faster than $L_f$ in $s$, and $g$ increases at least at rate $L_g'$. With non-decreasing multipliers $\beta_t^f, \beta_t^g$ that make all confidence bounds valid with probability $1-\delta$, on that event every query of the paper's algorithm is safe (by construction) and $$R_T = \sum_{t=1}^T \big[f(s^*,x^*) - f(s_t,x_t)\big] = O\Big(\big(1 + L_f/L_g'\big)\big(\beta_T^g\sqrt{T\gamma_T^g} + \beta_T^f\sqrt{T\gamma_T^f}\big)\Big),$$ where $(s^*, x^*)$ maximises $f$ over the safe set. No monotonicity of $f$ is needed (their Case 1; the theorem also covers the case where $f$ increases in $s$ too).
In words. From the safe slice $s = 0$ every $x$ is explored upward in $s$. The growth bound on $g$ turns uncertainty about $g$ into an error in $s$, and the bound on $f$ turns that error into regret. The regret is sublinear whenever $\beta_T\sqrt{\gamma_T/T} \to 0$, e.g. for squared-exponential kernels.
MethodConstraint semanticsRegularity assumedNeeds $L$ / grid?Guarantee
SafeOpt (2015)hard, every roundRKHS norm + Lipschitz, bounded noiseyes / yessafety w.h.p.; $\epsilon$-optimal on $\bar R_\epsilon(S_0)$ after $t^*$
LoSBO (2024, Module 5)hard, every roundLipschitz + bounded noise onlyyes / yesdeterministic safety; GP only steers
ISE / ISE-BO (2022 / 2026)hard, every roundRKHS norm; Gaussian (ISE) or sub-Gaussian (ISE-BO) noiseno / nosafety w.h.p.; ISE: variance on the safe set vanishes once it stops expanding (bounded posterior mean, sublinear $\gamma_N$)
ITL (2024)hard, every roundRKHS norm, sub-Gaussian noiseno / finite safe set for the full closuresafety w.h.p.; $\epsilon$-optimal on the largest reachable safe set if the reducible uncertainty converges
CONFIG (2023)soft, cumulativeRKHS normno / no$R_T, V_{i,T} = O(\gamma_T\sqrt T)$, sublinear if $\gamma_T = o(\sqrt T)$
LB-SGD (2024)hard, every iteratesmooth, Lipschitz $f^i$ (known constants), strictly feasible start, extended MFCQno / nofeasible w.h.p.; polynomial-in-$d$ rates
Constrained EI (2014)final solution onlyGP modelno / nonone on queries
Safe-LUCB (2019)hard, every round (linear)linear reward and constraintno / no$\tilde O(\sqrt T)$ with known gap, $\tilde O(T^{2/3})$ in general
Losalka–Scarlett (2024)hard, every roundRKHS + safety monotone in $s$growth rates in $s$ only / nosublinear cumulative regret
HdSafeBO (2024)per-step probability $\alpha$GP sample modelno / finite $X$ in Thm. 4.2safe with posterior probability $\ge \alpha$ per query; expected violations bounded (Section 4.4)
Connection to Module 1
Read the last column against the guarantee types of Module 1: "hard, every round, w.h.p. over the run" (SafeOpt, ISE, ITL), "hard and deterministic" (LoSBO), "per-step probabilistic" (HdSafeBO) and "bounded cumulative violation" (CONFIG) are four different promises, and a reported "0 violations in our experiments" does not tell you which one was made.

Walkthrough: One SafeOpt Iteration

A complete round of Algorithm 1 on a six-point domain, with every number produced by an actual GP posterior (squared-exponential kernel, lengthscale $1.5$, unit prior variance, noise standard deviation $\sigma = 0.1$) and the heuristic multiplier $\beta = 2$, so that the numbers stay legible; the theorem's $\beta_t$ would be far larger. The hidden function is $f = (0.995,\ 1.502,\ 1.753,\ 1.400,\ 0.450,\ -0.498)$ at $x = 0,\dots,5$; the algorithm never sees it.

Interactive: SafeOpt in 1-D

Run SafeOpt on a 60-point grid against a random function built from the kernel: a sum of eight squared-exponential bumps with the GP's own lengthscale $0.12$, affinely rescaled to $[-1.2, 1.8]$. The rescaling adds a constant, and a nonzero constant is not in the squared-exponential RKHS of an interval (box below), so on the interval $[0,1]$ this $f$ violates the RKHS assumption. On the 60-point grid itself, however, every function has a finite RKHS norm $\sqrt{f_D^\top K_D^{-1} f_D}$ (Sui et al. note that the RKHS assumption is automatic for a finite domain and a universal kernel): about $3.9$ for the initial $f$ in exact arithmetic, a fragile number, since floating-point errors below $10^{-15}$ in the stored values raise it to about $6 \times 10^9$ (the $60 \times 60$ Gram matrix is nearly singular; conditioning: Primer A). The demo computes neither, so $\beta$ is only a tuning knob here. The GP posterior is computed from the full formulas at every step (Cholesky solve, Primer A; repeated noisy observations at one grid point are merged into one observation of their mean with noise variance $\sigma^2/m$, which is exact). The readout counts how often the true function was below the threshold when it was evaluated (zero with a large $\beta$, possibly positive with a small one: the gap that Module 5 is about) and how often an intersected interval came out empty (counted per point and round), the visible symptom of the confidence event failing.

Fact — RKHS norms on a finite grid, and why a continuum is different
Let $D = \{x_1, \dots, x_N\}$ be distinct points whose Gram matrix $K$ is positive definite (true for the squared-exponential kernel). Then every value vector $v \in \mathbb R^N$ is a function in the RKHS of $k$ restricted to $D$, with $\|v\|_k^2 = v^\top K^{-1} v$: the coefficients $a = K^{-1}v$ give $v(\cdot) = \sum_j a_j k(\cdot, x_j)$ on $D$, whose squared norm is $a^\top K a = v^\top K^{-1} v$ by the reproducing property (Module 3). With the eigendecomposition $K = Q\Lambda Q^\top$ this is $\sum_j (q_j^\top v)^2/\lambda_j$, so tiny eigenvalues make the norm huge and sensitive to rounding. On a continuum there are infinitely many interpolation conditions, and the norm can be infinite. A kernel is called universal if its RKHS functions approximate every continuous function on a compact domain uniformly, but the approximants may have diverging norms, so universality does not put a given function in the RKHS. Example: a nonzero constant $c$ is not in the unit-lengthscale squared-exponential RKHS on any interval. Writing $c = \sum_n c_n\phi_n$ with the features $\phi_n(x) = x^n e^{-x^2/2}/\sqrt{n!}$ of Exercise 4.4 means $\sum_n c_n x^n/\sqrt{n!} = c\,e^{x^2/2} = c\sum_m x^{2m}/(2^m m!)$, so matching power-series coefficients gives $c_{2m} = c\sqrt{(2m)!}/(2^m m!)$, and $\sum_m c_{2m}^2 = c^2\sum_m \binom{2m}{m}4^{-m}$ diverges because its terms decay only like $1/\sqrt{\pi m}$. (Any other lengthscale reduces to this one by rescaling $x$.)
Going deeper — What the explorer computes and how to read it

Timing. After a Step, the band and the $S_t, G_t, M_t$ markers show the information used to choose the latest query; its observation is already plotted but enters the posterior at the next Step. Repeated observations at one input are drawn at their average, with a marker that grows with the count (capped). The hidden $f$, its grid Lipschitz constant and the pale reachability bar are teaching diagnostics the algorithm never sees.

Stopping. The demo stops after 400 steps and does not implement the $\epsilon$ stopping test. If $S_t$ is non-empty and the intervals are consistent, $M_t$ is never empty (a maximiser $a$ of $l_t$ over $S_t$ has $u_t(a) \ge l_t(a) = \max_{S_t} l_t$), so a "no candidate" message signals an empty safe set or inconsistent bounds, not certified optimality. The "Lipschitz-free" checkbox switches the certification rule to that of Section 4.1; "intersect intervals" switches the intersection over time on or off.

Numerics. Cholesky pivots and posterior variances are floored at $10^{-12}$. When an intersected interval comes out empty, the demo counts the event and sets its upper end equal to its lower end so the run can continue; that zero-width interval is a computational convention, not a valid certificate, and later steps show behaviour after the assumptions have failed.

Why merging repeated observations is exact. For $m$ observations $y_j = f(x) + n_j$ at one input with i.i.d. $\mathcal N(0,\sigma^2)$ noise, $\sum_j (y_j - f(x))^2 = \sum_j (y_j - \bar y)^2 + m(\bar y - f(x))^2$. The first term does not involve $f(x)$, so the likelihood carries exactly the same information about $f(x)$ as the single observation $\bar y$ with noise variance $\sigma^2/m$ (Primer C).

SafeOpt in 1-D: real GP posterior, safe set, expanders, maximisers
Things to try (numbers refer to the initial function; runs are reproducible because the noise is seeded): set β to 0.4 and run 60 steps: hundreds of empty intervals appear, yet this particular $f$ happens to stay safe; with β = 1 and noise σ = 0.2, two unsafe evaluations follow at $t = 10$ and $11$; after Resample f, β = 0.4 alone gives unsafe evaluations for many functions. Set L to 5, about half the true grid Lipschitz constant shown in the readout: the green bar then covers points where $f$ is below $h$, and one of them is evaluated at $t = 2$. Tick the Lipschitz-free box and compare how fast the safe set grows and whether it overshoots $\bar R_0(S_0)$. Move the threshold until the safe region (true $f$ above the red line) splits into two islands, e.g. $h = -0.4$ for the initial function, and watch SafeOpt never reach the island without the seed. Changing a slider resets the run but keeps $f$.

From the mathematics to a real decision

Learning objectives

A commissioning decision

The enclosure controller has a dimensionless gain $a$ on the grid $D=\{0,0.5,1,1.5,2\}$. For each gain, a standardized six-minute experiment returns its thermal headroom $f(a)=60-Z(a)$ in degrees Celsius, where $Z(a)$ is the peak temperature during that experiment. Larger headroom is better and safety requires $f(a)\ge0$. Maximizing this single quantity keeps the example within the original one-function SafeOpt formulation.

Assume each experiment starts from the same validated initial condition; the unknown headroom function is fixed and 1-Lipschitz in $a$. Reset quality, intersample temperature maxima, and the experiment's definition are already included in $f$. Assume the confidence intervals below are valid simultaneously and are the intersections with all earlier intervals. Previous safe gains are $S_{t-1}=\{0,0.5\}$. Their validity is evidence supplied to this round, not established by the arithmetic that follows.

In grid order the lower bounds are $(1.1,0.7,0.2,-0.4,0.1)$ and the upper bounds are $(1.5,1.8,2.2,1.4,2.6)$ degrees. This calculation follows the original seed-based Lipschitz safe-set update. A different rule that also admits every point with its own nonnegative GP lower bound would admit gain 2 here. The acquisition rule uses interval widths, but only after establishing which gains may be tried under the selected rule. All distances below are absolute differences of dimensionless gains.

Worked decision, with its limits

Update the certified set. From gain 0, a candidate at distance $d$ has headroom at least $1.1-d$. This certifies gains 0, 0.5, and 1. From gain 0.5, the lower bound $0.7-d$ also reaches gain 1, with residual margin 0.2. Neither previous safe gain certifies 1.5: the best transferred lower bound there is $0.7-1=-0.3$. Therefore $S_t=\{0,0.5,1\}$.

Identify reasons to measure. The largest lower bound among safe candidates is 1.1. Every safe candidate has an upper bound at least 1.1, so each remains a potential maximizer. Each is also an optimistic expander: even the upper bound 1.5 at gain 0 could just certify gain 1.5. For gain 0.5, its upper bound 1.8 could certify both currently excluded gains. An expander is safe now; its possible ability to certify other gains is only hypothetical.

Select the next experiment. Safe widths are $1.5-1.1=0.4$, $1.8-0.7=1.1$, and $2.2-0.2=2.0$. The widest admissible candidate is gain 1. The upper bound 2.6 at gain 2 is larger, but gain 2 is outside the certified set and cannot be queried merely to resolve its attractive uncertainty.

Use the new information in the next round. Suppose the next valid interval at gain 1 is $[0.8,1.0]$. Intersecting it with $[0.2,2.2]$ gives $[0.8,1.0]$. Its new lower bound certifies gain 1.5 because $0.8-0.5=0.3\ge0$. It does not certify gain 2 because $0.8-1=-0.2$. The next safe set expands by one grid point, while the strongest known headroom remains the lower bound 1.1 at gain 0.

This explains why measuring gain 1 was useful even if its realized performance proves worse than gain 0: it created a safe route to another experiment. The conclusion remains relative to this finite grid and these interval assumptions. It does not assert that the safest or best gain in a continuous parameter range has been found, nor that safe resets happen automatically between experiments.

A tempting wrong approach

Common mistake — Optimism as permission

Choosing gain 2 because its upper bound is 2.6 confuses “could be good” with “can be tried.” An optimistic bound helps decide which certified experiment is informative. Permission to execute must come from a lower bound or another valid safety argument. The gap between a safe seed and a promising unknown point is a physical restriction on learning, not a missing exploration bonus.

Transfer the argument

Exercise 4.B1 — Medium: Keep heat and vibration constraints separate

A validated gain has thermal-headroom lower bound 0.8 degrees and vibration-headroom lower bound $0.12\,\mathrm{mm/s}$. Their Lipschitz constants are 1 degree and $0.4\,\mathrm{mm/s}$ per gain unit. Is a gain change of 0.4 certified for both constraints? Find the largest change certified from this gain.

Review: Multiple safety constraints.

Show hint

Compute the transferred lower bound for each constraint using its own units.

Show worked solution

Thermal headroom is at least $0.8-1(0.4)=0.4$ degrees, but vibration headroom is at least $0.12-0.4(0.4)=-0.04\,\mathrm{mm/s}$. The proposal fails. The permitted radii are $0.8/1=0.8$ and $0.12/0.4=0.3$ gain units, so their intersection permits at most 0.3. Adding the two headrooms would have no physical meaning because their units differ.

Exercise 4.B2 — Hard: Account for imperfect gain realization

Use the two-constraint radii from B1. A commanded gain change $d\ge0$ is implemented with unknown error of magnitude at most 0.04 gain units. Derive a condition on $d$. Decide whether commanding 0.28 is certified, and explain why validating only the nominal command is insufficient.

Review: Lipschitz safety transfer.

Show hint

Every realized gain must lie within both safety balls. Bound its distance from the validated gain by the triangle inequality.

Show worked solution

The realized distance can be $d+0.04$, so require $d+0.04\le\min(0.8,0.3)=0.3$. Thus $d\le0.26$. Commanding 0.28 permits realized distance 0.32, with vibration lower bound $0.12-0.4(0.32)=-0.008\,\mathrm{mm/s}$, and fails. The nominal command itself has positive vibration margin, but a certificate for a parameter point is not a certificate for every parameter the actuator may actually implement. Reproducible resets and gain realization belong in the experiment model.

Synthesis and bridge

A safe-optimization round has two jobs: establish admissible experiments, then choose an informative one among them. Lower and upper confidence endpoints perform different jobs and should remain separate in code and in a commissioning report. Multiple physical constraints and implementation error usually shrink admissibility before any acquisition score is considered.

The next chapter asks whether the endpoints themselves deserve trust. A sophisticated acquisition rule cannot repair an unjustified confidence multiplier. Lipschitz-only certificates offer another route when a deterministic measurement-error bound is available, while leaving the surrogate free to guide performance search.

Exercises

Graded practice — Build the argument yourself

There are 12 new problems: four Easy, four Medium, and four Hard. Start with the level that lets you make progress without opening the solution. Easy problems rebuild individual operations; Medium problems combine them; Hard problems ask for proofs, boundary cases, and the limits of a guarantee. The required concepts are explained on this page or in the linked earlier material.

Easy — Warm up one skill at a time.

Exercise 4.P1 — Easy: True safety and a noisy measurement

The safety threshold is $h=0$. A query has true value $f(x)=0.1$, but the observed noise is $n=-0.2$. Compute $y=f(x)+n$. Was the query safe? Can a positive observation by itself certify a query as safe?

Review if needed: Primer C: random variables and noise. Apply here: this module's explanation.

Show hint

Safety is an inequality on $f$, while the instrument reports $y$.

Show worked solution

The measurement is $y=0.1-0.2=-0.1$. Nevertheless the query is safe, because its true value is $0.1\ge0$. A negative noisy observation and an unsafe underlying query are different events.

A positive measurement alone is also insufficient: the same observation $y=0.1$ could come from $f(x)=-0.1$ with noise $0.2$. A deterministic noise bound or a valid confidence interval is needed to turn measurements into a lower bound on $f$. Moreover, learning after a query that it was unsafe does not undo the violation; certification is required before the experiment.

Exercise 4.P2 — Easy: Pay the Lipschitz price

At an already certified point $a$, the current lower confidence bound is $l(a)=0.6$. Take $L=2$, threshold $h=0.1$, and distance $d(a,x)=|a-x|$. How far from $a$ can this bound certify safety? Check distances $0.2$, $0.25$ and $0.3$.

Review if needed: Primer B: Lipschitz lower bounds. Apply here: this module's explanation.

Show hint

Solve $l(a)-L|a-x|\ge h$ for the distance.

Show worked solution

The safety inequality is $0.6-2|a-x|\ge0.1$, giving $|a-x|\le0.25$. At distances 0.2, 0.25, and 0.3 the transferred lower bounds are 0.2, 0.1, and 0, respectively. The first two meet the threshold and the third does not.

The radius is measured in the metric in which $L$ is valid. Its boundary is included because safety uses $\ge$. This conclusion holds on the event that $l(a)\le f(a)$ and under the assumed Lipschitz constant; the arithmetic alone cannot validate either assumption.

Exercise 4.P3 — Easy: Find potential maximizers

Three safe candidates $a,b,c$ have intervals $[0.4,0.8]$, $[0.6,0.7]$, and $[0.2,0.5]$. Compute the best lower bound and the potential-maximizer set $M=\{x:u(x)\ge\max_z l(z)\}$. Which point is the pessimistic recommendation?

Review if needed: Primer B: maxima and argmax. Apply here: this module's explanation.

Show hint

Compare every upper bound with the same largest lower bound.

Show worked solution

The best lower bound is $\max\{0.4,0.6,0.2\}=0.6$. Candidates $a$ and $b$ have upper bounds at least 0.6, whereas $c$ has upper bound 0.5. Thus $M=\{a,b\}$.

The pessimistic recommendation is $b$, which attains the largest lower bound 0.6. It need not be the point selected for measurement: $a$ might still be better in truth and has greater uncertainty. SafeOpt separates a conservative final recommendation from an exploratory query.

Exercise 4.P4 — Easy: Choose a query from widths

Suppose the safe set is $\{a,b,c\}$, expanders are $G=\{c\}$, potential maximizers are $M=\{a,b\}$, and widths are $w(a)=0.2$, $w(b)=0.5$, $w(c)=0.4$. Which query does SafeOpt select? Would an unsafe point $d$ with width 2 be eligible?

Review if needed: Primer 0: unions and set membership. Apply here: this module's explanation.

Show hint

The maximization is restricted to $G\cup M$, not the whole domain.

Show worked solution

The eligible union is $G\cup M=\{a,b,c\}$. Its largest width is 0.5 at $b$, so $b$ is selected. The unsafe or uncertified point $d$ is in neither $G$ nor $M$ and is ineligible despite its larger uncertainty.

Expander and maximizer tests decide why a safe point might be useful; the width rule then decides which eligible point to measure. Optimistic upper bounds can motivate a query only after the candidate has passed the separate pessimistic safety test.

Medium — Combine definitions and compute a certificate.

Exercise 4.P5 — Medium: Intersect bounds across rounds

At one candidate, the previous interval is $C_{t-1}=[0.2,0.8]$ and the new GP interval is $Q_t=[0.4,1.0]$. Find $C_t$, its endpoints and width. Repeat with $Q_t=[0.9,1.1]$. Explain the second outcome.

Review if needed: Primer 0: intersections. Apply here: this module's explanation.

Show hint

Take the larger lower endpoint and the smaller upper endpoint; check their order.

Show worked solution

The first intersection is $[\max(0.2,0.4),\min(0.8,1.0)]=[0.4,0.8]$, of width 0.4. The lower endpoint rises and the upper endpoint cannot rise, even though the raw new interval has an upper endpoint 1.0.

For the second new interval, the proposed lower endpoint 0.9 exceeds the proposed upper endpoint 0.8, so the intersection is empty. It cannot be treated as a zero-width certificate. If every interval contains the true value, their intersection contains it too; emptiness therefore reveals a conflict in the assumed confidence statements, the seed, or the implementation.

Exercise 4.P6 — Medium: Count expanders and then select

Let $D=\{0,1,2\}$, $S_t=\{0,1\}$, threshold 0, and $L=1$. The bounds are $[l(0),u(0)]=[1,1.4]$ and $[l(1),u(1)]=[0.4,1.2]$. Find $G_t$, $M_t$, and the next query using widths.

Review if needed: Primer B: Lipschitz continuity. Apply here: this module's explanation.

Show hint

Only point 2 is outside the safe set. An expander uses an upper bound to ask whether it could certify that point.

Show worked solution

For point 0, the optimistic transferred bound to 2 is $1.4-2=-0.6$, so it is not an expander. For point 1, it is $1.2-1=0.2\ge0$, so $G_t=\{1\}$. The best lower bound is 1, and both upper bounds exceed or equal 1, so $M_t=\{0,1\}$.

Widths are $1.4-1=0.4$ and $1.2-0.4=0.8$. The eligible union is $\{0,1\}$ and the rule selects 1. This does not yet certify 2: the actual lower transfer from 1 is $0.4-1=-0.6$. The optimistic calculation says that reducing uncertainty at 1 might enable expansion.

Exercise 4.P7 — Medium: Several constraints must all pass

Three parameters have lower bounds $(l^1,l^2)$ for two constraints $g_1,g_2\ge0$: $a:(0.2,-0.1)$, $b:(0,0.3)$, $c:(0.4,0.1)$. Which are certified by the direct lower-bound test? If the objective's largest upper bound occurs at $a$, may it be queried by this test?

Review if needed: Primer 0: universal quantifiers and intersections. Apply here: this module's explanation.

Show hint

Safety requires both entries to be nonnegative; equality passes.

Show worked solution

Parameter $a$ fails because its second lower bound is negative. Parameters $b$ and $c$ pass both constraints, including the zero lower bound at $b$. The certified set from these bounds is therefore $\{b,c\}$.

A large objective upper bound at $a$ does not repair the missing constraint certificate. The optimizer must restrict its query to the certified set (or a separately justified known-safe seed). A negative lower bound indicates insufficient evidence, not proof that the true constraint is negative; nevertheless it prevents a safe query under this rule.

Exercise 4.P8 — Medium: Compute a reachable closure

Take $D=\{0,1,2,3\}$, distances $|x-x'|$, threshold $h=0$, $L=1$, exact values $f(0)=1.1$, $f(1)=1.1$, $f(2)=0.1$, $f(3)=1.1$, and seed $\{0\}$. Compute $R_0$ repeatedly until the set stops changing. Are all truly safe points reachable?

Review if needed: Primer 0: set maps and fixed points. Apply here: this module's explanation.

Show hint

A point with value 1.1 can certify a neighbor at distance 1; point 2 with value 0.1 cannot certify point 3.

Show worked solution

Starting from $S^{(0)}=\{0\}$, point 0 certifies point 1 because $1.1-1=0.1\ge0$, but not 2 or 3. Thus $S^{(1)}=\{0,1\}$. Point 1 then certifies 2, giving $S^{(2)}=\{0,1,2\}$.

No witness in this set certifies 3: the transferred lower bounds from 0, 1, and 2 are $-1.9$, $-0.9$, and $-0.9$. Therefore $S^{(3)}=S^{(2)}$, the fixed-point closure. Every listed true value is nonnegative, so 3 is truly safe but not Lipschitz-reachable from the seed. SafeOpt's benchmark reflects certifiable reachability, rather than all safe parameters.

Hard — Explain why the argument works and where it stops.

Exercise 4.P9 — Hard: Rebuild the safety induction

Assume $f$ is $L$-Lipschitz, all bounds satisfy $l_t(x)\le f(x)$ jointly, and the seed $S_0$ is safe. Prove every point added by $S_t=\bigcup_{x\in S_{t-1}}\{x':l_t(x)-Ld(x,x')\ge h\}$ is safe. Identify exactly where each assumption enters.

Review if needed: Primer 0: induction. Apply here: this module's explanation.

Show hint

Choose the witnessing old point for a new point and chain the two lower bounds.

Show worked solution

The base case is $f\ge h$ on $S_0$, by the seed assumption. At round $t$, choose $x'\in S_t$. Its membership supplies a witness $x\in S_{t-1}$ with $l_t(x)-Ld(x,x')\ge h$. Lipschitz continuity and bound validity give

$$f(x')\ge f(x)-Ld(x,x')\ge l_t(x)-Ld(x,x')\ge h.$$

The induction hypothesis ensures the earlier query set is safe; it also ensures that data have been collected without prior unsafe experiments. The displayed inequality uses the metric Lipschitz bound and the joint lower-bound event. Selecting the next query within $S_t$ then makes that query safe. The probabilistic theorem obtains one event on which the entire deterministic induction applies; it does not spend a fresh failure budget at each inequality.

Exercise 4.P10 — Hard: Separate query regret from recommendation quality

In a reachable set, the best value is 5. Four exploratory queries have values $2,3,4,3$, while the final recommendation has value 4.8. Compute cumulative regret, average query regret, and final simple regret. Does a small final simple regret by itself bound cumulative regret?

Review if needed: Primer E: regret and Bayesian optimization. Apply here: this module's explanation.

Show hint

Cumulative regret sums losses of all queries; simple regret uses only the recommendation.

Show worked solution

The per-query regrets are $5-2=3$, $5-3=2$, $5-4=1$, and $5-3=2$. Their sum is 8 and their average is 2. The final simple regret is $5-4.8=0.2$.

A good final recommendation does not bound the losses incurred while finding it. One could repeat the value-2 query many times before making the same recommendation, increasing cumulative regret by 3 per repeat without changing simple regret. SafeOpt's reachable-optimum guarantee concerns the recommendation; a no-regret claim requires control of the whole sequence.

Exercise 4.P11 — Hard: Certify recommendation quality from intervals

On a fixed certified comparison set $S$, suppose all intervals are valid, $\max_{x\in S}u(x)=1.10$, and $\hat x$ maximizes the lower bound with $l(\hat x)=1.02$. Prove an upper bound on $\max_{x\in S}f(x)-f(\hat x)$. Does this certify optimality outside $S$?

Review if needed: Primer B: maximum bounds. Apply here: this module's explanation.

Show hint

Bound the best unknown value above by the largest upper endpoint and the recommendation below by its lower endpoint.

Show worked solution

For every $x\in S$, validity gives $f(x)\le u(x)\le1.10$, so $\max_S f\le1.10$. At the recommendation, $f(\hat x)\ge l(\hat x)=1.02$. Subtraction gives $\max_Sf-f(\hat x)\le0.08$.

This is a certificate relative to the stated comparison set only. An unqueried region outside $S$ might contain a better safe point. Extending the conclusion to an $\epsilon$-reachable closure requires the exploration argument and its assumptions; an interval-gap stopping test alone does not prove that expansion has finished everywhere relevant.

Exercise 4.P12 — Hard: A grid check needs a margin between samples

A continuous constraint $g$ is 2-Lipschitz. Every parameter in the design domain is within distance $r=0.05$ of a checked grid point. If every grid value is at least 0.12, prove $g\ge0$ on the whole domain and give the guaranteed margin. What if grid values are only nonnegative?

Review if needed: Primer B: sensitivity bounds. Apply here: this module's explanation.

Show hint

Choose a nearby grid witness and subtract the largest possible decrease over distance $r$.

Show worked solution

For an arbitrary parameter $a$, select a grid point $a_i$ with $\|a-a_i\|\le0.05$. Then $g(a)\ge g(a_i)-2\|a-a_i\|\ge0.12-0.10=0.02$. Since this holds for every $a$, the continuous domain has a certified margin 0.02.

If only $g(a_i)\ge0$ is known, the same argument gives $g(a)\ge-0.10$, which does not establish safety between grid points. An exact grid result and a continuum result have different scopes. If the grid values themselves are lower confidence bounds, their simultaneous validity must also be part of the argument.

Further practice — Original problems and research connections

The original exercises below retain their numbering. Some compare later methods or ask for longer research derivations; use the graded set above first, and return to a research-connection problem after reading the relevant linked module.

Exercise 4.1 — The safe set is safe (proof)

Let $E$ be the event that $f(x) \in C_t(x)$ for all $t \ge 1$ and $x \in D$, and assume $f \ge h$ on $S_0$ and $f$ is $L$-Lipschitz. (a) Prove that on $E$, $S_t \subseteq \{x : f(x) \ge h\}$ for every $t \ge 0$. (b) Prove that on $E$, $S_t \subseteq \bar R_0(S_0)$. (c) Where exactly does the argument use that the seed satisfies $f \ge h$?

Show answer

(a) Induction on $t$. Base: $S_0$ is safe by assumption. Step: let $x' \in S_t$; by definition there is $x \in S_{t-1}$ with $l_t(x) - L\,d(x,x') \ge h$. On $E$, $f(x) \ge l_t(x)$; by Lipschitz continuity $f(x') \ge f(x) - L\,d(x,x')$. Chain the three: $f(x') \ge f(x) - L\,d(x,x') \ge l_t(x) - L\,d(x,x') \ge h$. The induction hypothesis ($x$ safe) is not even needed in the step; what is needed is that some $x \in S_{t-1}$ exists, which the base case supplies.

(b) Induction again. Base: $S_0 \subseteq \bar R_0(S_0)$ trivially. Step: with $x, x'$ as above, $f(x) - L\,d(x,x') \ge l_t(x) - L\,d(x,x') \ge h$, so $x' \in R_0(\{x\}) \subseteq R_0(S_{t-1})$ by monotonicity of $R_0$ in its argument. By the hypothesis $S_{t-1} \subseteq \bar R_0(S_0)$, hence $R_0(S_{t-1}) \subseteq R_0(\bar R_0(S_0)) = \bar R_0(S_0)$ (the closure is a fixed point of $R_0$). So $x' \in \bar R_0(S_0)$: SafeOpt can never certify more than the reachable set, whatever the GP does.

(c) Only in the base case and, implicitly, through $C_0(x) = [h,\infty)$ on $S_0$: this forces $l_1(x) \ge h$ for $x \in S_0$, so the seed certifies itself ($d(x,x) = 0$) and $S_1 \supseteq S_0$. If a seed point were actually unsafe, $l_t(x) \ge h \gt f(x)$ would violate $E$ at that point, and the algorithm would certify its neighbours from a false premise. Everything downstream is only as safe as the seed.

Exercise 4.2 — Intersecting confidence intervals (proof)

Suppose the Lemma of Section 3 holds: w.p. $\ge 1-\delta$, $f(x) \in Q_t(x)$ for all $t \ge 1$ and $x \in D$. (a) Show that on the same event $f(x) \in C_t(x) = \bigcap_{s \le t} Q_s(x) \cap C_0(x)$ for all $t$, without any further union bound. (b) Show that $l_t$ is non-decreasing, $u_t$ non-increasing and $w_t$ non-increasing in $t$, and that within a stage ($S_{t+1} = S_t$) one has $G_{t+1} \cup M_{t+1} \subseteq G_t \cup M_t$. (c) Give a concrete example in which, without intersection, a point leaves and re-enters $M_t$, and say which step of the sample-complexity proof this would break.

Show answer

(a) The event is "$f(x) \in Q_s(x)$ simultaneously for every $s$ and $x$". An element of every set of a family lies in their intersection, so $f(x) \in \bigcap_{s \le t} Q_s(x)$; and $f(x) \in C_0(x)$ because $C_0(x) = \mathbb{R}$ off the seed and $f \ge h$ on it. No union bound is needed because the Lemma is already uniform in $t$; this is why the anytime, self-normalised form of the confidence bound matters (Module 3): a per-round bound plus a union bound over $t$ would cost an extra $\log t$ inside $\beta_t$.

(b) $C_{t+1}(x) = C_t(x) \cap Q_{t+1}(x) \subseteq C_t(x)$, so its minimum can only rise and its maximum only fall: $l_{t+1} \ge l_t$, $u_{t+1} \le u_t$, hence $w_{t+1} \le w_t$. Within a stage $D \setminus S$ is fixed; $u_{t+1}(x) - L\,d \ge h$ implies $u_t(x) - L\,d \ge h$, so $g_{t+1} \le g_t$ and $G_{t+1} \subseteq G_t$. For maximisers, $u_{t+1}(x) \le u_t(x)$ and $\max_S l_{t+1} \ge \max_S l_t$, so $u_{t+1}(x) \ge \max_S l_{t+1}$ implies $u_t(x) \ge \max_S l_t$: $M_{t+1} \subseteq M_t$.

(c) Two points $a, b$ in a fixed safe set. Round $t$: $Q_t(a) = [0.9, 1.2]$, $Q_t(b) = [0.2, 0.8]$, so $\max l_t = 0.9$ and $b \notin M_t$. Round $t+1$, after a low noisy observation at $a$ pulls its mean down (and, as always, the posterior variance at $a$ shrinks): $Q_{t+1}(a) = [0.75, 1.0]$, $Q_{t+1}(b) = [0.2, 0.8]$; now $\max l_{t+1} = 0.75 \lt 0.8$ and $b \in M_{t+1}$ again. Both intervals are valid for any $f(a) \in [0.9, 1.0]$. With intersection, $C_{t+1}(a) = [0.9, 1.0]$ and $b$ stays out. The proof needs $w_{t+1}(x_{t+1}) \le w_t(x_t)$ inside a stage (Step 2 of the derivation), which follows from $x_{t+1} \in G_{t+1} \cup M_{t+1} \subseteq G_t \cup M_t$ and $w_{t+1} \le w_t$ pointwise; re-entering points destroy the first inclusion, so $(t - t_0)\,w_t(x_t)^2 \le \sum_j w_j(x_j)^2$ no longer holds. Safety, by contrast, only needs each $Q_t$ to be valid and survives without intersection.

Exercise 4.3 — Compute the reachable set of a toy function

Let $D = \{0, 1, \dots, 7\}$ with $d(x,x') = |x - x'|$, $h = 0$, $L = 1$, $S_0 = \{2\}$ and $f = (0.5,\ 1.2,\ 2.0,\ 1.4,\ 0.4,\ 0.2,\ 1.1,\ 2.1)$. (a) Verify that $f$ is $1$-Lipschitz on $D$. (b) Compute $R_\epsilon(S_0)$, $R^2_\epsilon(S_0)$, $\bar R_\epsilon(S_0)$ and $f^*_\epsilon$ for $\epsilon = 0.2$. (c) Compute $\bar R_0(S_0)$. (d) Every point of $D$ is safe. Why can SafeOpt still not reach the global maximum at $x = 7$, and what would the Lipschitz-free variant do?

Show answer

(a) Consecutive differences are $0.7, 0.8, 0.6, 1.0, 0.2, 0.9, 1.0$, all $\le 1$; for non-adjacent pairs the triangle inequality gives $|f(x) - f(x')| \le \sum|\text{consecutive}| \le |x - x'|$.

(b) $x'$ is added from $x$ iff $|x - x'| \le (f(x) - \epsilon - h)/L = f(x) - 0.2$. From $2$: radius $1.8$, so $R_\epsilon(S_0) = \{1,2,3\}$. From $1$: radius $1.0 \Rightarrow \{0,1,2\}$; from $3$: radius $1.2 \Rightarrow \{2,3,4\}$; so $R^2_\epsilon(S_0) = \{0,1,2,3,4\}$. From $0$: radius $0.3$; from $4$: radius $0.2$; nothing new, so $\bar R_\epsilon(S_0) = \{0,\dots,4\}$ and $f^*_\epsilon = f(2) = 2.0$.

(c) With $\epsilon = 0$ the radii grow by $0.2$: from $4$ the radius is $0.4 \lt 1$, still not enough to reach $5$. So $\bar R_0(S_0) = \{0,\dots,4\}$ as well, although $f(5) = 0.2 \ge 0$ is safe.

(d) The Lipschitz certificate from $x$ can only reach distance $(f(x) - h)/L$; across the shallow valley at $x = 4, 5$ the values are so close to $h$ that no point can vouch for its neighbour, even with perfect knowledge of $f$. The global maximum $f(7) = 2.1$ is safe and connected to the seed through safe points, yet unreachable by any algorithm that certifies safety this way; SafeOpt's guarantee is relative to $f^*_\epsilon = 2.0$; if its stated $0.2$-optimal reporting guarantee is met, its recommendation must be $x = 2$. The Lipschitz-free variant certifies $x = 5$ as soon as the GP's own lower bound there reaches $0$, i.e. $\mu_t(5) \ge \beta_t\sigma_t(5)$. Whether that ever happens is not guaranteed: with positive regularisation and nonzero prior variance at $5$, data at $4$ and below leave a strictly positive residual posterior variance at the unsampled point $5$, and nothing forces it below roughly $(f(5)/\beta_t)^2 = (0.2/\beta_t)^2$ (the level needed even if $\mu_t(5)$ were exactly $f(5)$), so the variant may or may not get past the valley, depending on the kernel. That is precisely the extrapolation the theory cannot control, and with a misspecified kernel the same mechanism may certify unsafe points. Crossing a genuinely unsafe gap is the subject of Exercise 4.4.

Exercise 4.4 — Why SafeOpt cannot find a disconnected safe region (proof)

Take $D \subset \mathbb{R}$ a regular grid with $d(x,x') = |x - x'|$, and suppose there is an unsafe point $z$ ($f(z) \lt h$) with safe points on both sides of it. Prove that on the confidence event, if $S_0$ lies entirely to the left of $z$, then every $S_t$ lies to the left of $z$. Conclude what SafeOpt returns and why this motivates GoSafe (Module 6).

Show answer

Suppose some $S_t$ contains a point to the right of $z$, and take the first such $t$. Then there is $x' \gt z$ certified from some $x \in S_{t-1}$, and $x \lt z$ by minimality of $t$. Certification means $l_t(x) - L\,|x - x'| \ge h$. Since $z$ lies strictly between them, $|x - z| \lt |x - x'|$, hence $l_t(x) - L\,|x - z| \gt l_t(x) - L\,|x - x'| \ge h$: $z$ is certified from $x$ too, so $z \in S_t$. By Exercise 4.1(a), on the confidence event $S_t$ contains only safe points, contradicting $f(z) \lt h$. So no $S_t$ ever crosses $z$: in one dimension the certified set from a point is an interval around it, and intervals cannot jump over a hole. (In general the certified set from $x$ is a ball, which cannot contain $x'$ without containing every grid point on the segment between them.)

SafeOpt's certified set, and with it the reported $\hat x_t$ and the benchmark $f^*_\epsilon$, therefore stays on the seed's side of $z$, however much better the other island is. The Lipschitz-free variant is a different matter, and neither answer is automatic. It certifies a point whenever the GP lower bound there clears $h$, so it can jump the gap if the kernel carries enough valid information across it: for $k(x,x') = \cos(\pi(x - x'))$, $f(x) = \cos(\pi x)$ (so $\|f\|_k = 1$) on $D = \{0, 1, 2\}$ with $h = 0$, the kernel matrix is $cc^\top$ with $c = (1,-1,1)$, observations at $0$ determine $f(2) = f(0)$ and $f(1) = -f(0)$, and point $2$ is certified while the unsafe point $1$ is correctly excluded. Decaying correlations make crossing harder but do not rule it out. If the gap is wide compared with the lengthscale, the posterior beyond it is essentially the prior and its lower bound stays below $h$. If the gap is narrow, even the squared-exponential kernel can carry a valid certificate across: for $k(x,x') = e^{-(x-x')^2/2}$ and $f(x) = (x - 0.05)(x - 0.15)\,e^{-x^2/2}$, whose RKHS norm is $\sqrt{2.04005625} \approx 1.428$ (expand in the orthonormal basis $x^n e^{-x^2/2}/\sqrt{n!}$), noise-free observations at $-1, -0.9, \dots, 0$ (regulariser $10^{-10}$) give the valid lower bound $\mu(0.2) - \|f\|_k\,\sigma(0.2) \approx 0.0067 \gt 0$, although $f(0.1) \approx -0.0025 \lt 0$ (for noise-free data $|f - \mu| \le \|f\|_k\,\sigma$ holds deterministically). Whether a run crosses depends on the data, the lengthscale, the safety margins and the confidence radius, and no theorem guarantees either outcome. GoSafe (Module 6) escapes by changing the problem: for a dynamical system one may try a parameter outside the safe set as long as a backup policy known to be safe from the current state can take over before anything is violated. Safety then comes from the trajectory, not from the parameter's neighbours.

Where the two ingredients come from. Expanding $e^{xy} = \sum_n (xy)^n/n!$ factors the kernel as $e^{-(x-y)^2/2} = e^{-x^2/2}e^{-y^2/2}e^{xy} = \sum_{n \ge 0}\phi_n(x)\phi_n(y)$ with $\phi_n(x) = x^n e^{-x^2/2}/\sqrt{n!}$. For a kernel of this form the RKHS consists of the functions $\sum_n c_n\phi_n$ with $\sum_n c_n^2 \lt \infty$, and $\|\sum_n c_n\phi_n\|_k^2 = \sum_n c_n^2$ because the representation is unique here (multiply by $e^{x^2/2}$: two power series that agree on an interval have the same coefficients); the $\phi_n$ form an orthonormal basis of the RKHS, not of the ordinary $L^2$ space. Since $(x - 0.05)(x - 0.15) = x^2 - 0.2x + 0.0075$, $f = \sqrt2\,\phi_2 - 0.2\,\phi_1 + 0.0075\,\phi_0$ and $\|f\|_k^2 = 2 + 0.04 + 0.00005625 = 2.04005625$. The regulariser $10^{-10}$ only stabilises the computation: the bound $|f - \mu| \le \|f\|_k\sigma$ holds for noise-free data with any regulariser $\lambda \ge 0$, because, as in Module 3, $f(x) - \mu(x) = \langle f,\ k(\cdot,x) - \sum_i a_i k(\cdot,x_i)\rangle_k$ with $a = (K + \lambda I)^{-1}k_t(x)$, and the squared norm of the second factor is $\sigma^2(x) - \lambda\|a\|^2 \le \sigma^2(x)$.

Exercise 4.5 — Entropy Search versus UCB for LQR tuning (numerical)

Two candidate LQR weightings $\theta_A, \theta_B$ of the pole-balancing controller have, under the current GP, independent posterior beliefs about their (to be minimised) cost: $J_A \sim \mathcal{N}(1.0, 0.6^2)$, $J_B \sim \mathcal{N}(1.2, 0.1^2)$; an experiment returns $J + \varepsilon$ with $\varepsilon \sim \mathcal{N}(0, 0.1^2)$. (a) Which candidate does a lower-confidence-bound rule with $\beta = 2$ evaluate? (b) Compute $p_{\min} = \Pr[J_A \lt J_B]$ and the entropy $H$ of the distribution over the location of the minimum. (c) Entropy Search evaluates the candidate whose observation reduces $H$ most in expectation. Compute the posterior standard deviation of $J_A$ after one experiment at $\theta_A$ and explain, with a rough number, why the expected entropy after evaluating $\theta_A$ is small whereas evaluating $\theta_B$ leaves $H$ almost unchanged. (d) Multi-fidelity: at some $\theta$, $k_{\mathrm{sim}}(\theta,\theta) = 0.8$, $k_{\mathrm{err}}(\theta,\theta) = 0.2$, and a robot run has noise variance $0.05$. Using the information gain about $J(\theta,1)$, $\tfrac12\ln(\text{prior var}/\text{posterior var})$, as a proxy for $\mathbb{E}[\Delta H]$, decide between a simulation of effort $t_{\mathrm{sim}} = 0.6$ and an experiment of effort $t_{\mathrm{exp}} = 1$; repeat for $t_{\mathrm{sim}} = 0.25$.

Show answer

(a) For minimisation the optimistic rule is $\operatorname{arg\,min}\,\mu - \beta\sigma$: $\mathrm{LCB}_A = 1.0 - 1.2 = -0.2$, $\mathrm{LCB}_B = 1.2 - 0.2 = 1.0$. It evaluates $\theta_A$.

(b) $J_A - J_B \sim \mathcal{N}(-0.2,\ 0.36 + 0.01)$, so $p_{\min} = \Phi(0.2/\sqrt{0.37}) = \Phi(0.329) \approx 0.629$ and $H = -(0.629\ln 0.629 + 0.371\ln 0.371) \approx 0.660$ nats.

(c) After one observation at $\theta_A$, $\sigma_A'^2 = (1/0.36 + 1/0.01)^{-1} \approx 0.0097$, i.e. $\sigma_A' \approx 0.099$. The new mean $\mu_A' = 1.0 + \frac{0.36}{0.37}(y - 1.0)$ is random before the experiment, with standard deviation $\frac{0.36}{0.37}\sqrt{0.37} \approx 0.59$, so it typically lands far from $1.2$ on the scale of the residual spread $\sqrt{0.0097 + 0.01} \approx 0.14$: the argmin is then almost decided ($p_{\min}' \approx 0$ or $1$). Averaging the Bernoulli entropy over $y$ numerically gives $\mathbb{E}[H'] \approx 0.16$ nats, a reduction of about $0.50$. Evaluating $\theta_B$ instead gives $\sigma_B' \approx 0.071$, a new mean with standard deviation only $0.071$, and $p_{\min}' = \Phi((\mu_B' - 1.0)/\sqrt{0.36 + 0.005})$ barely moves: $\mathbb{E}[H'] \approx 0.655$, a reduction of about $0.004$. Both rules agree here because with independent candidates the uncertain one is both the optimistic and the informative one. They differ when a query that is not itself a good candidate is informative about the argmin through kernel correlations, or in what they report: ES returns $\operatorname{arg\,max} p_{\min}$, GP-UCB what it sampled. Neither rule is safe in Sui's sense; the LQR parametrisation, not the acquisition, kept most candidates benign in Marco et al.

For a measurement at $A$, write $Y=1+\sqrt{0.37}Z$ with $Z\sim\mathcal N(0,1)$ and $m_A(Z)=1+(0.36/\sqrt{0.37})Z$. Then $p_A(Z)=\Phi((1.2-m_A(Z))/\sqrt{0.0097297+0.01})$. With $h_b(p)=-p\log p-(1-p)\log(1-p)$, the required average is $\int_{-\infty}^{\infty}h_b(p_A(z))\phi(z)\,dz$. For a measurement at $B$, replace this by $p_B(Z)=\Phi((0.2+\sqrt{0.005}Z)/\sqrt{0.365})$. These are ordinary one-dimensional Gaussian integrals; a simple quadrature gives $0.157$ and $0.655$ nats, the values used above.

(d) Prior variance of $J(\theta,1)$: $1.0$. After a noise-free simulation: $0.2$ (Section 5.2), information gain $\tfrac12\ln 5 \approx 0.805$ nats. After a robot run: $1 - 1/1.05 \approx 0.048$, gain $\tfrac12\ln 21 \approx 1.52$ nats. Per unit effort: simulation $0.805/0.6 \approx 1.34$ versus experiment $1.52$, so run the experiment. With $t_{\mathrm{sim}} = 0.25$ the simulation scores $3.22$ and wins. The real acquisition uses the entropy of $p_{\min}$ rather than of $J(\theta)$, but the mechanism is the same: cheap sources are preferred until their share of the uncertainty is exhausted.

Key Papers

PaperVenueContributionWhy read it
Sui, Gotovos, Burdick, Krause: Safe Exploration for Optimization with Gaussian ProcessesICML 2015Defines safe BO, SafeOpt, reachability, Theorem 1The template every later paper modifies; short and readable
Berkenkamp, Krause, Schoellig: Bayesian Optimization with Safety Constraints: Safe and Automatic Parameter Tuning in RoboticsMachine Learning 2023 (online 2021; arXiv 2016)SafeOpt-MC: several constraints, contexts, full proofs, Lipschitz-free eq. 24The complete lemma chain and the honest remark about the practical variant
Berkenkamp, Schoellig, Krause: Safe Controller Optimization for Quadrotors with Gaussian ProcessesICRA 2016First SafeOpt on hardware; Lipschitz-free sets; $\beta_n = 2$What "SafeOpt" means in most robotics code
Sui, Zhuang, Burdick, Yue: Stagewise Safe Bayesian Optimization with Gaussian ProcessesICML 2018StageOpt: expansion then optimisation, two finite-time theoremsCleanest case for decoupling safety from utility
Srinivas, Krause, Kakade, Seeger: Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental DesignICML 2010 (IEEE TIT 2012)GP-UCB, $\gamma_T$, the $\beta_t$ of Theorem 6Source of SafeOpt's constants and of the $\sum\sigma^2 \le C\gamma$ trick
Chowdhury, Gopalan: On Kernelized Multi-armed BanditsICML 2017Self-normalised RKHS confidence bound, IGP-UCBThe $\beta_t$ modern safe-BO analyses actually use
Fiedler, Menn, Kreisköther, Trimpe: On Safety in Safe Bayesian OptimizationTMLR 2024Heuristic $\beta$ voids safety; Real-$\beta$-SafeOpt; LoSBORead before trusting any safe-BO experiment; continued in Module 5
Marco, Hennig, Bohg, Schaal, Trimpe: Automatic LQR Tuning Based on Gaussian Process Global OptimizationICRA 2016LQR-weight parametrisation + Entropy Search on a humanoidStart of the DSME controller-tuning line; safety by parametrisation
Marco, Berkenkamp, Hennig, Schoellig, Krause, Schaal, Trimpe: Virtual vs. Real: Trading Off Simulations and Physical Experiments in Reinforcement Learning with Bayesian OptimizationICRA 2017Multi-fidelity ES with the sum kernel and effort-weighted acquisitionThe standard sim-to-real BO template
Marco, Baumann, Khadiv, Hennig, Righetti, Trimpe: Robot Learning with Crash ConstraintsRA-L 2021GPCR likelihood with learned threshold, EIC$^2$Defines the crash-constraint regime used by VDP-GIBO and CrashPBO
Stenger, Brunzema, Menn, von Rohr, Schoellig, Trimpe: A Decade of Bayesian Optimization for Controller Tuning and Robot Learning: Tutorial, Review, and Future ProspectsarXiv 2026 (under review)Tutorial, review, benchmark-suite initiativeThe practitioner's entry point; candid about heuristic $\beta$
Xu, Jiang, Svetozarevic, Jones: Constrained Efficient Global Optimization of Expensive Black-box FunctionsICML 2023CONFIG: LCB-constrained optimism, regret and violation boundsThe soft-constraint counterpart to SafeOpt's hard guarantee
Bottero, Luis, Vinogradska, Berkenkamp, Peters: Information-Theoretic Safe Exploration with Gaussian ProcessesNeurIPS 2022ISE: safe exploration without $L$ or a gridExpanding a safe set by information rather than geometry
Hübotter, Sukhija, Treven, As, Krause: Transductive Active Learning: Theory and ApplicationsNeurIPS 2024ITL/VTL; safe BO with convergence on the largest reachable safe set (given convergence of the reducible uncertainty)Lipschitz-free guarantees; finite safe sets, with a continuous-domain extension over finitely many expansion steps
Usmanova, As, Kamgarpour, Krause: Log Barriers for Safe Black-box Optimization with Application to Safe Reinforcement LearningJMLR 2024LB-SGD: interior-point safety with adaptive steps and ratesThe scalable alternative when GPs are too expensive

Flashcards