An Iterative Neighborhood Local Search Algorithm for Capacitated Centered Clustering Problem

The Capacitated Centered Clustering Problem (CCCP) is NP-hard and has many practical applications. In recent years, many excellent CCCP solving algorithms have been proposed, but their ability to search in the neighborhood space of clusters is still insufficient. Based on the adaptive Biased Random-Key Genetic Algorithm (A-BRKGA), this paper proposes an efficient iterative neighborhood search algorithm A-BRKGA_INLS. The algorithm uses shift and swap heuristics to search neighborhood space iteratively to enhance the quality of solutions. The computational experiments were conducted in 53 instances. A-BRKGA_INLS improves the best-known solutions in 23 instances and matches the best-known solutions in 15 instances. Moreover, it achieves better average solutions on multiple instances while spending the same time as the A-BRKGA+CS.


I. INTRODUCTION
Clustering problems have been applied to many research fields, such as machine learning, pattern recognition, community detection, image segmentation, genetics, microbiology, geology, remote sensing, etc. [1] [2]. This paper mainly studies the capacitated constrained clustering problem in the clustering problem, which is an abstract problem of location selection, and it is also an important decision-making problem. Scientific and reasonable location selection can effectively save resources, reduce costs and ensure high-quality service. The location selection problem has a wide range of applications in production, logistics, and daily life. One of the most famous facility-location problems is the -Median Problem [3]. This problem is defined as follows: Given points, medians are selected among them, and points are assigned to their nearest median so that the total distance between each point and its nearest median is minimized.
Another classic location problem is the Capacitated -Median Problem (CPMP) [4], which has different applications in many practical situations. It can be described as follows: Given points that each has a known demand, find medians in points and assign each point to one median so that the total distance from demand points to their corresponding medians is minimized and the sum of the demands of all points assigned to a median cannot exceed its capacity. Due to capacity constraints, some points may not be assigned to the nearest median.
The Capacitated Centered Clustering Problem (CCCP) [5] studied in this paper is a generalized CPMP, which divides demand points into clusters with limited capacity. The goal is to minimize the total distance between each point and the geometric center of its cluster. CCCP has been applied to many fields, such as the location design of garbage collection areas and sales centers [5], the network design of agricultural product supply chains [6], the site selection of offshore wind farms [7], and sibling reconstruction problem (SRP) in computational biology [8].
The main difference between CPMP and CCCP is the features of the locations of the centers. In the CPMP, the location is determined at a median point, while for the CCCP, the location is determined at a centroid. Compared with CPMP, the distance from the median to point in CPMP can be directly obtained from the initially constructed distance matrix. The difficulty of CCCP is that the distance from the cluster center to the point is constantly changing, and the distance calculation will consume more time. Since CPMP and CCCP are similar, researchers often propose solutions to CPMP and apply them to CCCP after making slight changes. In recent years, there have been many heuristic and metaheuristic solutions for CPMP and CCCP.
Stefanello et al. [9] combined meta-heuristics based on local search with mathematical programming techniques. This method applied Iterated Reduction Matheuristic Algorithm (IRMA) to eliminate variables that are unlikely to be good or optimal solutions from the model. The simplified mathematical model was obtained. Baumann [10] presented an extended version of K-Means, which uses binary linear programming to assign points to clusters. In the latest paper of CPMP [11], the author proposes a decomposition strategy for solving large-scale instances. In the local optimization stage, the new IRMA reduction method is used, in which priority is given to sub-problems with great potential to increase the objective function value. The cluster with the largest unused capacity is selected as the initial cluster. This mathematical algorithm is extended to CCCP. The new and most famous solution was discovered in several CCCP instances. Mai et al. [12] used a Gaussian mixture modelling method to construct the solution of CPMP and proposed an improved heuristic. The improved heuristic uses the best improvement search mechanism to shift or swap points between different clusters.
Meta-heuristic algorithms are divided into three categories: meta-heuristics with exact approaches, metaheuristics with other meta-heuristic components, and metaheuristics with local search heuristics. Jánošíková et al. [13] considered the efficiency of the integer programming solver, combined genetic algorithm with integer programming and proposed two variants. The integer programming solver is used to generate elite individuals in the solving process of the genetic algorithm or as a post-processing technique to improve the best solution of CPMP. Chaves and Lorena [14] combined a simulated annealing algorithm with Clustering Search (CS) [15] proposed by Oliveira et al. to solve the CCCP. Chaves and Lorena [16] first used a genetic algorithm to generate solutions and then enhanced the quality of solutions by CS. Muritib [17] proposed a random best-fit construction method and a local search heuristic algorithm based on Tabu Search (TS). Considering CS is the most computationally demanding procedure, Melo Morales et al. [18] parallelized the local search component CS, using the Genetic Algorithm as a solutions generator, to solve the CCCP. Caballero Morales [19] proposed a genetic algorithm, which combines the Greedy Random Adaptive Search Process (GRASP) and the K-Means clustering algorithm. Recently, Chaves et al. [20] proposed an adaptive Biased Random-Key Genetic Algorithm (A-BRKGA) by improving the Biased Random-Key Genetic Algorithm (BRKGA) [21] and provided a local search component CS to intensify the exploitation of CCCP solutions. This method determined new best solutions for seven classic instances and reported best solutions in other new instances.
Most researches for CCCP focus on improving the evolution process in the meta-heuristic algorithm, such as [20] improving the meta-heuristic framework by adding parameter control. Literature [14], [16] and [17] respectively combine simulated annealing algorithm, genetic algorithm and tabu search with local search. [18] proposes the strategy of parallel local search component. The related research on the local search for a specific solution of CCCP is relatively shallow, such as literature [17] and [20] are both using simple search methods. A targeted local search can effectively improve the quality of solutions. Our method focuses on the design of local search schemes.
The variable neighborhood search algorithm (VNS) is an improved local search algorithm that uses multiple neighborhood structures defined by different functions to perform alternate searches, achieving a good balance between search concentration and evacuation. The variable neighborhood search is based on the following facts: (1) The local optimal solution of a certain neighborhood structure is not necessarily the local optimal solution of another neighborhood structure. (2) The global optimal solution must be the local optimal solution of all possible neighborhoods.
VNS algorithms mainly depend on the neighborhood structure, search mechanism, and neighborhood movement strategy. Usually, the search order between neighborhood structures is sure. Common search mechanisms include the first or best improvement search strategy. Once the first improvement strategy detects an improved solution, it is set as a new existing solution. The best improvement strategy selects the best of all improved solutions as the new solution. Neighborhood movement strategies mainly include returning to the first neighborhood, searching in the same neighborhood, and searching for the next neighborhood. The literature [22] reported the impact of different combinations of VNS on the solution quality when used as a local search.
The variable neighborhood search algorithm has a good effect in solving travelling salesman problems, location problems, vehicle routing problems, etc. At present, researchers have also proposed a variety of improved variable neighborhood algorithms, such as general variable neighborhood search (GVNS) and skewed general variable neighborhood search (SGVNS) [23]. In addition, related literature such as [24] and [25] adopts particular strategies and mechanisms to retain and deal with infeasible solutions to explore infeasible space. Exploring greater solution space and increasing the diversity of solutions improves the possibility of finding a better solution.
The initialization and evolution rules of the population in A-BRKGA [20] can produce many solutions with different structures. Thus, the diversity of solutions is ensured. Through experimental analysis, we found that some instances in the data sets in [20] have many clusters with a few points, and the assignments of points at the edge of these clusters are highly variable. The local search component (CS) has less exploration in the neighborhood space between clusters. Based on A-BRKGA [20], this paper proposes an iterative neighborhood search algorithm called A-BRKGA_INLS to enhance the exploration of neighborhoods. The main innovations of this paper include: (1) The algorithm separately searches the shift neighborhood and the swap neighborhood, instead of searching for feasible shifts and swaps simultaneously. The iterative variable neighborhood search method better balances the concentration of the search and the evacuation of the genetic algorithm. Based on the optimal shift neighborhood, the swap neighborhood is checked again. The shift neighborhood has more adjustment space and can develop in a better direction.
(2) The algorithm combines imprecise search and precise search. The imprecise search in the evolution process has higher conditions for point movement. It skips the movement that can only cause a weak increase in the objective function, avoiding the early fixation of the cluster allocation and losing more exploration opportunities, thereby effectively avoiding falling into the local optimum prematurely. The precise search checks the shifts and swaps ignored by the imprecise search, which further improves the quality of solutions.
The experimental results in 53 instances show that the proposed method has good performance. Compared with A-BRKGA+CS, A-BRKGA_INLS can find better solutions on multiple instances in approximately equal time.
The remainder of the paper is organized as follows. In Section II, a formal description of CCCP is given, and the basic idea of BRKGA is introduced. Then, based on BRKGA, the application of A-BRKGA to CCCP is described. In Section III, the algorithm A-BRKGA_INLS for CCCP is given. In Section IV, we introduce the experimental dataset. In Section V, we report the results of the computational analysis. Finally, in Section VI, the paper is summarized, and the future research direction is prospected.

A. MATHEMATICAL MODEL OF CCCP
CCCP can be formally expressed as an optimization problem, as shown in Equation (1).
∈  , ∈ , ∈ { , }, ∀ , ∀ is the set of demand points; is the set of cluster centers; is the coordinate of point ;  is the coordinate of the geometric center of cluster ; = 1 , if the point i is assigned to cluster , and = 0 otherwise; is the demand of the point ; is the capacity of cluster . The objective function (1) minimizes the total distance between each cluster centers and their assigned points. Constraints (2) require that each point must be assigned to one cluster. Constraints (3) impose that the sum of demands of all points in one cluster should not exceed the cluster capacity. Decision variables are defined.

B. BIASED RANDOM-KEY GENETIC ALGORITHM
BRKGA is a general search meta-heuristic algorithm proposed by Goncalves and Resende [21], which is based on the Random-Key Genetic Algorithm (RKGA) introduced by Bean [26]. Recently, BRKGA has been combined with many combinatorial optimization problems, such as the Permutation Flow-shop Scheduling Problem [27], the Twostage Capacitated Facility Location Problem [28], the Network Hubs Location Problem [29], and the Vehicle Routing Problem [30].
In BRKGA, each gene on the chromosome is a decimal number in the interval [0, 1]. The number is called the random-key. N random-keys form a vector that represents a chromosome. The random-keys vector needs to be converted into a solution for the combinatorial optimization problem by a specific decoder to calculate its fitness. The initial population of BRKGA consists of randomkeys vectors (individuals). All random-keys in each vector are generated independently and randomly. In each generation of population evolution, first, the fitness of the newly created random-keys vectors are calculated by the decoder. Then, the population is divided into an elite group and a non-elite group by fitness. Next, individuals of the next generation are generated, as shown in Figure 1. (1) elite individuals are directly copied into the next generation. (2) A small number of mutants are added to the next generation. The mutation in BRKGA is different from that in genetic algorithms. These mutants are generated the same 4 VOLUME XX, 2017 way as the individuals in the initial population. (3) To make up a population of size , − − individuals need to be produced. These individuals are generated by parameterized uniform crossover [31]: two individuals (parents) are selected randomly from the elite and the nonelite groups. It can be seen that BRKGA is an evolutionary algorithm that performs multiple iterations on random-keys vectors.

C. ADAPTIVE BIASED RANDOM-KEY GENETIC ALGORITHM FOR SOLVING CCCP
Chaves et al. [20] proposed A-BRKGA based on BRKGA and designed a special decoder for CCCP. This paper applies A-BRKGA to evolve populations and uses the same CCCP decoder. We will briefly introduce the encoding and decoding of CCCP instances and the difference between BRKGA and A-BRKGA.
For each CCCP instance, points are numbered from 1 to (the number of points in the instance). In this way, one point can be indexed by a serial number. A random-key in the interval [0, 1] is randomly generated for each point. Besides, two random-keys are generated for the +1th and +2th positions. Therefore, the code length of CCCP is +2.
CCCP decoder is based on the best-fit construction method [17]. The last two random-keys of the encoding related to the perturbation probability and crossover probability do not participate in the decoding process. First, the first random-keys are sorted in descending order, and the last two random-keys remain unchanged. Then, the first m demand points of the random list are put into m clusters as the initial center of the cluster, and the remaining − demand points are placed according to the best-fit principle. (The best-fit principle is always selecting the cluster closest to the demand point to join when meeting the capacity constraint.) The cluster center and occupied capacity are updated whenever a new point is added. When all the points are added to the appropriate cluster, a feasible solution is formed. The decoder will calculate the solution fitness, using the objective function (Equation (1)) as the fitness calculation equation.
Compared with BRKGA, A-BRKGA adds perturbation strategy of elite individuals and deterministic and adaptive parameters update strategy.
The perturbation strategy of elite individuals perturbs individuals with the same fitness in the elite group. The perturbation strategy increases the diversity of the elite group and avoids falling into the local optimum prematurely.
Deterministic parameter update is reflected in controlling the proportion of elite individuals and mutant individuals in the population. As the number of iterations increases, the proportion of elite individuals κ increases, and the proportion of mutant individuals κ decreases.
A-BRKGA inserts two random-keys at the positions +1 and +2 of the vector to make the parameters self-adaptive. Perturbation probability β and parameterized uniform crossover are updated based on the two random-keys. The updates of β and are both non-deterministic. Each perturbed chromosome has its perturbation probability. Adaptive parameter update allows the gene sequence to be changed to different degrees, which improves the possibility of producing solutions with different structures.

III. THE CAPACITATED CLUSTER CENTERED PROBLEM OF A-BRKGA
In this section, we will present A-BRKGA_INLS in detail. First, we provide a general framework of the algorithm, showing how the two local search algorithms are combined with A-BRKGA. Then, the specific process of imprecise Iterative Neighborhood Local Search Algorithm (IINLS) is explained. Finally, the precise Iterative Neighborhood Local Search Algorithm (PINLS) is introduced, and the difference between IINLS and PINLS is discussed.

Algorithm 1: A-BRKGA_INLS; //A-BRKGA with iterative neighborhood local search
Input: the number of generation max_gen, the size of population , the search internal K, a null solution * which its objective function value is set to INFINITY; Output: the local optimal solution * * ; (1) Randomly generate initial population Pop with p vectors; (2) for i =1 to max_gen do We utilized A-BRKGA to evolve the population. In the process of population evolution, elite individuals are clustered at certain generations, and an Iterative Neighborhood Local Search (IINLS) is performed on the individuals with the highest fitness in each cluster. Another Iterative Neighborhood Local Search (PINLS) is performed when the population evolution is finished to improve the search quality. PINLS has the same framework as IINLS, but the criteria for moving or not moving is different.
The primary process of A-BRKGA_INLS is listed in Algorithm 1. Firstly, the initial population of size is generated randomly (line 1). Secondly, in each generation, the population is updated by copying elite individuals, perturbing similar elite individuals, mutation, and crossover (line 3). Then, for every particular generation (K), the elite individuals are clustered by the Label Propagation (line 5). IINLS is applied to individuals with the highest fitness in each cluster to improve the quality of individuals (line 7, see Section III, Part B). The current best solution is stored in * (line 8). When the maximum number of generations (max_gen) is reached, the population evolution is finished. At this time, a precise local search algorithm PINLS is implemented to get the final best solution * * (line 12，see Section III, Part C). The algorithm ends.
Compared with A-BRKGA+CS [20], A-BRKGA_INLS has two differences. (1) CS simultaneously searches for feasible shifts and swaps, and IINLS separately searches shift neighborhood and swap neighborhood to thoroughly explore the neighborhood space of solutions. (2) When the evolution is completed, A-BRKGA+CS no longer searches, while A-BRKGA_INLS applies PINLS to improve individuals' quality further. Figure 2 shows a simple example to introduce the scenario our algorithm aimed, where lines connect points in the same cluster. It is required to divide 9 points into 3 clusters with a capacity constraint of 4. Table I shows the coordinates and points demand. f denotes the value of the objective function. For the initial solution in Figure 2(a), we use the precise iterative neighborhood search (see (b)(c) for the process) and A-BRKGA_INLS combined with the imprecise iterative neighborhood search (see (d)(e)(f) for the process)) to solve. The initial solution = 66.3.  1  8  20  1  2  10  10  1  3  11  36  1  4  13  21  1  5  16  27  1  6  19  32  1  7  20  14  1  8  28  29  1  9 32 13 1 Perform the precise iterative neighborhood search. First, search for the shift neighborhood of the current solution in increasing order of cluster labels. Traverse cluster 1, point 2 is moved to cluster 2, and is reduced by 0.37. Figure 2(b) shows the updated solution. Continue to search the shift neighborhood of Figure 2(b). Traverse cluster1, point 1 is moved to cluster 2, and is reduced by 0.55. The solution is updated, as shown in Figure 2(c). Search for cluster1, cluster 2, and cluster 3 in Figure 2(c). At this time, there is no better shift neighborhood solution. The shift neighborhood search ends. Because the clusters have no intersection, the swap neighborhood will not be searched. The current solution reaches the local optimum with f= 62.4. However, if an imprecise iterative neighborhood search is performed, since < 0 (Equation 5), these two moves will not be performed. Until cluster 3 is traversed, point 4 in cluster 3 is moved to cluster 1 according to = 5.18. Then search for the shift neighborhood of Figure 2(d), and move point 3 in cluster 1 to cluster 3 according to = 2.24, as shown in Figure 2(e). The imprecise search reaches the local optimum with = 52.2. That is to say, in this case 2(a), the result of precise iterative neighborhood search is only slightly improved. Due to capacity constraints or distance factors, the subsequent move that leads to a more significant improvement cannot be performed. However, the imprecise search can move across these points that cause a slight improvement. It is beneficial to the final solution.

FIGURE 2. Example of neighborhood search in A-BRKGA_INLS.
It can be seen that A-BRKGA_INLS is suitable for the situation where the precise search for slight improvement is easy to fall into the local optimum early. In A-BRKGA_INLS, the imprecise search is used to improve the solution more, and then the precise search is used to improve the solution that is already good enough. By their combination, A-BRKGA_INLS explores the neighborhood space more fully as a whole. Subsequent chapters will detail the neighborhood iteration process of A-BRKGA_INLS.

B. IMPRECISE ITERATIVE NEIGHBORHOOD LOCAL SEARCH ALGORITHM (IINLS)
This paper uses the Label Propagation algorithm [32] to cluster the elite individuals, aiming at clustering the elite individuals with high similarity in the same cluster. Only the individual with the highest fitness in each cluster is selected for local search to speed up the evolution process (Individuals that already have been searched are not considered). Label Propagation uses the Pearson correlation coefficient [33] to measure if two random-keys vectors could return similar solutions.
Applying clustering search to each generation of the population usually does not help with getting a better solution. On the contrary, it will shorten the number of generations and fail to get good performance. Therefore, we only perform the clustering search for every K generations.
A point in cluster A is transferred to cluster B when the capacity of cluster B is not less than the sum of the occupied demand and the demand of the transferred point. The move is called a shift. The solution obtained by shifting on solution S is called a shift neighborhood solution of solution S. The shift neighborhood of solution ( 1 ( ) ) comprises all possible shift neighborhood solutions. In one instance with demand points and clusters, each demand point can be shifted to other m-1 clusters. Therefore, the number of neighborhood solutions contained in 1( ) does not exceed n×m. A point in cluster A is transferred to cluster B, and another point in cluster B is transferred to cluster A when the capacity of cluster A and cluster B is not less than the occupied demand plus the demand of the point swapped in minus the demand of the point swapped out. The move is called a swap. The solution obtained by swapping on solution S is called a swap neighborhood solution of solution . The swap neighborhood of solution ( 2 ( )) comprises all possible swap neighborhood solutions. Each point can be swapped with any point only if they are not in the same cluster. Therefore, the number of neighborhood solutions contained in 2( ) does not exceed 2 .
This paper proposes a new iterative neighborhood local search method, IINLS, which combines shift neighborhood and swap neighborhood. The specific search processes of 1 and 2 are described in Algorithm 2 and Algorithm 3. In Algorithm 2 and Algorithm 3, whether to shift or swap is not determined by the precise objective function increment. For swaps, we use the evaluation function in [17] (Equation (4)), in which u and v are the points to be swapped, and are the original cluster centers, and and are new cluster centers after swapping. For shifts, we only make a simple judgment (Equation (5)). We utilize an auxiliary data structure to record the geometric centers of all clusters so that ∆ can be calculated in O (1). Swaps or shifts are performed when ∆ > 0 is satisfied.
The swap neighborhood is larger than the shift neighborhood. To reduce the search scope of swap neighborhoods, we only check points in the overlapping areas. Figure 3 describes an example of three clusters where clusters A and C are not overlapping and so swaps between the two clusters are not considered. We utilize auxiliary data structures to store the boundary coordinates of clusters A, B, and C. The minimum coordinates P1 (min_x, min_y) and the maximum coordinate P2 (max_x, max_y) of the overlapping rectangular area can be calculated. For instances having many points in a single cluster, checking only points in the overlapping area can speed up the search of swap neighborhoods. has no improved solution in 2 ( ) . If the solution obtained from the shift neighborhood has improved in the swap neighborhood, it is necessary to go back to the shift neighborhood to search again. The stop criterion is that there is no feasible move in both the shift neighborhood and the swap neighborhood of the current solution. At this time, the solution reaches a local optimum, and its fitness is calculated (lines 8,9). The algorithm uses the array 'Changed' to mark whether clusters have been changed to update the overlapping areas. The Boolean named is to record whether the solution has been improved. The search process does not change the random-keys vector, so IINLS does not affect the evolution of the individual in A-BRKGA.
IINLS utilizes two evaluation functions to check feasible shifts and swaps, so the judgement of moves may be imprecise. This search process is called the imprecise search. Imprecise search improves the movement conditions, avoids missing significant growth due to slight growth, and further explores better neighborhood solutions, which effectively avoids the evolution falling into local optimum prematurely. (1) = ; (2) for ← 1 to do /*m is the number of clusters to be partitioned.*/

C. PRECISE ITERATIVE NEIGHBORHOOD LOCAL SEARCH ALGORITHM (PINLS)
At the end of population evolution, a precise local search algorithm for the current best solution is executed (PINLS, Algorithm1 line 12). In PINLS, the objective function increment is accurately calculated to determine whether the shift or swap is feasible. The search process is called the precise search. Since there are only a few points in each cluster, a shift or swap causes a significant change in the cluster center. However, evaluation functions only consider the point being moved and ignore the influence on the remaining points in two clusters. Figure 4 shows an example that even if the condition ∆ f > 0 is satisfied, the movement will degrade the quality of the solution. It illustrates the importance of precisely calculating the objective function increment at the last step. As shown in Figure 4(a), the light gray points are in cluster 1, and the dark gray points are in cluster 2. Before shifting, the centers of clusters 1 and 2 are points 1 and 2 (triangle markers), respectively. It can be seen that the distance from point P to 1 is greater than the distance to 2 , which satisfies the condition ∆ > 0 (Algorithm 2 line 8). If the imprecise shift is performed, point P will be moved to cluster 2, and the centers of clusters 1 and 2 will become points 1' and 2', as shown in Figure   4(b). As a result, the sum of distances in two clusters increases, and the objective function increases. If we can accurately calculate the objective function increment, point P will not be shifted to cluster 2. Precise calculation avoids the degradation of the quality of the solution.
PINLS keeps the same process as IINLS but calculates the objective function increment caused by swaps and shifts instead of using evaluation functions (in Algorithm2 line 6, 7, Algorithm3 line 7, 8, ∆f is not used). This step detects feasible shifts and swaps ignored by imprecise search due to the higher move conditions, improving the quality of solutions at a low time cost. The solution must undoubtedly be better or remain unchanged because PINLS accurately calculates the objective function.

IV. EXPERIMENTAL DATA SETS
A-BRKGA_INLS is coded in C++ and tested on Intel (R) Xeon (R) Platinum 8269CY 2.5 GHz processor with 8 GB of RAM. The parameter setting of A-BRKGA is the same as [20]. We use nine CCCP data sets in reference [20] to compare the proposed method with A-BRKGA + CS [20]. Nine data sets contain 53 CCCP instances. In Table II, there are three data sets named TA, doni [5], and sjc [34] (including 20 instances). Table III contains the data set SJCn proposed by Pereira, Lorena, and Senne [35] for the Maximum Coverage Location Problem (including eight instances) and five data sets (named lin318-m, u724-m, rl1304-m, pr2392-m, and fnl4461-m) for CPMP generated by Stefanello, de AraúJo, and Müller [36] (including 25 instances). All of the above instances are from (https://sites.google.com/site/antoniochaves/publications/da ta). This paper does not compare data set x-n-m [36]. The data set is based on the Capacitated Vehicle Routing Problem, and the upper limit of cluster capacity is tight. In the experiment, it is found that many illegal solutions that do not meet the capacity constraints are generated. Iteration of a large-scale population takes much time, so we abandon the data set. Table II and Table III show the essential characteristics of instances: number of points ( ), number of clusters ( ), cluster capacity ( ), average point demand ( _ ), and point demand standard deviation ( _ ). In Table III, each row represents multiple instances with the same number of points, and the number of clusters in column m corresponds to the cluster capacity in column . In data set SJC-n, there are a few points whose demands exceed the cluster capacity. For this situation, we delete these demand points and reduce the number of clusters of this instance accordingly.

V. COMPARISON OF EXPERIMENTAL RESULTS
First, the experimental results are compared between A-BRKGA_INLS and A-BRKGA+CS in the latest literature [20]. Then, comparative experiments were carried out from two perspectives to illustrate the superiority of our algorithm: the combination of imprecise search and precise search and iterative neighborhood search. Table IV and Table V show the results of A-BRKGA+CS and A-BRKGA_INLS. The computational tests limit the running time in 1000s, and each instance was run continuously 20 times with different random seeds. The entries in the table are the best-known solution (best-known), the best solution ( * ), the average solution ( ) over 20 runs, the average running time to find the best solution ( * ), the average running time of the instance ( ) in seconds, the absolute difference between the best solution and the bestknown solution ( ), the deviation between the best solution and the average solution ( ), and the difference between the best solutions of the two algorithms ( ). represents the gap between the current algorithm solution and the best-known solution, and reflects algorithm stability. We use bold to mark solutions that are better than the best-known solutions. Data for each entry is averaged to compare the overall performance. The average data are placed in the last row.

A. ALGORITHM COMPARISON
In Table IV, A-BRKGA_INLS and A-BRKGA+CS have the same ability to obtain the best solutions ( = 0), and the average gap between the best solutions and the bestknown solutions is both 0.5% ( = 0.5). Our method gets equal or better average solutions in 17 of 20 instances. Compared to A-BRKGA+CS ( = 0.29), our method provides better robustness ( = 0.20). In Table V, A-BRKGA_INLS improves 23 best-known solutions and matches four best-known solutions. The quality of A-BRKGA_INLS solutions is 2.16% higher than A-BRKGA+CS solutions ( = 2.16), and the gap with the best-known solution has decreased from = 1.36 to = −0.75. Especially on data sets pr2392 and fnl4461 with thousands of points, the quality of our solutions has been significantly improved, exceeding 20% at the most. Besides, our method can get equal or better average solutions in 27 instances. In Table IV, A-BRKGA_INLS ( = 1.06 ) shows stronger robustness than A-BRKGA+CS ( = 1.12). We also apply the Wilcoxon signed-rank test (WSR) to analyze if a significant difference exists between the solutions of A-BRKGA_INLS and A-BRKGA+CS. The WSR shows -= 0.001 . The result indicated that there is a significant differences between A-BRKGA_INLS and A-BRKGA+CS，and INLS provides better solutions than CS.
It can be seen from Table IV and Table V that A-BRKGA_INLS has no significant increase in running time compared to A-BRKGA+CS.
In summary, A-BRKGA_INLS provides stronger robustness and better results than A-BRKGA+CS. A-BRKGA_INLS scans the neighborhood better, so it produces high-quality solutions.
We also compare A-BRKGA_INLS with A-BRKGA to show the efficiency of the local search components INLS. Results are listed in Table VI. Random seeds affect the searched solutions through evolutionary process. In order to study the effect of random seeds on the best solution, we increased the number of consecutive runs to 50. The current best solution was recorded every five times. As shown in Figure 5, each recorded data is compared with the best result of 20 consecutive runs ( * of A-BRKGA_INLS in table V). In the u724_010 and u724_030 instances, A-BRKGA_INLS obtained the best solution in the 0-5th, 10th-15th time, respectively. In the u724_075, u724_125 and u724_200 instances, A-BRKGA_INLS obtained better solutions than those reported in Table IV in the 10-15th, 20-25th, 35-40th time, respectively. It can be seen that affected by the random seed, A-BRKGA_INLS can perform better as the number of runs increases.
In addition, literature [11] applied the proposed method GB21 MH to CCCP and gave experimental results. Table VII shows the comparative experimental results of A-BRKGA_INLS and GB21 MH . Experiments show that our method obtains a better solution in eight instances, although the solution of GB21 MH in some instances is greatly improved.

B. EFFECTIVENESS ANALYSIS OF IMPRECISE SEARCH
The final precise search method can significantly improve the quality of solutions. However, it does not mean that applying precise search method to evolution can also produce excellent solutions. To prove it, we compare A-BRKGA_INLS with the method that not using the imprecise search.
In Table VIII, the second set of data shows experimental results of not using the imprecise search in 33 CCCP benchmark instances. (In each column, the three sets of data represent A-BRKGA_INLS, not using the imprecise search and not using iterative neighborhood in turn. The values in bold are better than the best-known solutions, and the values marked with * are better than A-BRKGA_INLS.) Each instance was run 20 times continuously. As shown in Table  VIII, not using the imprecise search outperforms the best-known solutions in 15 instances but outperforms A-BRKGA_INLS solutions in only six instances. In most instances, the best solutions of not using the imprecise search are worse than those of A-BRKGA_INLS. Not using the imprecise search can get some excellent solutions using iterative neighborhood, but it is not as excellent as A-BRKGA_INLS in the overall result. Moreover, the average running time to find the best solution for not using the imprecise search ( * = 65.4 ) is much less than A-BRKGA_INLS ( * = 562.15 ). Not using the imprecise search reaches local optimum within tens of seconds in most instances, and results are not improved at the later stage of evolution.
The reported results support the claims that the imprecise search effectively avoids the algorithm falling into local optimum prematurely and help the algorithm yield highquality solutions.

C. EFFECTIVENESS ANALYSIS OF ITERATIVE NEIGHBORHOOD
Both IINLS and PINLS iteratively search the shift neighborhood and the swap neighborhood, instead of searching for both shifts and swaps simultaneously. In other words, IINLS and PINLS search the shift neighborhood until there is no feasible shift and then go to the swap neighborhood to perform feasible swaps. Since the CCCP is strictly limited by capacity, the order of shifting and swapping is very important. After a large number of shifts, INLS searches swaps that cannot be converted into two shifts due to capacity constraints. Based on the optimal shift neighborhood, INLS searches swaps to make the swap neighborhood optimal. In INLS, the swap neighborhood does not affect the shift neighborhood. The shift neighborhood has more adjustment space and can develop in a better direction. However, if shifts and swaps are searched alternately frequently, the solution is not optimal in any neighborhood in the whole process, except at the end. In order to prove that iterative neighborhood search provides better results than simultaneous search, we conducted a comparative experiment.
The third set of data in each column of Table VIII shows the experimental results of not using iterative neighborhood. Similarly, each instance was run 20 times continuously. Not using iterative neighborhood utilizes the A-BRKGA to evolve population but performs two local search algorithms that simultaneously search for swaps and shifts. Not using iterative neighborhood combines imprecise search and precise search, the same as A-BRKGA_INLS. In 13 instances, not using iterative neighborhood finds better solutions than the best-known solutions, but these solutions are not as excellent as A-BRKGA_INLS solutions. In one instance, the solution outperforms A-BRKGA_INLS but is worse than the best-known solution. In four instances (bold and marked with *), not using iterative neighborhood outperforms both the best-known solutions and A-Author Name: Preparation of Papers for IEEE Access (February 2017) VOLUME XX, 2017 11 BRKGA_INLS solutions. Solutions of other instances are poor. As shown in the last row of Table VIII, the average value of the best solutions of A-BRKGA_INLS ( ( * ) = 391639.35) is much smaller than that of not using iterative neighborhood ( ( * ) = 414047.50).
In summary, A-BRKGA_INLS iteratively searches for the neighborhood space of solutions, which has more advantages than not using iterative neighborhood on these data sets. Therefore, iterative neighborhood search is effective.

VI. CONCLUSION
This paper presents an optimized local search algorithm based on A-BRKGA to solve the CCCP. Unlike local search processes in the previous literature, A-BRKGA_INLS iteratively searches the shift neighborhood and the swap neighborhood. Until there are no viable shifts in the shift neighborhood, the swap neighborhood is searched. Thus, A-BRKGA_INLS explores the neighborhood of solutions more fully. In the stage of population evolution, evaluation functions are used to perform the imprecise local search to avoid the search falling into the local optimum prematurely. When the population evolution is completed, precise calculations are adopted to improve the quality of solutions further. The performance of the algorithm was tested on a general benchmark containing 53 instances. Experimental results show that the algorithm is effective for solving CCCP. Based on 53 instances, 23 new bestknown solutions are provided, and 15 instances match the current best-known solutions. Compared with A-BRKGA + CS, the difference in time cost between the two algorithms is small.
Measuring the performance of the overlapping areas is our next research issue. Future research can focus on heuristic algorithms for data sets with tight cluster capacity limits such as x-n-m, so the algorithm can fully explore the neighborhood space on the premise of constructing a small number of feasible solutions. Second, multi-objective CCCP can be another research direction to expand the CCCP model to a wider range of applications.