A mixed breadth-depth first strategy for the branch and bound tree of Euclidean kcenter problems Hatem A. Fayed & Amir F. Atiya Computational Optimization and Applications An International Journal ISSN 0926-6003 Comput Optim Appl DOI 10.1007/s10589-012-9503-x 1 23 Your article is protected by copyright and all rights are held exclusively by Springer Science+Business Media, LLC. This e-offprint is for personal use only and shall not be selfarchived in electronic repositories. If you wish to self-archive your work, please use the accepted author’s version for posting to your own website or your institution’s repository. You may further deposit the accepted author’s version on a funder’s repository at a funder’s request, provided it is not made publicly available until 12 months after publication. 1 23 Author's personal copy Comput Optim Appl DOI 10.1007/s10589-012-9503-x A mixed breadth-depth first strategy for the branch and bound tree of Euclidean k-center problems Hatem A. Fayed · Amir F. Atiya Received: 13 June 2011 © Springer Science+Business Media, LLC 2012 Abstract The k-center problem arises in many applications such as facility location and data clustering. Typically, it is solved using a branch and bound tree traversed using the depth first strategy. The reason is its linear space requirement compared to the exponential space requirement of the breadth first strategy. Although the depth first strategy gains useful information fast by reaching some leaves early and therefore assists in pruning the tree, it may lead to exploring too many subtrees before reaching the optimal solution, resulting in a large search cost. To speed up the arrival to the optimal solution, a mixed breadth-depth traversing strategy is proposed. The main idea is to cycle through the nodes of the same level and recursively explore along their first promising paths until reaching their leaf nodes (solutions). Thus many solutions with diverse structures are obtained and a good upper bound of the optimal solution can be achieved by selecting the minimum among them. In addition, we employ inexpensive lower and upper bounds of the enclosing balls, and this often relieves us from calling the computationally expensive exact minimum enclosing ball algorithm. Experimental work shows that the proposed strategy is significantly faster than the naked branch and bound approach, especially as the number of centers and/or the required accuracy increases. Keywords k-Center · Minimum enclosing ball · Branch and bound · Breadth first · Depth first H.A. Fayed () · A.F. Atiya Faculty of Engineering, Department of Computer Engineering, Cairo University, Giza, Egypt e-mail: [email protected] A.F. Atiya e-mail: [email protected] Author's personal copy H.A. Fayed, A.F. Atiya 1 Introduction The k-center problem deals with covering a set of points with a predetermined number of balls such that the maximum distance between the points of each ball and its center is minimized. Specifically, it is defined as follows: Given a set of n points P in Rd and a positive integer k, it is required to cover P by k congruent balls of the smallest possible size. This problem arises in several applications, primarily in the facility location problem, where a set of warehouses are to be placed so that the maximum time to reach any location is minimized (e.g., [10]). Other applications include data clustering (see, e.g., [14, 15]), where a set of points (patterns) are grouped into similar subsets (clusters). The clustering problem has several application in the fields of data mining (see, e.g., [9, 13]), information retrieval (see, e.g., [16]), image segmentation, and image compression (see, e.g., [1]). The k-center problem, however, poses significant computational challenges. The simplest k-center problems are known to be NP-Hard, including the Euclidean kcenter problem in the plane [11, 23]. The optimal solution can be found in time O(k n ) using brute force, which is impractical, even for small k and small n [23]. Many approximation algorithms have been suggested for solving k-center problems [2, 12]. One of the fastest methods for k-center in 2 and 3 dimensions is developed in [2]. It uses a dynamic programming approach and achieves a running time that is 1−1/d ) . Later, a greedy algorithm that comupper-bounded by O(n log k) + (k/)O(k putes a 2-approximation solution was proposed [12]. In this method, at each iteration i < k, a point that is furthest away from all existing centers is set to be the new center. Another elegant solution to the k-center clustering problem was developed in [3]. This solution is based on the existence of a small subset of the points called core-sets which result in a polynomial time approximation scheme (PTAS) for fixed k but variable d for Euclidean k-center. A surprising property of the core-sets is that their sizes are independent of the dimension and the size of P [3]. However, the proposed full enumeration of all partitions of possible core-sets quickly causes non-computability in practice, even for moderate approximation errors. A first simple branch-and-bound (B&B) algorithm traversed using depth first strategy was introduced in [19], and an improved version of the approximated k-center was presented later in [20]. A similar algorithm, based on breadth first search strategy, can compute k-center in O(21/ n) time [4, 18]. Recently the computation of a lower bound at each node of the B&B tree for the general k-center problem was proposed by relaxing a mixed-integer-convexprogramming formulation [7]. The resulting bound is obtained by solving a convex problem which successfully pruned the B&B tree substantially and led to smaller number of nodes and hence saved much time in examining unnecessary nodes. However, in our proposed B&B traversing strategy, described later, we preferred to use simpler bounds specialized for the Euclidean setting for large problems to obtain a fast solution. The k-center problem is a special case of another problem called the k-clustering problem [2]. In the k-clustering problem a set of n points P in Rd are to be covered by k shapes or clusters B 1 , . . . , B k . The size of a cluster B j is defined as the maximum Euclidean distance between a fixed point cj , called the center of the cluster, and a point of B j . The size of a k-clustering B is the maximum size of a cluster in Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree B. Another related problem is the min-size k-clustering which is similar to the kclustering problem, but with the goal of minimizing the sum of cluster radii. Bilò et al. [5] show that the problem can be solved in polynomial time when the points to be clustered are located on a line. For Euclidean spaces of higher dimensions, they show that the problem is NP-Hard and present polynomial time approximation methods. Recently Lev-Tov and Peleg [21] gave a polynomial time approximation approach for the two-dimensional case with linear-cost function. In this paper, we consider the Euclidean k-center problem for fixed k, and propose a novel mixed breadth-depth traversing algorithm for the purpose of speeding up the traversing of the branch and bound tree. In the proposed traversing strategy we cycle through all nodes of the same level, but from these nodes single out the promising path, which is recursively explored until reaching the leaf node (solution). Thus, several diverse solutions and therefore tighter bounds are obtained. This leads to pruning out more branches of the tree and faster convergence. In addition, we employ lower and upper bounds based on the half-space lemma as already used in [3] which are computationally very inexpensive. They are also utilized to reduce the number of relatively expensive minimum enclosing ball algorithm calls, and hence speeding up the algorithm. Both, the novel traversing scheme and the employed bounds lead to a considerable improvement in speed. 2 Formulation of the k-center problem and its extensions Given a set of points P = {pi }, i = 1, 2, . . . , n in Rd , the problem of finding k-balls (k ≤ n) covering P can be formulated as: k 1 γ γ Min f = ρj j =1 s.t. pi − cj 22 k ≤ ρj 2 + (1 − αij )L αij = 1 (1) j =1 αij ∈ {0, 1} i = 1, 2, . . . , n j = 1, 2, . . . , k where αij = 1 indicates that point p i is enclosed by ball B j , whose center and radius are cj and ρj respectively, γ represents the required cost (γ = ∞ in case of k-center problem, γ = 1 in case of linear cost and so on), and L is a large value that can be set as: L = max pi − p j 22 i,j (2) The exhaustive search solution to this formulation necessitates exploring all possible values of α’s and for each set of values, the minimum enclosing ball (MEB) Author's personal copy H.A. Fayed, A.F. Atiya procedure is called for each group of points. The MEB procedure is defined as the problem of obtaining the center c and radius ρ of the smallest ball that covers the set of points. The above mixed integer-convex problem is known to be NP-Hard. However, one can exploit certain features of the problem in order to reduce the complexity and render it more practically from the computational point of view. First, one could avoid exploring all possible partitions by building a branch and bound tree (see next section). Second, one can use fast algorithms to compute the MEB procedure which is a central component of the k-center algorithm (see Sect. 4). Also, a central issue in the k-center problem is the so-called core-set which approximates MEB for large problems by considering only the points that are expected to affect the determination of the center and radius of the ball. These points actually lie on (or close to) the surface of the ball. Thereby, by iteratively adding the furthest non-enclosed point from the previously estimated ball to the core-set and re-estimating a new ball, we end up with a ball that encloses all the given points (see Sect. 4). This procedure produces a significant computational short-cut. A core-set is defined as follows. Definition 1 Let P be a set of points. Let CS ⊂ P and B = {B 1 , . . . , B k } define the optimal k-center balls covering CS. CS is called a core-set of P if a (1 + )-expansion of B covers P . Note that this expansion is obtained by fixing the centers of B and expanding the radii by a factor of 1 + . 3 A branch and bound approach A branch and bound algorithm was first introduced for the k-center problem by Kumar [19]. Kumar’s algorithm starts by covering one point by a ball. Then it incorporates a greedy-like strategy by covering one point at a time (the furthest violator to the set of balls as defined later). It creates a branch and bound tree, where each left node corresponds to a solution (an assignment of the points to the available balls, or rather 0-1 assignments of the αij ’s). Figure 1 illustrates a simple five-point planar k-center example. It shows the branch and bound tree, where the arrows show the order of traversing the tree. Leaf nodes mean that all points are assigned to the available balls (corresponding to a complete solution), or else the branch is not explored further (pruned out) because the solution gives worse objective function than the best solution so far. Innermost nodes correspond to partial solutions as some points are not assigned yet or are not enclosed in some ball. At each node, a branch is created either by adding the point to the core-set of one of the created balls and hence the ball is re-estimated to cover the new core-set, or by forming a new ball if the number of created balls is so far less than k. In this way, at most k branches are created. In case that the number of created balls was less than k, then the branch of forming a new ball is traversed first. Other branches are traversed in order according to the distance between the center of the ball to be modified and the considered point. This means that the closest one is explored first then the second closest and so on (this is why this procedure is considered a depth first traversing scheme). The algorithm continues until all branches are explored and finally all points are covered. Branches are not explored further if the achieved solution is worse than the best so far. The obtained Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree j Fig. 1 Branch and bound tree for Example 1. pi denotes that the point p i is added to the core-set of ball B j and hence the ball is recomputed to cover the new core-set. Dotted paths indicate nodes that are pruned out as their solutions would be larger than the solution obtained so-far f ∗ . Numbers between square brackets represent nodes’ numbers which are made by concatenating the parent node number with an index solution will then be the optimal one that leads to the minimum radius. The algorithm steps are described in Algorithm 1. Algorithm 1 Recursive Depth First (RDF) 1. f ∗ = ∞, CSj = φ, B j = MEB(CSj ), j = 1, . . . , k 2. k-center(CS,B): 3. p ∗ = the furthest violator to B 4. If p ∗ ∈ (1 + )B then 5. If (1 + ) maxi ρ(B i ) < f ∗ then f ∗ = (1 + ) maxi ρ(B i ) 6. Return CS, B 7. Else 8. Sort B in descending order according to their distances from p ∗ (and hence CS) 9. For j = 1 to k 10. If (1 + )ρ(MEB({p ∗ ∪ CSj })) > f ∗ then Continue 11. CS = CS, B = B, CSj = p ∗ ∪ CSj , B j = MEB(CSj ) 12. ρ({B i }) = maxj =1,...,k ρ({B j }), i = 1, . . . , k 13. k-center(CS ,B ) 14. End For 15. End If 16. Return the core-sets and balls that lead to the minimum (f ∗ ) obtained Input to the algorithm are a set of points P and the required accuracy measure > 0. While the output is a core-set CS ⊂ P consisting of the points selected at the nodes of the optimal solution, partitioned into k-balls {B 1 , . . . , B k } (the algorithm was proposed in [19, 20] for k-shapes in general, in this paper we focus on k-balls only). However our proposed traversing scheme can be extended to deal with Author's personal copy H.A. Fayed, A.F. Atiya other shapes as well. During the algorithm, each ball B j ∈ B is the scaled version of MEB(CSj ) such that the radius of B j , denoted by ρ(B j ), is set to maxi ρ(B i ), i = 1, . . . , k. The minimum enclosing ball of a null set is defined especially in the implementation to be a ball which does not contain any point and is infinitely far from any given point. The main loop of the algorithm begins by determining the furthest violator point, p∗ to the set of balls. It is determined as follows. For each non-enclosed point q, the minimum distance among all distances of q to the centers of the balls is determined as nnj (q) = minj q − cj 2 where cj , ρj are the center and radius of ball B j respectively. Then the one that corresponds to the maximum of these minimum distances is considered as the furthest violator, that is p ∗ = arg maxq∈P \B nnj (q) or p∗ = arg max q∈P \B minj q − cj 2 . Afterwards, branches are created such that for each branch, p ∗ is added to one of the core-sets of the current node, CSj , with precedence from the closest ball to the furthest one. For each created branch, MEB algorithm is called to replace ball B j by the new ball B j to cover p∗ ∪ CSj . Then all balls are scaled so that their radii equal to the radius of the largest ball in the new ball set (this was proposed [20] for an approximate version of k-center which approaches a good solution faster). Note that when there are more than one null sets, p ∗ is added only to one null set because there is no difference between the null sets, and adding p ∗ to any null set will yield the same optimal solution. This presented procedure continues recursively (depth first strategy) until leaf nodes are reached where the furthest violator is covered by a (1 + )-expansion of the node’s balls B (i.e. each radius is enlarged by a factor of 1 + ), denoted by (1 + )B; this actually represents an approximate solution to the problem (i.e. we stop exploring the children of this node as the optimal solution would be at most (1 + ) of the largest radius and we set this value as an approximate solution for this node). Throughout this scheme the node that results in the minimum radius is selected as the optimal solution. The detailed algorithm namely, Recursive Depth First (RDF), is given below. Example 1 Suppose that it is required to cover the set of points P = {(0, 0), (4, 0), (2, 3), (2, 0), (2, 1), (3, 0)} by k = 3 balls. The branch and bound tree for the problem is shown in Fig. 1 and the balls created at each node are shown in Figs. 2 and 3. The algorithm starts by assigning p1 to ball B 1 (node 1). Then it finds the furthest violator to B 1 which would be p2 . So we will have two branches either to assign p 2 to a new ball B 2 (node 11) or to assign it to B 1 (node 12). Exploration of node 11 is performed first because the furthest point is more likely to be covered with another ball. So at node 11, we have two balls: B 1 that covers p 1 and B 2 that covers p 2 . Now we find the furthest violator to B 1 and B 2 as explained before, which would be p 3 . So we will have three branches either to assign p 3 to a new ball B 3 (node 111), to assign it to B 1 (node 112) or to assign it to B 2 (node 113). Thus at node 111, we have three balls: B 1 that covers p 1 , B 2 that covers p 2 and B 3 that covers p3 . Then we find the furthest violator to B 1 , B 2 and B 3 , which would be p 4 . Note that p 4 is equidistant from both B 1 and B 2 and further from B 3 , so branches are created and explored in the following order: assign p 4 to a B 1 (node 1111), assign it to B 2 (node 1112) or assign it to B 3 (node 1113). So node 1111 is explored first and the MEB procedure is called to update B 1 to cover p 1 and p 4 . Therefore the new center of B 1 is (1, 0) and its radius is 1. Then the other balls are scaled correspondingly maintaining their old Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree Fig. 2 Nodes explored using depth first strategy for Example 1 Author's personal copy H.A. Fayed, A.F. Atiya Fig. 3 Nodes explored using depth first strategy for Example 1 (continued) Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree centers but setting their radii to 1 (the largest radius of the set of balls) as well (see Fig. 2d). Then we find the furthest violator to our balls, which would be p5 . Note that the closest ball to p5 is B 1 while the furthest one is B 2 . So the new branches are created in the following order: assign p5 to a B 1 (node 11111), assign it to B 3 (node 11112) or assign it to B 2 (node 11113). Exploring node 11111 first and updating B 1 to cover p 1 , p 4 and p 5 . Since all points are covered now, so we have a solution and f ∗ is set to the new radius of B 1 which would be f ∗ ≈ 1.12. Next, node 11112 is explored and B 3 is updated to cover p 3 and p 5 (the new radius ρ3 = 1). Since all points are covered now, so we have another solution and f ∗ is set to the minimum which would be the radius of the updated ball B 3 which is f ∗ = 1. Then node 11113 is explored and B 2 is updated to cover p 2 and p 5 (the new radius ρ2 ≈ 1.12). Since ρ2 > f ∗ , this solution is not better than the solution obtained before. Now we have finished traversing all children of node 1111, then we move to node 1112. At this node, B 2 is updated to cover p 2 and p 4 (the new radius ρ2 = 1). Since the new radius ρ2 = f ∗ , then there is no need to explore its children which will not lead to a better solution f ∗ , so this node can be safely pruned out without affecting the final optimal solution. We then move on to node 1113 which turned out not to lead to a better solution as well. Exploration in the same manner continues until all nodes are traversed (or pruned out). 4 The MEB problem The minimum enclosing ball that covers a set of a set of m points P in Rd , also called the 1-center problem, can be formulated in terms of the following quadratic optimization problem: Min R s.t. p i − c22 ≤ R, i = 1, 2, . . . , m (3) = r2. where R Although there are several algorithms to solve this problem such as the linear time minimum enclosing circle algorithm [22] and the efficient minimum enclosing ball in high dimension [17], we employed the predictor-corrector method [24] in conjunction with core-sets [17] because this approach led to significant speed up, especially for large data sets compared to other existing methods. 5 Proposed stacked version To avoid memory overflow due to recursion, we used a stack version of the algorithm, namely Stacked Depth First (SDF). In this algorithm, node refers to a tree node that stores the required information which is the ball set B and the core-set CS. In this implementation, tree nodes are stored/retrieved from a stack in a certain order so as the more promising solutions are tackled first. First, the root node, with no points assigned to balls, is stored in the stack (push operation). Throughout the algorithm the last node in the stack is retrieved (pop operation). Then the furthest violator point is determined as described before. A new child node is created either by adding the point to the core-set of one of the created balls and then the ball is re-estimated or Author's personal copy H.A. Fayed, A.F. Atiya by forming a new ball covering the point. Nodes are then stored in the stack in an ordered way according to the distance between the point and the candidate ball (the ball that would be enlarged to cover the point in addition to its previous core-set). That is, the node whose candidate ball is furthest to the point is stored first while the one whose candidate ball is closest to the point is stored last. In this way the node whose candidate ball is closest to the point would be traversed first. In case that the number of the created balls was less than k, the node in which one forms a new ball covering the point is stored next; this gives precedence to this node to be explored first in the next step. The algorithm proceeds until the stack becomes empty. Description of the algorithm steps is given in Algorithm 2. Algorithm 2 Stacked Depth First (SDF) 1. f ∗ = ∞, CS∗j = φ, B ∗j = MEB(CS∗j ), j = 1, . . . , k 2. root = {CS∗ , B ∗ } 3. Add root to the end of stack 4. Do 5. node = {CS, B} = last element in stack 6. p ∗ = the furthest violator to B 7. If p ∗ ∈ (1 + )B then 8. If (1 + ) maxi ρ(B i ) < f ∗ then 9. B ∗ = B, CS∗ = CS, f ∗ = (1 + ) maxi ρ(B i ) 10. End If 11. Continue 12. Else 13. Sort B in descending order according to their distances from p∗ (and hence CS) 14. For j = 1 to k 15. If (1 + )ρ(MEB({p ∗ ∪ CSj })) < f ∗ then 16. Add node to stack with the following changes: (a) B j replaced by MEB(p∗ ∪ CSj ) (b) CSj replaced by (p∗ ∪ CSj ) (c) All radii are set to the radius of the largest ball 17. End If 18. End For 19. End If 20. While stack is not empty The main loop of the algorithm examines stack and terminates if it is empty. Otherwise it retrieves the last node of stack and determines the furthest violator p ∗ as defined before. If p ∗ is covered by a (1 + )-expansion of the node’s balls B, i.e. a new approximate solution is obtained, then the best solution f ∗ is updated if the new solution is better than the best solution obtained before. On the other hand, if p ∗ is not covered by a (1 + )-expansion of B, then the balls are sorted in descending order according to the distances from their centers to p ∗ . Branches are created by Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree changing one of the balls of node by adding p ∗ to its core-set and MEB procedure is called to modify the ball (during this scheme, the radii of all balls and the function value of the branch child are set to the radius of the largest ball). A child is added to stack if its function value (the largest radius) is less than the best solution f ∗ . For early stages, when the number of balls covering points is less than k, we propose that the first branch is to cover p ∗ by a new ball. This gives the precedence of the furthest violator to be in a new ball first. In practice, this speeds up the algorithm. The algorithm continues in this manner as long as stack is not empty. 6 Lower and upper bounds We observed that most of the time elapsed in the above algorithms is due to the numerous MEB calls. We propose an approach whereby this time can be significantly reduced. This is achieved by developing two computationally inexpensive lower bounds that can be computed at each branch before calling the expensive MEB procedure. If any of these lower bounds is greater than the best solution obtained so far f ∗ , then its subtree can be safely pruned out. We also developed a computationally very simple upper bound. First this upper bound is tested. If it gives a radius that is smaller than f ∗ , then there is no need to examine the lower bounds and MEB procedure can be called directly. This is advantageous, because one of the lower bounds is computationally more expensive than this upper bound. 6.1 Lower bounds According to [3], for the Euclidean setting, any closed half-space that contains the center of the minimum enclosing ball B j of a set of points CSj must also contain at least one point from CSj that occurs on the surface of the ball. Therefore, when a ball B j is going to be modified to cover p ∗ ∪ CSj , a lower bound of the modified ball’s radius can be estimated by considering the plane perpendicular to the line joining p ∗ and the center of the ball cj . Then we construct the line joining p ∗ and one intersection point of this plane with the surface of the ball (note that the ball that is used here is the ball that is computed using MEB algorithm in an earlier step not the expanded or scaled one). See Fig. 4(a) for an illustration of this bound. This lower bound has O(d) complexity for each node. If the above lower bound is less than the best solution f ∗ and hence cannot rule out the solution branch, then another lower bound can be examined. It is given by the radius of the ball whose diameter ends are p ∗ and its furthest point in CSj (see Fig. 4(b)). This lower bound has O(d/) complexity for each node [3]. 6.2 Upper bounds To avoid extra calculations of lower bounds, a simple upper bound of the modified ball can be estimated first at each branch. If this upper bound is less than the best solution f ∗ , then there is no need to check lower bounds and call MEB procedure directly. This will provide some computational savings because the second lower Author's personal copy H.A. Fayed, A.F. Atiya Fig. 4 Lower and upper bounds for a modified ball bound is computationally more expensive than the upper bound. The proposed upper bound is the radius of the ball whose diameter ends are p ∗ and its furthest point in the unexpanded old ball (see Fig. 4(c)). This upper bound has O(d) complexity for each node and can avoid calling to the second lower bound which is more expensive. 7 Mixed breadth-depth traversing As mentioned before, invoking computationally inexpensive lower bounds can effectively save time by avoiding unnecessarily expensive MEB calls. One can note that Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree approaching the optimal solution early in the search can lead to a beneficial short-cut in the computation time. Thus, as an attempt to reduce the average time of reaching the optimal solution, a mixed breadth-depth traversing scheme is proposed. The idea of this approach is to cycle through the nodes of the same level and traverse their subtrees along the first promising path (depth first) until reaching leaf nodes (solutions). Throughout this procedure the best solution f ∗ is updated and used more effectively, along with the lower bounds to truncate futile branches. The proposed procedure is accomplished by modifying SDF algorithm to generate several stacks. At any node, branches are explored in the same way as before, however only the first generated branch is appended in the current stack, while the other branches are used to form a new stack. Exploration of a stack continues recursively until a leaf node (solution) is reached. Then we move on to explore the following stack. In this way, for nodes of the same level, paths are traversed in the following order. The first promising path of the first node, the first promising path of the second node, . . . , the first promising path of the last node, the second promising path of the first node, the second promising path of the second node, . . . , the last promising path of the last node. This is made by cycling through all generated stacks until reaching a leaf node. This process continues until all nodes in all stacks are explored and stacks become empty. The first two steps of the algorithm are the same as those of SDF. An index of the first stack used is initialized as id = 1. The main loop of the algorithm examines the cardinality of all stacks and terminates if they are all empty. If the current stack, stackid , is not empty, then the last node is retrieved and exploration of its branches recursively continues as described above. Otherwise, the current stack index, id, is set to the index of the first non-empty stack found starting from id + 1 and cycle to id − 1 and its last node is retrieved. The algorithm proceeds as before by determining the furthest violator p ∗ . If p ∗ is covered by a (1 + )-expansion of the node’s balls B, i.e. a new solution is obtained, then the best solution is updated if the new solution is better than the best solution obtained before. Whenever a leaf node (solution) is reached, we stop exploring the current stack and cycle to the next non-empty stack. In the case of no branches are created, this occurs when lower bounds truncate all created branches, the algorithm stops exploring the current stack and cycle to the next non-empty stack. The algorithm continues until all created stacks become empty. Steps of the algorithm namely, Mixed Stacked Breadth-depth First (MSBDF), is given in Algorithm 3. Example 2 To illustrate the proposed traversing scheme, assume that the branch and bound tree for a certain problem of covering a set of 4 points by k = 3 balls is shown in Fig. 5. The algorithm starts by creating a stack (stack1 ) containing one node which will assign the point p 1 to ball B 1 . Then the furthest violator is found and suppose it is p 2 . So we will have two branches: either to assign p 2 to ball B 2 or to assign it to ball B 1 . Instead of adding these branches to the same stack (stack1 ), we only append the first branch to the same stack and create a new stack (stack2 ) to store the other branch. We then continue retrieving nodes from the current stack (stack1 ) as long as we didn’t reach a leaf node (a solution). Now, at node 11, we have two balls: B 1 covering p 1 and B 2 covering p 2 . Then the furthest violator is obtained, Author's personal copy H.A. Fayed, A.F. Atiya Algorithm 3 Mixed Stacked Breadth-Depth First (MSBDF) 1. id = 1, Nstacks = 0, f ∗ = ∞, CS∗j = φ, B ∗j = MEB(CS∗j ), j = 1, . . . , k 2. root = {CS∗ , B ∗ } 3. Add root to the end of stackid 4. Do 5. If stackid is empty then id = index of the first following non-empty stack 6. node = {CS, B} = last element in stackid 7. p ∗ = the furthest violator to B 8. If p ∗ ∈ (1 + )B then 9. If (1 + ) maxi ρ(B i ) < f ∗ then 10. B ∗ = B, CS∗ = CS, f ∗ = (1 + ) maxi ρ(B i ) 11. id = index of the first following non-empty stack 12. End If 13. Continue 14. Else 15. Sort B in descending order according to their distances from p∗ (and hence CS) 16. Branches = 0 17. For j = 1 to k 18. If (1 + )ρ(MEB({p ∗ ∪ CSj })) < f ∗ then 19. Branches = Branches + 1 20. If this is the first promising path then 21. Add node to stackid with the following changes: (a) B j replaced by MEB(p ∗ ∪ CSj ) (b) CSj replaced by (p ∗ ∪ CSj ) (c) All radii are set to the radius of the largest ball 22. Else 23. Nstacks = Nstacks + 1 24. Add node to stackNstacks with the following changes: (a) B j replaced by MEB(p ∗ ∪ CSj ) (b) CSj replaced by (p ∗ ∪ CSj ) (c) All radii are set to the radius of the largest ball 25. End If 26. End If 27. End For 28. End If 29. If Branches = 0 then id = index of the first following non-empty stack 30. While stacks are not empty which is supposed to be p 3 , and new branches are created as follows: assign p 3 to a new ball B 3 , assign it to B 2 or assign it to B 1 . Only the first branch is appended to the current stack (stack1 ) while another stack (stack3 ) is created to store the other branches in a descending order based on the distance between the candidate ball (the ball to be enlarged) of the branch and the furthest violator point; i.e. that is the branch corresponding to the largest distance is appended first while the branch corresponding Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree Fig. 5 A sample of a constructed branch and bound tree to cover 4 points by k = 3 balls. Numbers between round brackets denote the order of the solutions obtained using MSBDF to the smallest distance is appended last. Exploration continues in this manner; that is at each node, only the most promising branch (either the branch corresponding to creating a new ball or the one whose candidate ball is closer to the furthest violator) is appended to the current stack and a new stack is created to store the other branches. Author's personal copy H.A. Fayed, A.F. Atiya Fig. 6 Stacks generated for the branch and bound tree in Fig. 5. Processing stack has a bold border. Leaf nodes (solutions) are shaded We keep exploring the current stack (stack1 ) until we reach a leaf node (a solution) which is Node 1111 (see Figs. 5 and 6) at iteration 4, then we move on to the next stack (stack2 ). The same procedure is applied to stack2 until we reach a leaf node which is Node 1121 at iteration 6 and so on. Note that we cycle through the end nodes of the stacks, then go back and tackle the next layer of nodes in the stacks, and so on till visiting all nodes. See Figs. 6 and 7 for illustration. Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree Fig. 7 Stacks generated for the branch and bound tree in Fig. 5 (continued). Processing stack has a bold border. Leaf nodes (solutions) are shaded 8 Experimental results The experimental work compares several variants of the k-center algorithms: SDF which is based on Kumar’s algorithm, but with the stacked implementation discussed in Sect. 5, SDFB which is SDF with lower/upper bounds and MSBDFB which is the proposed MSBDF algorithm with lower/upper bounds. The breadth first algorithm [4, 18] clustering has a running time of O(21/ n) which is impractical if < 0.01. So we did not investigate it for our data sets, because we used smaller values of and because the size of the core-sets obtained were in the range from 20 to 50. Although Brandenberg and Roth [7] proposed a lower bound that efficiently reduces the number of B&B tree nodes, we preferred to use the simple bounds presented in this Author's personal copy H.A. Fayed, A.F. Atiya Table 1 Experimental data sets Data set Dimension Number of points Cat 3 352 Shark 3 1744 Seashell 3 18033 Bunny 3 35947 Dragon 3 437645 Egypt 2 7146 USA 2 13509 Germany 2 15112 Italy 2 16862 China 2 71009 World 2 1904711 Pen1 16 779 article based on [3] for large data set to find a fast solution. Experiments include several data sets used in clustering and facility location problems. The MEB algorithm is implemented using the predictor-corrector method proposed [24] in conjunction with core-sets suggested [17]. We used MATLAB 7.1 on Windows XP with SP2 running on Pentium 2.4 GHz PC with 2 GB RAM. We used the following performance measures: 1. 2. 3. 4. f ∗ : the optimal function value (the maximum radius among all k-balls). N : the number of computed nodes. t∗ : the elapsed CPU time until reaching the optimal function value. T : the total elapsed CPU time of the algorithm. 8.1 Data sets The 3D data sets are those used in [7, 20] which can be found at http://www.ocnus. com/models/. Solutions of these problems are very useful in data mining. The 16D data set (Pen1) is the training set for digit “1” of the Pen database obtained from UCI Machine Learning Repository [6]. The 2D data sets were obtained from TSPLIB library [8, 25]. They represent cities/locations in different countries. Solutions of these problems are very useful in facility location problems where the objective is to minimize the maximum time to reach any location. Names of data sets and their corresponding dimension and number of points are shown in Table 1. 9 Discussion of the results Comprehensive results are shown in Tables 2, 3 and 4 for = 10−2 , = 10−3 and = 10−4 respectively. The effectiveness of the lower and upper bounds can be observed from the number of computed nodes of SDFB which is significantly smaller than that of SDF for all data sets. This leads to reduction in both the elapsed CPU time 8 5 6 Egypt USA 7 Egypt USA 5 6 Egypt Egypt 3 4 Dragon 5 Bunny Dragon 3 4 Bunny 5 Seashell Bunny 3 4 Seashell Seashell 7 8 Cat Cat 5 6 Cat Cat 3 4 Cat Cat k Data set 0.068 0.061 0.066 0.051 0.056 0.066 0.549 0.607 0.697 0.042 0.045 0.048 0.052 0.058 91950.863 100486.74 1722.14 1848.183 2073.792 2363.673 f∗ Table 2 Results for = 10−2 504 14576 65750 3133 152026 10328 2697 495 3650 333 447320 68570 318 232510 7646 546 1109381 367506 61819 18556 1112 33933 2738 895 216 1772 178 207514 35960 187 87987 3658 298 252421 97838 18473 5148 773 258 4856 1070 24961 2459 891 373 2383 193 45592 28868 242 76765 3688 313 108528 51401 18022 4998 926 190 86.08 3.57 71.39 55.03 2.45 40.39 5.45 1.97 8.48 0.59 3.11 88.41 15.28 857.66 10.98 2.14 29.77 5.3 1.67 0.95 130.05 16.23 161.14 1.83 106.75 1.53 136.52 12.03 150.14 161.19 11.91 1 48.75 0.88 31.53 317.53 23.38 6.75 1.67 0.48 MSBDFB 115 25.13 9 1.2 0.75 SDFB 0.75 92.3 16.02 1070.53 173.89 1.5 236.61 16.5 1.06 732.06 238.38 44.02 15.2 1.92 0.89 SDF 1853 t∗ MSBDFB SDF SDFB N T 86.09 5.22 155.66 11.84 3.56 1.02 105.38 17.94 1158.77 203.55 1.7 448.5 16.8 1.61 1107.7 379.95 65.38 17.08 2.44 0.97 SDF 55.06 4.44 84.13 7.09 2.25 0.75 100.41 17.13 925.55 175.67 1.75 311.03 12.16 1.33 468.02 180.92 35.81 10.06 1.64 0.81 SDFB 14.77 3.69 61.36 6.44 2.22 1.09 141.14 18.41 236.55 141.28 2.05 278.61 13.03 1.42 194.08 89.98 32.59 9.48 2.05 0.53 MSBDFB Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree 6 7 8 Pen1 Pen1 5 Pen1 Pen1 5 6 World World 7 8 6 China China 5 China China 7 8 Italy Italy 5 6 Italy Italy 7 8 Germany Germany 5 6 Germany Germany 7 8 USA USA k Data set Table 2 (Continued) 75.357 79.978 83.789 89.448 62.549 72.218 7900.747 9114.077 9749.977 10670.507 1880.486 1984.573 2248.179 2746.525 1551.994 1647.17 1798.07 2071.562 75836.194 79917.169 f∗ 49597 2328764 326037 314165 78985 29309 2277 755797 691460 15055 4462 320762 16695 4161 5681 583112 107108 133928 38090 8407 824 164305 188335 4198 1546 72252 4665 1251 2064 226627 1930252 936011 73131 7953 326395 8535151 233393 21566 1569651 202224 58.39 13.28 73848 212313 100623 33282 18801 5161 729 97306 2225.94 177.89 347.25 72.28 1634.45 148.97 1325.95 1796.48 22.38 1492 5076 244.13 20.39 1.75 6.11 8381.67 981.77 179.31 32.11 409.98 28686 1712 1743 2264 698007 121216 39447 7376 310556 50455 SDF MSBDFB SDF SDFB t∗ N 883.98 110.72 222.52 50.28 162.83 103.81 28.41 21.13 140.36 1184.38 145.95 920.98 734.77 38.92 15.13 15.17 4.69 4.58 6.56 1202 404.56 25.39 22.52 212.57 54.88 MSBDFB 1408.00 1280.84 1960.83 17.47 12.31 147.75 12.42 1.36 4.67 5004.66 617 122.33 23.19 225.17 32.86 SDFB T 2576.42 354.64 413.11 95.13 2075.44 362.72 2087.69 1965.77 62.55 21.31 377.53 23.73 6.89 9.53 10623.94 1221.91 331.34 35.28 1828.58 243.2 SDF 1039.05 192.27 259.84 64.66 1859.41 351.70 1954.38 2131.14 50.77 19.5 221.38 14.44 4.53 7.08 6356.22 768.53 226.61 25.55 1005.09 142.66 SDFB 326.63 166.06 55.92 29.73 1450.63 304.84 1302.2 770.64 62.98 18.75 90.61 6.45 7.08 7.59 2431.48 424.86 132.28 23.72 977.31 148.56 MSBDFB Author's personal copy H.A. Fayed, A.F. Atiya 8 5 6 Egypt USA 7 Egypt USA 5 6 Egypt Egypt 3 4 Dragon 5 Bunny Dragon 3 4 Bunny 5 Seashell Bunny 3 4 Seashell Seashell 7 8 Cat Cat 5 6 Cat Cat 3 4 Cat Cat k Data set 0.067 0.06 0.065 0.051 0.056 0.065 0.547 0.606 0.695 0.042 0.045 0.047 0.051 0.057 91341.402 100036.8 1714.429 1839.908 2060.002 2353.089 f∗ Table 3 Results for = 10−3 708 16196 205102 3293 210640 11511 7119 940 10286 996 889780 117550 903 525576 12774 816 1201821 328600 69988 59432 1171 47387 3141 2038 382 5296 540 424104 63635 607 214175 6194 447 270968 87468 21392 5632 873 1246 19699 1245 32451 2895 1918 386 3615 388 80457 52844 290 149320 5499 473 128840 60416 18894 5117 1018 311 220.11 2.5 185.5 9.16 1.44 1.23 243.22 38.53 2110.36 125.52 3.75 377.52 7.91 0.78 849.19 174.81 49.23 13.42 2.48 1.34 SDF 1981 t∗ MSBDFB SDF SDFB N 1.19 146.22 2.13 103.84 40.48 2.95 39.92 5.64 0.81 6.34 0.92 0.95 187.44 29.08 260.25 0.91 236.06 37.39 1767.42 2.16 56.55 3.28 117.84 5.52 111.63 284.19 6.42 0.72 38.95 111.47 86.31 16.27 5.72 1.67 0.69 MSBDFB 374.14 27 8.14 1.38 5.09 SDFB 1.42 2.97 251.84 5.61 211.89 13.44 8.69 1.48 250.97 39.72 2268.56 344.05 4.5 995.56 26.44 2.13 1156.03 335 72.92 18.06 SDF T 168.56 4.48 119.31 8.95 4.84 1.09 243.81 38.63 1897.14 309.3 3.97 750.16 21.42 1.98 506.53 164.75 39.66 10.97 1.72 5.19 SDFB 55 4.56 81.33 7.2 4.63 1.16 193.38 29.09 407.2 257.22 2.41 530.34 19.36 2.09 231.52 105.09 34.05 9.52 2.17 0.78 MSBDFB Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree 6 7 8 Pen1 Pen1 5 Pen1 Pen1 5 6 World World 7 8 6 China China 5 China China 7 8 Italy Italy 5 6 Italy Italy 7 8 Germany Germany 5 6 Germany Germany 7 8 USA USA k Data set Table 3 (Continued) 75.020 79.166 83.414 89.048 62.148 71.509 7886.225 9092.566 9709.513 10649.047 1863.385 1972.533 2240.114 2734.098 1546.969 1646.393 1793.488 2062.081 75567.021 79598.058 f∗ 85673 2737508 432675 328979 85435 46049 2987 1976967 1244335 24955 13422 532354 27090 12615 12086 827571 156441 147275 43333 12992 1039 430024 328708 7284 4376 127508 6928 3762 4049 650965 4274453 2726463 137375 8526 687142 18644224 454565 23546 3341705 338535 94.69 17.56 122194 233839 111536 34868 21816 6412 958 260957 2761.45 350.58 366.66 83.25 2856.86 272.14 2668.69 3283.88 24.89 4280 8725 415.81 30.03 2.92 13.03 17435.16 2881.8 576.53 23.36 555.7 42890 1834 3993 3979 1345387 422342 65222 7460 623047 74549 SDF MSBDFB SDF SDFB t∗ N 1361.19 205.11 247.11 56.00 170.16 135.41 29.22 23.77 208.80 1510.28 215.27 484.42 748.28 52.7 15.21 16.16 5.83 4.88 8.97 3566.75 1369.17 73.22 12.27 134.3 49.78 MSBDFB 2687.91 2118.89 2698.89 22.09 16.17 264.03 20.16 2.42 9.45 10426.64 1824.83 394.02 18.64 315.03 59.34 SDFB T 3150.55 486.84 432.52 107.77 3524.77 529.44 5187.39 3509.81 91.42 52.02 616.09 33.88 17.8 17.7 23088.78 3482.8 633.67 38.34 3760.88 401.41 SDF 1548.41 276.25 284.27 71.95 3225.59 434.25 4113.17 2883.92 80.22 45.86 382.73 22.63 12.94 12.91 13755 2209.83 432.52 29.55 2102.63 247.48 SDFB 340.84 177.64 56.84 33.14 1750.14 403.11 2649 1140.97 95.84 44.95 150.16 7.63 13.66 12.73 4673.95 1442.69 212.42 25.02 1948.5 223.81 MSBDFB Author's personal copy H.A. Fayed, A.F. Atiya 5 6 7 8 5 6 Egypt Egypt Egypt Egypt USA USA 5 Bunny 3 4 Bunny 4 3 Bunny Dragon 5 Seashell Dragon 3 4 8 Cat Seashell 7 Cat Seashell 5 6 Cat Cat 3 4 Cat Cat k Data set 0.067 0.06 0.065 0.051 0.056 0.065 0.547 0.605 0.694 0.042 0.044 0.047 0.051 0.057 91310.62 99991.802 1713.657 1839.08 2057.224 2352.031 f∗ Table 4 Results for = 10−4 714 206206 3323 213536 13226 7077 940 24922 1224 937870 126230 987 527826 12846 825 1230565 327858 70354 16291 1985 59587 1179 48114 3540 1983 382 10363 672 448093 68234 652 215265 6225 453 278682 88322 21553 5673 876 368 22191 1305 33044 2787 1858 386 9071 434 90838 54613 308 149880 5390 479 130920 60621 19206 5087 1123 211 217.72 2.78 124.86 11.47 1.52 1.27 520.91 47.72 2291.16 141.2 3.45 383.94 8.28 0.89 889.05 176.47 50.06 13.83 1.98 1.41 SDF MSBDFB SDF SDFB t∗ N 135.86 2.11 69.67 6.69 1 0.92 369.27 46.92 1833.58 123.78 3.42 282.58 6.78 0.73 387.16 88.31 27.23 8.33 1.56 1.38 SDFB 24.14 3.08 48.39 5.66 0.8 0.97 326.64 21.97 282.88 57.28 2.31 116.31 4.61 1.17 112.39 39.3 16.63 5.56 2.5 0.8 MSBDFB 1.5 2.5 259.2 5.97 218.75 14.95 8.16 1.5 547.38 47.98 2480.58 369.91 4.09 1008.59 27.05 2.36 1210.2 334.36 73.89 18.55 SDF T 162 4.56 119.31 8.58 4.86 1.08 552.53 47.19 1988.7 326.89 4.09 746.63 21.78 1.91 522.06 162.94 39.67 11.16 1.86 1.47 SDFB 60.59 4.7 82.16 6.97 4.5 1.11 498.3 31.52 452.75 264.2 2.55 530.45 17.81 1.95 232.7 104.61 34.47 9.45 3.09 0.84 MSBDFB Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree 6 7 8 Pen1 Pen1 5 Pen1 Pen1 5 6 World World 7 8 6 China China 5 China China 7 8 Italy Italy 5 6 Italy Italy 7 8 Germany Germany 5 6 Germany Germany 7 8 USA USA k Data set f∗ 74.986 79.131 83.376 89.008 62.120 71.413 7882.678 9082.587 9705.146 10642.815 1860.872 1970.921 2239.106 2732.816 1546.273 1645.652 1792.681 2061.153 75533.032 79566.786 Table 4 (Continued) 90108 2887553 444904 352373 86410 46271 3007 6384759 1172515 25915 14357 514546 26887 12711 12036 875990 161582 157202 44021 13079 1039 1391137 309184 7551 4555 128805 6860 3835 4025 680141 4579321 2835642 151718 8431 711633 19838696 498737 23146 3428965 355958 82.41 26.72 109147 2893.83 237258 112814 35067 22361 3214.39 358.95 436.73 92.86 248.31 2478.36 950 14425.3 6524 264801 25.23 4481 9086 433.31 31.88 3.3 9.66 18123.13 1543.64 410.42 23.34 560.8 36301 1822 4045 3941 1400799 434155 67474 7518 642666 80058 SDF MSBDFB SDF SDFB t∗ N 1537.84 242.83 292.13 63.59 2416.83 242.20 11069.28 2397.31 22.28 24.05 269.8 20.38 2.66 6.95 10624.8 948.11 283.94 17.3 317.34 50.25 SDFB 177.70 155.58 32.45 24.09 1493.52 230.45 500.13 569.92 53.78 23.85 16.63 5.09 4.77 6.72 561.91 174.06 29.66 12.44 129.45 49.7 MSBDFB T 3636.27 498.89 509.58 121.33 2986.22 496.42 17028.11 3294.44 95.08 55.17 596 34.97 18.44 18.06 25356.78 3748.19 692.11 38.36 3908.66 424.53 SDF 1725.56 320.59 335.84 82.31 2909.33 480.36 13097.55 2733.73 82.16 48.45 360.59 22.27 12.83 12.84 14865.63 2288.55 473.78 28.31 2163.02 258.72 SDFB 377.05 205.19 62.34 34.27 1726.27 467.55 2703.38 1031.53 100.11 48.02 123.86 6.91 13.28 12.48 4933.91 1484.05 221.05 25.47 2013.36 235.41 MSBDFB Author's personal copy H.A. Fayed, A.F. Atiya Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree Fig. 8 Trace of the updated optimal function value versus time for = 10−4 Author's personal copy H.A. Fayed, A.F. Atiya Fig. 9 Trace of the updated optimal function value versus time for = 10−4 Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree Fig. 10 Results of k-center for = 10−4 until reaching the optimal solution value and the total elapsed CPU time of SDFB compared to SDF. Regarding MSBDF, it becomes the indisputable best when the number of balls and/or the accuracy increases. This can be observed clearly from Author's personal copy H.A. Fayed, A.F. Atiya Figs. 8 and 9 where the updated optimal function value is traced with time throughout each algorithm. The reason for this is that lower bounds truncate many nodes and lead to a smaller number of computed nodes compared to both SDF and SDFB. This edge does not appear in many cases when the optimal solution is close to the first depth path or the number of balls is small. In these cases, cycling represents an overhead and causes extra exploration of subtrees which in turn delays reaching the optimal solution. It can be concluded that the average elapsed CPU time of MSBDF is generally better than that of SDFB. However SDFB in some problems can reach the optimal solution more rapidly. Solution of some k-center problems with = 10−4 is shown in Fig. 10. 10 Conclusions In this paper, a novel mixed breadth-depth traversing algorithm is proposed for the purpose of speeding up the traversing of the k-center branch and bound tree. In addition some computationally inexpensive lower and upper bounds are employed to reduce the number of relatively expensive MEB calls and hence speeding up the algorithm. According to the results attained on several clustering and facility location problems, we can observe that the average time to reach the optimal solution was considerably decreased especially when either the number of balls or accuracy go up. As an extension to this work, MSBDF algorithm and the employed lower and upper bounds can easily be modified to handle the general k-clustering problem. Acknowledgements experiments. We would like to thank René Brandenberg for providing several data sets for the References 1. Acharya, T., Ray, A.K.: Image Processing: Principles and Applications. Wiley, New York (2005) 2. Agarwal, P.K., Procopiuc, C.M.: Exact and approximation algorithms for clustering. In: Proc. 9th ACM-SIAM Symposium on Discrete Algorithms, pp. 658–667 (1998) 3. Bǎdoiu, M., Har-Peled, S., Indyk, P.: Approximate clustering via core-sets. In: Proc. 34th Annual ACM Symposium on Theory of computing (STOC’2002), pp. 250–257 (2002) 4. Bǎdoiu, M., Clarkson, K.L.: Smaller core-sets for balls. In: Proc. 14th Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 801–802 (2003) 5. Bilò, V., Caragiannis, I., Kaklamanis, C., Kanellopoulos, P.: Geometric clustering to minimize the sum of cluster sizes. In: Proc. of the European Symposium on Algorithms. LNCS, vol. 3669, pp. 460–471 (2005) 6. Blake, C.L., Merz, C.J.: UCI repository of machine learning databases. Dept. Inf. Comput. Sci., Univ. California, Tech. Rep. (1998). http://archive.ics.uci.edu/ml/datasets 7. Brandenberg, R., Roth, L.: New algorithms for k-center and extensions. J. Comb. Optim. 18, 376–392 (2009) 8. Cook, W.J.: National traveling salesman problems. http://www.tsp.gatech.edu/world/countries.html 9. Duda, R.O., Hart, P.E., Stork, D.G.: Pattern Classification, 2nd edn. Wiley, New York (2001) 10. Farahani, R.Z., Hekmatfar, M.: Facility Location: Concepts, Models, Algorithms and Case Studies. Physica-Verlag, Heidelberg (2009) 11. Fowler, R.J., Paterson, M.S., Tanimoto, S.L.: Optimal packing and covering in the plane are NPcomplete. Inf. Process. Lett. 12, 133–137 (1981) 12. Gonzalez, T.F.: Clustering to minimize the maximum intercluster distance. Theor. Comput. Sci. 38, 293–306 (1985) Author's personal copy A mixed breadth-depth first strategy for the k-center branch and bound tree 13. Hastie, T., Tibshirani, R., Friedman, J.H.: The Elements of Statistical Learning: Data Mining Inference, and Prediction. Springer, Berlin (2001) 14. Jain, A.K., Dubes, R.C.: Algorithms for Clustering Data. Prentice Hall, New York (1988) 15. Jain, A.K., Murthy, M.N., Flynn, P.J.: Data clustering: a review. ACM Comput. Rev. 31(3), 264–323 (1999) 16. Kowalski, G.: Information Retrieval Architecture and Algorithms. Springer, Berlin (2010) 17. Kumar, P., Mitchell, J.S.B., Yildirim, A.: Computing core-sets and approximate smallest enclosing HyperSpheres in high dimensions. In: Proc. 5th Workshop on Algorithm Engineering and Experiments, pp. 45–55. SIAM, Philadelphia (2003) 18. Kumar, P., Mitchell, J.S.B., Yildirim, A.: Approximate minimum enclosing balls in high dimensions using core-sets. ACM J. Exp. Algorithmics 8, 1–29 (2003) 19. Kumar, P.: Clustering and reconstructing large data sets. PhD thesis, Department of Computer Science, Stony Brook University (2004) 20. Kumar, P., Kumar, P.: Almost optimal solutions to k-clustering problems. Int. J. Comput. Geom. Appl. 20(4), 431–447 (2010) 21. Lev-Tov, N., Peleg, D.: Polynomial time approximation schemes for base station coverage with minimum total radii. Comput. Netw. 47, 489–501 (2005) 22. Megiddo, N.: Linear-time algorithms for linear programming in R 3 and related problems. SIAM J. Comput. 13, 759–776 (1983) 23. Megiddo, N., Supowit, K.J.: On the complexity of some common geometric location problems. SIAM J. Comput. 13, 182–196 (1984) 24. Mehrotra, S.: On the implementation of a primal-dual interior point method. SIAM J. Optim. 2(4), 575–601 (1992) 25. Reinelt, G.: TSPLIB, a traveling salesman problem library. ORSA J. Comput. http://comopt.ifi. uni-heidelberg.de/software/TSPLIB95
© Copyright 2026 Paperzz