4. Safe Bayesian Optimization: SafeOpt & Controller Tuning
SafeOpt, its guarantees, practical variants, and the DSME line of work on BO for controller tuning
This module assumes:
- GP posterior mean, covariance, and kernel ridge regression (Module 3)
- Kernels, RKHS norms, and the reproducing property (Module 3)
- Uniform GP confidence bounds and confidence-multiplier conventions (Module 3)
- Lipschitz bounds and safety margins (Primer B)
- Information gain and the sum-of-posterior-variances bound (Module 3)
- Joint high-probability guarantees and union bounds (Primer C)
- Gaussian conditioning (Primer C)
- Entropy and mutual information (Primer C)
- State feedback and LQR for the controller-tuning examples (Primer D)
- Constrained optimization and KKT conditions for the survey (Module 2)
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.
Try these before opening the answer. The review links lead to earlier material.
- If $f$ is 2-Lipschitz and $f(0)=1$, what lower bound follows at $x=0.3$? Review Lipschitz transfer.
- Find $[0,2]\cap[1,3]$. Review interval intersections.
- 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
1. The Safe BO Problem
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.
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.
- 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.)
- 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).
- 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.)
- 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,
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
| Regime | What may happen during tuning | Typical method | Guarantee |
|---|---|---|---|
| Constrained BO | Infeasible queries allowed; only the returned solution must be feasible | Constrained 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 run | SafeOpt, 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 constraints | Failures tolerable but return no objective value | EIC$^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.
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).
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.
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.
- Input: finite $D$, GP prior $(0, k, \sigma^2)$, Lipschitz constant $L$, seed $S_0$, threshold $h$, multipliers $\beta_t$.
- $C_0(x) \leftarrow [h, \infty)$ for $x \in S_0$, $\ C_0(x) \leftarrow \mathbb{R}$ otherwise.
- for $t = 1, 2, \dots$ do
- $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$
- $S_t \leftarrow \bigcup_{x \in S_{t-1}} \{x' \in D : l_t(x) - L\,d(x,x') \ge h\}$
- $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')\}$
- $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
- 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.
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$.
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.
- 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 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.
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.
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.
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).
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.
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:
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.
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$:
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).
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.
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).
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).
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.
| Variant | Safe set from | Needs $L$? | Proved | $\beta$ in experiments |
|---|---|---|---|---|
| SafeOpt (2015) | $l_t$ at safe points + Lipschitz transfer | yes | safety + $\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$ directly | no | safety only | $\beta \equiv 2$ |
| SafeOpt-MC (2016/2023) | intersection over constraints | yes (shared $L$) | safety + optimality, contexts | $\beta \equiv 2$ on hardware |
| StageOpt (2018) | as SafeOpt, per-constraint $L_i$ | yes | expansion, then $\zeta$-optimal utility | not reported |
| SafeLineBO (2019) | SafeOpt on 1-D lines | yes (per line) | per-line guarantees | heuristic |
| HdSafeBO (2024) | optimistic UCB rule | no | per-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:
- 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).
- 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).
- 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$.
- An experiment of horizon $K$ returning the noisy finite-horizon cost $\hat J(\theta)$, a few minutes of balancing per evaluation.
- 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.
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.
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
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):
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.
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
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
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)$.
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).
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.
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.
| Year | Paper | Safety mechanism | Platform |
|---|---|---|---|
| 2016 | Marco et al., ICRA | LQR parametrisation; penalty $J_u$ on unstable runs | Apollo humanoid, pole balancing |
| 2017 | Marco et al., ICRA | Fewer hardware trials via multi-fidelity ES | Cart-pole |
| 2020 | Turchetta, Krause, Trimpe, ICRA | Gain/delay margins as a second objective | Furuta pendulum |
| 2021 | Baumann et al., ICRA (GoSafe) | SafeOpt-MC safe set + backup policies (Module 6) | Furuta pendulum |
| 2021 | Marco et al., RA-L | Crash constraints, GPCR | Jumping quadruped |
| 2024 | Fiedler et al., TMLR / Menn et al., CDC | Real-$\beta$-SafeOpt, LoSBO, MCLoSBO (Module 5) | Synthetic; test vehicle |
| 2024 | Holzapfel, Brunzema, Trimpe, L4DC (ETSO) | Event-triggered reset to a backup controller (Module 5) | Quadcopter |
| 2024–26 | von Rohr et al.; He et al., T-RO; Menn et al., RA-L | Virtual data points; certified improvement; virtual duels | Hardware + 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.
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.
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.
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).
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.
- $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}$.
| Method | Constraint semantics | Regularity assumed | Needs $L$ / grid? | Guarantee |
|---|---|---|---|---|
| SafeOpt (2015) | hard, every round | RKHS norm + Lipschitz, bounded noise | yes / yes | safety w.h.p.; $\epsilon$-optimal on $\bar R_\epsilon(S_0)$ after $t^*$ |
| LoSBO (2024, Module 5) | hard, every round | Lipschitz + bounded noise only | yes / yes | deterministic safety; GP only steers |
| ISE / ISE-BO (2022 / 2026) | hard, every round | RKHS norm; Gaussian (ISE) or sub-Gaussian (ISE-BO) noise | no / no | safety w.h.p.; ISE: variance on the safe set vanishes once it stops expanding (bounded posterior mean, sublinear $\gamma_N$) |
| ITL (2024) | hard, every round | RKHS norm, sub-Gaussian noise | no / finite safe set for the full closure | safety w.h.p.; $\epsilon$-optimal on the largest reachable safe set if the reducible uncertainty converges |
| CONFIG (2023) | soft, cumulative | RKHS norm | no / no | $R_T, V_{i,T} = O(\gamma_T\sqrt T)$, sublinear if $\gamma_T = o(\sqrt T)$ |
| LB-SGD (2024) | hard, every iterate | smooth, Lipschitz $f^i$ (known constants), strictly feasible start, extended MFCQ | no / no | feasible w.h.p.; polynomial-in-$d$ rates |
| Constrained EI (2014) | final solution only | GP model | no / no | none on queries |
| Safe-LUCB (2019) | hard, every round (linear) | linear reward and constraint | no / no | $\tilde O(\sqrt T)$ with known gap, $\tilde O(T^{2/3})$ in general |
| Losalka–Scarlett (2024) | hard, every round | RKHS + safety monotone in $s$ | growth rates in $s$ only / no | sublinear cumulative regret |
| HdSafeBO (2024) | per-step probability $\alpha$ | GP sample model | no / finite $X$ in Thm. 4.2 | safe with posterior probability $\ge \alpha$ per query; expected violations bounded (Section 4.4) |
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.
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).
From the mathematics to a real decision
Learning objectives
- Carry out one safe-set update and distinguish lower-bound certification from optimistic acquisition.
- Explain why a useful experiment may have a lower immediate objective than an uncertified alternative.
- Extend the decision to simultaneous constraints without combining unlike physical units.
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
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
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.
Key Papers
| Paper | Venue | Contribution | Why read it |
|---|---|---|---|
| Sui, Gotovos, Burdick, Krause: Safe Exploration for Optimization with Gaussian Processes | ICML 2015 | Defines safe BO, SafeOpt, reachability, Theorem 1 | The template every later paper modifies; short and readable |
| Berkenkamp, Krause, Schoellig: Bayesian Optimization with Safety Constraints: Safe and Automatic Parameter Tuning in Robotics | Machine Learning 2023 (online 2021; arXiv 2016) | SafeOpt-MC: several constraints, contexts, full proofs, Lipschitz-free eq. 24 | The complete lemma chain and the honest remark about the practical variant |
| Berkenkamp, Schoellig, Krause: Safe Controller Optimization for Quadrotors with Gaussian Processes | ICRA 2016 | First 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 Processes | ICML 2018 | StageOpt: expansion then optimisation, two finite-time theorems | Cleanest case for decoupling safety from utility |
| Srinivas, Krause, Kakade, Seeger: Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental Design | ICML 2010 (IEEE TIT 2012) | GP-UCB, $\gamma_T$, the $\beta_t$ of Theorem 6 | Source of SafeOpt's constants and of the $\sum\sigma^2 \le C\gamma$ trick |
| Chowdhury, Gopalan: On Kernelized Multi-armed Bandits | ICML 2017 | Self-normalised RKHS confidence bound, IGP-UCB | The $\beta_t$ modern safe-BO analyses actually use |
| Fiedler, Menn, Kreisköther, Trimpe: On Safety in Safe Bayesian Optimization | TMLR 2024 | Heuristic $\beta$ voids safety; Real-$\beta$-SafeOpt; LoSBO | Read before trusting any safe-BO experiment; continued in Module 5 |
| Marco, Hennig, Bohg, Schaal, Trimpe: Automatic LQR Tuning Based on Gaussian Process Global Optimization | ICRA 2016 | LQR-weight parametrisation + Entropy Search on a humanoid | Start 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 Optimization | ICRA 2017 | Multi-fidelity ES with the sum kernel and effort-weighted acquisition | The standard sim-to-real BO template |
| Marco, Baumann, Khadiv, Hennig, Righetti, Trimpe: Robot Learning with Crash Constraints | RA-L 2021 | GPCR 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 Prospects | arXiv 2026 (under review) | Tutorial, review, benchmark-suite initiative | The practitioner's entry point; candid about heuristic $\beta$ |
| Xu, Jiang, Svetozarevic, Jones: Constrained Efficient Global Optimization of Expensive Black-box Functions | ICML 2023 | CONFIG: LCB-constrained optimism, regret and violation bounds | The soft-constraint counterpart to SafeOpt's hard guarantee |
| Bottero, Luis, Vinogradska, Berkenkamp, Peters: Information-Theoretic Safe Exploration with Gaussian Processes | NeurIPS 2022 | ISE: safe exploration without $L$ or a grid | Expanding a safe set by information rather than geometry |
| Hübotter, Sukhija, Treven, As, Krause: Transductive Active Learning: Theory and Applications | NeurIPS 2024 | ITL/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 Learning | JMLR 2024 | LB-SGD: interior-point safety with adaptive steps and rates | The scalable alternative when GPs are too expensive |