# Solving the Set Packing Problem via a Maximum Weighted Independent Set Heuristic

Authors: Ruizhi Li; Yupan Wang; Shuli Hu; Jianhua Jiang; Dantong Ouyang; Minghao Yin
Journal: Mathematical Problems in Engineering
 (2020)

---

## Abstract

The set packing problem (SPP) is a significant NP-hard combinatorial optimization problem with extensive applications. In this paper, we encode the set packing problem as the maximum weighted independent set (MWIS) problem and solve the encoded problem with an efficient algorithm designed to the MWIS problem. We compare the independent set-based method with the state-of-the-art algorithms for the set packing problem on the 64 standard benchmark instances. The experimental results show that the independent set-based method is superior to the existing algorithms in terms of the quality of the solutions and running time obtained the solutions.


---

## Body

## 1. Introduction

The set packing problem is a classical combinatorial optimization problem and it has been studied extensively by researchers in recent years. In the set packing problem, there aren objects and a set of exclusive constraints between some objects of OB labelled as O1, …, Om. Each object j ∈ OB is associated with a positive weight cj. The aim of set packing problem is to find out a packing that maximizes the total weight of objects such that any constraint should not be violated. The problem is widely used in various fields such as routing and scheduling trains at intersections in railway operations [1], selecting winning bids in combinatorial auctions [2], surgical operations scheduling [3], and packets scheduling and transmission in communication networks [4] among many others.The set packing problem is an NP-hard problem [5]. The solving algorithms for this problem can be categorized into two types of exact and inexact ones. In [6–8], new facets were identified for the polyhedron of the problem, which strengthen the solution of the relaxed problem. Rossi and Smriglio used a branch and cut algorithm to solve the set packing problems [9]. Kwon et al. proposed an approach for ex-postevaluation of approximate solutions obtained by a well-known simple greedy method for set packing [10]. Kolokolov and Zaozerskaya found the polynomial upper bounds on average iterations number for L-class enumeration algorithm and the first Gomory cutting plane algorithm [11]. Landete et al. presented an alternative formulation for the set packing problem in a higher dimension and the addition of a new family of binary variables allowed the authors to find new valid inequalities, some of which were shown to be facets of the polytope in the higher dimension [12]. However, the computational time required for this exact approach increases exponentially with the size of the problem in general. The exact approach can only obtain optimal solutions for relatively small-scale instances. So as to solve larger-scale instances, heuristic algorithms [13–17], which indeed play an important role in obtaining high-quality solutions to combinatorial optimization problems in a reasonable time [18–22], have been designed. For set packing problem, Rönnqvist proposed a combination of Lagrangian relaxation and the subgradient method to solve the cutting stock problem, which is an application of the set packing problem [23]. Chandra and Halldórsson proposed a combination of greedy algorithms and local search methods to tackle the special cases of the set packing problem [24]. Lau and Goh presented a greedy algorithm to solving the set packing problem [25]. In the literature [26], a greedy randomized adaptive search procedure (GRASP) was proposed, and railway problem instances and random instances were tested to measure the effectiveness of GRASP [26]. In literature [27], Gandibleux et al. proposed an ant colony optimization (ACO) method, and the random instances were used to evaluate the ACO algorithm. Guo et at. presented the simulated annealing heuristic with three local moves to solving the bidding problem which can be modelled as the set packing problem [28]. The set packing problem was modelled as the unconstrained quadratic binary program and Tabu search was proposed to solve it [29]. Later, two improved versions of ACO were proposed in [30, 31]. In [32], an approximation algorithm based on local search methods was proposed. EA/G [33] was a recently proposed evolutionary algorithm and was applied on random instances. Chaurasia et al. presented an evolutionary algorithm-based hyperheuristic framework for solving the set packing problem [34]. Chaurasia and Kim proposed an evolutionary algorithm-based hyperheuristic framework that incorporates dynamic selection of parameters [35]. In [36], a decomposition technique based on constraint partitioning was proposed for exploiting the semiblock-angular structures of set packing problem and solving the original problem through solving the subproblems of the obtained structure.Although some heuristic search algorithms have been used to solve the set packing problem, their solving quality still needs to be improved. In particular, the average solution obtained by the existing algorithms differs a lot from the optimal solution. In other words, the stability of the solution obtained by the existing algorithms is not very good and has a lot of randomness. Therefore, a new idea is proposed to solve this problem, which is to transform the set packing problem to the weighted independent set problem. As a result, any solving method proposed for minimum weighted independent set can be used to solve SPP via its independent formulation. The idea of encoding a problem into an equivalent problem to solve is appealing because of two reasons: one is that we can solve the set packing problem without designing dedicated set packing solving algorithms. The other is that we can make full use of the minimum weighted independent solving algorithms to better solve the set packing problem. Furthermore, we can even use different minimum weighted independent set algorithms to enlarge the scale of solvable instances of the set packing problem. In our paper, we solve the set packing problem by using the efficient algorithm proposed previously for minimum weighted independent set problem. To our knowledge, the minimum weighted independent set-based methods for the set packing problem have not been used before.The rest of this article is structured as follows. In Section2, we introduce the method of encoding set packing problem as minimum weighted independent problem. Then, we briefly review the algorithm DLSWCC (diversion local search based on weighted configuration checking) for set packing problem in Section 3. The experimental results and the analyses of the experimental results on standard benchmarks are presented in Section 4. The conclusions and perspectives for future work are shown in Section 5.


## 2. The Encoding Method

In this section, we introduce the concepts used in this article and the encoding method. According to the definitions in literatures [26, 27], the set packing problem can be described as follows. Given an object set OB = {1, …, n} and each object i ∈ OB is associated with a positive weight ci, we use Oj to represent a set of exclusive constraints between some objects of OB, where j ∈ J = {1, …, m}. A packing PA is a subset of OB such that Oj∩PA≤1,∀j∈J, i.e., at most one object of Oj can be in PA.The aim of the set packing problem is to obtain a packing that maximizes the total weight of the contained objects without violating any constraint. Formally, the set packing problem can be formulated as follows:(1)maximizez=∑i∈OBcixi,(2)subject to∑i∈OBoi,jxi≤1,∀i∈OB,∀j∈OB,(3)xi∈0,1,∀i∈OB,(4)oi,j∈0,1,∀i∈OB,∀j∈OB.where xi is a binary variable, indicating whether object i is in PA, xi = 1 means in PA, otherwise, xi = 0 means not in PA, ci is the weight of object i, and oi, j is also a binary variable, indicating whether object i belongs to exclusive constraint set Oj, oi, j = 1 means belonging to set Oj, oi, j = 0 means not belonging to set Oj. Formula (1) is the objective function of maximizing the total weight of objects belonging to PA. Constraint (2) establishes that at most one object of Oj can be in PA. Equations (3) and (4) are integer constraints.The set packing problem can be conveniently encoded as the maximum weighted independent set problem. To see this, we first review some basic symbols associated with the MWIS problem. Given an undirected graphG = (Vt, Eg, w), Vt = {1, ... , n} is the vertex set, Eg ⊂ Vt × Vt is the edge set, w is the vertex weighting function, and each vertex i∈Vt is assigned a positive integer weight wi. An independent set IS of G is a subset of Vt such that there is no pair of vertices in IS linked by an edge in Eg, i.e., ∀u, v ∈ IS, u,v∉Eg. The weight of an independent set IS of G is the sum of all contained vertices’ weights, i.e., wIS=∑i∈ISwi. Then, the maximum weighted independent set problem is to find the independent set with the maximum sum of weights of the contained vertices.For a set packing problem instance, an object setOB = {1, …, n}, and an exclusive constraint Oj, j ∈ J = {1, …, m}, each object u ∈ OB is associated with a positive weight cu. We give a maximum weighted independent set instance (conflict graph) G = (Vt, Eg, w) as follows:(i)
For an objectu ∈ OB, define a vertex u ∈ Vt, whose weight wu is equal to cu. That is, Vt = {1, …, n}, ∀u ∈ V, wu = cu.(ii)
For the exclusive constraint, define the edge matrixEg by(5)euv=1,ifu∈Ojandv∈Oj,u,v∈1,…,n,j∈1,…,m,0,otherwise.It is easy to see an edgeeuv will link two vertices u and v if the objects u and v are in the same exclusive constraint, which indicates that the two objects are in conflict and cannot be accepted at the same time. From the edge matrices, we can easily check the objects that are included in the same exclusive constraint.According to the above transformation, it is not difficult to find that a maximum weighted independent setIS = {v1, …, vr} of the conflict graph G = (Vt, Eg, w) corresponding to a feasible set packing PA = {1, …, r} of objects with maximum of the total weight of objects it contains without violating any constraint. So, any solving algorithm for the minimum weighted independent set problem can be applied to tackle the set packing problem.To further illustrate the encoding, we give an example, i.e., a set packing problem instance with 6 objects and 4 constraints in Figure1(a). The correspondent conflict graph G = (Vt, Eg, w) with regard to the set packing problem instance is described in Figure 1(b) where each object is represented by a vertex whose weight is equal to that of the object. An edge will link two vertices if they are included in the same constraint. It is distinct that the optimal solution to the maximum weighted independent set problem defined by the conflict graph is given by the vertex set {v1,v3,v6} which represents the set of objects {1, 3, 6} with a maximum weight of 29.Figure 1
The original set packing problem instance (a) and the associated maximum weighted independent set problem instance (b).
(a)(b)


## 3. Diversion Local Search Based on Weighted Configuration Checking for SPP

Given a set packing problem instance, we can encode this instance as a maximum weighted independent set problem instance according to the previous section. So, any algorithm to solve the maximum weighted independent set can be used to solve the set packing problem. As far as we know, the maximum weighted independent set problem has two equivalent problems, namely, minimum weighted vertex cover (MWVC) problem and maximum weighted clique (MWC) problem. Methods for solving MWVC problem can be directly applied to tackle the MWIS problem. In this paper, an efficient local search algorithm called “Diversion Local Search based on Weighted Configuration Checking (DLSWCC)” is used to solve the MWIS problem [37]. The algorithm has high efficiency in solving minimum weighted vertex cover and set packing problem. Let us briefly review the key factors of the DLSWCC algorithm. For a comprehensive description, the readers can refer to the literature [37].


### 3.1. Dynamic Scoring Strategy

For a candidate solution, the quality of the candidate solution can be improved by selecting appropriate vertices to add to or remove from the candidate solution, thus improving the performance of the local search algorithm. We present a dynamic scoring strategy to evaluate the benefit when the vertex is added to or deleted from the candidate solution. The dynamic edge weighting mechanism is used in dynamic scoring strategy. The definition of dynamic edge weight is given below.Definition 1 (dynamic edge weight).
Given an undirected graphG (Vt, Eg, w), each edge e ∈ Eg is assigned a weight denoted by dynmc_w (e), and the weight is dynamically updated in the local search.
Specifically, we abide by the following two rules to update edge weights.W_Rule1: thedynmc_w (e) of each edge e ∈ Eg is initialized as 1W_Rule2: thedynmc_w (e) will be increased by 1 if edge e is not covered by the candidate solution at the end of each loop
On the basis of Definition1, assuming that vertex subset C ⊆ Vt is a candidate solution, the Boolean function cover (e, C) is used to indicate whether edge e ∈ Eg is covered by candidate solution C, i.e., whether at least one of e’s endpoints is a member of C. The quality of the candidate solution C is measured by cost (C), which is defined by the following formula:(6)costC=∑covere,C=falsedynmc_we.
From Formula (6), we can see that cost (C) represents the weight sum of the edge uncovered by candidate solution C. The candidate solution C is feasible if cost (C) is equal to 0.
The score of vertices is crucial to choose which vertex to add to or remove from the candidate solution. In algorithm DLSWCC, the authors use score (v) to define the score of vertex v, as shown in the following formula:(7)scorev=costC−costC′wv,where C is the current candidate solution, if v belongs to C, then C′ is the candidate solution after removing vertex v from C; otherwise, C′ is the candidate solution after adding vertex v to C.


### 3.2. Weighted Configuration Checking Strategy

The cycling problem is revisiting a scenario that has just been visited during the local search phase. This problem will make the algorithm fall into the local optimum, cause the waste of time, and reduce the performance of the algorithm. Many scholars have been working on how to avoid the cycling problem. In literature [38], Cai et al. proposed the configuration checking strategy, which can consider the environmental information to avoid the cycling problem. Up to now, CC strategy has been successfully used to tackle many combinatorial optimization problems, i.e., the minimum vertex cover, SAT, MaxSAT, and set cover problem [39–41].However, the direct application of CC strategy to MWVC problem will limit some promising vertices to be added into the candidate solution, thus misleading the search. That is, the original CC strategy is more restrictive. In our algorithm, we will use the deformation strategy of CC strategy, namely, weighted configuration checking (WCC) strategy. The concept of weighted configuration is given below.Definition 2.
(weighted configuration). Given an undirected graphG = (Vt, Eg), each edge is associated with a weight, and C is the candidate solution. The weighted configuration of vertex v is defined as the states of all v’s neighbours and the weights of the associated edges of all v’s neighbours.
In order to implement the weighted configuration checking (WCC) strategy, we use an arraywcnfg to record whether the weighted configuration of each vertex has changed since last leaving C. Each element of the array is a binary variable. For a vertex v, wcnfg [v] = 1 indicates that the weighted configuration of vertex v has changed and wcnfg [v] = 0 on the contrary. We update the wcnfg array according to the following four rules:(i)
WCC_Rule1: in the initialization phase, thewcnfg value of each vertex v is assigned to 1(ii)
WCC_Rule2: if vertexv is removed from C, then the wcnfg value of v is assigned to 0 and the wcnfg value of v’s each neighbour is assigned to 1(iii)
WCC_Rule3: if vertexv is added into C, then the wcnfg value of v’s each neighbour is assigned to 1(iv)
WCC_Rule4: if edgee’s weight dynmc_w [e] is updated, then the wcnfg values of the two vertices u and v linked by edge e are assigned to 1


### 3.3. Vertex Selection Strategy

In this subsection, we introduce the vertex selection strategy, which combines the dynamic scoring strategy with the weighted configuration checking strategy. Before we introduce this strategy, let us introduce the age concept that we will be using. The age of a vertex is the number of iterations after the vertex’s state has changed.In the local search phase, we use the following two rules to select suitable vertices to add to or remove from the candidate solution.(i)
Rmv_Rule: the vertex with the highest score is selected from the candidate solution, or the vertex with the greatest age is selected if there are multiple vertices to choose from. Then,wcnfg values of this selected vertex and its neighbours are modified according to WCC_Rule2.(ii)
Add_Rule: the vertex with the highest score andwcnfg value of 1 is selected from the vertices of the noncandidate solution. If there are multiple optional vertices, the vertex with the greatest age is selected. Then, wcnfg values of its neighbours are modified according to WCC_Rule3.


### 3.4. DLSWCC Algorithm

In this subsection, we review the main idea of DLSWCC algorithm, and the corresponding pseudocode is shown in Algorithm1. First, we construct the initial solution C by the greedy method. Then, a perturbing approach is applied on the initial solution C to improve its quality. We use wC=∑i∈Cwi to represent the objective value of the candidate solution C. We use UB to record the objective value of the global optimal solution and initialize UB to w (C). It is obvious that if a better solution exists, the objective value should be less than UB. In DLSWCC algorithm, once the initial candidate solution has been built, we will remove some vertices from the candidate solution until the candidate solution becomes infeasible and the objective value is less than UB. Then, we exchange the vertices in C and the vertices in Vt\C according to Rmv_Rule and Add_Rule until C is a feasible solution. At this stage, if a better solution is found, the value of UB needs to be updated. At the end of each loop, the algorithm checks if each edge is covered by the current solution, and if not, the algorithm adds the weight dynmc_w of the uncovered edge by 1, thus giving the “hard to cover” edges a better chance to be covered by the new candidate solution in the future iterations and making the algorithm jump out of local optimum effectively.Algorithm 1: DLSWCC ( ).
(1)
Initializewcnfg array according to WCC_Rule1;(2)
initialize thedynmc_w of each edge assigned as 1;(3)
initialize the score of each vertex assigned as the degree of the vertex;(4)
initialize the candidate solutionC greedily;(5)
UB = w (C);(6)
C∗ ⟵ C;(7)
iter ⟵ 0;(8)
while stop criterion is not satisﬁed do(9)
whileC covers all edges, then(10)
UB =w (C);(11)
C∗ ⟵ C;(12)
v ⟵ x with the greatest score in C, breaking ties in favor of the oldest one;(13)
C ⟵ C\{v};(14)
updatewcnfg array according to WCC_Rule 2;(15)
end while(16)
v ⟵ x with the greatest score in C and v is not in tabu_list, breaking ties in favor of the oldest one;(17)
C ⟵ C\{v};(18)
updatewcnfg array according to WCC_Rule 2;(19)
cleartabu_list;(20)
whileC uncovers some edges do(21)
v ⟵ x with the greatest score not in C and wcnfg [x] = = 1, breaking ties in favor of the oldest one;(22)
ifw (C) + w (v) ≥ UB then break;(23)
C ⟵ C∪{v};(24)
updatewcnfg array according to WCC_Rule3;(25)
dynmc_w [e] ⟵ dynmc_w [e] + 1, for each uncovered edge by C;(26)
updatewcnfg array according to WCC_Rule4;(27)
addv into tabu_list;(28)
end while(29)
iter ⟵ iter + 1;(30)
end while(31)
returnC∗;


## 3.1. Dynamic Scoring Strategy

For a candidate solution, the quality of the candidate solution can be improved by selecting appropriate vertices to add to or remove from the candidate solution, thus improving the performance of the local search algorithm. We present a dynamic scoring strategy to evaluate the benefit when the vertex is added to or deleted from the candidate solution. The dynamic edge weighting mechanism is used in dynamic scoring strategy. The definition of dynamic edge weight is given below.Definition 1 (dynamic edge weight).
Given an undirected graphG (Vt, Eg, w), each edge e ∈ Eg is assigned a weight denoted by dynmc_w (e), and the weight is dynamically updated in the local search.
Specifically, we abide by the following two rules to update edge weights.W_Rule1: thedynmc_w (e) of each edge e ∈ Eg is initialized as 1W_Rule2: thedynmc_w (e) will be increased by 1 if edge e is not covered by the candidate solution at the end of each loop
On the basis of Definition1, assuming that vertex subset C ⊆ Vt is a candidate solution, the Boolean function cover (e, C) is used to indicate whether edge e ∈ Eg is covered by candidate solution C, i.e., whether at least one of e’s endpoints is a member of C. The quality of the candidate solution C is measured by cost (C), which is defined by the following formula:(6)costC=∑covere,C=falsedynmc_we.
From Formula (6), we can see that cost (C) represents the weight sum of the edge uncovered by candidate solution C. The candidate solution C is feasible if cost (C) is equal to 0.
The score of vertices is crucial to choose which vertex to add to or remove from the candidate solution. In algorithm DLSWCC, the authors use score (v) to define the score of vertex v, as shown in the following formula:(7)scorev=costC−costC′wv,where C is the current candidate solution, if v belongs to C, then C′ is the candidate solution after removing vertex v from C; otherwise, C′ is the candidate solution after adding vertex v to C.


## 3.2. Weighted Configuration Checking Strategy

The cycling problem is revisiting a scenario that has just been visited during the local search phase. This problem will make the algorithm fall into the local optimum, cause the waste of time, and reduce the performance of the algorithm. Many scholars have been working on how to avoid the cycling problem. In literature [38], Cai et al. proposed the configuration checking strategy, which can consider the environmental information to avoid the cycling problem. Up to now, CC strategy has been successfully used to tackle many combinatorial optimization problems, i.e., the minimum vertex cover, SAT, MaxSAT, and set cover problem [39–41].However, the direct application of CC strategy to MWVC problem will limit some promising vertices to be added into the candidate solution, thus misleading the search. That is, the original CC strategy is more restrictive. In our algorithm, we will use the deformation strategy of CC strategy, namely, weighted configuration checking (WCC) strategy. The concept of weighted configuration is given below.Definition 2.
(weighted configuration). Given an undirected graphG = (Vt, Eg), each edge is associated with a weight, and C is the candidate solution. The weighted configuration of vertex v is defined as the states of all v’s neighbours and the weights of the associated edges of all v’s neighbours.
In order to implement the weighted configuration checking (WCC) strategy, we use an arraywcnfg to record whether the weighted configuration of each vertex has changed since last leaving C. Each element of the array is a binary variable. For a vertex v, wcnfg [v] = 1 indicates that the weighted configuration of vertex v has changed and wcnfg [v] = 0 on the contrary. We update the wcnfg array according to the following four rules:(i)
WCC_Rule1: in the initialization phase, thewcnfg value of each vertex v is assigned to 1(ii)
WCC_Rule2: if vertexv is removed from C, then the wcnfg value of v is assigned to 0 and the wcnfg value of v’s each neighbour is assigned to 1(iii)
WCC_Rule3: if vertexv is added into C, then the wcnfg value of v’s each neighbour is assigned to 1(iv)
WCC_Rule4: if edgee’s weight dynmc_w [e] is updated, then the wcnfg values of the two vertices u and v linked by edge e are assigned to 1


## 3.3. Vertex Selection Strategy

In this subsection, we introduce the vertex selection strategy, which combines the dynamic scoring strategy with the weighted configuration checking strategy. Before we introduce this strategy, let us introduce the age concept that we will be using. The age of a vertex is the number of iterations after the vertex’s state has changed.In the local search phase, we use the following two rules to select suitable vertices to add to or remove from the candidate solution.(i)
Rmv_Rule: the vertex with the highest score is selected from the candidate solution, or the vertex with the greatest age is selected if there are multiple vertices to choose from. Then,wcnfg values of this selected vertex and its neighbours are modified according to WCC_Rule2.(ii)
Add_Rule: the vertex with the highest score andwcnfg value of 1 is selected from the vertices of the noncandidate solution. If there are multiple optional vertices, the vertex with the greatest age is selected. Then, wcnfg values of its neighbours are modified according to WCC_Rule3.


## 3.4. DLSWCC Algorithm

In this subsection, we review the main idea of DLSWCC algorithm, and the corresponding pseudocode is shown in Algorithm1. First, we construct the initial solution C by the greedy method. Then, a perturbing approach is applied on the initial solution C to improve its quality. We use wC=∑i∈Cwi to represent the objective value of the candidate solution C. We use UB to record the objective value of the global optimal solution and initialize UB to w (C). It is obvious that if a better solution exists, the objective value should be less than UB. In DLSWCC algorithm, once the initial candidate solution has been built, we will remove some vertices from the candidate solution until the candidate solution becomes infeasible and the objective value is less than UB. Then, we exchange the vertices in C and the vertices in Vt\C according to Rmv_Rule and Add_Rule until C is a feasible solution. At this stage, if a better solution is found, the value of UB needs to be updated. At the end of each loop, the algorithm checks if each edge is covered by the current solution, and if not, the algorithm adds the weight dynmc_w of the uncovered edge by 1, thus giving the “hard to cover” edges a better chance to be covered by the new candidate solution in the future iterations and making the algorithm jump out of local optimum effectively.Algorithm 1: DLSWCC ( ).
(1)
Initializewcnfg array according to WCC_Rule1;(2)
initialize thedynmc_w of each edge assigned as 1;(3)
initialize the score of each vertex assigned as the degree of the vertex;(4)
initialize the candidate solutionC greedily;(5)
UB = w (C);(6)
C∗ ⟵ C;(7)
iter ⟵ 0;(8)
while stop criterion is not satisﬁed do(9)
whileC covers all edges, then(10)
UB =w (C);(11)
C∗ ⟵ C;(12)
v ⟵ x with the greatest score in C, breaking ties in favor of the oldest one;(13)
C ⟵ C\{v};(14)
updatewcnfg array according to WCC_Rule 2;(15)
end while(16)
v ⟵ x with the greatest score in C and v is not in tabu_list, breaking ties in favor of the oldest one;(17)
C ⟵ C\{v};(18)
updatewcnfg array according to WCC_Rule 2;(19)
cleartabu_list;(20)
whileC uncovers some edges do(21)
v ⟵ x with the greatest score not in C and wcnfg [x] = = 1, breaking ties in favor of the oldest one;(22)
ifw (C) + w (v) ≥ UB then break;(23)
C ⟵ C∪{v};(24)
updatewcnfg array according to WCC_Rule3;(25)
dynmc_w [e] ⟵ dynmc_w [e] + 1, for each uncovered edge by C;(26)
updatewcnfg array according to WCC_Rule4;(27)
addv into tabu_list;(28)
end while(29)
iter ⟵ iter + 1;(30)
end while(31)
returnC∗;


## 4. Computational Results

In this section, we will report a large number of experimental results through using the introduced DLSWCC algorithm to solve the set packing problem as a minimum weighted independent set on a large number of set packing problem standard benchmarks. Further, DLSWCC is compared with several state-of-the-art algorithms proposed in the literature. Finally, we test the effectiveness of the dynamic scoring strategy and the weighted configuration checking strategy.


### 4.1. Reference Algorithms and Experimental Protocol

We compare DLSWCC with the current best solving algorithms, i.e., CPLEX, GRASP approach [26], ACO approach [27], and EA/G approach [33]. In this study, our DLSWCC algorithm is implemented in C and executed on a computer with Intel (R) Xeon (R) CPU E7-4830 with 2.13 GHz. The system that is used to execute ACO and GRASP approaches [27] is Pentium III at 800 MHz. EA/G approach [33] is implemented in C and executed on a Core 2 Duo system with 2 GB RAM running under Fedora 12 at 3.0 GHz. For each instance, our algorithm DLSWCC is executed, where the cutoff condition for each execution is to reach a given cutoff time 3600 (s) or max iteration 1000000. Like EA/G [33], GRASP [26], and ACO [27] approaches, DLSWCC is run 16 times independently on each instance.The railway problem instances and random instances are two main types of standard benchmarks for set packing problem [26]. As far as we know, because the railway problem instances contained confidential data related to French railways, the data were not made public. Only the random instance data are public. Therefore, we show the experiment results of DLSWCC algorithm on random instances only.


### 4.2. Comparison with State-of-the-Art Algorithms

Tables1 and 2 provide the instance characteristics and the results found by CPLEX method (CPLEX), GRASP method [26] (GRASP), ACO method [27] (ACO), EA/G method [33] (EA/G), and our DLSWCC method (DLSWCC). Table 1 shows the experimental results of small-scale problem instances with 100 and 200 variables, while Table 2 shows the experimental results of medium-scale problem instances with 500 and 1000 variables.Table 1
Comparison of each algorithm on instances with 100 and 200 variables.
InstanceCharacteristicsCPLEXGRASPACOEA/GDLSWCCVarCnstDensity (%)M_oneWeightOptTETBestAvrgATETBestAvrgATETBestAvrgATETBestAvrgATETHitpb100rand011005002.002[1-20]3722.923723721.973723723.333723720.38372372016pb100rand021005002.002[1-1]340.634341.313434234340.223434016pb100rand031005003.004[1-20]2037.812032031.1420320322032030.37203203016pb100rand041005003.004[1-1]1652.8616161.291615.560.671615.690.181616016pb100rand051001002.002[1-20]6390.016396390.86396391.676396390.35639639016pb100rand061001002.002[1-1]640.0164640.696464164640.146464016pb100rand071001002.904[1-20]5030503503150350315035030.38503503016pb100rand081001003.104[1-1]390.023938.750.573938.680.673938.810.213939016pb100rand091003002.002[1-20]4630.494634631.264634631.674634630.38463463016pb100rand101003002.002[1-1]401.1340401.284039.6214039.880.244040016pb100rand111003003.104[1-20]3060.483063060.683063061.673063060.4306306016pb100rand121003003.004[1-1]236.823231.132322.930.3323230.212323016pb200rand0120010001.504[1-20]4168760.73416415.187.32416415.2527.334164161.664164160.0416pb200rand0220010001.504[1-1]32156109.3632327.353231.5614.6732320.7632320.0116pb200rand0320010001.002[1-20]7315403.23726722.8110.81729725.1244.337317271.857317310.0516pb200rand0420010001.002[1-1]6463970.9163639.126462.9324.336362.750.9264640.0216pb200rand0520010002.508[1-20]1841211.371841844.62184182.56161841841.071841840.0516pb200rand0620010002.508[1-1]148068.21413.373.481412.8741413.50.5514140.0616pb200rand072002001.504[1-20]10040.0210021001.124.210041003.56.3310041003.941.61100410040.0216pb200rand082002001.504[1-1]830.048382.872.718382.752.678382.810.88383016pb200rand092002001.002[1-20]13240.01132413243.75132413247.33132413241.3113241324016pb200rand102002001.002[1-1]1180.021181183.6411811841181180.76118118016pb200rand112002002.508[1-20]5450.33545544.752.365455454.335455451.655455450.0116pb200rand122002002.608[1-1]431.743431.0143431.3343430.84343016pb200rand132006001.504[1-20]571830.39571566.436.01571568.520.33571570.751.745715710.0316pb200rand142006001.504[1-1]4510066.9145453.924544.438.674544.620.7545450.0116pb200rand152006001.002[1-20]92612.29269264.22926926279269261.729269260.0116pb200rand162006001.002[1-1]7914372.857978.316.87978.3715.337978.120.987979016pb200rand172006002.508[1-20]255741.52255251.313.61255253.2511255254.191.222552550.0216pb200rand182006002.608[1-1]1919285.061918.062.351918.1231918.190.6519190.0616Avrg305.179630.27304.90304.363.35305.10304.538.63305.13304.840.81305.17305.170.0116.00Table 2
Comparison of each algorithm on instances with 500 and 1000 variables.
InstanceCharacteristicsCPLEXGRASPACOEA/GCDLSWCVarCnstDensity (%)M_oneWeightOptBestAvrgATETBestAvrgATETBestAvrgATETBestAvrgATETHitpb500rand0150025001.2010[1-20]323∗323319.3832.08323319.87154.67323321.317.033233231.0716pb500rand0250025001.2010[1-1]24∗2423.6925.622423.0626.672523.565.1625251.5816pb500rand0350025000.705[1-20]776∗772767.6370.33776772.75244.00776771.3810.617767760.3816pb500rand0450025000.705[1-1]61∗6160.1357.306160.0669.006260.386.0662620.3416pb500rand0550025002.2020[1-20]122122121.515.48122120.6271.00122121.563.921221224.7116pb500rand0650025002.2020[1-1]8∗8812.0887.8799.6787.882.27884.8216pb500rand075005001.2010[1-20]11411141114113.4311411141960.0011411139.949.64114111410.1316pb500rand085005001.2010[1-1]898988.2515.808988.1221.678988.944.7589890.0816pb500rand095005000.705[1-20]22362235223523.4422362234.4384.3322362232.8112.49223622360.1616pb500rand105005000.705[1-1]179179178.0618.20179178.3144.67179178.566.121791790.0616pb500rand115005002.3020[1-20]424423419.3119.25424418.2537.33424421.567.924244241.0016pb500rand125005002.2020[1-1]33∗333311.913332.628.003332.884.0033330.5316pb500rand1350015001.2010[1-20]474∗47447032.88474468105.00474468.568.904744740.5116pb500rand1450015001.2010[1-1]37∗3736.9420.773736.525.663836.884.3938380.6516pb500rand1550015000.705[1-20]119611961186.959.3611961190.93161.6711961185.6210.68119611960.1516pb500rand1650015000.705[1-1]88∗8886.6336.318886.1260.6788875.1288880.1516pb500rand1750015002.2020[1-20]192∗192191.7518.38192188.3157.00192191.385.551921922.6416pb500rand1850015002.2020[1-1]13∗131312.031312.439.001312.812.8513132.6616pb1000rand1100050002.6050[1-20]676765.553.506764117.67676710.646767129.6616pb1000rand2100050002.5950[1-1]443.1539.3043.8115.0043.443.5844131.0816pb1000rand3100050000.6010[1-20]661∗649639.5221.20661640.5700.67661642.8132.926616616.4116pb1000rand4100050000.6010[1-1]48∗4846.83149.704745.06108.334846.518.1248486.2916pb1000rand5100010002.6050[1-20]222∗222217.9864.80222219.6285.67222217.8823.1122222246.6216pb1000rand6100010002.6550[1-1]15∗1413.6841.401513.378.001514.0612.03151559.5216pb1000rand7100010000.5810[1-20]226022222214.1119.7022482239.56296.6722532242.0644.48226022598.667pb1000rand8100010000.6010[1-1]175∗172170.8182.60173170.594.00174172.6221.211751752.9316Avrg418.00415.69413.5348.73417.42414.45141.00417.81414.9810.91418.12418.0615.8815.65In Tables1 and 2, column Var indicates the number of variables, column Cnst indicates the number of constraints, and column Density indicates the percentage of nonnull elements in the constraint matrix. Column M_One indicates the number of elements in the maximum set Oj, where j∈{1... , m}, and column Weight represents the range of object weights in each instance. Note that the instances whose ranges are [1-1] are instances of the unicost set packing problem. The CPLEX solver can solve all small-scale instances (the number of variables less than or equal to 200). As shown in Table 1, column Opt indicates the optimal solutions found by CPLEX and column TET indicates the time to obtain the optimal solution. For the medium-scale instances (the number of variables equal to 500 and 1000), CPLEX cannot solve all of them. In such cases, we report the best known value in Table 2. When CPLEX cannot obtain the optimal solution, the best solution value found is marked by an asterisk (∗). For GRASP, ACO, and EA/G methods, column Best indicates the best solution found, column Avrg indicates the average solution quality, and column ATET indicates the average execution time in seconds over 16 runs in Tables 1 and 2. The column hit is the number of executions reaching its best value of algorithm DLSWCC. Results of CPLEX, GRASP, and ACO methods are obtained from the literature [27]; results of EA/G approach are obtained from [33]. The bold values indicate the best solution values obtained among the compared algorithms. And the bold values in Tables 3 and 4 indicate the same meaning.Tables1 and 2 distinctly show that the DLSWCC method is superior to EA/G, GRASP, and ACO methods in solution quality. Out of a total of 56 instances, DLSWCC obtained the best solution that was superior to EA/G on 3 instances and the same as EA/G on the rest. In terms of average solution quality, DLSWCC is superior to EA/G on 39 instances and the same as EA/G on the rest. DLSWCC obtained the best solution that was superior to ACO on 7 instances and the same as ACO on the rest. In terms of average solution quality, DLSWCC is superior to ACO on 42 instances and the same as ACO on the rest. DLSWCC obtained the best solution that was superior to GRASP on 13 instances and the same as ACO on the rest. In terms of average solution quality, DLSWCC is superior to ACO on 32 instances and the same as GRASP on the rest. On the whole, in term of the best solution, DLSWCC method is superior to the three comparison algorithms EA/G, ACO, and GRASP on 2 instances. Similarly, in term of the average solution quality, the DLSWCC method is superior to the three comparison algorithms EA/G, ACO, and GRASP on 30 instances. More significantly, in Table 2, DLSWCC sometimes gives better values than CPLEX when CPLEX values are marked with asterisk.Note that the system that is used to perform GRASP and ACO methods [27] is Pentium III at 800 MHz and the system that is used to perform EA/G method is Fedora 12 at 3.0 GHz which are different from the system used to perform DLSWCC. Therefore, running time cannot be compared accurately. We just make a rough comparison on the running time. Our approach is faster than EA/G, GRASP, and ACO methods on majority of the instances.There were also 8 random instances with 2000 variables (large-scale instances), which were not used to test the ACO algorithm in literature [27]. However, in literatures [26, 33], these instances are used to test the GRASP and EA/G algorithms. Table 3 shows the results of CPLEX, GRASP, EA/G, and DLSWCC on these instances. The results for CPLEX and GRASP are obtained from [26]. When CPLEX cannot obtain the optimal solution, the best solution value found is marked by an asterisk (∗). For GRASP algorithm, if it can obtain the best known solution, then the column corresponding to GRASP marks “yes”; otherwise, it marks “no”. Out of the 8 instances, GRASP can obtain best known values on 5 instances. DLSWCC, on the other hand, obtains as good as or better than best known values on all instances. On 2 instances, DLSWCC even improved the best known values. For the running time, our approach is a little slower than EA/G.Table 3
Comparison of each algorithm on instances with 2000 variables.
InstanceCharacteristicsCPLEXGRASPEA/GDLSWCCVarCnstDensity (%)M_oneWeightOptBestBestAvrgATETBestAvrgATETHitpb2000rand12000100002.54100[1-20]40Yes4040.0031.664040.002115.6416pb2000rand22000100002.55100[1-1]2Yes22.0010.3822.002126.5616pb2000rand32000100000.5520[1-20]478∗No478463.75129.86478477.06238.6111pb2000rand42000100000.5520[1-1]32∗Yes3230.2581.583231.88278.0916pb2000rand5200020002.55100[1-20]140∗Yes140135.5061.03140140.001419.6016pb2000rand6200020002.56100[1-1]9∗Yes98.5034.2399.001395.7616pb2000rand7200020000.5620[1-20]1784∗No17841765.94160.1418111810.8828.1315pb2000rand8200020000.5620[1-1]131∗No131130.3873.84135134.1323.192Avrg327.00327.00322.0472.84330.88330.62953.2013.50


### 4.3. Comparison of Different Version of DLSWCC

To study the effectiveness of the dynamic scoring strategy and the weighted configuration checking strategy, we compare DLSWCC with three other alternative algorithms named DLSWCC_STATIC, DLSNOCC, and DLSECC.In DLSWCC_STATIC, the scoring method works with a static scoring strategy, i.e., the weight of each edge will not be updated. DLSNOCC works without the weighted configuration checking strategy, i.e., it selects the vertex with the greatest score, breaking ties in favor of the oldest one during the adding procedure. DLSECC works with a straightforward extension of the configuration checking strategy instead of the weighted configuration checking strategy. We tested the three algorithms on large-scale instances over 16 runs with different random seeds per instance. The results are summarised in Table4.Table 4
Results of algorithms DLSNOCC, DLSECC, and DLSWCC on instances with 2000 variables.
InstanceCharacteristicsDLSNOCCDLSECCDLSWCC_STATICDLSWCCVarCnstDensity (%)M_oneWeightBestAvrgBestAvrgBestAvrgBestAvrgpb2000rand12000100002.54100[1-20]4040.004040.004040.004040pb2000rand22000100002.55100[1-1]22.0022.0022.0022pb2000rand32000100000.5520[1-20]478469.56478476.31475451.88478477.06pb2000rand42000100000.5520[1-1]3231.753231.813230.943231.88pb2000rand5200020002.55100[1-20]140140.00140140.00140140.00140140pb2000rand6200020002.56100[1-1]99.0099.0099.0099pb2000rand7200020000.5620[1-20]18001786.4418111810.7517691713.3118111810.88pb2000rand8200020000.5620[1-1]135133.25135134.19133131.06135134.13Avrg329.50326.50330.88330.51325.00314.77330.88330.62From Table4, by comparing the experimental results of algorithm DLSNOCC and algorithm DLSECC, we can see the effectiveness of the configuration checking strategy. By comparing the experimental results of algorithm DLSNECC and algorithm DLSWCC, we can see the effectiveness of the weighted configuration checking strategy. By comparing the experimental results of algorithm DLSWCC_STATIC and algorithm DLSWCC, we can see the effectiveness of the dynamic scoring strategy.Through the above comparison, we analyse that DLSWCC algorithm is superior to EA/G algorithm, ACO algorithm, and GRASP algorithm mainly because it adopts weighted configuration checking strategy and dynamic scoring strategy, which can effectively prevent the cycling problem and avoid the algorithm falling into local minimum.


## 4.1. Reference Algorithms and Experimental Protocol

We compare DLSWCC with the current best solving algorithms, i.e., CPLEX, GRASP approach [26], ACO approach [27], and EA/G approach [33]. In this study, our DLSWCC algorithm is implemented in C and executed on a computer with Intel (R) Xeon (R) CPU E7-4830 with 2.13 GHz. The system that is used to execute ACO and GRASP approaches [27] is Pentium III at 800 MHz. EA/G approach [33] is implemented in C and executed on a Core 2 Duo system with 2 GB RAM running under Fedora 12 at 3.0 GHz. For each instance, our algorithm DLSWCC is executed, where the cutoff condition for each execution is to reach a given cutoff time 3600 (s) or max iteration 1000000. Like EA/G [33], GRASP [26], and ACO [27] approaches, DLSWCC is run 16 times independently on each instance.The railway problem instances and random instances are two main types of standard benchmarks for set packing problem [26]. As far as we know, because the railway problem instances contained confidential data related to French railways, the data were not made public. Only the random instance data are public. Therefore, we show the experiment results of DLSWCC algorithm on random instances only.


## 4.2. Comparison with State-of-the-Art Algorithms

Tables1 and 2 provide the instance characteristics and the results found by CPLEX method (CPLEX), GRASP method [26] (GRASP), ACO method [27] (ACO), EA/G method [33] (EA/G), and our DLSWCC method (DLSWCC). Table 1 shows the experimental results of small-scale problem instances with 100 and 200 variables, while Table 2 shows the experimental results of medium-scale problem instances with 500 and 1000 variables.Table 1
Comparison of each algorithm on instances with 100 and 200 variables.
InstanceCharacteristicsCPLEXGRASPACOEA/GDLSWCCVarCnstDensity (%)M_oneWeightOptTETBestAvrgATETBestAvrgATETBestAvrgATETBestAvrgATETHitpb100rand011005002.002[1-20]3722.923723721.973723723.333723720.38372372016pb100rand021005002.002[1-1]340.634341.313434234340.223434016pb100rand031005003.004[1-20]2037.812032031.1420320322032030.37203203016pb100rand041005003.004[1-1]1652.8616161.291615.560.671615.690.181616016pb100rand051001002.002[1-20]6390.016396390.86396391.676396390.35639639016pb100rand061001002.002[1-1]640.0164640.696464164640.146464016pb100rand071001002.904[1-20]5030503503150350315035030.38503503016pb100rand081001003.104[1-1]390.023938.750.573938.680.673938.810.213939016pb100rand091003002.002[1-20]4630.494634631.264634631.674634630.38463463016pb100rand101003002.002[1-1]401.1340401.284039.6214039.880.244040016pb100rand111003003.104[1-20]3060.483063060.683063061.673063060.4306306016pb100rand121003003.004[1-1]236.823231.132322.930.3323230.212323016pb200rand0120010001.504[1-20]4168760.73416415.187.32416415.2527.334164161.664164160.0416pb200rand0220010001.504[1-1]32156109.3632327.353231.5614.6732320.7632320.0116pb200rand0320010001.002[1-20]7315403.23726722.8110.81729725.1244.337317271.857317310.0516pb200rand0420010001.002[1-1]6463970.9163639.126462.9324.336362.750.9264640.0216pb200rand0520010002.508[1-20]1841211.371841844.62184182.56161841841.071841840.0516pb200rand0620010002.508[1-1]148068.21413.373.481412.8741413.50.5514140.0616pb200rand072002001.504[1-20]10040.0210021001.124.210041003.56.3310041003.941.61100410040.0216pb200rand082002001.504[1-1]830.048382.872.718382.752.678382.810.88383016pb200rand092002001.002[1-20]13240.01132413243.75132413247.33132413241.3113241324016pb200rand102002001.002[1-1]1180.021181183.6411811841181180.76118118016pb200rand112002002.508[1-20]5450.33545544.752.365455454.335455451.655455450.0116pb200rand122002002.608[1-1]431.743431.0143431.3343430.84343016pb200rand132006001.504[1-20]571830.39571566.436.01571568.520.33571570.751.745715710.0316pb200rand142006001.504[1-1]4510066.9145453.924544.438.674544.620.7545450.0116pb200rand152006001.002[1-20]92612.29269264.22926926279269261.729269260.0116pb200rand162006001.002[1-1]7914372.857978.316.87978.3715.337978.120.987979016pb200rand172006002.508[1-20]255741.52255251.313.61255253.2511255254.191.222552550.0216pb200rand182006002.608[1-1]1919285.061918.062.351918.1231918.190.6519190.0616Avrg305.179630.27304.90304.363.35305.10304.538.63305.13304.840.81305.17305.170.0116.00Table 2
Comparison of each algorithm on instances with 500 and 1000 variables.
InstanceCharacteristicsCPLEXGRASPACOEA/GCDLSWCVarCnstDensity (%)M_oneWeightOptBestAvrgATETBestAvrgATETBestAvrgATETBestAvrgATETHitpb500rand0150025001.2010[1-20]323∗323319.3832.08323319.87154.67323321.317.033233231.0716pb500rand0250025001.2010[1-1]24∗2423.6925.622423.0626.672523.565.1625251.5816pb500rand0350025000.705[1-20]776∗772767.6370.33776772.75244.00776771.3810.617767760.3816pb500rand0450025000.705[1-1]61∗6160.1357.306160.0669.006260.386.0662620.3416pb500rand0550025002.2020[1-20]122122121.515.48122120.6271.00122121.563.921221224.7116pb500rand0650025002.2020[1-1]8∗8812.0887.8799.6787.882.27884.8216pb500rand075005001.2010[1-20]11411141114113.4311411141960.0011411139.949.64114111410.1316pb500rand085005001.2010[1-1]898988.2515.808988.1221.678988.944.7589890.0816pb500rand095005000.705[1-20]22362235223523.4422362234.4384.3322362232.8112.49223622360.1616pb500rand105005000.705[1-1]179179178.0618.20179178.3144.67179178.566.121791790.0616pb500rand115005002.3020[1-20]424423419.3119.25424418.2537.33424421.567.924244241.0016pb500rand125005002.2020[1-1]33∗333311.913332.628.003332.884.0033330.5316pb500rand1350015001.2010[1-20]474∗47447032.88474468105.00474468.568.904744740.5116pb500rand1450015001.2010[1-1]37∗3736.9420.773736.525.663836.884.3938380.6516pb500rand1550015000.705[1-20]119611961186.959.3611961190.93161.6711961185.6210.68119611960.1516pb500rand1650015000.705[1-1]88∗8886.6336.318886.1260.6788875.1288880.1516pb500rand1750015002.2020[1-20]192∗192191.7518.38192188.3157.00192191.385.551921922.6416pb500rand1850015002.2020[1-1]13∗131312.031312.439.001312.812.8513132.6616pb1000rand1100050002.6050[1-20]676765.553.506764117.67676710.646767129.6616pb1000rand2100050002.5950[1-1]443.1539.3043.8115.0043.443.5844131.0816pb1000rand3100050000.6010[1-20]661∗649639.5221.20661640.5700.67661642.8132.926616616.4116pb1000rand4100050000.6010[1-1]48∗4846.83149.704745.06108.334846.518.1248486.2916pb1000rand5100010002.6050[1-20]222∗222217.9864.80222219.6285.67222217.8823.1122222246.6216pb1000rand6100010002.6550[1-1]15∗1413.6841.401513.378.001514.0612.03151559.5216pb1000rand7100010000.5810[1-20]226022222214.1119.7022482239.56296.6722532242.0644.48226022598.667pb1000rand8100010000.6010[1-1]175∗172170.8182.60173170.594.00174172.6221.211751752.9316Avrg418.00415.69413.5348.73417.42414.45141.00417.81414.9810.91418.12418.0615.8815.65In Tables1 and 2, column Var indicates the number of variables, column Cnst indicates the number of constraints, and column Density indicates the percentage of nonnull elements in the constraint matrix. Column M_One indicates the number of elements in the maximum set Oj, where j∈{1... , m}, and column Weight represents the range of object weights in each instance. Note that the instances whose ranges are [1-1] are instances of the unicost set packing problem. The CPLEX solver can solve all small-scale instances (the number of variables less than or equal to 200). As shown in Table 1, column Opt indicates the optimal solutions found by CPLEX and column TET indicates the time to obtain the optimal solution. For the medium-scale instances (the number of variables equal to 500 and 1000), CPLEX cannot solve all of them. In such cases, we report the best known value in Table 2. When CPLEX cannot obtain the optimal solution, the best solution value found is marked by an asterisk (∗). For GRASP, ACO, and EA/G methods, column Best indicates the best solution found, column Avrg indicates the average solution quality, and column ATET indicates the average execution time in seconds over 16 runs in Tables 1 and 2. The column hit is the number of executions reaching its best value of algorithm DLSWCC. Results of CPLEX, GRASP, and ACO methods are obtained from the literature [27]; results of EA/G approach are obtained from [33]. The bold values indicate the best solution values obtained among the compared algorithms. And the bold values in Tables 3 and 4 indicate the same meaning.Tables1 and 2 distinctly show that the DLSWCC method is superior to EA/G, GRASP, and ACO methods in solution quality. Out of a total of 56 instances, DLSWCC obtained the best solution that was superior to EA/G on 3 instances and the same as EA/G on the rest. In terms of average solution quality, DLSWCC is superior to EA/G on 39 instances and the same as EA/G on the rest. DLSWCC obtained the best solution that was superior to ACO on 7 instances and the same as ACO on the rest. In terms of average solution quality, DLSWCC is superior to ACO on 42 instances and the same as ACO on the rest. DLSWCC obtained the best solution that was superior to GRASP on 13 instances and the same as ACO on the rest. In terms of average solution quality, DLSWCC is superior to ACO on 32 instances and the same as GRASP on the rest. On the whole, in term of the best solution, DLSWCC method is superior to the three comparison algorithms EA/G, ACO, and GRASP on 2 instances. Similarly, in term of the average solution quality, the DLSWCC method is superior to the three comparison algorithms EA/G, ACO, and GRASP on 30 instances. More significantly, in Table 2, DLSWCC sometimes gives better values than CPLEX when CPLEX values are marked with asterisk.Note that the system that is used to perform GRASP and ACO methods [27] is Pentium III at 800 MHz and the system that is used to perform EA/G method is Fedora 12 at 3.0 GHz which are different from the system used to perform DLSWCC. Therefore, running time cannot be compared accurately. We just make a rough comparison on the running time. Our approach is faster than EA/G, GRASP, and ACO methods on majority of the instances.There were also 8 random instances with 2000 variables (large-scale instances), which were not used to test the ACO algorithm in literature [27]. However, in literatures [26, 33], these instances are used to test the GRASP and EA/G algorithms. Table 3 shows the results of CPLEX, GRASP, EA/G, and DLSWCC on these instances. The results for CPLEX and GRASP are obtained from [26]. When CPLEX cannot obtain the optimal solution, the best solution value found is marked by an asterisk (∗). For GRASP algorithm, if it can obtain the best known solution, then the column corresponding to GRASP marks “yes”; otherwise, it marks “no”. Out of the 8 instances, GRASP can obtain best known values on 5 instances. DLSWCC, on the other hand, obtains as good as or better than best known values on all instances. On 2 instances, DLSWCC even improved the best known values. For the running time, our approach is a little slower than EA/G.Table 3
Comparison of each algorithm on instances with 2000 variables.
InstanceCharacteristicsCPLEXGRASPEA/GDLSWCCVarCnstDensity (%)M_oneWeightOptBestBestAvrgATETBestAvrgATETHitpb2000rand12000100002.54100[1-20]40Yes4040.0031.664040.002115.6416pb2000rand22000100002.55100[1-1]2Yes22.0010.3822.002126.5616pb2000rand32000100000.5520[1-20]478∗No478463.75129.86478477.06238.6111pb2000rand42000100000.5520[1-1]32∗Yes3230.2581.583231.88278.0916pb2000rand5200020002.55100[1-20]140∗Yes140135.5061.03140140.001419.6016pb2000rand6200020002.56100[1-1]9∗Yes98.5034.2399.001395.7616pb2000rand7200020000.5620[1-20]1784∗No17841765.94160.1418111810.8828.1315pb2000rand8200020000.5620[1-1]131∗No131130.3873.84135134.1323.192Avrg327.00327.00322.0472.84330.88330.62953.2013.50


## 4.3. Comparison of Different Version of DLSWCC

To study the effectiveness of the dynamic scoring strategy and the weighted configuration checking strategy, we compare DLSWCC with three other alternative algorithms named DLSWCC_STATIC, DLSNOCC, and DLSECC.In DLSWCC_STATIC, the scoring method works with a static scoring strategy, i.e., the weight of each edge will not be updated. DLSNOCC works without the weighted configuration checking strategy, i.e., it selects the vertex with the greatest score, breaking ties in favor of the oldest one during the adding procedure. DLSECC works with a straightforward extension of the configuration checking strategy instead of the weighted configuration checking strategy. We tested the three algorithms on large-scale instances over 16 runs with different random seeds per instance. The results are summarised in Table4.Table 4
Results of algorithms DLSNOCC, DLSECC, and DLSWCC on instances with 2000 variables.
InstanceCharacteristicsDLSNOCCDLSECCDLSWCC_STATICDLSWCCVarCnstDensity (%)M_oneWeightBestAvrgBestAvrgBestAvrgBestAvrgpb2000rand12000100002.54100[1-20]4040.004040.004040.004040pb2000rand22000100002.55100[1-1]22.0022.0022.0022pb2000rand32000100000.5520[1-20]478469.56478476.31475451.88478477.06pb2000rand42000100000.5520[1-1]3231.753231.813230.943231.88pb2000rand5200020002.55100[1-20]140140.00140140.00140140.00140140pb2000rand6200020002.56100[1-1]99.0099.0099.0099pb2000rand7200020000.5620[1-20]18001786.4418111810.7517691713.3118111810.88pb2000rand8200020000.5620[1-1]135133.25135134.19133131.06135134.13Avrg329.50326.50330.88330.51325.00314.77330.88330.62From Table4, by comparing the experimental results of algorithm DLSNOCC and algorithm DLSECC, we can see the effectiveness of the configuration checking strategy. By comparing the experimental results of algorithm DLSNECC and algorithm DLSWCC, we can see the effectiveness of the weighted configuration checking strategy. By comparing the experimental results of algorithm DLSWCC_STATIC and algorithm DLSWCC, we can see the effectiveness of the dynamic scoring strategy.Through the above comparison, we analyse that DLSWCC algorithm is superior to EA/G algorithm, ACO algorithm, and GRASP algorithm mainly because it adopts weighted configuration checking strategy and dynamic scoring strategy, which can effectively prevent the cycling problem and avoid the algorithm falling into local minimum.


## 5. Conclusions

The set packing problem is a significant combinatorial optimization problem and has many real applications. In this paper, we have first researched the method of solving the SPP by encoding the problem as the maximum weighted independent set problem and tackling it with an existing maximum weighted independent set algorithm (DLSWCC). Comparing with the current best solving algorithms (EA/G, GRASP method, and ACO) for SPP, our method has yielded best results. In terms of the optimal solution and the average solution, our method has obvious advantages over the comparison methods. In terms of the solving time, our method is significantly faster than the comparison methods on majority of the instances.In the future work, we can extend our method to solve other combinatorial optimization problems, such as dominating set problem [42, 43], generalized vertex cover problem [44], maximum diversity problem [45], maximum edge weighted clique problem [46], and multiobjective unconstrained binary quadratic programming problem [47].



---

*Source: 3050714-2020-12-16.xml*