Next Article in Journal
Deep Machine Learning of MobileNet, Efficient, and Inception Models
Previous Article in Journal
Improved Decentralized Fractional-Order Control of Higher-Order Systems Using Modified Flower Pollination Optimization
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Closest Farthest Widest

Departments of Computational Medicine, Human Genetics, and Statistics, University of California, Los Angeles, CA 90095, USA
Algorithms 2024, 17(3), 95; https://doi.org/10.3390/a17030095
Submission received: 6 January 2024 / Revised: 19 February 2024 / Accepted: 19 February 2024 / Published: 22 February 2024

Abstract

:
The current paper proposes and tests algorithms for finding the diameter of a compact convex set and the farthest point in the set to another point. For these two nonconvex problems, I construct Frank–Wolfe and projected gradient ascent algorithms. Although these algorithms are guaranteed to go uphill, they can become trapped by local maxima. To avoid this defect, I investigate a homotopy method that gradually deforms a ball into the target set. Motivated by the Frank–Wolfe algorithm, I also find the support function of the intersection of a convex cone and a ball centered at the origin and elaborate a known bisection algorithm for calculating the support function of a convex sublevel set. The Frank–Wolfe and projected gradient algorithms are tested on five compact convex sets: (a) the box whose coordinates range between −1 and 1, (b) the intersection of the unit ball and the non-negative orthant, (c) the probability simplex, (d) the Manhattan-norm unit ball, and (e) a sublevel set of the elastic net penalty. Frank–Wolfe and projected gradient ascent are about equally fast on these test problems. Ignoring homotopy, the Frank–Wolfe algorithm is more reliable. However, homotopy allows projected gradient ascent to recover from its failures.

1. Introduction

Let S be a compact convex set and p any external or internal point. This paper investigates algorithms for computing the two functions far S ( p ) = max x S x p and diam ( S ) = max ( x , y ) S × S x y . The first is the farthest distance from p to x S , and the second is the diameter of S. Both objective functions are convex and Lipschitz under the Euclidean norm, the first with constant 1 and the second with constant 2. Furthermore, if S is merely bounded, and conv ( S ) denotes its closed convex hull, and ext ( S ) denotes the extreme points of conv ( S ) , then
far S ( p ) = far conv ( S ) ( p )   =   far ext ( S ) ( p ) diam ( S ) = diam [ conv ( S ) ]   =   diam [ ext ( S ) × ext ( S ) ] .
The fact that conv ( S ) is compact is crucial in the reaching these conclusions. Thus, without loss of generality, we can assume that S is a compact convex set. All boundary points S are extreme points when S is strictly convex [1,2].
If S is the convex hull of a finite cloud of points { x 1 , , x m } , then far S ( p ) can be found by identifying the point x i that maximizes x i p . For a ball S and a point y S , far S ( p ) is found by projecting y onto S and then extending the line through y and its projection z to the antipodal point of z . If the set S is a Cartesian product, then calculation of far S ( p ) and diam ( S ) reduce to easy lower-dimensional problems. Many diameters are known. For a ball, ellipsoid { x : 1 2 x A x r } , rectangle [ a , b ] , probability simplex, and 1 unit ball, the diameter is, respectively, twice its radius, 8 r λ min 1 , a b , 2 , and 2, where λ min is the smallest eigenvalue of the positive definite matrix A [3].
The distance function dist ( p , S ) = min x S x p is extremely well studied [4,5,6,7]. The unique point where the minimum is attained is the projection P S ( p ) of p onto S. Many projection operators are known [4,6,7,8,9]. The web sites [10,11] provide Julia, Python, and Matlab implementations of the most commonly encountered projection operators. Projection onto a convex sublevel set S = { x : g ( x ) 0 } is often more computationally demanding than other projection problems. For the special case when the proximal operator prox λ g ( y ) = argmin x λ g ( x ) + 1 2 y x 2 is known for all λ > 0 , one can solve the projection problem by bisection [12]. Bisection also turns out to be an attractive strategy for computing far S ( p ) and diam ( S ) for sublevel sets.
The corresponding operators for far S ( p ) and diam ( S ) can be multi-valued. Finding them is more challenging because the underlying optimization problem is no longer convex. The current paper proposes two algorithms for each problem. These algorithms are not infallible. They are ascent algorithms, so they tend to find local maxima. Convex hull algorithms can be harnessed to solve the farthest and diameter problems for finite point clouds in dimensions greater than 3 [13,14]. To our knowledge, these are the only competitive algorithms in common use in higher dimensions. Hence, any progress in solving these two fundamental geometric problems should be welcome.
Unfortunately, convex hull algorithms scale poorly in high dimensions. For n points in R p , an n-vertex polytope can have as many as O ( n p 2 ) facets [15]. This translates into a worst-case computational computational complexity of O ( n p 2 ) for traditional convex hull algorithms. It is true that once the m extreme points are extracted from the convex hull, the farthest and diameter problems require computing just m and m 2 distances, respectively. In contrast, we circumvent the convex hull problem entirely and attack the farthest and diameter problems directly. Thus, we easily handle problems in dimension p = 1000 .
Given the naturalness of the farthest and diameter problems, a few comments should suffice to motivate each. The minimum enclosing ball problem reduces to find
argmin c S max x S x c = argmin c S far S ( c ) .
The solution point c is called the Chebyshev center. Article [16] explains the pertinence to statistics. As for the diameter problem, convergence estimates for the Frank–Wolfe method of optimization depend on the squared diameter of the underlying set [17,18]. In general for an L-Lipschitz function f ( x ) , the inequality | f ( x ) | | f ( y ) | + L diam ( S ) bounds objective values. Bounding objective values is crucial in deriving complexity estimates for optimization algorithms such as projected gradient descent. If instead f ( x ) possesses an L-Lipschitz gradient, then the bound
f ( x ) f ( y ) L diam ( S )
is available for proving convergence to a stationary point. The diameter of a set also plays a crucial role in estimating the concentration of probability measures [19]. Finally, let us draw attention to a theorem of Jung to the effect that the radius r of the minimum enclosing ball problem satisfies r diam ( S ) p 2 ( p + 1 ) for S R p [20].
Our algorithms are minorization–maximization (MM) algorithms [7,21]. Such algorithms depend on a surrogate function that minorizes the original objective f ( x ) around the current iterate x n in the sense of satisfying the tangency condition g ( x n x n ) = f ( x n ) and the domination condition g ( x x n ) f ( x ) for all x . The surrogate balances two goals, hugging the objective tightly and simplifying maximization. Maximizing the surrogate produces the next iterate x n + 1 and drives the objective uphill because
f ( x n + 1 ) g ( x n + 1 x n )     g ( x n x n )   =   f ( x n ) .
In minimization, the surrogate majorizes the objective and is instead minimized. The tangency condition remains the same, but now the domination condition g ( x x n ) f ( x ) is reversed. The acronym MM also applies to majorization–minimization.
The celebrated EM (expectation–maximization) principle for maximum likelihood estimation with missing data [22] is a special case of minorization–maximization. In the EM setting, Jensen’s inequality supplies the surrogate as the expectation of the complete data log-likelihood conditional on the observed data. Projected gradient descent, proximal gradient descent, and the convex–concave procedure [23] can also be viewed as MM algorithms.
The convexity of 1 2 x p 2 yields the supporting hyperplane minorization
1 2 x p 2 1 2 x n p 2 + ( x n p ) ( x x n ) .
To improve x p 2 , we take
x n + 1 argmax x S v x
for v = x n p . This is the (naive) Frank–Wolfe algorithm [17,24] with full steps operating on the support function σ S ( v ) = sup x S v x defined by S. The collection of points supp S ( v ) = argmin x S v x at which the maximum is attained constitute the support map. Let us emphasize that the Frank–Wolfe algorithm is pertinent to the maximization of any differentiable convex function f ( x ) over a compact convex set S because the supporting hyperplane minorization
f ( x ) f ( x n ) + d f ( x n ) ( x x n )
generalizes to this context. The ascent property follows immediately from this minorization and the MM principle.
The Frank–Wolfe method applies to a host of problems. For example, suppose g ( x ) maps R p into itself. Consider the problem of minimizing the loss f ( x ) = 1 2 g ( x ) 2 over a compact convex set S. The function f ( x ) has differential d f ( x ) = g ( x ) d g ( x ) and gradient f ( x ) = d g ( x ) g ( x ) . At iteration n, Frank–Wolfe decreases the linear approximation
f ( y ) f ( x n ) + g ( x n ) d g ( x n ) ( y x n )
to f ( y ) . If the support function of S is simple to compute, then Frank–Wolfe additionally needs to compute just a single matrix times vector product d g ( x ) g ( x ) per iteration. The projection operator P S ( x ) is never invoked in updating x . In this minimization example, the MM principle is no longer operative, so a more sophisticated choice of step length is advisable. The problem of finding a root of g ( x ) = 0 on S also succumbs to a conjugate gradient method [25].
There are many known examples of support functions. All are closed, convex, positively homogeneous, and satisfy σ S ( 0 ) = 0 . The support function σ S ( y ) is by definition the Fenchel conjugate sup x [ y x i S ( x ) ] of the 0 / indicator i S ( y ) of S. It is worth mentioning a few known support functions. The support function of a closed convex cone is the convex indicator of its polar cone. The support function of a polyhedral set can be found by linear programming. The support function of a union of two sets is the maximum of the two support functions. The support function of a Minkowski sum is the sum of the two support functions. The support function of the unit ball of a norm is the dual norm. The support function of a Cartesian product is the sum of the support functions of the two product sets.
The Frank–Wolfe version of the diameter problem exploits the two supporting hyperplane minorizations
x y 2 x n y n 2 + 2 ( x n y n ) ( x x n ) x y 2 x n y n 2 + 2 ( y n x n ) ( y y n ) .
Adding these and dividing by 2 yields the minorization
x y 2 1 2 x n y n 2 + ( x n y n ) ( x x n ) + 1 2 x n y n 2 + ( y n x n ) ( y y n ) = x n y n 2 + ( x n y n ) ( x y x n + y n ) .
To improve x y 2 , we take
( x n + 1 , y n + 1 ) argmax ( x , y ) S × S x n y n y n x n x y = argmax x S ( x n y n ) x × argmax y S ( y n x n ) y ,
which is a Frank–Wolfe update for the function f ( x , y ) = 1 2 x y 2 on the Cartesian product S × S .
For the sake of completeness, the Julia functions for our two Frank–Wolfe algorithms follow. The maximum number of iterations, 100, and the convergence tolerances, 10 8 and 2 × 10 8 , can be reset by the user.
function farthest(Supp::Function, x, p)
  tol = 1.0e-8
  for iter = 1:100
    xnew = Supp(x - p)
    conv = norm(xnew - x)
    x .= xnew
    if conv < tol
      break
    end
  end
  return (norm(x - p), x)
end
function widest(Supp::Function, x, y)
  tol = 2.0e-8
  for iter = 1:100
    (xnew, ynew) = (Supp(x - y), Supp(y - x))
    conv = norm(xnew - x) + norm(ynew - y)
    x .= xnew
    y .= ynew
    if conv < tol
      break
    end
  end
  return (norm(x - y), x, y)
end
Projected gradient ascent offers another avenue for solving the farthest and diameter problems. The two algorithms we later derive and apply are
x n + 1 = P S ( 2 x n p ) for ; far S ( p ) x n + 1 y n + 1 = P S ( 3 2 x n 1 2 y n ) P S ( 3 2 y n 1 2 x n ) for ; diam ( S ) .
As MM algorithms, these two algorithms are guaranteed to increase the objective function. Fortunately, projected gradient ascent does not require the objective function to be convex. Once again the Julia code is straightforward.
function farthest(Proj::Function, x, p)
  tol = 1.0e-8
  for iter = 1:100
    xnew = Proj(2x - p)
    conv = norm(xnew - x)
    x .= xnew
    if conv < tol
      break
    end
  end
  return (norm(x - p), x)
end
function widest(Proj::Function, x, y)
  tol = 2.0e-8
  for iter = 1:100
    (xnew, ynew) = (Proj(3x / 2 - y / 2), Proj(3y / 2 - x / 2))
    conv = norm(xnew - x) + norm(ynew - y)
    x .= xnew
    y .= ynew
    if conv < tol
      break
    end
  end
  return (norm(x - y), x, y)
end
The contributions of this article include (a) deriving and testing these algorithms, (b) investigating simplifications arising from symmetry, (c) describing a homotopy method for avoiding local maxima, (d) finding the support function of the intersection of a convex cone and a ball centered at the origin, and (e) elaborating a known bisection algorithm for calculating the support function of a convex sublevel set. The next section derives the projected gradient ascent algorithm and lays out our contributions to items (b) through (e). Section 3 briefly tackles convergence of the various algorithms. Section 4 describes a few numerical experiments, and Section 5 discusses overall conclusions, limitations, and new directions for research. The author’s earlier article [26] applies similar techniques to the problem of computing the Hausdorff distance between two compact convex sets
Here are the notational conventions used throughout this article. All vectors appear in boldface. All entries of the vector 0 equal 0. The   superscript indicates a vector transpose. The Euclidean norm of a vector x is denoted by x . For a smooth real-valued function f ( x ) , I write its gradient (column vector of partial derivatives) as f ( x ) and its first differential (row vector of partial derivatives) as d f ( x ) = f ( x ) . Finally, I denote the directional derivative of f ( x ) in the direction v by d v f ( x ) . When f ( x ) is differentiable, d v f ( x ) = d f ( x ) v .

2. Derivations

2.1. Projected Gradient Ascent and Homotopy

Let us first tackle the closest, farthest, and diameter problems when the projection operator P S ( p ) is available. These three problems are equivalent to minimizing the functions
c ( x ) = 1 2 x p 2 f ( x ) = 1 2 x p 2 w ( x , y ) = 1 2 x y 2
with gradients
c ( x ) = x p f ( x ) = ( x p ) w ( x , y ) = y x x y
over the sets S and S × S . One possibility for this task is projected gradient descent.
Because the Lipschitz constants of c ( x ) and f ( x ) are both 1, the projected gradient steps for the closest and farthest problems are
x n + 1 = P S [ x n L 1 c ( x n ) ] = P S ( x n x n + p ) = P S ( p ) x n + 1 = P S [ x n L 1 f ( x n ) ] = P S ( x n p + x n ) = P S ( 2 x n p ) .
As expected, the closest algorithm x n + 1 = P S ( p ) reduces to ordinary projection. The Lipschitz constant for w ( x , y ) is determined by
y x x y v u u v = 2 y x v + u 2 2 ( x u + y v ) 2 4 ( x u 2 + y v 2 ) = 2 x u y v
as 2. Consequently, the projected gradient step for the diameter problem is
x n + 1 y n + 1 = P S × S x n y n 1 2 w ( x n , y n ) = P S × S x n y n 1 2 y n x n x n y n = P S ( 3 2 x n 1 2 y n ) P S ( 3 2 y n 1 2 x n ) .
This diameter update relies on the facts that minimization of a Euclidean distance is equivalent to minimization of a squared Euclidean distance and that the squared objective splits over the x and y parameters.
The chief problem with all of the proposed algorithms is their propensity to veer toward local maxima. One remedy is good initialization. Given a point p S , a general tactic for initialization in the farthest problem is to start with the projection P S ( p ) . This defines the line segment [ p , P S ( p ) ] , which can be extended until it hits the boundary of S at a second point x 0 . Replacing P S ( p ) by x 0 produces a more distant point of S and a better starting value in the farthest problem. If S is an even set in the sense that S = S , then as discussed in Section 2.3, the second point reduces to P S ( p ) .
Beyond good initialization, it is worth considering the expensive alternative of homotopy [27] for the diameter problem. The idea is to gradually deform the unit ball B, where the diameter problem is trivial to solve, into the target set S. Thus, we follow the solution path along the family of sets t S + ( 1 t ) B from t = 0 to t = 1 . For the Frank–Wolfe method, I exploit the fact that the Minkowski convex combination t S + ( 1 t ) B has support map t supp S ( z ) + ( 1 t ) supp B ( z ) .
For projected gradient ascent, one can project points onto the Minkowski convex combination t S + ( 1 t ) B by two devices. First, it is well known that P t S ( z ) = t P S ( t 1 z ) for any t > 0 . Second, there is an effective algorithm for projecting onto a Minkowski sum A + B [28]. The idea is to alternate minimization of z a b with respect to a A and b B . The iterative scheme a n + 1 = P A ( z b n ) and b n + 1 = P B ( z a n + 1 ) is guaranteed to converge at a linear rate when either set is strongly convex. In particular, ( 1 t ) B is strongly convex. The homotopy method is motivated by the intuition that the early sets are more rounded and that the objective possesses fewer local maxima. The price for better performance is iterations within iterations and an overall slower algorithm.
The following Julia code implements the homotopy method for the diameter problem under Frank–Wolfe. The map supp S ( y ) is passed to each of the functions. The code for projected gradient ascent is similar.
function MinkowskiSupp(Supp::Function, z, t)
  return t × Supp(z) + (1 - t) × (1 / norm(z)) × z
end
function widest_homotopy(Supp::Function, n)
  x = randn(n)
  x = x /norm(x) # random point on unit sphere
  y = -x  # point on opposite side of unit sphere
  (homotopy_points, tol) = (10, 2.0e-8)
  for iter = 0:homotopy_points
    t = iter / homotopy_points
    for i = 1:100
      xnew = MinkowskiSupp(Supp, x - y, t)
      ynew = MinkowskiSupp(Supp, y - x, t)
      conv = norm(x - xnew) + norm(y - ynew)
      x .= xnew
      y .= ynew
      if conv < tol
        break
      end
    end
  end
  return (norm(x - y), x, y)
end

2.2. Supporting Points and Sublevel Sets

The set of supporting points supp S ( v ) = argmax x S v x determines the support function σ S ( v ) . Our numerical tests require knowing supp S ( v ) in some specific examples. For instance, the 1 unit ball has supp S ( v ) equal to the convex hull of the vertices ± e i where | v i | is largest. Here, e i is included when v i > 0 , and e i is included when v i < 0 . For the unit simplex, supp S ( v ) equals the convex hull of the vertices e i where v i is largest. The rectangle [ a , b ] is a Cartesian product. Hence, supp S ( v ) is also a Cartesian product. In the one-dimensional case, supp S ( v ) is a when v i < 0 , b when v i > 0 , and all of [ a , b ] when v i = 0 . For a Minkowski sum A + B , supp A + B ( v ) = supp A ( v ) + supp B ( v ) . This fact plus the identity supp t A ( v ) = t supp A ( v ) for t 0 makes it easy to carry out the homotopy method with our Frank–Wolfe algorithms.
If supp S ( v ) is a singleton, then σ S ( v ) is differentiable at v by Danskin’s theorem [7]. Conversely, if σ S ( v ) is differentiable, then supp S ( v ) is a singleton by Corollary 25.3.1 of Rockafellar [29]. Because σ S ( v ) is convex, finite, and locally Lipschits, Rademacher’s theorem [30,31] implies that it is differentiable almost everywhere. Hence, σ S ( v ) is a singleton almost everywhere.
Later, we will need supp A ( v ) for the intersection of the non-negative orthant and the ball B r of radius r around the origin. This is a special case of projection onto the intersection of an arbitrary closed convex cone K and the ball. In this general setting, w = supp K B r ( v ) = r P K ( v ) P K ( v ) when P K ( v ) 0 , and w = 0 , otherwise. To prove this assertion, it suffices to show that
d u w σ S ( v ) = v ( u w )     0
for any point u K B r . When P K ( v ) 0 , the Moreau decomposition and the Cauchy-Schwarz inequality imply that
v ( w u ) = [ P K ( v ) + P K ( v ) ] ( w u ) = r P K ( v ) P K ( v ) 2 [ P K ( v ) + P K ( v ) ] u r P K ( v ) P K ( v ) 2 P K ( v ) u r P K ( v ) r P K ( v ) = 0 ,
where K is the polar cone of K. Otherwise, P K ( v ) = 0 , and
v ( w u ) = [ P K ( v ) + P K ( v ) ] u   =   P K ( v ) u     0
by definition.
The polar cone of the non-negative orthant consists of those vectors v with v 0 . The current intersection support map can also be deduced less directly from Proposition 2.2 of paper [32]. The corresponding problem of projecting onto the intersection of a ball and cone is treated by Lange [7] and Bauschke et al. [33].
As already mentioned, the support function of a sublevel set is generally challenging to compute. As a supplement to the brief discussion in Section 6.4.2 of the survey [12], consider the Lagrangian v x + μ [ g ( x ) c ] . If g ( x ) is differentiable, then the Lagrangian satisfies the KKT stationary conditions
0 = v + μ g ( x ) 0 = g ( x ) c .
Slater’s condition postulates the existence of a point y with g ( y ) < c . Under this condition, there is μ 0 satisfying the KKT conditions. The solution is unique and can be found by bisection when v 0 and g ( x ) is not just convex but also strongly convex. If h ( u ) is the inverse function of g ( x ) , then one seeks a root of the equation ϕ ( μ ) = g [ h ( μ 1 v ) ] = c by bisection. Recall that the equation g ( x ) = y is uniquely solvable for all y when g ( x ) is strongly convex and differentiable. The function ϕ ( μ ) is strictly decreasing in μ because
ϕ ( μ ) = d g [ h ( μ 1 v ) ] d h ( μ 1 v ) ( μ 2 v ) = μ 1 v d h ( μ 1 v ) ( μ 2 v ) = μ 3 v d 2 g [ h ( μ 1 v ) ] 1 v < 0
when g ( x ) is also twice differentiable. Finally, under strong convexity, ϕ ( μ ) tends to as μ 0 , so ϕ ( μ ) as μ 0 .
As an example, consider the sublevel set { x : g ( x ) c } determined by the elastic net function g ( x ) = x 1 + ρ 2 x 2 , which is separable but not fully differentiable. There is at least a partial inverse. Because the partial derivative x i g ( x ) = sgn ( x i ) + ρ x i , the ith component of the inverse function h ( u ) should satisfy
u i = g [ h ( u ) ] i = sgn [ h ( u ) i ] + ρ h ( u ) i .
Hence, the function h ( u ) with ith component h ( u ) i = sgn ( u i ) ρ ( | u i | 1 ) + serves as a partial inverse. For v 0 and c > 0 , the function ϕ ( μ ) = g [ h ( μ 1 v ) ] is continuous, tends to 0 as μ and to as μ 0 . Hence, the equation ϕ ( μ ) = c is solvable by the intermediate value theorem.

2.3. Symmetry

Let us first consider a permutationally invariant set S. In S, we can swap coordinates and remain within S. For a support function x = supp S ( y ) , the swap criterion dictates that
y i x j + y j x i y i x i + y j x j 0 ( y i y j ) ( x i x j ) .
Thus, the components of the map x = supp S ( y ) should satisfy the inequality
( y i y j ) ( x i x j ) 0
for all i and j. In other words, the components of the output x = supp S ( y ) should be consistently ordered with the components of the input y of supp S ( y ) .
For the distance function, the swap criterion is
( y i x j ) 2 + ( y j x i ) 2 ( y i x i ) 2 + ( y j x j ) 2 0 ( y i y j ) ( x i x j ) .
Hence, the components of the output x = P S ( y ) should also be consistently ordered with the components of the input y of P S ( y ) .
For the farthest function, the swap criterion is
( y i x j ) 2 + ( y j x i ) 2 ( y i x i ) 2 + ( y j x j ) 2 0 ( y i y j ) ( x i x j ) .
Hence, the components of the map x = far S ( y ) should satisfy the inequality
( y i y j ) ( x i x j ) 0
for all i and j. In other words, the components should be reverse consistently ordered.
With each of these three functions, permutational invariance should inform our choice of algorithm initial points. Alternatively, if one opts to test the extreme points of a set S to find far S ( y ) , then most of these can be eliminated from contention by incompatibility with permutational invariance. A sublevel set { x : g ( x ) c } is permutationally invariant when g ( x ) is permutationally invariant.
Finally, let us turn to the diameter problem for even sets S = S . Choose x S farthest from the origin. The Cauchy–Schwarz inequality y x x 2 for y S implies that
y 2 2 y x 3 x 2 y x 2 4 x 2   =   ( x ) x 2 .
Thus, the diameter 2 x is achieved when x is maximal. For instance, the diameter of the elastic net sublevel set { x : x 1 + 1 2 x 2 1 } is 2 ( 3 1 ) , regardless of the dimension. The maximum value 3 1 = 0.73205 of x is achieved when all but one component of x is 0. Sometimes a translate S + b of S is even when S itself is not even. If this is the case, the diameter can be found by maximizing x + b over S. A sublevel set { x : g ( x c } is even when g ( x ) is an even function.

3. Convergence

Zangwill’s [34] theorem offers the quickest route to proving convergence of both projected gradient ascent and our simplified Frank–Wolfe algorithm. Unfortunately, Zangwill’s theorem says nothing about the rate of convergence. The theorem involves a solution set Γ S , a descent function f ( x ) , and an algorithm map M ( x ) . In our case, Γ consists of the stationary points x S where d v f ( x ) 0 for all tangent vectors v . Note that this condition is necessary but not sufficient for x to be a local minimum of f ( x ) . The algorithm map M ( x ) is said to be closed at x if whenever x n S converges to x and y n M ( x n ) converges to y , then y M ( x ) . If M ( z ) is single-valued and continuous at x , then M ( z ) is certainly closed at x . Here is Zangwill’s theorem.
Proposition 1. 
Suppose that
  • All iterates x n + 1 M ( x n ) fall in the compact set S.
  • The map M is closed at x when x Γ .
  • The function f ( x ) is continuous on S and satisfies f [ M ( x ) ] f ( x ) , with strict inequality for x Γ .
Then, the limit of any convergent sub-sequence x n m of x n belongs to Γ.
Zangwill’s theorem also applies to maximization provided that the progress condition f [ M ( x ) ] f ( x ) is replaced by f [ M ( x ) ] f ( x ) , and the stationary condition d v f ( x ) 0 is replaced by d v f ( x ) 0 .

3.1. Convergence of Frank–Wolfe

To prove that the algorithm map is closed for our version of Frank–Wolfe, suppose that d f ( x n ) y n d f ( x n ) y for every y S and that x n and y n converge to x and y . Then assuming d f ( x ) is continuous, d f ( x ) y d f ( x ) y for every y S . The ascent property is baked into Frank–Wolfe because it is a minorization–maximization algorithm. Finally, a stationary point x satisfies d f ( x ) v 0 for all tangent vectors v . The set of tangent vectors v is the closure of the set of points c ( y x ) with y S and c > 0 . This is where the convexity of S comes into play. Hence, x is a stationary point if and only if d f ( x ) x d f ( x ) y for all y S , which is equivalent to x M ( x ) . If x M ( x ) , then the objective strictly increases. Thus, Zangwill’s theorem applies to Frank–Wolfe.
These arguments shed light on the rate of convergence as measured by closeness to stationarity [24,35]. Indeed, adding the inequality
f ( x n + 1 ) f ( x n ) d f ( x n ) ( x n + 1 x n )     d f ( x n ) ( y x n )
for arbitrary y S leads by telescoping to
( n + 1 ) min 0 k n max y S d f ( x k ) ( y x k ) f ( x n + 1 ) f ( x 0 ) .
This in turn implies
min 0 k n max y S d f ( x k ) ( y x k ) 1 n + 1 [ max x S f ( x ) f ( x 0 ) ] .
Thus, the stationary condition max y S d f ( x ) ( y x ) 0 is reasonable to expect at a limit point x of Frank–Wolfe.
Mangasarian [36] demonstrates that Frank–Wolfe converges in a finite number of iterations when the objective f ( x ) is differentiable, convex, and bounded from above on a polyhedral set S. This result is more or less obvious given that the number of extreme points of S is finite. Yurtsever and Sra [37] show that the well-known convex–concave procedure (CCCP) [23] and its generalization are special cases of the Frank–Wolfe method with step-size selection. This insight quantifies the convergence rate of the CCCP.

3.2. Convergence of Projected Gradient Descent

In this scenario, let f ( x ) be the function to be minimized. Furthermore, let L be the Lipschitz constant of f ( x ) on S. Projected gradient descent minimizes the surrogate function g ( x x n ) = f ( x n ) + d f ( x n ) ( x x n ) + L 2 x x n 2 over S. The algorithm map
x n + 1 = M ( x n )   =   P S [ x n L 1 f ( x n ) ]
is single-valued and continuous. The descent condition is again automatic. Proposition 7.3.2 of [7] now shows that Zangwill’s theorem applies provided that we identify stationary points as satisfying either of the equivalent conditions M ( x ) = x or f [ M ( x ) ] = f ( x ) . These conditions are also equivalent to our postulated stationary condition because
g ( x n x n ) = f ( x n ) .
In this regard, observe that g ( x x n ) is strongly convex, so the requirement d g ( x n x n ) v 0 for all tangent vectors v is both necessary and sufficient for x n to be a global minimum of g ( x x n ) . Proposition 7.3.4 of my book [7] additionally proves that the collection of limit points of the MM sequence x n + 1 = M ( x n ) is compact and connected. Thus, when the extreme points of S are isolated, the MM sequence actually converges to one of them. Alternatively, in the setting of semi-algebraic sets and functions, Attouch et al. [38] prove full convergence using the tools of algebraic geometry.
To attack the rate of convergence of non-convex projected gradient descent, I present a simplified version of an argument featured by Beck [5]. The references [6,35,39,40,41] provide further background. Our point of departure is the observation that the stationary condition d f ( x ) ( y x ) 0 for all y S is equivalent to satisfaction of the equation x = P S [ x s f ( x ) ] for any s > 0 . The obtuse angle criterion
[ x s f ( x ) x ] ( y x ) 0
for all y S is both necessary and sufficient for x = P S [ x s f ( x ) ] . However, the obtuse angle criterion is just a disguised version of d f ( x ) ( y x ) 0 for all y S .
The quantity x n P S [ x n L 1 f ( x n ) ] = x n x n + 1 serves as a measure of how far x n is from stationarity. The obtuse angle condition implies that
[ x n L 1 f ( x n ) x n + 1 ] ( x n x n + 1 ) 0 ,
which is equivalent to
d f ( x n ) ( x n + 1 x n ) L x n x n + 1 2 .
It follows that
f ( x n + 1 ) f ( x n ) g ( x n + 1 x n ) g ( x n x n ) d g ( x n x n ) ( x n + 1 x n ) + L 2 x n + 1 x n 2 = d f ( x n ) ( x n + 1 x n ) + L 2 x n x n + 1 2 L x n + 1 x n 2 + L 2 x n x n + 1 2 .
Rearrangement of this inequality gives
x n + 1 x n 2 2 L [ f ( x n ) f ( x n + 1 ) ] .
Adding these inequalities and telescoping yield
min 0 k n x n + 1 x n 1 n + 1 0 k n x n + 1 x n 2 2 L ( n + 1 ) [ f ( x 0 ) min x S f ( x ) ] .
In other words, the convergence rate is O ( 1 n ) for the distance from stationarity.

4. Numerical Experiments

We tested the Frank–Wolfe and projected gradient ascent algorithms on five compact convex sets: (a) the box [ 1 , 1 ] = { x : x 1 } , (b) the intersection of the unit ball and the non-negative orthant, (c) the probability simplex, (d) the 1 unit ball, and (e) the sublevel set { x : x 1 + 1 2 x 2 1 } determined by the elastic net penalty. All five sets are permutationally invariant. Sets (a), (d), and (e) are even. These examples are representative, and all five exact diameters are available for comparison. Table 1 and Table 2 present our findings. The column headed “Fraction” records the fraction of the 100 trials that achieve the maximum objective. The column headed “Seconds” records cumulative execution times over 100 trials.
Homotopy offers no advantage in the farthest problem and is limited to the diameter problem. The farthest problem is initialized by p under Frank–Wolfe and by P C ( p ) under projected gradient ascent. Thus, all 100 trials are identical in each scenario. The diameter problem is initialized by two random opposing points on the unit sphere. Given the nature of the support and projection maps, all subsequent iterations fall within the set C. Both the Frank–Wolfe algorithms and the projected gradient descent algorithms perform well. They attain the same solutions, which in the diameter problems are identical to the known solution. Contrary to our expectation, projected gradient ascent is not noticeably slower than Frank–Wolfe. Homotopy over 11 intervening points rescues projected gradient descent on the diameter problem for sets (b) and (c). Homotopy is noticeably slower than the unadorned algorithms. The elastic net problem tends to take the most time owing to the inefficiency of bisection. Computation times scale well when the dimension d of the ambient space reaches 1000. All computations were carried out on a MacBook Pro with a 2.3 GHz 8-core i9 chip and 16 GB of memory. Although the algorithms are embarrassingly parallel across trials, our Julia code is completely serial.
On the basis of reliability, these problems favor Frank–Wolfe. Although Frank–Wolfe algorithms possess a theoretically faster rate of convergence than projected gradient ascent, in the empirical trials, the two methods are quite comparable in speed. The “Seconds” columns of Table 1 and Table 2 have respective means of 0.260 and 0.240 and respective medians of 0.065 and 0.038. The corresponding standard deviations 1.192 and 0.697 are relatively high, so for this and other obvious reasons, one should probably not read too much into these crude comparisons.

5. Discussion

The farthest and diameter problems are natural problems of intrinsic interest. Given their non-convexity, they have not received nearly the attention in the mathematical literature as the closest problem. Exact mathematical solutions are available in some special cases. Research on fast algorithms appears to be limited to random point clouds. Infinite sets defined by mathematical formulas have been largely ignored. The current paper partially rectifies this omission and demonstrates the value of continuous optimization techniques. The Frank–Wolfe and projected gradient ascent algorithms are relatively easy to code and extremely fast in high dimensions. Our preliminary experiments tilt toward the Frank–Wolfe algorithms as the more reliable of the two options. The full Julia code for our numerical examples appears at https://github.com/KennethLange/ClosestFarthestWidest (accessed on 19 January 2024).
Standard convergence arguments covered here guarantee that all limit points of the two algorithm classes are stationary points. I suspect, but have not proven, that full convergence to a stationary point always occurs for the Frank–Wolfe algorithms. This exercise would require a foray into the difficult terrain of real algebraic geometry [42]. In any event, convergence to a global maximum is not guaranteed. Fortunately, safeguards can be put in place to improve the chances of successful convergence. I have suggested symmetry tactics for choosing good starting points. The homotopy method capitalizes on exact solutions for the unit ball. Minkowski set rounding smooths the boundary of the target set and steers iterates in a productive direction. For semi-algebraic sets and functions, Attouch et al. [38] prove that the projected gradient algorithms always converge for objectives like ours with Lipschitz gradients. Again, convergence to a global maximum is not guaranteed.
I hope that this paper will provoke greater focus on the farthest and diameter problems. As prototype non-convex problems, they are worthy of further attention. In view of the connections to other Frank–Wolfe algorithms, I also encourage more community effort in finding and cataloging support functions σ S ( y ) and their corresponding maps supp S ( v ) . The effort put into this task so far is weaker than the effort put into devising projection maps. Once in possession of such maps, construction of fast algorithms is immensely easier. Finally, I would like to highlight the illumination that the MM principle brings to the construction of new high-dimensional optimization algorithms, including the ones considered here.

Funding

This research supported in part by USPHS grants GM141798 and GM053275.

Acknowledgments

The author gratefully acknowledges the helpful comments of Heinz Bauschke, Qiang Heng, and Joong-Ho Won.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Valentine, F.A. Convex Sets; McGraw-Hill: New York, NY, USA, 1964. [Google Scholar]
  2. Webster, R. Convexity; Oxford University Press: Oxford, UK, 1994. [Google Scholar]
  3. Pope, S.B. Algorithms for Ellipsoids; Cornell University Report No. FDA-08-01; Cornell University: Ithaca, NY, USA, 2008; pp. 1–49. [Google Scholar]
  4. Bauschke, H.H.; Combettes, P.L. Convex Analysis and Monotone Operator Theory in Hilbert Spaces, 2nd ed.; Springer: Berlin/Heidelberg, Germany, 2017. [Google Scholar]
  5. Beck, A. Introduction to Nonlinear Optimization: Theory, Algorithms, and Applications with MATLAB; SIAM: Philadelphia, PA, USA, 2014. [Google Scholar]
  6. Beck, A. First-Order Methods in Optimization; SIAM: Philadelphia, PA, USA, 2017. [Google Scholar]
  7. Lange, K. MM Optimization Algorithms; SIAM: Philadelphia, PA, USA, 2016. [Google Scholar]
  8. Combettes, C.W.; Pokutta, S. Complexity of linear minimization and projection on some sets. Oper. Res. Lett. 2021, 49, 565–571. [Google Scholar] [CrossRef]
  9. Won, J.H.; Lange, K.; Xu, J. A unified analysis of convex and non-convex _p-ball projection problems. Optim. Lett. 2023, 17, 1133–1159. [Google Scholar] [CrossRef]
  10. Stella, L.; Antonello, N.; Fält, M. ProximalOperators.jl. Available online: https://docs.juliahub.com/ProximalOperators/ez37h/0.14.2/calculus/ (accessed on 27 October 2023).
  11. Chierchia, G.; Chouzenoux, E.; Combettes, P.; Pesquet, J.C. The Proximity Operator Repository. Available online: http://proximity-operator.net/index.html (accessed on 19 January 2024).
  12. Parikh, N.; Boyd, S. Proximal algorithms. Found. Trends Optim. 2014, 1, 127–239. [Google Scholar] [CrossRef]
  13. Barber, C.B.; Dobkin, D.P.; Huhdanpaa, H. The quickhull algorithm for convex hulls. ACM Trans. Math. Softw. (TOMS) 1996, 22, 469–483. [Google Scholar] [CrossRef]
  14. de Berg, M.; Cheong, O.; van Kreveld, M.; Overmars, M. Computational Geometry: Algorithms and Applications; Spinger: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
  15. Ziegler, G.M. Lectures on Polytopes; Springer: Berlin/Heidelberg, Germany, 2012. [Google Scholar]
  16. Beck, A.; Eldar, Y.C. Regularization in regression with bounded noise: A Chebyshev center approach. SIAM J. Matrix Anal. Appl. 2007, 29, 606–625. [Google Scholar] [CrossRef]
  17. Frank, M.; Wolfe, P. An algorithm for quadratic programming. Nav. Res. Logist. Q. 1956, 3, 95–110. [Google Scholar] [CrossRef]
  18. Mu, C.; Zhang, Y.; Wright, J.; Goldfarb, D. Scalable robust matrix recovery: Frank-Wolfe meets proximal methods. SIAM J. Sci. Comput. 2016, 38, A3291–A3317. [Google Scholar] [CrossRef]
  19. Ledoux, M. The Concentration of Measure Phenomenon; American Mathematical Society: Ann Arbor, MI, USA, 2001. [Google Scholar]
  20. Rademacher, H.; Toeplitz, O. The Enjoyment of Math; Princeton University Press: Princeton, NJ, USA, 2015. [Google Scholar]
  21. Hunter, D.R.; Lange, K. A tutorial on MM algorithms. Am. Stat. 2004, 58, 30–37. [Google Scholar] [CrossRef]
  22. McLachlan, G.J.; Krishnan, T. The EM Algorithm and Extensions; John Wiley & Sons: Hoboken, NJ, USA, 2007. [Google Scholar]
  23. Yuille, A.L.; Rangarajan, A. The concave-convex procedure. Neural Comput. 2003, 15, 915–936. [Google Scholar] [CrossRef]
  24. Jaggi, M. Revisiting Frank–Wolfe: Projection-free sparse convex optimization. In Proceedings of the International Conference on Machine Learning, Atlanta, GA, USA, 17–19 June 2013; pp. 427–435. [Google Scholar]
  25. Ibrahim, A.H.; Kumam, P.; Abubakar, A.B.; Abdullahi, M.S.; Mohammad, H. A Dai-Liao-type projection method for monotone nonlinear equations and signal processing. Demonstr. Math. 2022, 55, 978–1013. [Google Scholar] [CrossRef]
  26. Lange, K. Computation of the Hausdorff Distance between Two Compact Convex Sets. Algorithms 2023, 16, 471. [Google Scholar] [CrossRef]
  27. Dunlavy, D.M.; O’Leary, D.P. Homotopy Optimization Methods for Global Optimization; Technical Report; Sandia National Laboratories (SNL): Albuquerque, NM, USA; Livermore, CA, USA, 2005.
  28. Won, J.H.; Xu, J.; Lange, K. Projection onto Minkowski sums with application to constrained learning. In Proceedings of the International Conference on Machine Learning, Long Beach, CA, USA, 9–15 June 2019; pp. 3642–3651. [Google Scholar]
  29. Rockafellar, R.T. Convex Analysis; Princeton University Press: Princeton, NJ, USA, 2015. [Google Scholar]
  30. Constantin, N.P.; Persson, L.E. Convex Functions and Their Applications: A Contemporary Approach; Springer: Berlin/Heidelberg, Germany, 2019. [Google Scholar]
  31. Nekvinda, A.; Zajíček, L. A simple proof of the Rademacher theorem. Časopis pro Pěstování Matematiky 1988, 113, 337–341. [Google Scholar] [CrossRef]
  32. Rinaldi, F.; Zeffiro, D. Avoiding bad steps in Frank-Wolfe variants. Comput. Optim. Appl. 2023, 84, 225–264. [Google Scholar] [CrossRef]
  33. Bauschke, H.H.; Bui, M.N.; Wang, X. Projecting onto the intersection of a cone and a sphere. SIAM J. Optim. 2018, 28, 2158–2188. [Google Scholar] [CrossRef]
  34. Zangwill, W.I. Nonlinear Programming: A Unified Approach; Prentice-Hall: Hoboken, NJ, USA, 1969. [Google Scholar]
  35. Lacoste-Julien, S. Convergence rate of Frank-Wolfe for non-convex objectives. arXiv 2016, arXiv:1607.00345. [Google Scholar]
  36. Mangasarian, O.L. Machine learning via polyhedral concave minimization. In Applied Mathematics and Parallel Computing: Festschrift for Klaus Ritter; Springer: Berlin/Heidelberg, Germany, 1996; pp. 175–188. [Google Scholar]
  37. Yurtsever, A.; Sra, S. CCCP is Frank–Wolfe in disguise. Adv. Neural Inf. Process. Syst. 2022, 35, 35352–35364. [Google Scholar]
  38. Attouch, H.; Bolte, J.; Svaiter, B.F. Convergence of descent methods for semi-algebraic and tame problems: Proximal algorithms, forward–backward splitting, and regularized Gauss–Seidel methods. Math. Program. 2013, 137, 91–129. [Google Scholar] [CrossRef]
  39. Bertsekas, D. Nonlinear Programming, 2nd ed.; Athena Scientific: Nashua, NH, USA, 1999. [Google Scholar]
  40. Güler, O. On the convergence of the proximal point algorithm for convex minimization. SIAM J. Control. Optim. 1991, 29, 403–419. [Google Scholar] [CrossRef]
  41. Iusem, A.N. On the convergence properties of the projected gradient method for convex optimization. Comput. Appl. Math. 2003, 22, 37–52. [Google Scholar] [CrossRef]
  42. Lange, K.; Won, J.H.; Landeros, A.; Zhou, H. Nonconvex optimization via MM algorithms: Convergence theory. arXiv 2021, arXiv:2106.02805. [Google Scholar]
Table 1. Evaluation of the Frank–Wolfe algorithms.
Table 1. Evaluation of the Frank–Wolfe algorithms.
SetDimensionTypeHomotopyFractionMaximumSeconds
box2farthestno 2.96240.13
box2widestno1.02.82840.0708
box2widestyes1.02.82840.0709
ball ∩ orthant2farthestno 2.59940.0817
ball ∩ orthant2widestno0.521.41420.0756
ball ∩ orthant2widestyes0.521.41420.0612
simplex2farthestno 2.54650.0734
simplex2widestno1.01.41420.0697
simplex2widestyes1.01.41420.0707
L1 ball2farthestno 2.54650.0754
L1 ball2widestno1.02.00.0764
L1 ball2widestyes1.02.00.0761
elastic net2farthestno 2.28830.113
elastic net2widestno1.01.46410.0818
elastic net2widestyes1.01.46410.277
box3farthestno 3.95720.0472
box3widestno1.03.46410.0458
box3widestyes1.03.46410.0651
ball ∩ orthant3farthestno 3.27910.0443
ball ∩ orthant3widestno0.781.41420.0436
ball ∩ orthant3widestyes0.781.41420.0694
simplex3farthestno 3.07270.045
simplex3widestno1.01.41420.0461
simplex3widestyes1.01.41420.0763
L1 ball3farthestno 3.07270.0439
L1 ball3widestno1.02.00.0465
L1 ball3widestyes1.02.00.0671
elastic net3farthestno 2.85090.0705
elastic net3widestno1.01.46410.0489
elastic net3widestyes1.01.46410.249
box10farthestno 5.67580.0475
box10widestno1.06.32460.0454
box10widestyes1.06.32460.0612
ball ∩ orthant10farthestno 3.60220.043
ball ∩ orthant10widestno1.01.41420.0449
ball ∩ orthant10widestyes1.01.41420.0848
simplex10farthestno 3.29370.0449
simplex10widestno1.01.41420.0442
simplex10widestyes1.01.41420.0797
L1 ball10farthestno 3.29370.0434
L1 ball10widestno1.02.00.0427
L1 ball10widestyes1.02.00.0696
elastic net10farthestno 3.10770.0496
elastic net10widestno1.01.46410.0537
elastic net10widestyes1.01.46410.328
box1000farthestno 59.610.0444
box1000widestno1.063.2460.0505
box1000widestyes1.063.2460.175
ball ∩ orthant1000farthestno 31.9620.0425
ball ∩ orthant1000widestno1.01.41420.0447
ball ∩ orthant1000widestyes1.01.41420.469
simplex1000farthestno 31.3250.0456
simplex1000widestno1.01.41420.046
simplex1000widestyes1.01.41420.548
L1 ball1000farthestno 31.3250.0427
L1 ball1000widestno1.02.00.0445
L1 ball1000widestyes1.02.00.436
elastic net1000farthestno 31.30.523
elastic net1000widestno1.01.46410.277
elastic net1000widestyes1.01.46419.21
Table 2. Evaluation of the projected gradient ascent algorithms.
Table 2. Evaluation of the projected gradient ascent algorithms.
SetDimensionTypeHomotopyFractionMaximumSeconds
box2farthestno 2.96240.802
box2widestno1.02.82840.0291
box2widestyes0.992.82840.129
ball ∩ orthant2farthestno 2.59940.128
ball ∩ orthant2widestno0.781.00.0278
ball ∩ orthant2widestyes0.511.41420.09
simplex2farthestno 2.54650.761
simplex2widestno1.01.41420.0259
simplex2widestyes0.71.41420.0906
L1 ball2farthestno 2.54650.154
L1 ball2widestno1.02.00.0273
L1 ball2widestyes0.992.00.0912
elastic net2farthestno 2.28830.159
elastic net2widestno1.01.46410.0279
elastic net2widestyes0.821.46410.112
box3farthestno 3.95720.0269
box3widestno1.03.46410.0246
box3widestyes0.993.46410.0357
ball ∩ orthant3farthestno 3.27910.0257
ball ∩ orthant3widestno0.91.00.0259
ball ∩ orthant3widestyes0.771.41420.0286
simplex3farthestno 3.07270.0248
simplex3widestno0.641.41420.0258
simplex3widestyes0.931.41420.0291
L1 ball3farthestno 3.07270.0255
L1 ball3widestno1.02.00.025
L1 ball3widestyes1.02.00.0296
elastic net3farthestno 2.85090.0574
elastic net3widestno1.01.46410.0303
elastic net3widestyes0.741.46410.0616
box10farthestno 5.67580.0283
box10widestno1.06.32460.0314
box10widestyes0.956.32460.0401
ball ∩ orthant10farthestno 3.60220.0268
ball ∩ orthant10widestno1.01.00.0279
ball ∩ orthant10widestyes1.01.41420.0396
simplex10farthestno 3.29370.0272
simplex10widestno0.081.08010.0271
simplex10widestyes0.881.41420.0327
L1 ball10farthestno 3.29370.0271
L1 ball10widestno1.02.00.0272
L1 ball10widestyes0.972.00.0363
elastic net10farthestno 3.10770.0415
elastic net10widestno1.01.46410.0289
elastic net10widestyes0.441.46410.0962
box1000farthestno 59.610.0515
box1000widestno1.063.2460.0914
box1000widestyes0.0163.0191.11
ball ∩ orthant1000farthestno 31.9620.0284
ball ∩ orthant1000widestno1.01.00.0377
ball ∩ orthant1000widestyes1.01.41420.209
simplex1000farthestno 31.3250.0466
simplex1000widestno0.021.00050.0588
simplex1000widestyes0.021.41420.632
L1 ball1000farthestno 31.3250.0435
L1 ball1000widestno1.02.00.0722
L1 ball1000widestyes0.522.00.566
elastic net1000farthestno 31.30.609
elastic net1000widestno1.01.46410.29
elastic net1000widestyes0.031.46414.2
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Lange, K. Closest Farthest Widest. Algorithms 2024, 17, 95. https://doi.org/10.3390/a17030095

AMA Style

Lange K. Closest Farthest Widest. Algorithms. 2024; 17(3):95. https://doi.org/10.3390/a17030095

Chicago/Turabian Style

Lange, Kenneth. 2024. "Closest Farthest Widest" Algorithms 17, no. 3: 95. https://doi.org/10.3390/a17030095

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop