A dual Simplex-type algorithm for the smallest enclosing ball of balls and related problems
Marta Cavaleiro, Farid Alizadeh

TL;DR
This paper introduces a dual Simplex-type algorithm for finding the smallest enclosing ball of balls, extending the classical simplex method to second order cone problems and related geometric optimization tasks.
Contribution
It proposes a novel dual algorithm that generalizes the simplex method for second order cone problems, addressing the smallest enclosing ball of balls and related issues.
Findings
Algorithm effectively solves the smallest enclosing ball of balls problem
Extends simplex method to second order cone optimization
Applicable to related geometric problems
Abstract
We define the notion of infimum of a set of points with respect to the second order cone. This problem can be showed to be equivalent to the minimum ball containing a set of balls problem and to the maximum intersecting ball problem, as well as others. We present a dual algorithm which can be viewed as an extension of the simplex method to solve this problem.
| Problems | Our dual algorithm | Gurobi (dual) | Gurobi (primal) | |||||
| S-pair | Time | Time | Time | |||||
| Iters | updates | (secs) | Iters | (secs) | Iters | (secs) | ||
| 6.44 | 6.68 | 0.008 | 9.72 | 0.008 | 8.56 | 0.228 | ||
| 8.12 | 8.76 | 0.010 | 11.56 | 0.094 | 9.16 | 1.627 | ||
| 8.12 | 9.24 | 0.027 | 12.44 | 1.073 | out of memory | |||
| 15.56 | 15.56 | 0.031 | 9.56 | 0.127 | 8.88 | 7.455 | ||
| 20.96 | 21.16 | 0.145 | could not solve† | 9.36 | 87.601 | |||
| 25.28 | 25.72 | 0.375 | could not solve† | out of memory | ||||
| 29.24 | 29.88 | 3.341 | could not solve† | out of memory | ||||
| 77.32 | 77.44 | 8.641 | could not solve† | out of memory | ||||
| 87.92 | 88.16 | 154.613 | could not solve† | out of memory | ||||
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Optimization Algorithms Research · Computational Geometry and Mesh Generation · Advanced Numerical Analysis Techniques
\newdate
date04122018
A dual Simplex-type algorithm for the smallest enclosing ball of balls and related problems
Marta Cavaleiro
Rutgers University, MSIS Department & RUTCOR, 100 Rockafellar Rd, Piscataway, NJ 08854. [email protected]
Farid Alizadeh
Rutgers University, MSIS Department & RUTCOR, 100 Rockafellar Rd, Piscataway, NJ 08854. [email protected]
(\displaydatedate)
Abstract
We define the notion of infimum of a set of points with respect to the second order cone. This problem can be showed to be equivalent to the minimum ball containing a set of balls problem and to the maximum intersecting ball problem, as well as others. We present a dual algorithm which can be viewed as an extension of the simplex method to solve this problem.
Keywords: Smallest enclosing ball, simplex-type methods, second order cone programming, computational geometry
1 Introduction
Let denote the second-order cone, . Given a set of points , we consider the problem defined as follows
[TABLE]
with . We define this problem as the infimum of with respect to (given its resemblance with the problem of finding the minimum number of a set of numbers with a linear program). Throughout the article we shall refer to this problem as , or simply (P).
Denote by the optimal solution to (P). One possible geometric interpretation of the problem in question is to find as “high” as possible (when height is defined as the value of ) such that covers all points of set , in the sense that they either fall inside or on the boundary of (Figure 1). But more interestingly, it is possible to prove that (P) is in fact equivalent to several relevant problems in computational geometry, such as the smallest enclosing ball of balls or the largest intersecting ball.
Problem (P) is a Second-Order Cone Program (SOCP) and so it can be solved in polynomial time using interior point methods, such as the primal-dual path following algorithms [20, 21].These algorithms generate interior-points for the primal and dual problems that follow the so-called central path, which converges to a primal-dual optimal solution in the limit. Each iteration, in terms of computational work, basically consists on the solution of a linear system to compute the search direction resulting from the application of Newton’s method to the KKT conditions of a modified (P) with a logarithmic barrier function. The matrix in question is positive definite (see e.g. [1]), and usually its Cholesky factorization is used. In terms of our problem, the matrix has size (note that the standard form cone LP is the dual), and would take basic arithmetic operations to be computed [25] resulting in a iteration with computational complexity. Therefore, computing a solution with an error with an interior-point method would have an overall complexity of , though in practice it has been observed that the number of iterations is often very small and independent on . Interior point methods have been used to solve (P) in particular in [14, 25]. Specifically, in [25] an algorithm that computes a -approximation in time is presented.
In this paper we introduce a dual algorithm for (P) that mechanically is analogous to the Simplex method for Linear Programming. Each (major) iteration of our algorithm starts with a primal solution corresponding to a dual feasible basic solution, but then, instead of a line search, our algorithm will perform a sequence of exact curve searches until it arrives to a new dual feasible basic solution with a better objective function value. We will define the notion of basis as well as dual feasible basic solution applied to our problem, which we will rename as support set and dual feasible S-pair, respectively. Mechanically speaking, our algorithm shares similarities with the dual active set algorithm for strictly convex QPs by Goldfarb and Idnani in [10], and with the work of Dearing and Zeck who proposed a dual simplex method for the minimum enclosing ball of points in [5].
Besides providing an exact solution, one advantage that a dual simplex algorithm has over interior point methods is that, after solving the problem, if it suffers small changes (e.g. adding an extra constraint), the dual simplex method will usually require a small number of iterations to calculate the new solution when it starts with the original solution. Another advantage of simplex-type algorithms in general is that they generate basic solutions. For instance in the case of the minimum enclosing ball of balls (and in particular of points too), that will be able to tell us which input balls (points) determine the smallest enclosing ball. On the other hand, we do not have any overall polynomial complexity guarantees for the algorithm.
The paper is organized as follows. In section 2 we show that problem (P) is equivalent to relevant problems in computational geometry involving hyperspheres. Section 3 presents important theoretical background to the algorithm, such as duality results and the definition of support set. The dual simplex algorithm for (P) is then introduced in section 4. We then briefly explain the implementation details in section 5 and show some computational results in section 6.
2 Equivalent geometric problems
We now show that problem (P) is equivalent to several relevant problems in computational geometry such as the smallest enclosing ball of balls. For what follows, denote by a ball with the Euclidean norm with center at and radius .
The smallest enclosing ball problem. The classical and well studied problem of enclosing a set of Euclidean balls with an Euclidean ball of smallest radius can be reduced to (P) as a consequence of the fact that if and only if . Thus, the problem of enclosing a set of balls , with a ball of minimum radius can be solved by (P) considering . The optimal ball will then be given by the center and radius . When for all , the problem reduces to the smallest enclosing ball of points. Figure 2 illustrates this equivalence: the minimum enclosing ball of set is the intersection of the cone with the plane .
The smallest enclosing ball of balls, and in particular of points, is a classical problem in computational geometry. This problem has been extensively studied, specially from a combinatorial point of view, in particular in the LP-type framework, see e.g. [6, 8, 16, 17, 23]. In particular, the minimum enclosing ball of points can easily be converted in a Quadratic Program (QP) and solved using off-the-shelf QP solvers. Gärtner and Schönherr [9] developed a generalization of the simplex method for QP with the goal of targeting geometric QPs, with one of the main applications being the MB problem, while later, Fischer and Gärtner [8] proposed an algorithm with a pivoting scheme resembling the simplex method for LP based on previous ideas from [12]. Using related ideas, Dearing and Zeck [5] developed a dual algorithm for the MB problem. This algorithm was further improved in [4]. Several approximation algorithms have also been developed focusing on finding an -core set, [3], that is a subset of that has the property that the smallest ball containing once expanded by covers . A surprising fact is the existence of an -core set of size at most , independent of the dimension , for any point set , [14, 2]. Several algorithms focused on finding -core sets have been proposed [2, 3, 14, 15, 22, 24].
The smallest intersecting ball and the largest enclosed ball problems. Consider now the smallest intersecting ball problem of finding the Euclidean ball with smallest radius that intersects all balls , . This problem also reduces to (P) given that if and only if . Thus, considering in (P), the smallest ball that intersects all balls has center and radius . Figure 3 illustrates the equivalence. Balls , , may all intersect, and so the smallest intersecting ball could be considered any point in the intersection. In such case, the smallest intersecting ball problem then looses its interest. In fact, when all balls intersect, the solution is such that . This solution however is not meaningless, in fact, it is not difficult to see that, when , ball is the largest radius ball that is enclosed in the intersection of the balls. We shall refer to this problem as the largest enclosed ball problem (see Figure 4). For previous work on this problem see [18, 19] and the references therein.
The smallest intersecting and enclosed ball problem. From the previous two sections, we conclude that the problem of finding a ball with smallest radius that simultaneously encloses balls , , and intersects balls , , can be solved by considering . The optimal ball will then have center and radius .
3 Preliminaries
Before we proceed, let us introduce/review some notation.
[TABLE]
3.1 Duality and optimality conditions
It is easy to see that the solution to (P) always exists and that it is unique. Moreover, it is possible to prove the following:
Lemma 1**.**
The solution to is , for some , if and only if for all and .
The dual problem of is
[TABLE]
The solution to (D) may not be unique.
Lemma 2**.**
Both primal problem (P) and dual problem (D) are strictly feasible; i.e. there exists a primal-feasible vector such that for all , and there exist dual-feasible such that for all .
Since both primal and dual problems are strictly feasible, the duality gap is zero, that is, strong duality holds and the Karush-Kuhn-Tucker conditions are also sufficient [1, p. 25], as Thoerem 3 states.
Theorem 3** (Optimality conditions).**
Let and , be any points in . The pair is primal-dual optimal if and only if
- •
primal feasibility: ;
- •
dual feasibility: and ;
- •
complementary slackness: .
The complementary slackness conditions imply
- •
if then (which can happen for a single , and in that case and for all );
- •
if then ;
- •
if and then
[TABLE]
A consequence of Theorem 3 is the following characterization of optimality:
Theorem 4**.**
* is the optimal solution to problem (P) if and only if for all , and*
[TABLE]
Proof.
The theorem follows trivially from the optimality conditions in the case when for some . Consider then, that is not the case.
First, consider is optimal. Let , and , be an optimal dual solution. From complementary slackness and dual feasibility we conclude
[TABLE]
since for . From the previous equation we have
[TABLE]
Since there must be at least one , and implies for all . Because we conclude that (2) holds.
Conversely, suppose we have that is primal feasible and such that satisfies (2). Then
[TABLE]
We will now build a dual solution that is feasible and together with satisfy complementary slackness. Consider , , such that
[TABLE]
Equations (3) together with give the following linear systems of equations
[TABLE]
with and . The last equation implies
[TABLE]
[TABLE]
Therefore
[TABLE]
that is,
[TABLE]
We have that for . Setting for , and considering
[TABLE]
for all , we have that is feasible for the dual problem (D). Since is primal feasible and for , we have that, together with , complementary slackness is satisfied, thus is optimal for (P). ∎
We now present two insightful conclusions from the proof of Theorem 4.
Observation 5*.*
The optimal solution to (P) is such that
[TABLE]
Note that cannot be replaced by (when we have ).
Another conclusion from Theorem 4, which will be at the core of our algorithm, is the following corollary.
Corollary 6**.**
Consider , not necessarily primal feasible, that satisfies
[TABLE]
Let be the coefficients of the affine combination. There exists a dual solution given by
[TABLE]
[TABLE]
that satisfies the dual constraint , and, together with , the complementary slackness conditions.
Note that, unless is affinely independent, the coefficients of the affine combination are not unique and therefore may correspond to more than one such dual solution. If, additionally, , then for all , and so corresponds to a dual feasible solution.
Finally, we can use the result from Theorem 4 to easily calculate algebraically the solution to when only has two points.
Theorem 7**.**
The solution to is given by
[TABLE]
3.2 The definition of support set and S-pair
We now define support set for the problem the same way a basis is defined for an LP-type problem [7].
Definition 8** (Support set).**
A subset is called a support set if no proper subset of is such that . A subset is said to be an optimal support set if is a support set and .
Note that an optimal support set may not be unique.
Definition 9** (Dual feasible S-pair).**
Let and a vector. We say is a dual feasible S-pair if
- (a)
the points of lie on the boundary of , that is,
[TABLE] 2. (b)
; 3. (c)
is affinely independent.
Comparing with LP, support set is analogous to the definition of basis, and dual feasible S-pair to the definition of dual basic feasible solution.
Using Theorem 4, it is now possible to prove the following equivalence.
Theorem 10**.**
* is a dual feasible S-pair iff is a support set and is the solution to .*
As a consequence of the previous theorem, a support set has at least point and at most points. This is, in fact, a well known result: the minimum enclosing ball of balls in is defined by at most balls. Another consequence, is the fact that if is a dual feasible S-pair and is primal feasible, then solves .
Finally, Theorem 11 is a direct consequence of the definition of support set.
Theorem 11**.**
Let be a support set. If a point is infeasible to , then belongs to an optimal support set for problem .
4 Algorithm description
We now outline the basic framework of the algorithm:
Initialization:
Suppose a dual feasible S-pair , , is given.
Loop:
For , do:
- (a)
If is primal feasible, stop - is the optimal solution of (P). 2. (b)
Else, get a corresponding to a chosen violated constraint. 3. (c)
Obtain a new dual feasible S-pair , for and ;
Set .
Note that, as an initial solution, one can simply pick any point , and consider the dual feasible S-pair .
The core of the algorithm is step (c) which will consist on a sequence of curve searches that keep dual feasibility. Assume, for now, that is affinely independent. Since, at each iteration , we start with a dual feasible S-pair , the set of constraints associated with are active at . As we shall see, the set of points that correspond to dual feasible solutions and that keep those constraints active define a curve (see section 4.1). A curve search basically consists on the following problem: starting at , we “move” on the curve in the direction of decrease of until either dual feasibility is lost or becomes feasible, whichever happens first. As we will see, we will be able to calculate exactly the points where dual feasibility is lost and where becomes feasible, so the curve search will be exact. This then boils down to calculating what we will define as the partial step and the full step:
Partial step: the maximum step on the curve without violating dual feasibility. The point corresponding to that step, which we will denote by , is the first point on the curve where one of the dual variables, which vary non-linearly as we move on the curve, becomes zero.
Full step: the minimum step on the curve such that the constraint corresponding to is feasible, that is, when it becomes active. When it exists, we denote that point by .
If the full step happens before the partial step, then corresponds to a dual feasible variable and so it is the optimal solution to the subproblem . In this case, a major iteration is complete, and we go back to Step (a) after setting . Otherwise, if the partial step happens first, then the point (say ) corresponding to the dual variable that was about to become infeasible is dropped from . A new curve search starting at is then performed. Eventually, after at most curve searches where the value of either decreases or stays the same, the optimal solution of , for some , with a strictly smaller objective function is found.
A curve search is only performed whenever affinely independent. When that is not the case, a point is immediately dropped from before a curve search is done (this step can actually be seen as a partial step with zero length). Section 4.1 defines the curve and section 4.2 explains the details of the curve search.
4.1 The curve
Consider iteration . Consider
- •
, a dual feasible -pair for , with ;
- •
corresponding to an infeasible constraint at ;
- •
and .
The algorithm restricts the search for the next iterate to the set of primal solutions where dual feasibility and complementary slackness are maintained, that is
[TABLE]
while it decreases the objective function value .
In this section we shall see that in general the set of points that satisfy (7) and
[TABLE]
constitute a manifold of dimension , that is, a curve.
By squaring equations (7) it is easy to prove the following Lemma:
Lemma 12**.**
If , define
[TABLE]
Otherwise, when , , , and .
Conditions (7) are equivalent to the following conditions
[TABLE]
For the general case of , let us now define the following matrix and vectors
[TABLE]
Matrix is the Moore-Penrose inverse, or pseudo-inverse, of . Since is full column rank, is a left-inverse (). When , simply consider
[TABLE]
Theorem 13**.**
Conditions (7) and (9) define points such that
[TABLE]
for , , and and such that
[TABLE]
Proof.
From (9) we know that there exist such that
[TABLE]
that is,
[TABLE]
with the vector with . Substituting in (10a), we have
[TABLE]
which yields
[TABLE]
with , , and as defined above. Combining (13) and (14) we obtain (11). Finally, by plugging (11) in (10b) we obtain (12). ∎
The curve: the affinely independent case
When is affinely independent then we always have , thus the quadratic equation (12) can be solved for , the coefficient of the affine combination associated with , obtaining
[TABLE]
We then get the points that satisfy (7,9) as a function of a single variable , thus defining a curve . This is shown by Corollary 14.
Corollary 14**.**
Consider affinely independent. Then, conditions (7,9) define a curve parameterized by
[TABLE]
such that
[TABLE]
Geometrically, the curve is either a hyperbola (Figure 5a) or a degenerate hyperbola, see Figure 5b). The curve is also symmetric with respect to a reflection through the hyperplane and intersects the boundary of at two points (one of them in ).
When we are interested in the part of the curve that corresponds to a dual feasible solution, we need all coefficients of the affine combination to be non-negative. Therefore the portion of the curve we are interested on corresponds to , that is
[TABLE]
Corollary 15 is a direct consequence of Theorem 13.
Corollary 15**.**
Consider affinely independent. The points that satisfy (7,9) and for which can be written as an affine combination
[TABLE]
for , such that
[TABLE]
with a vector with entries all , and the vector with .
Using the formulas from Corollary 6, it is now possible to write explicitly the dual variables as functions of corresponding to each point on the curve.
Case when is affinely dependent
When is affinely dependent, the linear system (10a) together with condition (9) define an affine space of dimension , that is, a line, which intersects the manifold defined by (10b-10c), on a single point, . That is because satisfies both (7) and if and only if is the solution to , which is unique.
Theorem 16**.**
If is affinely dependent then conditions (7,9) have as solution the single point that corresponds to a dual feasible solution.
When is affinely dependent, Theorem 13 still holds with . In particular (13) also still holds. But in this case , , and cannot be written as functions of as in Corollary 15, but they can be written instead in terms of . Since, in this case, for any value of , from (14) we have
[TABLE]
4.2 The curve search
At the beginning of a curve search step, let be the support set and the current iterate. If we are starting a major iteration (we come from step (b)) then is a dual feasible S-pair, otherwise, if we come from a previous curve search, it is not. Regardless of the case, at the beginning of a curve search we always have the following
- •
is affinely independent;
- •
.
This fact will be proved in section 4.4.
The curve search consists on, starting at , moving on the curve defined by in the direction of decrease of , until either dual feasibility is lost or the violated constraint becomes feasible. Using the conclusions from the previous section, that corresponds to solving the following problem
[TABLE]
Note that since we know that , for all , and .
Therefore, the solution to the problem above, is always smaller or equal to which always satisfies the last inequality.
Unless stated otherwise, for the remainder of this section, we shall consider and affinely independent.
The partial step
The partial step consists on finding the point corresponding to the maximum step on the curve that can be made without losing dual feasibility. When is affinely independent, Corollary 15 describes the dual variables as we move on the curve. Therefore, the point where dual feasibility is lost corresponds to the value of that solves
[TABLE]
Note that, if we consider the definitions of , given by (17), the constraint is already implied. The solution to (19) is then found by simply solving the equations (17b-17c) subject to the inequality and picking the largest of the solutions. These are radical equations that can be easily solved by isolating the square root term in one side, squaring both sides, solving the squared equation, and finally discarding any extraneous solutions. Note that, for some the corresponding equation may not have a solution, since the curve may not intersect the supporting hyperplane of the corresponding facet of .
The partial step procedure is summarized in Algorithm 1. Note that this procedure will only be done when , as we shall see ahead.
The full step
The full step procedure finds the point corresponding to the minimum step on the curve for which is feasible, that is, the first point on the curve where the primal constraint corresponding to is feasible is active:
[TABLE]
The system of equations (10a,10b,20) is equivalent to the system of equations (10a,10b,21), with (21) being
[TABLE]
such that
[TABLE]
and for satisfying (10c) and . Therefore, the full step consists on solving
[TABLE]
Note that the solution to (22) to may not exist. It is easy to see that equations (7,9) together with (20) seek the position of the vertex of a second-order cone that has points on its boundary, which is not guaranteed to exist. Additionally, such point may not be unique.
To solve (22), we could plug in (20), and solve for . However we realized this approach would result in rather intricate calculations involving square roots. So, instead, we go back to the results of Lemma 12 and Theorem 13 and proceed as we explain next. We start by plugging (11) in (21), and solve for . We then obtain in terms of :
[TABLE]
Now, we could solve (12) for . However, the following is easier: we plug (23) back in (11), which now allows to be written solely as a linear function of simply as
[TABLE]
with
[TABLE]
and we solve (10b). This results in a much simpler quadratic equation on :
[TABLE]
Note that, in this process, we never imposed that . If the solution(s) to (24) are real, we only keep the one(s) that satisfy both
[TABLE]
for given by (23). If there are more than one such solution, we pick the one with the maximum value of (the one that “occurs first” as we move the curve), which will become , the solution of (22). If we are left with no solutions or the solutions were not real, then, as explained previously, that means that such point does not exist. In this case, we shall consider . The details of this procedure are summarized in Algorithm 2.
Taking a step
If , then the becomes feasible while all dual variables associated with are feasible too. That implies that is the solution to . The algorithm now starts a new major iteration with a dual feasible S-pair .
On the other hand, if , then a dual variable became [math] before was primal feasible. Geometrically, that means the curve hits a facet of before hitting the translated cone . The point that results from applying (26) is an opposite point to that hit facet. When this happens, is dropped from : , and the algorithm then performs a new curve search with the new starting at . It may happen that there may be more than one dual variable that became [math] simultaneously, that is, at line 6 of Algorithm 1, belongs to more than one . When that happens, after dropping one of such points at the first curve search, the next curve search will consist on a partial step with zero length, that is, the objective function value will be maintained, and a point corresponding to one of those dual variables that are [math] will be picked to be removed from the support set. This is done as many times as necessary.
4.2.1 is affinely dependent
When is affinely dependent, we have seen that conditions (7,9) do not define a curve. That means, a movement in the primal space is not possible. However, it is possible to move in the dual space to different dual solutions corresponding to the same . Once one the dual variables becomes [math], we drop that point from , fixing the issue of the affine dependence. In order to do that, we will solve the following problem
[TABLE]
for defined as in (18). This problem finds an affine combination of where and for some . Problem (25) can easily be solved using a minimum ratio rule, see Algorithm 3.
Let be the point resulting from (26). In section 4.4 it will be proved that is affinely independent, and so, a curve search can then be performed.
4.2.2 The special case when is the solution and the relation to the case
Note that the curve search always assumes that the solution to will satisfy (7) for a subset of . But that is not the case when happens to be the solution. In fact, as we show next, this case fails to be identified by the curve search procedure.
Consider that is the solution to . After a series of partial steps where a point from is dropped each time, the algorithm finally performs a curve search with , in which, the full step essentially consists on solving the following system of equations
[TABLE]
When is the solution to , the solution to equations (27) does not exist in general (unless it happens that ), and so from the full step we would have . On the other hand, the partial step consists of solving given simply by
[TABLE]
(note that ) for . This yields
[TABLE]
The partial step in this case does not get the correct value of , which would be . That happens because, in the curve search we made the assumption that . Note that the result of the partial step is independent of whether is the solution or not.
So, when is the solution to , following the partial and full step procedures as explained before, we would have . As a consequence, a partial step would be taken, point would correctly be dropped from , but the next iterate would have the incorrect value of !
This issue conducted us to add an extra step after the Optimality Check where we check whether is the solution, that is,
[TABLE]
If is not the solution, then a curve search is performed. This not only avoids issues with the partial step when has a single point, but it also avoids potentially curve search procedures where a point would be removed from the support set in each one, only then to find out that is the solution.
This extra step does not fix the fact that, when has a single point, the partial step will not work correctly. However that will never be an issue once it is known that is not the solution, because when that is the case, at the full step we will obtain
[TABLE]
as per Theorem 7. The value of will be as in (28), and so as a consequence of the fact that
[TABLE]
Alternatively, and for the sake of simplicity, whenever one can simply use the formulas given by Theorem 7 instead of doing a curve search.
4.3 Pseudo-code
We now aggregate the results/discussion of the previous sections on Algorithm 4.
4.4 Finiteness and correctness of the algorithm
For the proof of the correctness of the algorithm presented in Algorithm 4, we will follow a similar approach as in [10]. We first introduce the following definition:
Definition 17**.**
The triple is said to be a (violated) V-triple if the following four conditions hold:
- (a)
is affinely independent, 2. (b)
, 3. (c)
, for , 4. (d)
.
We now prove a series of theorems that will culminate in the correctness of the algorithm.
Theorem 18**.**
Given a V-triple , if the solution given by the full step, , exists and is dual feasible, then it is the optimal solution to . Moreover, , and, if then is a dual feasible S-pair.
Proof.
The statement is a direct consequence of the fact that the full step finds a point such that
[TABLE]
whenever the above conditions are feasible. If, additionally, then solves as per Corollary 4. The fact that is a consequence of the full step definition.
Now assume . It is easy to see that is a dual feasible S-pair. Clearly is affinely independent. Additionally, , because otherwise there would have been a coefficient of the convex combination that would be [math], implying that , which contradicts the assumption. ∎
From Theorem 18 we conclude that, before the “Optimality Check” procedure, we always have a dual feasible S-pair . After picking a corresponding to an infeasible constraint, if is affinely independent, then we have a V-triple. Otherwise, Theorem 20, proves that Algorithm 3 returns a V-triple. Either way, the V-triple at this stage is always such that . Combined with Theorem 19, we conclude that before a curve search we always have a V-triple.
Theorem 19**.**
Suppose . Given a V-triple , the partial step returns another V-triple such that .
Proof.
We need to prove properties (a-d) from Definition 17 for . Property (a) follows from the fact that is affinely independent. Properties (c) and (d) and the fact that are a direct consequence of the partial step definition. Property (b) follows from a continuity argument since and the fact that , implying that . ∎
Theorem 20**.**
When is affinely dependent, for satisfying (26) is a V-triple.
Proof.
In order to prove that we need to prove the four properties from Definition 17. Properties (b) and (c) are trivial since is an S-pair and corresponds to a primal infeasible constraint at . Now, in order to prove (a), suppose, by contradiction, that is affinely dependent. Then, since is affinely independent, there exists , and s.t.
[TABLE]
With loss of generality consider . Since (a consequence of the affine dependence of ), we have
[TABLE]
for and for . As a consequence
[TABLE]
We have that , and note that . That is, is an affine combination of , which contradicts the assumption.
Finally, consider and . It is easy to see that and, in particular, . We now prove that , that is property (d), by observing that
[TABLE]
since . ∎
With the previous theorems, we conclude that, starting from a V-triple for which , one can obtain a dual feasible S-pair such that in at most partial steps and a full step. Moreover, , since, even though when taking a partial step or a full step the value of may be maintained, we know that the value of must decrease either in one of the partial steps taken or in the full step, because otherwise we would have that , that is, contradicting the fact that is infeasible to . Therefore, since the value of strictly decreases at each major iteration the same S-pair can never reoccur. Since the number of possible S-pairs is finite we conclude:
Theorem 21**.**
The proposed dual algorithm solves problem in a finite number of iterations.
An observation on degeneracy
It is easy to see that in a primal algorithm cycling would be a possibility. The current primal feasible solution may correspond to different support sets, that is, different dual solutions. Thus, it could happen that, after a sequence of adding/dropping points from the support set, the algorithm did not move in the primal space and ended up in a support set visited previously. That is a consequence of the lack of freedom of which point to enter the support set in the primal setting, it has to be one corresponding to a primal constraint that is active. In the dual algorithm, the equivalent situation, of when a movement is not possible because a dual variable is zero at the current iterate, is easily dealt by the algorithm by removing the point corresponding to that dual variable from (either at a partial step or when is affinely dependent). This is done as many times as the number of dual variables that are zero, after which a movement will then be possible in the next iteration. Therefore, as far as degeneracy is concerned no special procedure is required in our algorithm to prevent cycling.
5 Implementation details
The main computational work that is required in the algorithm happens before each curve search, when three linear systems need solved in order to get vectors and . These linear systems all have the same matrix . Our implementation is based on the QR factorization of matrix of size such that , where . We have that , with a orthogonal matrix and a upper triangular matrix. Let
[TABLE]
with with size and with size , and let, and a matrix. As a consequence, .
Using the QR factorization of allows the following linear systems
[TABLE]
to be reduced to two triangular linear systems, which can efficiently be computed using Back Substitution. Moreover, , and so
[TABLE]
can be obtained by solving the triangular linear system
[TABLE]
Matrix is given by the points of the support set which is updated throughout the algorithm either by adding a point or removing a point. Next we explain how to update in those circumstances.
Adding a point to . Whenever a point, is added to , we append column to matrix .
Removing a point from . Whenever a point, is removed from , there are two cases. If then we need to remove the -th column from . When , we need to remove the first column from , obtaining , and get the new by adding the rank- matrix to .
Given the above, every time needs to be updated, we can use the QR factorization of the old matrix to calculate efficiently the QR factorization of the new [11, §12.5]. This is accomplished by using Givens rotations, which, in the case when is , has computational complexity.
6 Computational Results
We have implemented our algorithm in MATLAB as explained in Section 5 choosing the most infeasible point at each iteration. We also compared it with solving both the primal (P) and dual (D) problems with the interior point method solver of Gurobi [13] (version 8.0.0) using its MATLAB interface. All Gurobi parameters were kept at their default values. Our experiments were conducted using MATLAB R2016a (version 9.0) on a Mac with an Intel Core i5 1.6 GHz processor, with 8GB RAM, running Mac OS X version 10.11.6. The results are shown in Table 1.
One reason for the good performance of the dual algorithm is that it does not add many points to the support set that are not in the final support set. This can be seen by the fact that the number of iterations (number of points added to the support set) is very close to the number of dual S-pair updates (number of curve searches performed).
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] F. Alizadeh and D. Goldfarb , Second-order cone programming , Mathematical Programming, 95 (2003), pp. 3–51.
- 2[2] M. Bâdoiu and K. L. Clarkson , Smaller core-sets for balls , in Proc. 14th Annual ACM-SIAM Symp. on Discrete Algorithms, SODA ’03, Philadelphia, PA, USA, 2003, SIAM, pp. 801–802.
- 3[3] M. Bâdoiu, S. Har-Peled, and P. Indyk , Approximate clustering via core-sets , in Proc. 34th Annual ACM Symp. on Theory of Computing, STOC ’02, New York, NY, USA, 2002, ACM, pp. 250–257.
- 4[4] M. Cavaleiro and F. Alizadeh , A faster dual algorithm for the euclidean minimum covering ball problem , Ann. Oper. Res., to appear.
- 5[5] P. Dearing and C. R. Zeck , A dual algorithm for the minimum covering ball problem in ℝ n superscript ℝ 𝑛 \mathbb{R}^{n} , Oper. Res. Lett., 37 (2009), pp. 171–175.
- 6[6] M. Dyer , A class of convex programs with applications to computational geometry , in Proc. of the Eighth Annual Symp. on Computational Geometry, SCG ’92, New York, NY, USA, 1992, ACM, pp. 9–15.
- 7[7] M. Dyer, N. Megiddo, and E. Welzl , Linear programming , Chapman and Hall/CRC, Boca Raton, FL, 2nd ed., 2004, ch. 45.
- 8[8] K. Fischer and B. Gärtner , The smallest enclosing ball of balls: Combinatorial structure and algorithms , Internat. J. Comput. Geom. Appl., 14 (2004), pp. 341–387.
