Deje que el punto que nos interesa el círculo para contener ser $\mathbf p_0$, y el resto de los puntos se $\mathbf p_1, \ldots, \mathbf p_n$. Si el círculo está centrado en $\mathbf q$, la más grande de la radio se puede tener es
$$r(\mathbf q) = \min_{i=1}^n\|\mathbf q-\mathbf p_i\|.$$
Para el círculo para contener $\mathbf p_0$, tenemos $\|\mathbf q-\mathbf p_0\|\le r(\mathbf q)$, que si se conecta en la definición de $r(\mathbf q)$ sólo significa que $\mathbf q$ está más cerca de a $\mathbf p_0$ que cualquier otro $\mathbf p_i$; en otras palabras, se encuentra en la celda correspondiente a $\mathbf p_0$ en el diagrama de Voronoi de $\{\mathbf p_0, \mathbf p_1, \ldots, \mathbf p_n\}$. Así pues, nuestro problema se reduce a encontrar el máximo de $r(\mathbf q)$ dentro de la celda de Voronoi de $\mathbf p_0$, que voy a llamar a $C$.
Hay dos posibilidades: o bien el máximo se encuentra en el interior de $C$, o se encuentra en su límite. En el primer caso, debe ser un sin restricciones máximo local de $\min_{i=1}^n\|\mathbf q-\mathbf p_i\|$; el máximo es un vértice del diagrama de Voronoi de $\{\mathbf p_1,\ldots,\mathbf p_n\}$. En el último caso, si $\mathbf q$ se encuentra en un borde, siempre se puede aumentar el $r(\mathbf q)$ moviendo a lo largo del borde, por lo que el máximo debe ocurrir en un vértice de $C$.
Por lo tanto, aquí es un algoritmo:
- Construir el diagrama de Voronoi $\mathcal V$$\{\mathbf p_0,\mathbf p_1,\ldots,\mathbf p_n\}$.
- Deje $C$ ser la célula de $\mathcal V$ correspondiente a $\mathbf p_0$.
- Evaluar $r(\mathbf q)$ de todos los vértices de $C$.
- Construir el diagrama de Voronoi $\mathcal V'$$\{\mathbf p_1,\ldots,\mathbf p_n\}$. (No debe existir algoritmos eficientes para la eliminación de un solo punto de $\mathbf p_0$ a partir de una previamente calculada diagrama de Voronoi $\mathcal V$.)
- Evaluar $r(\mathbf q)$ en todos los vértices de $\mathcal V'$ que se encuentran dentro de $C$.
- Elija el punto de los pasos 3 y 5 con el mayor $r(\mathbf q)$. El círculo deseado ha de centro $\mathbf q$ y radio de $r(\mathbf q)$.
Notas de implementación: Desde que usted quiere hacer esto para cada punto, uno por uno, no tienes que repetir el paso 1, que debería ser el más caro de paso. También, en los pasos 3 y 5, ya tiene un diagrama de Voronoi, de manera que pueda evaluar $r(\mathbf q)$ sin iterar sobre todos los $n$ puntos.