Abstract
We develop a dual simplextype algorithm for computing the smallest enclosing ball of a set of balls and other closely related problems. Our algorithm employs a pivoting scheme resembling the simplex method for linear programming, in which a sequence of exact curve searches is performed until a new dual feasible solution with a strictly smaller objective function value is found. We utilize the Cholesky factorization and procedures for updating it, yielding a numerically stable implementation of the algorithm. We show that our algorithm can efficiently solve instances of dimension 5000 with 100000 points, often within minutes.
Similar content being viewed by others
References
Agarwal, P.K., HarPeled, S., Varadarajan, K.R.: Geometric approximation via coresets, in Combinatorial and Computational Geometry, pp. 1–30. University Press, MSRI (2005)
Alizadeh, F., Goldfarb, D.: Secondorder cone programming. Math. Program. 95, 3–51 (2003)
BenHur, A., Horn, D., Siegelmann, H.T., Vapnik, V.: Support vector clustering. J. Mach. Learn. Res. 2, 125–137 (2002)
Bădoiu, M., Clarkson, K.L.: Optimal coresets for balls. Comput. Geometry 40, 14–22 (2008)
Bădoiu, M., HarPeled, S., Indyk, P.: Approximate clustering via coresets. In: Proc. 34th Annual ACM Symp. on Theory of Computing, STOC ’02, New York, NY, USA, ACM, pp. 250–257 (2002)
Bulatov, Y., Jambawalikar, S., Kumar, P., Sethia, S.: Hand recognition using geometric classifiers in authentication biometric, pp. 753–759. Springer, Heidelberg (2004)
Cavaleiro, M.: SimplexLike Methods for Spherical Enclosure of Points and Spheres  Algorithms and Applications, Ph.D. Thesis, Rutgers University (2020)
Cavaleiro, M., Alizadeh, F.: A faster dual algorithm for the Euclidean minimum covering ball problem. Annal Op Res 5, 1056 (2018)
Chapelle, O., Vapnik, V., Bousquet, O., Mukherjee, S.: Choosing multiple parameters for support vector machines. Mach Learn 46, 131–159 (2002)
Dearing, P.M., Zeck, C.R.: A dual algorithm for the minimum covering ball problem in \(\mathbb{R}^n\). Op Res Lett 37, 171–175 (2009)
Dyer, M.: A class of convex programs with applications to computational geometry. In: Proc. of the 8th Annual Symp. on Computational Geometry, SCG ’92, New York, NY, USA, ACM, pp. 9–15 (1992)
Dyer, M., Gärtner, B., Megiddo, N., Welzl, E.: Linear programming. Chapman and Hall/CRC, Boca Raton (2017)
Dyer, M., Megiddo, N., Welzl, E.: Linear programming. Chapman and Hall/CRC, Boca Raton (2004)
Fischer, K., Gärtner, B.: The smallest enclosing ball of balls: combinatorial structure and algorithms. Int. J. Comput. Geometry Appl. 14, 341–387 (2004)
Fischer, K., Gärtner, B., Kutz, M.: Fast smallestenclosingball computation in high dimensions, in Algorithms  ESA. Lecture Notes in Computer Science, vol. 2832. Springer 2003, 630–641 (2003)
Gill, P.E., Golub, G.H., Murray, W., Saunders, M.A.: Methods for modifying matrix factorizations. Math. Comput. 28, 505–535 (1974)
Goldfarb, D.: Factorized variable metric methods for unconstrained optimization. Math. Comput. 30, 796–811 (1976)
Goldfarb, D., Idnani, A.: A numerically stable dual method for solving strictly convex quadratic programs. Math. Program. 27, 1–33 (1983)
Golub, G.H., Van Loan, C.: Matrix computations, 3rd edn. Johns Hopkins University Press, Baltimore (1996)
Hale, T.S., Moberg, C.R.: Location science research: a review. Annal. Op. Res. 123, 21–35 (2003)
Hubbard, P.M.: Approximating polyhedra with spheres for timecritical collision detection. ACM Trans. Gr. 15, 179–210 (1996)
Källberg, L., Larsson, T.: Faster approximation of minimum enclosing balls by distance filtering and GPU parallelization. J. Gr. Tools 17, 67–84 (2013)
Kumar, P., Mitchell, J.S.B., Yildirim, E.A.: Approximate minimum enclosing balls in high dimensions using coresets. ACM J. Exp. Algorithm. 8, 689 (2003)
Larsson, T., Capannini, G., Källberg, L.: Parallel computation of optimal enclosing balls by iterative orthant scan. Computers & Gr 56, 1–10 (2016)
Larsson, T., Källberg, L.: Fast and robust approximation of smallest enclosing balls in arbitrary dimensions. In: Proc. 11th Eurographics/ACMSIGGRAPH Symp. on Geometry Processing, SGP ’13, AirelaVille, Switzerland, Eurographics Association, pp. 93–101 (2013)
Megiddo, N.: On the ball spanned by balls, discrete. Comput. Geom. 4, 605–610 (1989)
Moradi, E., Bidkhori, M.: Single facility location problem. In: Location, Facility (ed.) Concepts, pp. 37–68. PhysicaVerlag HD, Models, Algorithms and Case Studies, Heidelberg (2009)
Mordukhovich, B., Nam, N.M., Villalobos, C.: The smallest enclosing ball problem and the smallest intersecting ball problem: existence and uniqueness of solutions. Optim. Lett. 7, 839–853 (2013)
MOSEK ApS: The MOSEK optimization toolbox for MATLAB manual. Version 8.1 (2017)
Nam, N.M., Hoang, N., An, N.T.: Constructions of solutions to generalized Sylvester and FermatTorricelli problems for Euclidean balls. J. Optim. Theor. Appl. 160, 483–509 (2014)
Nam, N.M., Nguyen, T.A., Salinas, J.: Applications of convex analysis to the smallest intersecting ball problem. J. Convex Anal. 19, 497–518 (2012)
Nielsen, F., Nock, R.: Approximating smallest enclosing balls with applications to machine learning. Int. J. Comput. Geom. Appl. 19, 389–414 (2009)
Panigrahy, R.: Minimum enclosing polytope in high dimensions, CoRR, cs.CG/0407020 (2004)
Plastria, F.: Continuous covering location problems. In: Location, Facility (ed.) Applications and Theory, pp. 37–79. Springer, Berlin (2002)
Sharir, M., Welzl, E.: A combinatorial bound for linear programming and related problems. In: STACS 92, Berlin, Heidelberg, pp. 567–579. Springer (1992)
Toh, K.C., Todd, M.: SDPT3  a MATLAB software package for semidefinite programming. Optim. Methods Softw. 11, 545–581 (1999)
Tsang, I.W., Kwok, J.T., Cheung, P.M.: Core vector machines: fast SVM training on very large data sets. J. Mach. Learn. Res. 6, 363–392 (2005)
Yildirim, E.A.: Two algorithms for the minimum enclosing ball problem. SIAM J. Optim. 19, 1368–1391 (2008)
Zhou, G., Tohemail, K.C., Sun, J.: Efficient algorithms for the smallest enclosing ball problem. Comput. Optim. Appl. 30, 147–160 (2005)
Acknowledgements
The authors would like to thank the anonymous reviewers for their insightful and constructive feedback.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Funding
Not applicable.
Conflict of interest
The authors declare that they have no conflict of interest to declare.
Availability of data and material
Not applicable.
Code availability
For access to the code, please contact the corresponding author.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
A proof of theorem 2
A proof of theorem 2
The proof of the correctness of Algorithm 3 follows a similar approach to [18], and relies on the following definition and lemmas.
Definition 3
The triple \((x, \mathcal {S}, p^*)\) is said to be a (violated) Vtriple if:

(a)
\(\overline{\mathcal {S}}\cup \{\overline{p}^*\}\) is affinely independent,

(b)
\(\left\ {\overline{p}^*\overline{x}}\right\ \ge (p^*_0x_0)\),

(c)
\(\left\ {\overline{p}_i\overline{x}}\right\ =(p_{i0}x_0)\), for all \(p_i\in \mathcal {S}\),

(d)
\(\overline{x}\in {\text {conv}}(\overline{\mathcal {S}}\cup \{\overline{p}^*\})\).
Lemma 2
Assume that, at the beginning of a curve search, we have a Vtriple \((x^j, \mathcal {S}^j, p^*)\) such that \(\mathcal {S}^j>1\). Suppose a full step is taken (\({x}_0^{ F } > x_0^{ P })\). Then,

i.
\((\mathcal {S}^j\cup \{p^*\},x^{ F })\) is a dual feasible Spair,

ii.
\({x}_0^{ F }\le x_0^j\).
Proof
It is easy to see that \((\mathcal {S}^j\cup \{p^*\}, x^{ F })\) is a dual feasible Spair. First, \(\overline{\mathcal {S}}^j\cup \{\overline{p}^*\}\) is affinely independent by assumption. Additionally, \(\overline{x}^{ F }\in {\text {ri}}{\text {conv}}(\overline{\mathcal {S}}^j)\), because otherwise there would exist an \(\alpha _i(x_0^{ F })=0\), meaning a partial step would have been taken instead, contradicting the assumption that \({x}_0^{ F } > x_0^{ P }\). Finally, recall that the full step finds a point \(x^{ F }\) such that \(\left\ {\overline{p}^*\overline{x}^{ F }}\right\ = p^*_0x_0^{ F }\), \(\left\ {\overline{p}_{j_i}\overline{x}^{ F }}\right\ = p_{{j_i}0} x_0^{ F }\), \(\forall \, p_{j_i}\in \mathcal {S}^j\), and \(\overline{x}\in {\text {aff}}(\overline{\mathcal {S}}\cup \{\overline{p}^*\})\), whenever these conditions are feasible. Lastly, \({x}_0^{ F }\le x_0^j\) follows from the definition of full step. \(\square\)
Lemma 3
Assume that, at the beginning of a curve search, we have a Vtriple \((x^j, \mathcal {S}^j, p^*)\) such that \(\mathcal {S}^j>1\). Suppose a partial step was taken (\({x}_0^{ F } \le x_0^{ P }\)). Let \(p_{j_k}\in \mathcal {S}^j\) be the point selected to be dropped from \(\mathcal {S}^j\). Then,

i.
\(({x}^{ P }, \mathcal {S}^j\setminus \{p_{j_k}\}, p^*)\) is a Vtriple,

ii.
\({x}_0^{ P }\le x_0^j\).
Proof
Item ii., \({x}_0^{ P }\le x_0^j\), follows from the definition of partial step. Let us now prove properties (ad) from Definition 3 for \(({x}^{ P }, \mathcal {S}^j\setminus \{p_{j_k}\}, p^*)\). Property (a) follows from the assumption that \((x^j, \mathcal {S}^j, p^*)\) is a Vtriple. Property (b) is proved by a continuity argument: since the curve search starts at \(x^j\) such that \(\Vert \overline{p}^*\overline{x}^j\Vert \ge p_{0}^* x_0^j\) and it ends at \(x^{ P }\) such that \(x_0^{ F }\le x_0^{ P }\le x_0^j\), then \(\Vert \overline{p}^*\overline{x}^{ P }\Vert \ge p_{0}^* x_0^{ P }\) (recall that \(x_0\) is decreasing and \(x^{ F }\) corresponds to the point of smallest value \(x_0\le x_0^j\) for which \(\Vert \overline{p}^*\overline{\varGamma _j}^+(x_0)\Vert \ge p_{0}^* x_0\)). Property (c) is maintained at any point of the curve so it holds for \(x^{ P }\), and property (d) also holds since \(\alpha _i(x_0^{ P })\ge 0\) and \(\alpha ^*(x_0^{ P })\ge 0\). \(\square\)
Lemma 4
Suppose \(\mathcal {S}^j=1\). Let \(x^{j+1}\) and \(\mathcal {S}^{j+1}\) be the optimal solution and basis, respectively, of \({\rm{Inf}}_{{\rm{Q}}} (S^{j} \cup \{ p^{*} \} )\) obtained from Proposition 4. Then \((\mathcal {S}^{j+1}, x^{j+1})\) is a dual feasible Spair.
Lemma 5
Let \((\mathcal {S}^j, x^j)\) be a dual feasible Spair and \(p^*\in \mathcal {P}\) correspond to an infeasible constraint at \(x^j\). Suppose \(\overline{\mathcal {S}}^j\cup \{\overline{p}^*\}\) is affinely dependent and let \(p_{j_k}\in \mathcal {S}^j\) be the point corresponding to the minimizing index of (13), k. Then, \((x^j, \mathcal {S}^j\setminus \{p_{j_k}\}, p^*)\) is a Vtriple.
Proof
First note that the affine dependence assumption implies that \(\mathcal {S}^j>1\). To prove that \((x^j, \mathcal {S}^j\setminus \{p_{j_k}\}, p^*)\) is a Vtriple, we need to prove the four properties from Definition 3. Property (b) is trivial, and property (c) follows directly from \((\mathcal {S}^j, x^j)\) being a dual feasible Spair. Now, in order to prove (a), suppose, by contradiction, that \(\overline{\mathcal {S}}^j\setminus \{\overline{p}_{j_k}\}\cup \{\overline{p}^*\}\) is affinely dependent. Since \(\overline{\mathcal {S}}^j\setminus \{\overline{p}_{j_k}\}\) is affinely independent, there exists \(\beta _i\), \(i\ne k\), such that
On the other hand, \(z=\overline{p}^*\overline{p}_1+Mw=0\) since \(\overline{\mathcal {S}}^j\cup \{\overline{p}^*\}\) is affinely dependent. Thus \(\textstyle \overline{p}^* =  \sum _{i=1}^{s}{\sigma _i\overline{p}_{j_i}}\), for \(\sigma _i\), \(i=1,...,s\), as in (12). As a consequence, we have
contradicting the affine independence of \(\overline{\mathcal {S}}^j\) (note that \(\sigma _k< 0\)).
Now consider \(\rho\) as in (12). Let \(\delta =\rho \frac{\rho _k}{\sigma _k}\sigma\) and \(\theta =\frac{\rho _k}{\sigma _k}\). It is easy to see that \(\delta \ge 0\) and, in particular, \(\delta _k=0\). Since \(z=0\), property (d) now follows from:
\(\square\)
Recall that the algorithm is initialized with a dual feasible Spair. The lemmas above show that we always have a Vtriple before a curve search; and that we always have a dual feasible Spair at the beginning of a new loop iteration when an infeasible point \(p^*\) is selected. We conclude that, starting from a Vtriple \((x^j,\mathcal {S}^j,p^*)\) for which \(\left\ {\overline{p}^*\overline{x}^j}\right\ >(p_0^*x_0^j)\), one can obtain a new dual feasible Spair, \((\mathcal {S}^{j+1},{x}^{j+1})\), in \(\mathcal {S}^j\mathcal {S}^{j+1}\le n\) partial steps and one full step. This new feasible Spair is such that \(\mathcal {S}^{j+1}\subseteq \mathcal {S}^j\), and \(x^{j+1}_0<x_0^j\), since, even though the value of \(x_0\) may not change in some partial steps or in a full step, the value of \(x_0\) must decrease either in at least one of the partial steps or the full step. That is because, otherwise, we would have \(x^{j+1}=x^j\), contradicting the fact that \(p^*\) is infeasible at \(x^j\). Therefore, since the value of \(x_0\) strictly decreases at each loop iteration, the same dual feasible Spair can never reoccur. Since the number of dual feasible Spairs is finite, we conclude the statement of Theorem 2.
Rights and permissions
About this article
Cite this article
Cavaleiro, M., Alizadeh, F. A dual simplextype algorithm for the smallest enclosing ball of balls. Comput Optim Appl 79, 767–787 (2021). https://doi.org/10.1007/s10589021002836
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10589021002836