Next Article in Journal
The Theory of Cognitive-Conditional Conservatism in Accounting
Previous Article in Journal
A Comparison of Forecasting Mortality Models Using Resampling Methods
Previous Article in Special Issue
A Hybrid Particle Swarm Optimization Algorithm Enhanced with Nonlinear Inertial Weight and Gaussian Mutation for Job Shop Scheduling Problems
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Solving the Capacitated Vertex K-Center Problem through the Minimum Capacitated Dominating Set Problem

by
José Alejandro Cornejo Acosta
1,
Jesús García Díaz
1,2,*,
Ricardo Menchaca-Méndez
3 and
Rolando Menchaca-Méndez
3
1
Instituto Nacional de Astrofísica, Óptica y Electrónica, Santa María Tonantzintla, Puebla 72840, Mexico
2
Consejo Nacional de Ciencia y Tecnología, Mexico City 03940, Mexico
3
Centro de Investigación en Computación del Instituto Politécnico Nacional, Mexico City 07738, Mexico
*
Author to whom correspondence should be addressed.
Mathematics 2020, 8(9), 1551; https://doi.org/10.3390/math8091551
Submission received: 11 August 2020 / Revised: 5 September 2020 / Accepted: 8 September 2020 / Published: 10 September 2020
(This article belongs to the Special Issue Evolutionary Computation and Mathematical Programming 2020)

Abstract

:
The capacitated vertex k-center problem receives as input a complete weighted graph and a set of capacity constraints. Its goal is to find a set of k centers and an assignment of vertices that does not violate the capacity constraints. Furthermore, the distance from the farthest vertex to its assigned center has to be minimized. The capacitated vertex k-center problem models real situations where a maximum number of clients must be assigned to centers and the travel time or distance from the clients to their assigned center has to be minimized. These centers might be hospitals, schools, police stations, among many others. The goal of this paper is to explicitly state how the capacitated vertex k-center problem and the minimum capacitated dominating set problem are related. We present an exact algorithm that consists of solving a series of integer programming formulations equivalent to the minimum capacitated dominating set problem over the bottleneck input graph. Lastly, we present an empirical evaluation of the proposed algorithm using off-the-shelf optimization software.

1. Introduction

The capacitated vertex k-center problem is a fundamental NP-Hard problem from the family of Location Problems [1]. This problem’s input is a complete weighted graph G = ( V , E ) with edge weights that follow a metric, a capacity function f c a p : V N , and an integer k N . The goal is to find a set C V with at most k elements and an assignment function f C : V \ C C . The number of vertices assigned to each vertex v i C must not exceed its associated capacity f c a p ( v i ) , and the distance from the farthest vertex to its assigned vertex has to be minimum [2,3]. We refer to the vertices in the set C as centers.
The capacitated vertex k-center problem can be defined under different input parameters. Some authors consider each vertex v j V to have an associated demand d j N [4,5,6,7,8]. In this case, the total demand of the vertices assigned to any center v i C cannot be greater than its capacity f c a p ( v i ) . Some other authors consider the special case where the demand of every vertex is of one unit, and the capacity f c a p ( v i ) is the same for all vertices v i V [2,3]. They refer to this problem as the uniform capacitated vertex k-center problem. Other authors consider the case where demands are of one unit for all vertices, and capacities are not necessarily the same for all vertices [9]. Summarizing, by setting uniform or non-uniform demands and capacities, we obtain the main variants of the capacitated vertex k-center problem. In this paper, we work with uniform demands and non-uniform capacities, i.e., every vertex has one unit demand, and the capacity of every vertex can be different. To avoid new terminology, we will refer to this problem just as the capacitated vertex k-center problem.
A typical application of the capacitated vertex k-center problem determines the location of a set of capacity-limited facilities where the travel time or distance from the users to the facilities has to be minimized. For instance, government agencies need to determine locations of public services like schools and hospitals so that communities can access them. Furthermore, these services may be subject to capacity limitations. In the private sector, companies must locate warehouses or distribution centers to minimize the cost of serving retail establishments from a warehouse. Usually, each warehouse is limited to serve a specific number of retail establishments. In this latter context, poor location decisions may lead to increase costs and decrease competitiveness [10]. It is important to remark that the assignment function for the capacitated vertex k-center problem is usually defined as f C : V C [3,4,5,6,7,8,9]. However, like other authors, in this paper, we define this function as f C : V \ C C [2]. This way, we can show how the capacitated vertex k-center problem can be solved through the minimum capacitated dominating set problem. Such relationship is important because both problems are usually associated with problems in different contexts. While the capacitated vertex k-center problem is mainly used to model facility location problems [1], the minimum capacitated dominating set problem is mainly used in networking problems [11,12]. Regarding the state of the art, the known exact algorithms for the capacitated vertex k-center problem are based on integer programming formulations of the capacitated concentrator location problem, the bin packing problem, and the capacitated set-covering problem [5,6,8].
The remaining of the document is organized as follows. Section 2 presents a literature review. Section 2.1 presents the classical integer programming formulation for the capacitated vertex k-center problem and Section 2.2 introduces an alternative integer programming formulation of the problem that is equivalent to the minimum capacitated dominating set problem over a bottleneck input graph. Based on this formulation, Section 3 presents an exact algorithm for solving the capacitated vertex k-center problem. It is important to point out that the goal of introducing this algorithm is explicitly stating how the capacitated vertex k-center problem is related to the minimum capacitated dominating set problem, and not necessarily to compete against the known exact algorithms from the literature. However, in Section 4, we present an empirical evaluation of the proposed algorithm that shows its usefulness over small instances using off-the-shelf optimization software. Lastly, Section 5 presents the concluding remarks.

2. The Capacitated Vertex K-Center Problem

The capacitated vertex k-center problem generalizes the more fundamental uncapacitated vertex k-center problem where any number of vertices can be assigned to each center. This way, the uncapacitated vertex k-center problem (best known as the vertex k-center problem) aims at minimizing the distance from the farthest vertex to its nearest center. Many approximation algorithms [13,14,15,16,17,18], heuristics [19,20], metaheuristics [21,22,23,24,25], and exact algorithms have been proposed for this problem [26,27,28,29,30,31,32].
The capacitated vertex k-center problem has also been approached through different algorithmic perspectives. However, the algorithms for the capacitated version have not been as successful as those for the uncapacitated version. For instance, most of the exact algorithms for the uncapacitated vertex k-center problem can solve instances with thousands of vertices. Even an instance with one million vertices has been solved [32]. Nonetheless, the exact algorithms designed for the capacitated version struggle to find optimal solutions (We refer to any element in the problem’s search space as a “solution”. A “feasible solution” is a solution that satisfies all the constraints of the problem. An ”optimal solution” is a feasible solution of optimal size.) for instances from benchmark data sets with just some hundreds of vertices. This extra difficulty comes from the fact that in the capacitated vertex k-center problem, the output consists of a set of centers and an assignment function. Namely, this problem has location and allocation elements involved, being both an NP-Hard problem on its own [33]. Furthermore, the heuristic and metaheuristic algorithms for the capacitated version rely mostly on exploitation [4,7]. Therefore, their running time tends to become impractical as the size of the input grows. Finally, while some conceptually simple algorithms achieve the best possible approximation factor for the uncapacitated version ( ρ = 2 under P N P ), the approximation algorithms for the capacitated versions are conceptually more complicated and have an approximation factor of 6 and 9 for the uniform-demand version with uniform and non-uniform capacities, respectively [3,9,13,14].
Among the approximation algorithms for the capacitated vertex k-center problem with uniform demands and capacities, there is a 10-approximation algorithm [2], and two 6-approximation algorithms [3,9]. To date, no one has found an algorithm with a better approximation factor for this problem. In the case of the capacitated vertex k-center problem with uniform demands and non-uniform capacities, the situation is not better; the approximation factor of the best-known approximation algorithm is 9 [9]. Since the uniform versions of the problem are a particular case of the non-uniform versions, all the algorithms designed for the non-uniform versions also get feasible solutions for the uniform versions.
Among the heuristic and metaheuristic algorithms designed for the capacitated vertex k-center problem with non-uniform demands and capacities is a large scale local search heuristic algorithm [4], a greedy randomized adaptive search procedures (GRASP) metaheuristic algorithm [34], and an iterated greedy local search and variable neighborhood descent metaheuristic algorithm [7]. Since these metaheuristics rely primarily on exploitation, their running time tends to become impractical as the input grows. However, the experimental evidence shows that these algorithms are among the most effective for this problem. Regarding exact algorithms, there are some proposals based on integer programming or mixed integer programming formulations of the problem [5,6,8].

2.1. Classical Integer Programming Formulation

Since the capacitated vertex k-center problem is a generalization of the uncapacitated vertex k-center problem, we begin by defining the latter. The uncapacitated vertex k-center problem consists in, given a complete weighted graph G = ( V , E ) , and an integer k N , finding a set of centers C V , | C | k , such that the solution size r ( C ) is minimized, where r ( C ) (often known as covering radius) is defined as the distance from the farthest vertex in V to its nearest center in C (Equation (1)). Since the set of edge weights follows a metric, the distance between two vertices v i , v j V is equal to the weight of the edge { v i , v j } E . For practicity, we may refer to the weight w ( { v i , v j } ) of each edge { v i , v j } E as the distance between v i and v j . We refer to the optimal solution for the uncapacitated vertex k-center problem as C * , which has a size of r ( C * ) . Expressions (2) to (7) show the classical integer programming formulation for the uncapacitated vertex k-center problem [10,21]. We refer to this formulation as F1U:
r ( C ) = max v V d ( v , C ) , where d ( v , C ) = min c C w ( { v , c } )
minimize
z subject to
j = 1 n x i j = 1 , i { 1 , 2 , , n }
x i j y j , i , j { 1 , 2 , , n }
j = 1 n y j k
j = 1 n w i j x i j z , i { 1 , 2 , , n } where
x i j , y j { 0 , 1 }
In this formulation, there is a variable y j { 0 , 1 } for every vertex v j V . If a vertex v j is selected as a center, then y j = 1 ; otherwise, y j = 0 . There is also a set of variables x i j { 0 , 1 } . If vertex v i is assigned to some vertex v j that has been selected as center ( y j = 1 ), then x i j = 1 ; otherwise, x i j = 0 . The value of each w i j is equal to the weight of edge { v i , v j } E . This way, constraints (3) and (4) work together. While constraint (3) indicates that every vertex has to be assigned to exactly one vertex, constraint (4) indicates that the vertices can be assigned only to vertices that have been selected as centers. Constraint (5) prevents selecting more than k centers. Notice that, in the uncapacitated vertex k-center problem, the output consists only of the set of centers C V , and there is no need to return an assignment function f C : V \ C C . Thus, the role of performing assignments through variables x i j is just to satisfy constraint (6), which assures that the distance from every vertex to its nearest center is smaller than or equal to z, which is the objective function (2) that we want to minimize. Notice that the value of z depends on the assigned vertices, which are codified through variables x i j . Finally, all x i j and y j are binary variables.
By adding capacity constraints to the uncapacitated vertex k-center problem, we obtain the capacitated vertex k-center problem. This problem receives as input a complete weighted graph G = ( V , E ) , a capacity function f c a p : V N , and an integer k N . Its goal is to find a pair ( C , f C ) such that C V , | C | k , v C , | { ( u , v ) f C } | f c a p ( v ) , and the solution size r ( C , f C ) is minimized, where r ( C , f C ) is defined as the distance from the farthest vertex in V \ C to its assigned center in C (Equation (8)) and f C : V \ C C . We refer to the optimal solution for the capacitated vertex k-center problem as ( C * , f C * ) , which has a size of r ( C * , f C * ) . Expressions (9) to (15) show the classical integer programming formulation for the capacitated vertex k-center problem [4,5]. This formulation is referred as F1C. This formulation is similar to formulation F1U, except that it turns constraint (3) into constraint (10), and adds constraint (14):
r ( C , f C ) = max v V \ C w ( { v , f C ( v ) } )
minimize
z subject to
j = 1 n x i j = 1 y i , i { 1 , 2 , , n }
x i j y j , i , j { 1 , 2 , , n }
j = 1 n y j k
j = 1 n w i j x i j z , i { 1 , 2 , , n }
i = 1 n x i j f c a p ( v j ) , j { 1 , 2 , , n } where
x i j , y j { 0 , 1 }
Since the domain of the assignment function f C is V \ C , the vertices that are selected as centers cannot be assigned to themselves or any other center. By turning (3) into (10), this formulation prevents assigning a center to itself or any other center. Furthermore, constraint (14) indicates that the maximum number of vertices that can be assigned to every vertex v j is at most f c a p ( v j ) , where f c a p : V N is part of the input.

2.2. A New Formulation Based on the Minimum Capacitated Dominating Set

In addition to the classical formulations F1U and F1C, many alternative integer programming or mixed integer programming formulations have been proposed for the capacitated and uncapacitated vertex k-center problem [5,6,26,27,28,29,30,31,32]. Perhaps, the simplest of these formulations are based on the relationship between the uncapacitated vertex k-center problem and the NP-Hard set covering and minimum dominating set problems [26,35,36]. In fact, the uncapacitated vertex k-center problem is equivalent to the minimum dominating set problem when the size r ( C * ) of the optimal solution C * is known ahead of time (Lemma 1 and Theorem 1) [35,36]. To better understand this relationship, Definition 1 describes what a dominating set is and Definition 2 describes what a minimum dominating set is. Then, Expressions (16) to (19) show the integer programming formulation for the uncapacitated vertex k-center as a minimum dominating set problem [11,36,37,38].
Definition 1.
Given a graph G = ( V , E ) , a dominating set is a set D V such that, for every vertex v V \ D , an edge { v , u } E with u in D exists.
Definition 2.
A minimum dominating set is a set of minimum cardinality among all the dominating sets.
Definition 3.
Given a weighted graph G = ( V , E ) , a bottleneck graph G r = ( V , E r ) is a graph such that E r consists of all the edges in E with weight less than or equal to r.
Lemma 1.
Let G = ( V , E ) be a complete weighted graph and let k be a positive integer. If r ( C * ) is the size of the optimal solution C * for the uncapacitated vertex k-center problem over G = ( V , E ) , then the minimum dominating set for the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) has at most k elements.
Proof. 
The proof is by contradiction. Let D be a minimum dominating set over the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) . Let us assume that | D | > k . Under this assumption, B V such that | B | = k , there will always be at least one vertex u V \ B that is not adjacent to some element of B. This is the same as saying that there is no edge { u , v } E r ( C * ) such that v is in B. If such edge does not exist, then its weight must be greater than r ( C * ) (otherwise, it would not have been removed). Thus, the distance from vertex u to its nearest vertex in any set B must be greater than r ( C * ) . However, this contradicts the premise that there is a set C * V of cardinality k such that the distance from every vertex v V \ C * to its nearest vertex in C * is less than or equal to r ( C * ) . Therefore, the number of elements in the minimum dominating set of the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) cannot be greater than k. ☐
Theorem 1.
Let G = ( V , E ) be a complete weighted graph and let k be a positive integer. If r ( C * ) is the size of the optimal solution C * for the uncapacitated vertex k-center problem over G = ( V , E ) , then the optimal solution to the minimum dominating set problem over the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) is the optimal solution for the uncapacitated vertex k-center problem too.
Proof. 
By Lemma 1, the minimum dominating set D of the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) has cardinality less than or equal to k. Since all edges e E r ( C * ) have a weight at most r ( C * ) , and all vertices v V \ D are in the neighborhood of at least one element of D. Then, the distance from every vertex v V \ D to its nearest vertex in D is also less than or equal to r ( C * ) . Therefore, D is a set with no more than k vertices such that the distance from every vertex v V \ D to its nearest vertex in D is no more than r ( C * ) . In other words, D is the optimal solution to the uncapacitated vertex k-center problem:
minimize
i = 1 n y i subject to
i = 1 n a i j y i 1 y j , j { 1 , 2 , , n }
a i j = 1 , if w i j r ( C * ) and i j 0 , otherwise where
y i { 0 , 1 }
Expressions (16) to (19) show the integer programming formulation for the uncapacitated vertex k-center problem as a minimum dominating set problem. We refer to this formulation as F2U. In this formulation, there is a variable y i { 0 , 1 } for each vertex v i V . If a vertex v i is selected as a center, then y i = 1 ; otherwise, y i = 0 . Let C be the set of selected centers. At (18), the matrix defined by all the a i j values represents the adjacency matrix of the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) , which results from removing all the edges with weight greater than r ( C * ) from the original input graph G = ( V , E ) , where r ( C * ) is the size of the optimal solution C * for the uncapacitated vertex k-center problem over the input graph G = ( V , E ) . Since simple graphs do not have loops, we set a i j to 0 for i = j . This way, constraint (17) indicates that, for every vertex v j V \ C , there must be at least one edge { v j , v i } E r ( C * ) such that v i is selected as a center ( y i = 1 ), and (16) indicates that the number of selected centers must be minimized.
In more detail, constraint (17) indicates that, for each vertex v j not selected as center ( y j = 0 ), there must be at least one vertex v i selected as a center ( y i = 1 ) such that the edge { v i , v j } is in E r ( C * ) ( a i j = 1 ). This way, each vertex v V \ C is adjacent to at least one center in the set of centers. Thus, by Definition 1, C is a dominating set in the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) . Now, since (16) minimizes the number of elements of the set C, this set is also a minimum dominating set in the bottleneck graph G r ( C * ) = ( V , E r ( C * ) ) . By Theorem 1, the optimal solution to this formulation is the optimal solution to the uncapacitated vertex k-center problem.
As well as the uncapacitated vertex k-center problem is related to the minimum dominating set problem, the capacitated vertex k-center problem is related to the minimum capacitated dominating set problem. Lemma 2 and Theorem 2 show that the capacitated vertex k-center problem is equivalent to the minimum capacitated dominating set problem when the size r ( C * , f C * ) of the optimal solution ( C * , f C * ) is known ahead of time. Here, r ( C , f C ) is defined as the distance from the farthest vertex to its assigned center, where f C : V \ C C . Definition 4 describes what a capacitated dominating set is, and Definition 5 describes what a minimum capacitated dominating set is [11,39,40]. Expressions (22) to (28) show the proposed integer programming formulation for the capacitated vertex k-center problem as a minimum capacitated dominating set problem. We refer to this formulation as F2C.
Definition 4.
Given a graph G = ( V , E ) and a capacity function f c a p : V N , a capacitated dominating set D V is a set such that every vertex v V \ D is assigned to some vertex u D N ( v ) . In addition, the number of vertices assigned to each vertex u D is not greater than its capacity f c a p ( u ) . Here, N ( u ) is the neighborhood of u V .
Definition 5.
A minimum capacitated dominating set is a set of minimum cardinality among all the capacitated dominating sets.
Lemma 2.
Let G = ( V , E ) be a complete weighted graph, let k be a positive integer, and let f c a p : V N be a capacity function. If r ( C * , f C * ) is the size of the optimal solution ( C * , f C * ) for the capacitated vertex k-center problem over G = ( V , E ) , then the optimal solution ( D , f D ) for the minimum capacitated dominating set problem over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) is such that D has at most k elements and f D assigns no more than f c a p ( v ) vertices to every vertex v D .
Proof. 
The proof is by contradiction. Let ( D , f D ) be the optimal solution to the minimum capacitated dominating set problem over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) . Here, D V is a dominating set, and f D : V \ D D is a function that assigns no more than f c a p ( v ) N vertices to each vertex v D . By Definition 4, ( u , v ) f D , v D N ( u ) , and v D , | { ( u , v ) f D } | f c a p ( v ) . Let us assume that the minimum capacitated dominating set ( D , f D ) falls into some of the following cases: (a) | D | > k or (b) f D assigns more than f c a p ( v ) vertices to some vertex v D . If case (a) occurs, then ( B , f B ) , where B V , | B | k , and f B : V \ B B , at least one of the following statements must be true:
( u , v ) f B such that v B N ( u )
or
v B such that | { ( u , v ) f B } | > f c a p ( v ) .
On one hand, if Equation (20) is true, then, there is at least one vertex u V \ B that is assigned to a vertex v B \ N ( u ) . Since v is not in the neighborhood of u, { u , v } E r ( C * , f C * ) and the distance from vertex u to v is greater than r ( C * , f C * ) ; otherwise, edge { u , v } would not have been removed from the original input graph G = ( V , E ) . This means that there is not a pair ( B , f B ) of size r ( B , f B ) less than or equal to r ( C * , f C * ) , where B V , | B | k , and f B : V \ B B assigns no more than f c a p ( v ) vertices to each vertex v B . However, our premise is that such pair exists and is the pair ( C * , f C * ) . Thus, Equation (20) cannot be true. On the other hand, if Equation (21) is true, then, the same pair ( C * , f C * ) cannot exist. Actually, this is case (b). Therefore, case (a) and case (b) cannot be true. Namely, it cannot be true that ( B , f B ) , where B V , | B | k , and f B : V \ B B , Equation (20) or Equation (21) hold. In other words, a minimum capacitated dominating set ( D , f D ) over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) is such that D has at most k vertices and f D assigns no more than f c a p ( v ) vertices to every vertex v D . ☐
Theorem 2.
Let G = ( V , E ) be a complete weighted graph, let k be a positive integer, and let f c a p : V N be a capacity function. If r ( C * , f C * ) is the size of the optimal solution ( C * , f C * ) for the capacitated vertex k-center problem over G = ( V , E ) , then the optimal solution to the minimum capacitated dominating set problem over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) is the optimal solution for the capacitated vertex k-center problem too.
Proof. 
By Lemma 2, the optimal solution ( D , f D ) to the minimum capacitated dominating set problem over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) consists of a set D with no more than k elements and a function f D : V \ D D that assigns no more than f c a p ( v ) vertices to every vertex v D . Since all edges e E r ( C * , f C * ) have weight at most r ( C * , f C * ) , and all vertices v V \ D are assigned to some vertex in D. Then, the distance from every vertex v V \ D to its assigned vertex in D is also less than or equal to r ( C * , f C * ) . Therefore, D is a set with no more than k vertices such that the distance from every vertex v V \ D to its assigned vertex in D is no more than r ( C * , f C * ) , and no more than f c a p ( v ) vertices are assigned to every vertex v D . In other words, the minimum capacitated dominating set ( D , f D ) is the optimal solution to the capacitated vertex k-center problem:
minimize
i = 1 n y i subject to
i = 1 n x i j f c a p ( v j ) , j { 1 , 2 , , n }
i = 1 n x j i = 1 y j , j { 1 , 2 , , n }
x i j y j , i , j { 1 , 2 , , n }
x i j a i j , i , j { 1 , 2 , , n } where
a i j = 1 , if w i j r ( C * , f C * ) and i j 0 , otherwise
x i j , y i { 0 , 1 }
Expressions (22) to (28) show the integer programming formulation for the capacitated vertex k-center problem as a minimum capacitated dominating set problem. We refer to this formulation as F2C. In this formulation, we added variables x i j { 0 , 1 } , which take a value x i j = 1 if a vertex v i is assigned to a vertex v j ; otherwise, x i j = 0 . Constraint (23) indicates that the number of vertices assigned to any vertex v j V cannot be greater than its capacity f c a p ( v j ) , where f c a p : V N is part of the input. Constraint (24) indicates that every vertex v j V \ C ( y j = 0 ) has to be assigned to exactly one vertex, and that vertices v j C ( y j = 1 ) does not have to be assigned to any vertex at all. Finally, constraint (25) indicates that every vertex v i can be assigned only to vertices that have been selected as a center ( y j = 1 ) and constraint (26) indicates that every vertex v i can be assigned only to vertices in its neighborhood ( a i j = 1 ). With these constraints, we add capacity restrictions and an explicit assignment to the minimum dominating set problem; i.e., a maximum of f c a p ( v i ) vertices from V \ C must be assigned to each selected vertex v i C ( y i = 1 ). In addition, notice that constraints (24) to (26) guarantee that every vertex v V \ C is assigned to exactly one vertex u V , which, by constraints (25) and (26), is in C N ( v ) . By Definition 5, this integer programming formulation is equivalent to the minimum capacitated dominating set problem over the bottleneck graph G r ( C * , f C * ) = ( V , E r ( C * , f C * ) ) , where E r ( C * , f C * ) contains edges from E of cost less than or equal to r ( C * , f C * ) , being r ( C * , f C * ) the size of the optimal solution ( C * , f C * ) of the capacitated vertex k-center problem over the input graph G = ( V , E ) . By Theorem 2, the optimal solution to this formulation is the optimal solution to the capacitated vertex k-center problem.

3. An Exact Algorithm for the Capacitated Vertex K-Center Problem

The integer programming formulation F2C can be solved using off-the-shelf optimization software. However, to do so, it is necessary to know the size r ( C * , f C * ) of the optimal solution ( C * , f C * ) in advance. One way to solve this issue is by using a series of guesses on the optimal solution size r ( C * , f C * ) . Since the optimal solution size r ( C * , f C * ) must be equal to the weight of some edge in the input graph G = ( V , E ) , we can solve formulation F2C using the set of weights of the edges of the input graph. That is, replacing r ( C * , f C * ) of Equation (27) by w ( e ) for every e E . This will generate up to | E | solutions of the form ( C , f C ) . Of course, not all of these solutions will be feasible. Among the obtained solutions, the optimal one will be the solution with no more than k elements, and with the minimum distance from the farthest vertex to its assigned center. Thus, this method implies that formulation F2C has to be solved | E | times. Fortunately, it can be improved by performing a binary search over the non-decreasing ordered set of edge weights of the input graph. This way, formulation F2C has to be solved only log | E | times, which is O ( log | V | ) times. Algorithm 1 shows the pseudocode of the proposed procedure that exploits this idea, where line 5 can be replaced by formulation F2C, setting r ( C * , f C * ) of Equation (27) as w ( e m i d ) . Theorem 3 shows the correctness of this algorithm.
Algorithm 1: An exact algorithm for the capacitated vertex k-center problem
Mathematics 08 01551 i001
Theorem 3.
Algorithm 1 returns an optimal solution for the capacitated vertex k-center problem.
Proof. 
The goal of Algorithm 1 is to use some off-the-shelf optimization software to solve the integer programming formulation F2C for the capacitated vertex k-center problem (line 5) over the input graph G with a value of w ( e m i d ) that equals the optimal solution size r ( C * , f C * ) , where ( C * , f C * ) is the optimal solution to the capacitated vertex k-center problem. To achieve this, Algorithm 1 performs a binary search (while loop from line 3 to 14) over the non-decreasing ordered set of edge weights of the input graph. Every time a solution ( C , f C ) with | C | k is generated, h i g h is set to m i d (line 10); otherwise, l o w is set to m i d (line 12). This is because, when the minimum capacitated dominating set of a bottleneck graph G has more than k elements, it is necessary to add more edges to this graph in order to get a minimum capacitated dominating set with fewer elements, and setting l o w to m i d implies that the next value of w ( e m i d ) will be greater than the previous one. Therefore, it will generate a new bottleneck graph with more edges, including the edges of the previous bottleneck graph. Now, if the minimum capacitated dominating set of a bottleneck graph G has k or fewer elements; then, it is possible that by removing more edges, we can still find a minimum capacitated dominating set with k or fewer elements. Thus, setting h i g h to m i d implies that the next value of w ( e m i d ) is going to be smaller. Therefore, it will generate a new bottleneck graph with fewer edges. In this manner, at the last iteration of the while loop, the value of w ( e m i d ) is equal to w ( e h i g h ) , which implies that the bottleneck graph generated by w ( e m i d ) has a minimum capacitated dominating set with k or less elements. Furthermore, w ( e l o w ) equals w ( e m i d 1 ) and any bottleneck graph generated by any number less than or equal to w ( e l o w ) has a minimum capacitated dominating set with more than k elements. Therefore, at the last iteration of the while loop, the value of w ( e m i d ) is the smallest one from the set of edge weights in E that is capable of generating a bottleneck graph with a capacitated dominating set with at most k elements, i.e., w ( e m i d ) = r ( C * , f C * ) . Thus, Algorithm 1 solves the capacitated vertex k-center problem optimally. Finally, the if condition from lines 6 to 8 assures that the stop condition of the binary search is met. ☐

4. Empirical Performance Evaluation

To test Algorithm 1, two sets of instances with non-uniform capacities were created. The instances from the first set have 100 to 107 vertices (Set 1) and the instances from the second set have 200 to 280 vertices (Set 2). All instances were created as follows. A benchmark instance from TSPLib [41] was selected. Then, from this instance, four variants with non-uniform capacities were generated. For example, from instance kroA100, instances kroA100_Q1 to kroA100_Q4 were created and the capacity associated with each vertex was selected at random from the range [ 0.75 · n k k , 1.25 · n k k ] , where n is the number of vertices and k is the number of centers. This range was used because n k k is the minimum capacity that every vertex must have to guarantee that all vertices can be assigned to a center when capacities are uniform. Since centers are not assigned, k is subtracted from the number of vertices n in the numerator. This way, by selecting random capacities from the range [ 0.75 · n k k , 1.25 · n k k ] , the capacity of each vertex will be relatively close to n k k . This is important because, as the capacity of all vertices approaches n, the problem becomes closer to the uncapacitated version, which is easier to solve according to empirical experiments [32,36]. Thus, the generated instances remain relatively difficult to solve. Regarding the value of k, it was selected as follows. For Q 1 instances, k = 5 ; for Q 2 instances, k = 10 ; for Q 3 instances, k = 20 ; and for Q 4 instances, k = 40 .
Table 1 and Table 2 show the results obtained by the proposed exact algorithm (Algorithm 1) and by the classical formulation F1C over Set 1 and Set 2, respectively. The experiments were performed using Gurobi version 9.0.0 as off-the-shelf optimization software with its default tuning parameters [42]. Regarding Algorithm 1, we implemented line 5 by setting Gurobi to stop as soon as a feasible solution of size less than or equal to k is found. This way, Algorithm 1 can reduce its execution time. All the experiments were performed on an Asus laptop with an Intel Core i5-8300H processor (Santa Clara, CA, USA) and 16 GB of RAM. The set of instances and the source code of the algorithms can be obtained from https://github.com/alex-cornejo/exact_ckc. From Table 1, we can observe that Algorithm 1 needs an average of 9.61 s to solve each instance, while the classical formulation F1C needs an average of 30.58 s. Namely, Algorithm 1 is at least three times faster. Furthermore, Algorithm 1 converged faster to the optimal solution in 37 out of the 48 instances. From Table 2, we can observe that Algorithm 1 needs an average of 1332 s to solve each instance, while the classical formulation F1C needs an average time greater than 13,726 s. Thus, for Set 2, Algorithm 1 is at least 10 times faster. Actually, we had to set a maximum execution time of 24 h for the classical formulation F1C because this time was not enough for the classical formulation to solve some instances. Furthermore, Algorithm 1 converged faster to the optimal solution in 39 out of the 48 instances. From these results, we can observe that the tested algorithms are better suited for solving relatively small instances of the problem and that the proposed Algorithm 1 tends to converge faster to the optimal solution.

5. Conclusions and Future Work

This paper shows that the capacitated vertex k-center problem can be solved through the minimum capacitated dominating set problem. This is accomplished by introducing Algorithm 1, which consists of solving O ( log | V | ) times an integer programming formulation that is equivalent to the NP-Hard minimum capacitated dominating set problem. Additionally, this paper presents some experiments showing the usefulness of the proposed algorithm for solving small instances of the problem.
Since the capacitated vertex k-center problem is an NP-Hard problem, no algorithm can solve it in polynomial time (under P N P ). Thus, as well as other exact algorithms proposed for this problem, Algorithm 1 is an exponential-time algorithm limited to solving small instances. However, this algorithm can be used as a basis for designing efficient heuristics or approximation algorithms. These algorithms may find near-optimal feasible solutions for arbitrary instances in polynomial time. Finally, our proposal can also serve as a basis for designing exact algorithms for related problems, such as the capacitated vertex k-center problem with non-uniform demands.

Author Contributions

Conceptualization, J.A.C.A., J.G.D., R.M.-M. (Ricardo Menchaca-Méndez), and R.M.-M. (Rolando Menchaca-Méndez); Formal analysis, J.A.C.A., J.G.D., R.M.-M. (Ricardo Menchaca-Méndez), and R.M.-M. (Rolando Menchaca-Méndez); Investigation, J.A.C.A. and J.G.D.; Methodology, J.A.C.A., J.G.D., R.M.-M. (Ricardo Menchaca-Méndez), and R.M.-M. (Rolando Menchaca-Méndez); Software, J.A.C.A. and J.G.D.; Validation, R.M.-M. (Ricardo Menchaca-Méndez) and R.M.-M. (Rolando Menchaca-Méndez); Writing—original draft, J.A.C.A. and J.G.D.; Writing—review and editing, J.A.C.A., J.G.D., R.M.-M. (Ricardo Menchaca-Méndez), and R.M.-M. (Rolando Menchaca-Méndez). All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Acknowledgments

We acknowledge Gurobi for providing a free-of-charge academic license for Gurobi version 9.0.0, which was used in the computations presented in this paper. The authors are grateful to anonymous reviewers whose questions, comments, and suggestions helped improve an earlier version of this paper. The authors also acknowledge Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE) and Consejo Nacional de Ciencia y Tecnología (CONACYT) for providing the necessary resources for the development of this research.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Laporte, G.; Nickel, S.; da Gama, F.S. Location Science; Springer International Publishing: Berlin/Heidelberg, Germany, 2019. [Google Scholar]
  2. Barilan, J.; Kortsarz, G.; Peleg, D. How to allocate network centers. J. Algorithms 1993, 15, 385–415. [Google Scholar] [CrossRef] [Green Version]
  3. Khuller, S.; Sussmann, Y.J. The capacitated k-center problem. SIAM J. Discret. Math. 2000, 13, 403–418. [Google Scholar] [CrossRef] [Green Version]
  4. Scaparra, M.P.; Pallottino, S.; Scutellà, M.G. Large-scale local search heuristics for the capacitated vertex p-center problem. Netw. Int. J. 2004, 43, 241–255. [Google Scholar]
  5. Özsoy, F.A.; Pınar, M.Ç. An exact algorithm for the capacitated vertex p-center problem. Comput. Oper. Res. 2006, 33, 1420–1436. [Google Scholar] [CrossRef] [Green Version]
  6. Albareda-Sambola, M.; Díaz, J.A.; Fernández, E. Lagrangean duals and exact solution to the capacitated p-center problem. Eur. J. Oper. Res. 2010, 201, 71–81. [Google Scholar] [CrossRef] [Green Version]
  7. Quevedo-Orozco, D.R.; Ríos-Mercado, R.Z. Improving the quality of heuristic solutions for the capacitated vertex p-center problem through iterated greedy local search with variable neighborhood descent. Comput. Oper. Res. 2015, 62, 133–144. [Google Scholar] [CrossRef]
  8. Kramer, R.; Iori, M.; Vidal, T. Mathematical models and search algorithms for the capacitated p-center problem. INFORMS J. Comput. 2019, 32, 444–460. [Google Scholar] [CrossRef]
  9. An, H.C.; Bhaskara, A.; Chekuri, C.; Gupta, S.; Madan, V.; Svensson, O. Centrality of trees for capacitated k-center. Math. Program. 2015, 154, 29–53. [Google Scholar] [CrossRef]
  10. Daskin, M.S. Network and Discrete Location: Models, Algorithms, and Applications; John Wiley & Sons: Hoboken, NJ, USA, 2011. [Google Scholar]
  11. Potluri, A.; Singh, A. Metaheuristic algorithms for computing capacitated dominating set with uniform and variable capacities. Swarm Evol. Comput. 2013, 13, 22–33. [Google Scholar] [CrossRef]
  12. Yuan, F.; Li, C.; Gao, X.; Yin, M.; Wang, Y. A novel hybrid algorithm for minimum total dominating set problem. Mathematics 2019, 7, 222. [Google Scholar] [CrossRef] [Green Version]
  13. Hochbaum, D.S.; Shmoys, D.B. A best possible heuristic for the k-center problem. Math. Oper. Res. 1985, 10, 180–184. [Google Scholar] [CrossRef] [Green Version]
  14. Gonzalez, T.F. Clustering to minimize the maximum intercluster distance. Theor. Comput. Sci. 1985, 38, 293–306. [Google Scholar] [CrossRef] [Green Version]
  15. Dyer, M.E.; Frieze, A.M. A simple heuristic for the p-centre problem. Oper. Res. Lett. 1985, 3, 285–288. [Google Scholar] [CrossRef]
  16. Plesník, J. A heuristic for the p-center problems in graphs. Discrete Appl. Math. 1987, 17, 263–268. [Google Scholar] [CrossRef] [Green Version]
  17. Shmoys, D.B. Computing near-optimal solutions to combinatorial optimization problems. Comb. Optim. 1995, 20, 355–397. [Google Scholar]
  18. Garcia-Diaz, J.; Sanchez-Hernandez, J.; Menchaca-Mendez, R.; Menchaca-Mendez, R. When a worse approximation factor gives better performance: A 3-approximation algorithm for the vertex k-center problem. J. Heuristics 2017, 23, 349–366. [Google Scholar] [CrossRef]
  19. Rana, R.; Garg, D. The analytical study of k-center problem solving techniques. Int. J. Inf. Technol. Knowl. Manag. 2008, 1, 527–535. [Google Scholar]
  20. Robič, B.; Mihelič, J. Solving the k-center problem efficiently with a dominating set algorithm. J. Comput. Inf. Technol. 2005, 13, 225–234. [Google Scholar]
  21. Mladenović, N.; Labbé, M.; Hansen, P. Solving the p-center problem with tabu search and variable neighborhood search. Netw. Int. J. 2003, 42, 48–64. [Google Scholar] [CrossRef] [Green Version]
  22. Pacheco, J.A.; Casado, S. Solving two location models with few facilities by using a hybrid heuristic: A real health resources case. Comput. Oper. Res. 2005, 32, 3075–3091. [Google Scholar] [CrossRef]
  23. Pullan, W. A memetic genetic algorithm for the vertex p-center problem. Evol. Comput. 2008, 16, 417–436. [Google Scholar] [CrossRef] [PubMed] [Green Version]
  24. Davidović, T.; Ramljak, D.; Šelmić, M.; Teodorović, D. Bee colony optimization for the p-center problem. Comput. Oper. Res. 2011, 38, 1367–1376. [Google Scholar] [CrossRef]
  25. Kaveh, A.; Nasr, H. Solving the conditional and unconditional p-center problem with modified harmony search: A real case study. Sci. Iran. 2011, 18, 867–877. [Google Scholar] [CrossRef] [Green Version]
  26. Daskin, M.S. A new approach to solving the vertex p-center problem to optimality: Algorithm and computational results. Commun. Oper. Res. Soc. Jpn. 2000, 45, 428–436. [Google Scholar]
  27. Ilhan, T.; Ozsoy, F.; Pinar, M. An Efficient Exact Algorithm for the Vertex P-Center Problem and Computational Experiments for Different Set Covering Subproblems; Technical Report; Department of Industrial Engineering, Bilkent University: Ankara, Turkey, 2002. [Google Scholar]
  28. Elloumi, S.; Labbé, M.; Pochet, Y. A new formulation and resolution method for the p-center problem. INFORMS J. Comput. 2004, 16, 84–94. [Google Scholar] [CrossRef] [Green Version]
  29. Al-Khedhairi, A.; Salhi, S. Enhancements to two exact algorithms for solving the vertex p-center problem. J. Math. Model. Algorithms 2005, 4, 129–147. [Google Scholar] [CrossRef]
  30. Chen, D.; Chen, R. New relaxation-based algorithms for the optimal solution of the continuous and discrete p-center problems. Comput. Oper. Res. 2009, 36, 1646–1655. [Google Scholar] [CrossRef]
  31. Calik, H.; Tansel, B.C. Double bound method for solving the p-center location problem. Comput. Oper. Res. 2013, 40, 2991–2999. [Google Scholar] [CrossRef] [Green Version]
  32. Contardo, C.; Iori, M.; Kramer, R. A scalable exact algorithm for the vertex p-center problem. Comput. Oper. Res. 2019, 103, 211–220. [Google Scholar] [CrossRef] [Green Version]
  33. Marinakis, Y. Location Routing Problem. In Encyclopedia of Optimization; Floudas, C.A., Pardalos, P.M., Eds.; Springer: Boston, MA, USA, 2009; pp. 1919–1925. [Google Scholar] [CrossRef]
  34. Quevedo-Orozco, D.R.; Ríos-Mercado, R.Z. A new heuristic for the capacitated vertex p-center problem. Conference of the Spanish Association for Artificial Intelligence; Springer: Berlin/Heidelberg, Germany, 2013; pp. 279–288. [Google Scholar]
  35. Minieka, E. The m-center problem. Siam Rev. 1970, 12, 138–139. [Google Scholar] [CrossRef]
  36. Garcia-Diaz, J.; Menchaca-Mendez, R.; Menchaca-Mendez, R.; Hernández, S.P.; Pérez-Sansalvador, J.C.; Lakouari, N. Approximation Algorithms for the Vertex K-Center Problem: Survey and Experimental Evaluation. IEEE Access 2019, 7, 109228–109245. [Google Scholar] [CrossRef]
  37. Li, R.; Hu, S.; Liu, H.; Li, R.; Ouyang, D.; Yin, M. Multi-Start Local Search Algorithm for the Minimum Connected Dominating Set Problems. Mathematics 2019, 7, 1173. [Google Scholar] [CrossRef] [Green Version]
  38. Cabrera Martínez, A.; Hernández-Gómez, J.C.; Inza, E.P.; Sigarreta, J.M. On the Total Outer k-Independent Domination Number of Graphs. Mathematics 2020, 8, 194. [Google Scholar] [CrossRef] [Green Version]
  39. Liedloff, M.; Todinca, I.; Villanger, Y. Solving capacitated dominating set by using covering by subsets and maximum matching. Discret. Appl. Math. 2014, 168, 60–68. [Google Scholar] [CrossRef]
  40. Li, R.; Hu, S.; Zhao, P.; Zhou, Y.; Yin, M. A novel local search algorithm for the minimum capacitated dominating set. J. Oper. Res. Soc. 2018, 69, 849–863. [Google Scholar] [CrossRef]
  41. Reinelt, G. TSPLIB—A traveling salesman problem library. ORSA J. Comput. 1991, 3, 376–384. [Google Scholar] [CrossRef]
  42. Gurobi Optimization. Gurobi Optimizer Reference Manual. 2020. Available online: https://www.gurobi.com/documentation/9.0/refman (accessed on 11 July 2020).
Table 1. Running time and optimal solution size found by Algorithm 1 and the classical formulation F1C over Set 1 using Gurobi 9.0.0. Best running times are in bold.
Table 1. Running time and optimal solution size found by Algorithm 1 and the classical formulation F1C over Set 1 using Gurobi 9.0.0. Best running times are in bold.
Running Time (Seconds)
Instance n k OPT Algorithm 1 F1C
kroA100_Q11005895.642.3210.42
6814.871.464.18
kroA100_Q210010606.571.8612.64
11554.041.439.07
kroA100_Q310020411.614.9532.45
21376.962.6533.78
kroA100_Q410040325.041.0012.90
41314.230.722.67
kroB100_Q11005924.573.399.27
6823.661.235.43
kroB100_Q210010602.92.257.44
11559.351.344.99
kroB100_Q310020425.7311.9126.30
21414.776.5619.76
kroB100_Q410040343.570.772.22
41330.840.752.69
kroC100_Q11005867.161.796.61
6762.271.078.94
kroC100_Q210010580.532.693.68
11545.692.273.32
kroC100_Q310020426.8229.2938.61
21415.3213.89124.56
kroC100_Q410040307.650.902.50
41288.530.651.39
eil101_Q1101521.214.4410.40
618.681.629.03
eil101_Q21011015.2317.6325.27
1113.926.9618.20
eil101_Q31012010.4410.669.04
2110.297.515.15
eil101_Q4101408.64.941.59
418.482.321.89
lin105_Q11055677.446.147.31
6610.452.816.69
lin105_Q210510555.099.2327.35
11476.05152.5627.1
lin105_Q310520307.03.5115.74
21307.03.3525.69
lin105_Q410540177.011.312.09
41162.690.841.62
pr107_Q110752630.5821.13868.16
61068.871.582.31
pr107_Q210710894.423.078.51
11824.622.792.75
pr107_Q310720538.513.171.55
21447.213.042.48
pr107_Q410740282.841.881.10
41282.841.860.93
Average time9.6130.58
Table 2. Running time and optimal solution size found by Algorithm 1 and the classical formulation F1C over Set 2 using Gurobi 9.0.0. Best running times are in bold.
Table 2. Running time and optimal solution size found by Algorithm 1 and the classical formulation F1C over Set 2 using Gurobi 9.0.0. Best running times are in bold.
Running Time (Seconds)
Instance n k OPT Algorithm 1 F1C
kroa200_Q12005919.0325.61133.75
6808.6610.5367.71
kroa200_Q220010599.4734.48247.57
11569.9441.1443.19
kroa200_Q320020415.49534.921568.01
21403.1824.89852.34
kroa200_Q420040293.2976.65242.6
41287.4559.69166.92
kroB200_Q12005897.6617.5983.57
6784.189.2252.55
kroB200_Q220010589.8641.29904.5
11567.527.26126.71
kroB200_Q320020412.141352.513903.28
21399.48391.721230.63
kroB200_Q420040289.27483.6737,907.53
41282.469.2535,200.62
ts225_Q122554000.0127.16118.97
63605.5544.26108.12
ts225_Q2225103041.38840.593037.34
113000.0176.574372.96
ts225_Q3225202000.0407.86473.29
211802.77224.01566.91
ts225_Q4225401414.21194.321115.63
411118.03170.124623.0
pr226_Q122654172.52140.19481.23
63778.9753.08213.13
pr226_Q2226102863.56102.9>86,400
112844.2973.39>86,400
pr226_Q3226202450.51410.74>86,400
212300.54186.73>86,400
pr226_Q4226401320.98162.73>86,400
411166.1987.73>86,400
gr229_Q1229550.2615971.843036.74
637.94120.27192.09
gr229_Q22291037.949548.37746.46
1128.844216.9685.63
gr229_Q32292023.238412.51129.62
2122.612091.64688.22
gr229_Q42294019.784738.611135.16
4119.677827.95745.42
a280_Q1280569.85734.93626.56
658.2450.37340.37
a280_Q22801045.2593.96333.76
1142.5266.67328.59
a280_Q32802031.24700.756289.73
2128.84376.452186.42
a280_Q42804021.54846.971046.82
4120.39772.4821,710.55
Average time1332.78>13,726.34

Share and Cite

MDPI and ACS Style

Cornejo Acosta, J.A.; García Díaz, J.; Menchaca-Méndez, R.; Menchaca-Méndez, R. Solving the Capacitated Vertex K-Center Problem through the Minimum Capacitated Dominating Set Problem. Mathematics 2020, 8, 1551. https://doi.org/10.3390/math8091551

AMA Style

Cornejo Acosta JA, García Díaz J, Menchaca-Méndez R, Menchaca-Méndez R. Solving the Capacitated Vertex K-Center Problem through the Minimum Capacitated Dominating Set Problem. Mathematics. 2020; 8(9):1551. https://doi.org/10.3390/math8091551

Chicago/Turabian Style

Cornejo Acosta, José Alejandro, Jesús García Díaz, Ricardo Menchaca-Méndez, and Rolando Menchaca-Méndez. 2020. "Solving the Capacitated Vertex K-Center Problem through the Minimum Capacitated Dominating Set Problem" Mathematics 8, no. 9: 1551. https://doi.org/10.3390/math8091551

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