SlowGuess/NeurIPS_2023_OCR huggingface dataset:
Heaps  $H_{r}$ . For every  $r \in R$ , we maintain a max-heap  $H_{r}$  of the set  $\{(p, w_{\varepsilon r}(B_{p,r}^{1})) \mid p \in N_{\varepsilon r}\}$  representing the weight of the close neighborhood of any point in level  $r$ . With  $H_{r}[p]$  we denote the value of the max heap element with key  $p$ . Since  $B_{p,r}^{1}$  might change, we need to find the position of the respective heap element by its key  $p$ . Hence, for any level  $r$ , we keep a pointer from every element in  $N_{r}$  to its corresponding element in  $H_{r}$ .
Whenever an update happens to a set  $B_{p,r}^{1}$  for some point  $p \in N_{\varepsilon r}$ , we need to update the value of  $w_{\varepsilon r}(B_{p,r}^{1})$  as well as the value of  $H_{r}[p]$ . Each update in the max-heap  $H_{r}$  can be done in  $O(\log n)$  time using the standard max-heap operations. In the full version, we show that  $2^{O(\dim)\varepsilon^{-\dim}} \log \Delta$  updates happen to set  $B^{1}$ . Therefore, we need  $2^{O(\dim)\varepsilon^{-\dim}} \log \Delta \log n$  time to update the heaps.
A few lemmas about our data structure. Now we mention a few useful lemmas about our data structure. The formal proofs can be found in the full version. The first lemma is about the distance of each point to its representative, which is bounded because of a geometric series argument.
Lemma 2.1. Let  $p \in P_t$  and  $r \in R$ . Then  $d(p, \mathrm{rep}_r(p)) \leq 2r$ . In particular,  $d(p, \mathrm{rep}_{\varepsilon r}(p)) \leq 2\varepsilon r$ , where  $\varepsilon = 2^{\lfloor \log \varepsilon' \rfloor}$  for the error parameter  $\varepsilon'$ .
We next discuss the size of close neighborhoods and extended neighborhoods.
Lemma 2.2. Let  $r \in R$  and  $p \in N_{\varepsilon r}$ . The sets  $B_{p,r}^{1}$  and  $B_{p,r}^{3}$  defined above are of size at most  $2^{O(\dim)} \varepsilon^{-\dim}$ . In particular, the size is  $O(\varepsilon^{-\dim})$  for a constant doubling dimension  $\dim$ .
In the next lemma, we show that the update time is logarithmic in the spread ratio and the size of  $P_{t}$ .
Lemma 2.3. Let  $n$  be the size of point set  $P_{t}$ . Then after insertion/deletion of any point to  $P_{t}$ , we can update our data structure in time  $2^{O(\dim)}\varepsilon^{-2\dim}\log \Delta \log n$ .
Besides insertion and deletion updates, our data structure supports solution queries: in every time step, it can produce a solution in the form of a center set and a radius. We will discuss this in more detail and present an algorithm that outputs a  $(3 + O(\varepsilon))$ -approximation in time  $\varepsilon^{-O(\dim)}k\log n\log \log \Delta$  in the following section.
3 Our algorithm
Overview For a given level  $r$  in  $R$  and a number of centers  $k$ , the main procedure MAXCOVERAGE produces a set of  $k$  centers and a value outliersWeight. One run of this procedure is deemed successful if outliersWeight  $\leq z$  at the end. Indeed, we will later show that outliersWeight is an upper bound on the actual number of outliers in the clustering with centers  $C$  and radius  $(3 + 10\varepsilon)r$ , which implies that this is a feasible solution. The algorithm FINDCENTERS finds one such level for which MAXCOVERAGE is successful. We also ensure that this level is chosen such that MAXCOVERAGE is not successful on the next lower level  $r/2$ , which guarantees that the radius of our solution does not deviate from the optimal solution by too much.
In our algorithm, we repeatedly find areas that subsume the most points. In order to do this efficiently, we maintain the collections of close neighborhoods and their weights in max-heaps. Fix a level  $r \in R$ . For  $k$  iterations, the root node of the current heap corresponds to the next center of our solution. After picking it, we mark points in the extended neighborhood because our final approximate solution will cover these points and they should not contribute to the weight of other neighborhoods anymore.
As these points are now covered, we decrease the weights of heap elements representing points therein accordingly. These steps are performed by MAXCOVERAGE. Note that for maintenance reasons, one run of FINDCENTERS should leave the original heaps unchanged. We could make a copy of the heap before processing it in MAXCOVERAGE, but it is faster to work on the original heaps and just roll back all the updates done during MAXCOVERAGE at the end of the algorithm, as described in Lemma 3.8.
It remains to find a good value for  $r$ . By applying a binary search, we find a radius  $r$  such that the value of outliers Weight outputted by MAXCOVERAGE  $(k, r)$  is at most  $z$ , while the respective output on the lower level  $r/2$  is more than  $z$ . Note that it is possible to find such a pair of subsequent radii via binary search although the search space might
Procedure MAXCOVERAGE  $(k,r)$
1  $\overline{C}\gets \emptyset$  ,Marked  $\leftarrow \emptyset$  ,outliersWeight  $\leftarrow n$    
2 Let  $H$  be a copy of  $H_{r}$    
3 for  $i = 1$  to k do   
4 Let  $c_{i}$  be the key with maximum value in heap H   
5  $C\gets C\cup \{c_i\}$    
6 for each  $y\in B_{c_i,r}^3$  such that  $y\notin$  Marked do   
7  $\begin{array}{rl} & {\mathrm{Marked}\leftarrow \mathrm{Marked}\cup \{y\}}\\ & {\mathrm{for~each}x\in B_{y,r}^{1}\mathrm{do}}\\ & {\mathrm{\Delta\textit{Decrease}}H[x]\mathrm{by}w_{\varepsilon r}(y)}\\ & {\mathrm{outliers~Weight}\leftarrow \mathrm{outliers~Weight} - w_{\varepsilon r}(y)} \end{array}$    
8   
9   
10
Algorithm 1: FINDCENTERS  $(k,z)$
Output: Centers  $C$  of a  $(3 + 10\varepsilon)\rho$ -approximation for  $(k,z)$ -center  
if MAXCOVERAGE  $(k,0)$ . outliersWeight  $\leq z$  then return MAXCOVERAGE  $(k,0)$   
By performing a binary-search on  $R$ , find  $\hat{r}$  such that MAXCOVERAGE  $(k,\hat{r})$ . outliersWeight  $\leq z$ , and MAXCOVERAGE  $(k,\hat{r}/2)$ . outliersWeight  $>z$  if  $\hat{r} >$  return MAXCOVERAGE  $(k,\hat{r})$
not be monotone. In the special case that there are at most  $z$  points in total, we can just set the radius to 0. This is done in Algorithm 1 (FINDCENTERS $(k, z)$ ).
Analysis Next, we prove the approximation guarantee and time complexity of our algorithm.
Let  $r$  and  $k$  be fixed, and let  $i \in [1,k]$  be an integer. For any point  $y \in N_{\varepsilon r}$ , we say  $y$  is marked after the  $i$ -th iteration of the loop in Line 3 of MAXCOVERAGE, if  $y \in \bigcup_{j=1}^{i} B_{c_j,r}^3$ , and we say it is unmarked if it is not the case. For simplicity, we may refer to a point as marked or unmarked without specifying the iteration if it is clear from the context. We define set  $U_i := \{y \in N_{\varepsilon r} \mid y \notin \bigcup_{j=1}^{i} B_{c_j,r}^3\}$  as the set of unmarked points after the  $i$ -th iteration. We next define  $O_i := \{p \in P_t \mid \mathrm{rep}_{\varepsilon r}(p) \notin \bigcup_{j=1}^{i} B_{c_j,r}^3\}$  as the set of points that are considered outliers after the  $i$ -th iteration of the loop. Equivalently,  $O_i := \{p \in P_t \mid \mathrm{rep}_{\varepsilon r}(p) \in U_i\}$ . After the  $i$ -th iteration of the loop in Line 3, for each  $y \in N_{\varepsilon r}$ ,  $H_r[y]$  is the total weight of unmarked points in  $B_{y,r}^1$ .
Lemma 3.1 (Invariant for heaps). Let  $k$  be an integer,  $0 \leq i \leq k$ , and  $r \in R$ . Then for any  $y \in N_{\varepsilon r}$  it holds  $H_r[y] = w_{\varepsilon r}(B_{y,r}^1 \cap U_i)$  after the  $i$ -th iteration.
FINDCENTERS  $(k,z)$  returns a solution when outliersWeight  $\leq z$ . To show that this solution is feasible, it remains to prove that outliersWeight is an upper bound on the actual number of outliers of this solution.
Lemma 3.2 (Feasible solution). Consider a radius  $r \in R$ , and an integer  $k$ . Then MAXCOVERAGE( $k, r$ ) returns  $k$  centers and a value outliers Weight, such that the total number of points in  $P_t$  that are not within distance  $(3 + 10\varepsilon)r$  of these  $k$  centers is at most outliers Weight.
Proof. Let outliersWeight denote MAXCOVERAGE  $(k,r)$ . outliersWeight. We want to prove that MAXCOVERAGE  $(k,r)$  returns  $\{c_1,\ldots ,c_k\}$  such that  $|P_t\setminus \bigcup_{j\leq k}\mathrm{Ball}(c_j,(3 + 10\varepsilon)r)|\leq$  outliersWeight. In every iteration  $i$ , outliersWeight is decreased by  $w_{\varepsilon r}(y)$  for every  $y\in B_{c_i,r}^3\setminus$  Marked. After processing  $y$ , we add it to Marked. This way, we ensure that no  $y$  is charged twice. Therefore, by the end of the algorithm, outliersWeight is decreased by  $w_{\varepsilon r}(\bigcup_{j\leq k}B_{c_j,r}^3)$ .
Hence, in the end, the value of outliers Weight is
$$
\begin{array}{l} \text {o u t l i e r s W e i g h t} = n - w _ {\varepsilon r} \left(\bigcup_ {j \leq k} B _ {c _ {j}, r} ^ {3}\right) \\ = \left| P _ {t} \right| - \left| \left\{p \in P _ {t} \mid \operatorname {r e p} _ {\varepsilon r} (p) \in \bigcup_ {j \leq k} B _ {c _ {j}, r} ^ {3} \right\} \right|. \\ \end{array}
$$
For all  $p \in P_t$ , if  $\mathrm{rep}_{\varepsilon r}(p) \in \bigcup_{j \leq k} B_{c_j, r}^3$ , then  $d(c_j, \mathrm{rep}_{\varepsilon r}(p)) \leq (3 + 8\varepsilon)r$  holds for at least one  $j \leq k$  by definition of  $B_{c_j, r}^3$ . Using Lemma 2.1, this implies  $d(c_j, p) \leq d(c_j, \mathrm{rep}_{\varepsilon r}(p)) + d(\mathrm{rep}_{\varepsilon r}(p), p) \leq (3 + 8\varepsilon)r + 2\varepsilon r = (3 + 10\varepsilon)r$ . Hence,  $\{p \in P_t \mid \mathrm{rep}_{\varepsilon r}(p) \in \bigcup_{j \leq k} B_{c_j, r}^3\} \subseteq \{p \in P_t \mid \exists j \leq k \colon d(c_j, p) \leq (3 + 10\varepsilon)r\}$  and therefore
$$
\begin{array}{l} \text {o u t l i e r s W e i g h t} \geq | P _ {t} | - | \{p \in P _ {t} \mid \exists j \leq k: d (c _ {j}, p) \leq (3 + 1 0 \varepsilon) r \} | \\ = \left| P _ {t} \right| - \left| \bigcup_ {j \leq k} \operatorname {B a l l} \left(c _ {j}, (3 + 1 0 \varepsilon) r\right) \cap P _ {t} \right|. \\ \end{array}
$$
Consider a fixed optimal solution. The following insight is crucial for our proof: In every iteration of MAXCOVERAGE  $(k, r)$  for  $r \geq \mathrm{OPT}$ , we select a ball that covers a sufficient number of unmarked points. To be precise, it exceeds the number of currently considered outliers in any optimal cluster.
Lemma 3.3 (Invariant for picking  $c_i$ ). Let  $r \geq \mathrm{OPT}$ , where  $r \in R$ , and let  $c^* \in P_t$  be a center of an optimal solution for  $k$ -center with  $z$  outliers. Assume that we execute MAXCOVERAGE( $k, r$ ). Then for any  $i \in [1, k]$ , the  $c_i$  picked in Line 4 is such that  $|\operatorname{Ball}(c^*, OPT) \cap O_{i-1}| \leq w_{\varepsilon r}(B_{c_i, r}^1 \cap U_{i-1})$ .
Proof. We define  $\hat{c} \coloneqq \mathrm{rep}_{\varepsilon r}(c^*)$ , the representative of  $c^*$  in  $N_{\varepsilon r}$ . Recall that  $B_{\hat{c},r}^{1} = \{y \in N_{\varepsilon r} \mid d(\hat{c},y) \leq (1 + 4\varepsilon)r\}$ . Lemma 3.1 states that  $H[y] = w_{\varepsilon r}(B_{y,r}^{1} \cap U_{i-1})$  holds for all  $y \in N_{\varepsilon r}$  after the  $(i-1)$ -th iteration. Since  $c_i$  is on top of the max-heap  $H$ , we have  $w_{\varepsilon r}(B_{\hat{c},r}^{1} \cap U_{i-1}) \leq w_{\varepsilon r}(B_{c_i,r}^{1} \cap U_{i-1})$ . Therefore, it remains to show that  $|\operatorname{Ball}(c^*,\operatorname{OPT}) \cap O_{i-1}| \leq w_{\varepsilon r}(B_{\hat{c},r}^{1} \cap U_{i-1})$ .
According to the definition of representative and weight function, we first have
$$
| \operatorname {B a l l} (c ^ {*}, \operatorname {O P T}) \cap O _ {i - 1} | \leq \sum_ {y \in \operatorname {r e p} _ {\varepsilon r} (\operatorname {B a l l} (c ^ {*}, \operatorname {O P T}) \cap O _ {i - 1})} w _ {\varepsilon r} (y) .
$$
We next show that for any point  $p \in \mathrm{Ball}(c^*, \mathrm{OPT}) \cap P_t$ , its representative on level  $\varepsilon r$  lies in  $B_{\hat{c},r}^{1}$  i.e.  $\mathrm{rep}_{\varepsilon r}(p) \in B_{\hat{c},r}^{1}$ . Let  $p \in \mathrm{Ball}(c^*, \mathrm{OPT}) \cap P_t$  be an arbitrary point, then  $d(c^*, p) \leq \mathrm{OPT} \leq r$ . By the triangle inequality,  $d(\hat{c}, \mathrm{rep}_{\varepsilon r}(p)) \leq d(\hat{c}, c^*) + d(c^*, p) + d(p, \mathrm{rep}_{\varepsilon r}(p))$ . Besides, Lemma 2.1 implies that  $d(\hat{c}, c^*) \leq 2\varepsilon r$  and  $d(p, \mathrm{rep}_{\varepsilon r}(p)) \leq 2\varepsilon r$ . Putting everything together we have
$$
d \left(\hat {c}, \operatorname {r e p} _ {\varepsilon r} (p)\right) \leq d \left(\hat {c}, c ^ {*}\right) + d \left(c ^ {*}, p\right) + d \left(p, \operatorname {r e p} _ {\varepsilon r} (p)\right) \leq 2 \varepsilon r + r + 2 \varepsilon r = (1 + 4 \varepsilon) r.
$$
Besides,  $p \in O_{i-1}$  is equivalent to  $\mathrm{rep}_{\varepsilon r}(p) \in U_{i-1}$ . Therefore,  $p \in \operatorname{Ball}(c^*, \mathrm{OPT}) \cap O_{i-1}$  implies  $\mathrm{rep}_{\varepsilon r}(p) \in B_{\hat{c},r}^{1} \cap U_{i-1}$ , and we have  $\mathrm{rep}_{\varepsilon r}(\operatorname{Ball}(c^*, \mathrm{OPT}) \cap O_{i-1}) \subseteq B_{\hat{c},r}^{1} \cap U_{i-1}$ . Thus,
$$
\sum_ {y \in \operatorname {r e p} _ {\varepsilon r} (\operatorname {B a l l} (c ^ {*}, \operatorname {O P T}) \cap O _ {i - 1})} w _ {\varepsilon r} (y) \leq \sum_ {y \in B _ {\hat {c}, r} ^ {1} \cap U _ {i - 1}} w _ {\varepsilon r} (y) = w _ {\varepsilon r} \left(B _ {\hat {c}, r} ^ {1} \cap U _ {i - 1}\right),
$$
Utilizing Lemma 3.3, we can now show that the weight of the final output of MAXCOVERAGE  $(k,r)$  with  $r\geq$  OPT is at least the number of points covered by any optimal solution.
Lemma 3.4 (Invariant for coverage weight). Let  $C^*$  be the set of  $k$  centers of an optimal solution for  $k$ -center with  $z$  outliers on  $P_t$ , and let OPT be the radius of this solution. Let  $r \geq \mathrm{OPT}$ , where  $r \in R$ . Then,
$$
\left| \bigcup_ {c ^ {*} \in C ^ {*}} \operatorname {B a l l} \left(c ^ {*}, O P T\right) \cap P _ {t} \right| \leq w _ {\varepsilon r} \left(\bigcup_ {j = 1} ^ {k} B _ {c _ {j}, r} ^ {3}\right)
$$
(recall that  $B_{c_j,r}^3 = \mathrm{Ball}(c_j,(3 + 8\varepsilon)r)\cap N_{\varepsilon r}$  and  $w_{\varepsilon r}(B_{c_j,r}^3) = |\{y\in P_t\mid rep_{\varepsilon r}(y)\in B_{c_j,r}^3\} |.$
Proof. To prove the lemma, we show that for any  $i \in [0,k]$ , there is a charging that satisfies the following conditions: 1) There is a set  $\{c_1^*,\ldots ,c_i^*\} \subseteq C^*$  and a function that charges each point in  $\bigcup_{j = 1}^{i}\operatorname {Ball}(c_j^*,OPT)\cap P_t$  to a point  $y\in \bigcup_{j = 1}^{i}B_{c_j,r}^3$ , and 2) for any point  $y\in \bigcup_{j = 1}^{i}B_{c_j,r}^3$ , at most  $w_{\varepsilon r}(y)$  points from  $\bigcup_{j = 1}^{i}\operatorname {Ball}(c_j^*,OPT)\cap P_t$  are mapped to  $y$ .
We prove this claim by induction on  $i$ . The base case  $i = 0$  trivially holds. Assume that  $i \geq 1$  and the induction hypothesis holds for  $i - 1$ . That is, there is a charging satisfying conditions 1 and 2 for  $i - 1$ . Then, we prove that these conditions hold for  $i$ .
To define center  $c_{i}^{*}$ , we consider two cases:
Case 1: there exists a center  $c^* \in C^* \setminus \{c_1^*, \ldots, c_{i-1}^*\}$  for which  $B_{c_i,r}^1$  hits the set of representatives of  $\operatorname{Ball}(c^*, \mathrm{OPT})$ . That is, we have  $\operatorname{rep}_{\varepsilon r}(\operatorname{Ball}(c^*, \mathrm{OPT})) \cap B_{c_i,r}^1 \neq \emptyset$ . We then let  $c_i^* = c^*$ . We map every point of  $\operatorname{Ball}(c^*, \mathrm{OPT})$  to its unique representative.
Case 2: the first case is not correct. Then, we let  $c_{i}^{*}$  be any arbitrary point in  $C^* \setminus \{c_1^*, \ldots, c_{i-1}^*\}$ . In this case, we charge the uncharged points of  $\mathrm{Ball}(c_i^*, \mathrm{OPT})$  to  $B_{c_i,r}^1$ .
We first consider Case 1. We charge each point  $p \in \mathrm{Ball}(c_i^*, OPT)$  to its representative  $\mathrm{rep}_{\varepsilon r}(p)$ . We next prove the following claim:
Claim. Let  $p \in \operatorname{Ball}(c_i^*, OPT)$ . If Case 1 happens, then for every point  $q \in P_t$  that is charged to  $\mathrm{rep}_{\varepsilon r}(p)$ , it holds that  $\mathrm{rep}_{\varepsilon r}(q) = \mathrm{rep}_{\varepsilon r}(p)$ .
Proof. For the sake of contradiction, assume that there is a point  $q \in P_t$  such that  $q$  is charged to  $\mathrm{rep}_{\varepsilon r}(p)$  and  $\mathrm{rep}_{\varepsilon r}(q) \neq \mathrm{rep}_{\varepsilon r}(p)$ . It means that at an iteration  $j < i$ , Case 2 happened and  $q$  is charged to  $\mathrm{rep}_{\varepsilon r}(p)$ . Since Case 2 happened at iteration  $j$ , we have  $\mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c_i^*, OPT)) \cap B_{c_j,r}^1 = \emptyset$  and also  $q$  is charged to a point in  $B_{c_j,r}^1$ . Adding it to the assumption that  $q$  is charged to  $\mathrm{rep}_{\varepsilon r}(p)$  we have  $\mathrm{rep}_{\varepsilon r}(p) \in B_{c_j,r}^1$ . Besides,  $p \in \mathrm{Ball}(c_i^*, OPT)$  and therefore we have  $\mathrm{rep}_{\varepsilon r}(p) \in \mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c_i^*, OPT))$ . This implies that  $\mathrm{rep}_{\varepsilon r}(p) \in \mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c_i^*, OPT)) \cap B_{c_j,r}^1$ , which is a contradiction to  $\mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c_i^*, OPT)) \cap B_{c_j,r}^1 = \emptyset$ .
The claim implies that for each point  $p\in \mathrm{Ball}(c^*,\mathrm{OPT})$  at most  $w_{\varepsilon r}(\mathrm{rep}_{\varepsilon r}(p))$  points are charged to  $\mathrm{rep}_{\varepsilon r}(p)$ . See Figure 2, where the left blue ball represents  $B_{c_i,r}^1$ , the right blue one indicates the area that points from  $\mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c^*,\mathrm{OPT}))$  can lie in, and the orange circle represents  $\mathrm{Ball}(c^*,\mathrm{OPT})$ . For each point  $p\in \mathrm{Ball}(c^*,\mathrm{OPT})$  we have  $\mathrm{rep}_{\varepsilon r}(p)\in B_{c_i,r}^3$ : Let  $q\in \mathrm{Ball}(c^*,\mathrm{OPT})$  be such that  $\mathrm{rep}_{\varepsilon r}(q)\in \mathrm{rep}_{\varepsilon r}(\mathrm{Ball}(c^*,\mathrm{OPT}))\cap B_{c_i,r}^1$ . The distance of  $c_{i}$  to any
Figure 2: Illustration of the claim's consequences.
representative of a point  $p\in \mathrm{Ball}(c^*,\mathrm{OPT})$  is
$$
\begin{array}{l} d \left(c _ {i}, \operatorname {r e p} _ {\varepsilon r} (p)\right) \leq d \left(c _ {i}, \operatorname {r e p} _ {\varepsilon r} (q)\right) + d \left(\operatorname {r e p} _ {\varepsilon r} (q), q\right) + d \left(q, c ^ {*}\right) + d \left(c ^ {*}, p\right) + d \left(p, \operatorname {r e p} _ {\varepsilon r} (p)\right) \\ \leq (1 + 4 \varepsilon) r + 2 \varepsilon r + 2 \mathrm {O P T} + 2 \varepsilon r \leq (3 + 8 \varepsilon) r, \\ \end{array}
$$
implying that  $\mathrm{rep}_{\varepsilon r}(p) \in B_{c_i,r}^3$ .
For Case 2: note that if  $p \in P_t \setminus O_{i-1}$ , then by definition of  $O_{i-1}$ , we have  $\mathrm{rep}_{\varepsilon r}(p) \notin U_{i-1}$ , and hence  $\mathrm{rep}_{\varepsilon r}(p) \in \cup_{j=1}^{i-1} B_{c_j, r}^1$  by definition of  $U_{i-1}$ . So, by induction hypothesis,  $p$  is already charged to  $\mathrm{rep}_{\varepsilon r}(p)$ . Therefore, we only need to charge each point  $p \in \operatorname{Ball}(c^*, OPT) \cap O_{i-1}$ . By Lemma 3.3 we have  $|\operatorname{Ball}(c^*, OPT) \cap O_{i-1}| \leq w_{\varepsilon r}(B_{c_i, r}^1 \cap U_{i-1})$ . Also, we only charged to
the points in  $\cup_{j=1}^{i-1} B^3$ , which means that no point is charged a point in  $U_{i-1}$ . Therefore, points in  $\operatorname{Ball}(c^*, OPT) \cap O_{i-1}$  can be charged to points in  $B_{c_i,r}^1 \cap U_{i-1}$ .
Lemma 3.5. Let  $r \in R$  and OPT be the optimal radius for  $k$ -center clustering of  $P_t$  with  $z$  outliers. Then if  $r \geq OPT$ , the value outliers Weight returned by MAXCOVERAGE( $k, r$ ) is at most  $z$ .
Proof. Let  $C = \{c_1, \ldots, c_k\}$  be the set of centers returned by MAXCOVERAGE( $k, r$ ) and  $C^*$  be the set of centers of an optimal  $k$ -center clustering of  $P_t$  with  $z$  outliers. By the same reasoning as in the proof of Lemma 3.2, it is
$$
o u t l i e r s W e i g h t = n - w _ {\varepsilon r} \left(\cup_ {i = 1} ^ {k} B _ {c, r} ^ {3}\right).
$$
Besides, Lemma 3.4 states that  $w_{\varepsilon r}(\cup_{i=1}^{k} B_{c_i,r}^3) \geq |\cup_{c^* \in C^*} \operatorname{Ball}(c^*, OPT) \cap P_t|$ . Moreover, as  $C^*$  are the centers of an optimal solution,  $n - |\cup_{c^* \in C^*} \operatorname{Ball}(c^*, OPT) \cap P_t| \leq z$ . Putting everything together, we have
$$
\text {o u t l i e r s W e i g h t} \leq n - w _ {\varepsilon r} \left(\cup_ {i = 1} ^ {k} B _ {c _ {i}, r} ^ {3}\right) \leq n - | \cup_ {c ^ {*} \in C ^ {*}} \operatorname {B a l l} \left(c ^ {*}, O P T\right) \cap P _ {t} | \leq z,
$$
Lemma 3.2 and Lemma 3.5 together imply that the solution returned by Algorithm 1 is feasible. Further, it can be shown that the level  $\hat{r}$  at which FINDCENTERS  $(k,z)$  becomes successful, fulfills  $\hat{r} \leq r^{*}$ . Together, this implies the following statement.
Lemma 3.6 (Approximation guarantee). Let  $OPT > 0$  be the optimal radius for the  $k$ -center clustering of  $P_t$  with  $z$  outliers, and let  $r^*$  be the minimum number in  $R$  such that  $r^* \geq OPT$ . Then FINDCENTERS  $(k, z)$  returns a  $(3 + 10\varepsilon)\rho$ -approximate solution for  $k$ -center clustering problem with  $z$  outliers, where  $\rho = \frac{r^*}{\mathrm{OPT}}$ .
For  $\rho$  defined in Lemma 3.6,  $1\leq \rho < 2$  holds according to the definition of  $R$ . It immediately leads to a  $(6 + O(\varepsilon))$ -approximation algorithm. Next in Lemma 3.7, we show how to get  $\rho \leq (1 + \varepsilon)$ , which improves the approximation ratio of our algorithm to  $3 + O(\varepsilon)$ . The idea is to run parallel instances of our data structure with different values for parameter  $\beta$ , so that always  $OPT\leq r < (1 + \varepsilon)OPT$  holds for a  $r\in R$  in one of the instances.
Lemma 3.7 (Optimizing the approximation ratio). Let  $OPT > 0$ , and let  $\varepsilon > 0$  be fixed. We define  $m := \lceil 1 / \log_2(1 + \varepsilon) \rceil$ . Suppose we have  $m$  parallel instances of our data structure with parameter  $\beta = 2^{i/m-1}$  for the  $i$ -th instance. Then in at least one of the instances, we find a  $(3 + O(\varepsilon))$ -approximation solution for  $k$ -center clustering with  $z$  outliers by calling FINDCENTERS $(k, z)$ .
The procedure MAXCOVERAGE  $(k,r)$  needs to temporarily edit the heap  $H_{r}$ . This can be done by working on a copy of the heap, as indicated in line 2. The following result describes how this can be done faster, without actually copying the heap. The idea is to work in place and roll back all changes in the end. The formal proof is given in the full version.
Lemma 3.8 (Imitating of copying  $H_r$ ). Let  $u$  be the number of times that MAXCOVERAGE( $k, r$ ) updates heap  $H$ . Then copying heap  $H_r$  in Line 2, as well as all these  $u$  updates, can be handled in total time  $O(u \log n)$ .
By using Lemma 3.8 and Lemma 2.2, we get the query time in Lemma 3.9.
Lemma 3.9 (Query time). Let  $k$  and  $z$  be two given parameters. Then FINDCENTERS  $(k, z)$  described in Algorithm 1 has a time complexity of  $2^{O(\dim)} \varepsilon^{-2} \dim k \log n \log \log \Delta$ .
We developed a data structure for the fully dynamic  $k$ -center with  $z$  outliers problem in metrics of bounded doubling dimension. As compared to other works, the algorithm exhibits an improved query time while achieving the currently best-known approximation ratio of  $3 + \varepsilon$ . The query time is optimal with respect to the dependency on  $k$ . Although the exponential dependency on the doubling dimension in the running times seems necessary, it is actually not clear if this could be improved to tackle even wider classes of metric spaces. This would be an interesting aspect for future work. However, Chan et al. [4] show that an amortized running time of  $\Omega(z)$  would be needed in general metric spaces.
The authors would like to thank the anonymous reviewers for their insightful comments. Annika Hennes' and Melanie Schmidt's research was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - project number 456558332.