1. Introduction
The task of optimization is to find the best possible solutions according to the fitness expressed by the problem objective function given some constraints. For the single-objective problems, there is only one goal to be optimized and the aim is to look for the best possible solution available or a good approximation of it. However, in the real world, there exist many problems that are associated with multiple metrics of performance, i.e. objectives. In such cases, we should optimize multiple goals simultaneously. Such problems are called Multi-objective Optimization Problems (MOP) [
1,
2]. For scientists and engineers, MOP is a significantly important research topic not only due to the features of such problems but also there are still many open problems in this area [
3,
4]. However, the fuzziness still lies on the fact that we cannot give the accepted definition of “optimum” for MOP as the single-objective problem. Therefore, we cannot compare the performance of different methods directly as the single-objective problem, which is the main bottleneck restricting the development of MOP [
5].
In the past years, many surveys of multi-objective optimization techniques have been done from the mathematical programming perspective. For example, in [
6], Pareto optimality is reviewed in connection with production theory, programming and economics. Lieberman [
7] analyzed 17 multi-objective mathematical programming methods and paid attention to their distinctive features and the issues of computational feasibility. Fishburen [
8] reviewed the area of multi-objective evaluation theories and provided a perspective of how this fits in with the other areas. In [
9], Evans discussed the advantages and disadvantages of the general approaches towards multi-objective mathematical programming and gave an overview of the specific solution techniques for multi-objective mathematical programming. The popular method to solve Constraint Optimization Problems (COP) is Branch and Bound (BB). Mini-Bucket Elimination (MBE) is a powerful mechanism for lower bound computation and has been extended to multi-objective optimization problems (MO-MBE) [
10]. In [
11], the authors embeded the MO-MBE in a multi-objective branch and bound search to compute the lower bound of the frontier of the problem. Actually, because of the limitations of branch and bound algorithms, it is hard to apply these methods to solve real-world problems. With the development in multi-objective optimization problem, it was recognized that evolutionary algorithms may be appropriate to solve the multi-objective optimization problem [
12,
13]. In the population, different individuals can explore the solutions in different directions concurrently, finally merging the effective information in the solution set. Moreover, evolutionary algorithms can handle complex problems and at the same time it have many features that are appropriate to solve multi-objective problems, such as discontinuities and disjoint spaces. Therefore, most present algorithms used to solve the multi-objective problems are based on the evolutionary methods; for example, in [
14], an improved multi-objective evolutionary algorithm is proposed for the vehicle routing problem with time windows. Carvalho [
15] presented a multi-objective evolutionary algorithm for optimal design of Yagi–Uda antennas. Meanwhile, to solve the multi-objective workflow scheduling in cloud, Zhu [
16] also used the evolutionary approach to design the multi-objective algorithm. Recently, Zhang [
17] proposed a popular method to solve MOP, that is, Multi-objective Evolutionary Algorithm Based on Decomposition (MOEA/D). It decomposes the multi-objective optimization problem into a number of scalar optimization sub-problems. Because of the decomposition technique, MOEA/D is more efficient compared with the general evolutionary algorithm. Up to now, many researchers have paid attention to it and many works based on it are published [
18,
19].
Generally, the aim of MOP is not to find a solution but a solution set, which consists of all the non-dominated solutions. We say the solutions in this set are Pareto optimal solutions, which is the concept of Pareto optimal [
1,
2]. Now, we give the definition of “dominate”. For a decision vector
x, if for each objective there are always
(for minimum multi-objective problem) and at least one objective such that
, we say that
x dominates another decision vector
denoted by
. A decision vector
is said to be Pareto optimal only if there exists no decision vector
such that
. Meanwhile, the Pareto front is the set of solutions that are all Pareto optimal. The shape of the curve may vary due to the different problem. Generally, the maximum multi-objective problem’s curve is convex while the minimum multi-objective problem’s curve is concave. However, the curve of the discrete multi-objective problem may be not as smooth as the continuous problem’s curve.
As is known, minimum vertex cover is a core optimization problem, which has been widely applied in multiple areas such as industrial machine assignment, network security, and pattern recognition [
20,
21]. The Minimum Weighted Vertex Cover Problem (MWVCP) is a generalized version of Minimum Vertex Cover Problem (MVCP) [
22,
23]. There are also plentiful crafted algorithms to solve MWVCP. For example, Li [
24] proposed an efficient local search framework for the MWVCP. However, in real-world problems, there are usually more than one decision and the vertex may have more than one associated weight. Subsequently, the Multi-objective Minimum Weighted Vertex Cover Problem (MMWVCP) arises. That is, each vertex is associated with several weights and we need to find a vertex subset minimizing every sum weight of different single type weights. Although many researchers have devoted their efforts toward the MWVCP and many algorithms have been successfully applied to solve it, few algorithms are proposed for MMWVCP. To our knowledge, the work in [
11] is the first to analyze the lower bound of the frontier of MMWVCP and we are the first to propose the method for solving MMWVCP. The researchers also pay attention to the different objectives for the vertex cover problem. In [
25], the authors minimized the total weights of vertexes in the vertex cover and the LP-value at the same time, which is the value of optimal solution of the LP for the graph obtained by removing the vertexes in the vertex cover and the corresponding covered edges. Due to the different objectives, the method in [
25] cannot be applied to solve the multi-objective minimum weighted vertex cover problem.
Our main contribution is proposing an effective algorithm to solve the multi-objective minimum weighted vertex cover. Firstly, we adopt the decomposition technique to decompose the multi-objective optimization problems into several scalar optimization sub-problems. Thus, most of the strategies having been used in the minimum weighted vertex cover problems algorithms can be introduced into our algorithm. We combine the degree score function with the weight score and design the score function , which can optimize the objective considering the number of vertexes and the sum of vertexes’ weights simultaneously. The new score function is applied in the initializing phase and the iterated neighborhood search. To guarantee the quality and diversity of the population, in the initializing procedure, we construct a restricted candidate list considering the of the candidate vertexes. Meanwhile, for each individual in the population, we perform an iterated neighborhood search to improve the current solution. In the neighborhood search, for each step, we execute one operator choosing from three operators , , and according to the values of . Finally, a multi-objective algorithm, which is based on iterated neighborhood search and decomposition, is proposed to solve MMWVCP. For simplicity, we only focus on two objectives, i.e. the Bi-objective Minimum Weighted Vertex Cover Problem (BMWVCP).
In the next section, we introduce some background knowledge about multi-objective optimization problem and the technique decomposition. This allows us to know how the algorithm MOEA/D works. Then, in
Section 3, our new algorithm including the important components is described in detail. We present the results of our experiment carried out on the benchmark instances in
Section 4. Finally, we draw the conclusions and put forward some ideas for further research.
3. Multi-Objective Iterated Neighborhood Search Based on Decomposition Algorithm (MONSD)
In this section, we first present the framework of our new algorithm which is based on neighborhood search and decomposition. Subsequently, the three main components, namely the score function, initializing procedure and iterated neighborhood search, are described in detail.
3.1. Framework of MONSD
Our algorithm MONSD (Multi-objective Neighborhood Search based on Decomposition) is based on decomposition and it also integrates the neighborhood search according to the features of multi-objective minimum weighted vertex cover. The framework of MONSD is outlined in Algorithm 1. Firstly, we generate
Pop (the size of population) evenly distributed weight vectors
. That is, the multi-objective minimum weighted vertex cover is decomposed into
sub-problems. The
ith sub-problem is defined by Equation (
3) with
. Then, MONSD calls the
Init_greedy procedure to greedily produce
individuals to compose the current population
. The population
is used to store the non-dominated individuals found thus far. Subsequently, the algorithm executes a series of iterations until the stopping criterion is met. In one iteration, MONSD utilizes neighborhood search to improve the solutions in
. If the solution is improved, the signal boolean variable
is assigned as true.
is used to mark whether the solution gets the improvement after the neighborhood search or the perturbation process. Otherwise, we apply perturbation to the current solution. Namely, we randomly delete several vertexes and randomly add some vertexes to guarantee the solution is a vertex cover. The purpose of the perturbation is to increase the diversity and exploit more solution space. Meanwhile, if the solution is improved after perturbing, we also set the value
as true. At the end of iteration, if
is equal to true, the individual
will be replaced by
. However, we always update the population
no matter whether the solution
is improved. Because we have decomposed the original multi-objective, the sub-problems cannot exactly indicate the objective. Even though the sub-problem’s objective value is not much better, the original multi-objective values may be better than those solutions in the non-dominated population. In next subsection, we describe the components of MONSD in details.
Algorithm 1: The Multi-objective Neighborhood Search Algorithm based on Decomposition (MONSD). |
|
3.2. The Score Function
After decomposing, each sub-problems can be seen as a single objective minimum weighted vertex cover problem. For the single objective minimum weighted vertex cover problem, many strategies have been successfully used to explore the search space. Among these strategies, the score function plays a critically important role in the whole algorithm which can guide the search to approach the possible best solutions. For the minimum vertex cover problem and the minimum weighted vertex cover problem, many kinds of score function have been applied in the algorithms. There are two basic kinds of score function: degree function and weighted score function. In our algorithm, we define a new score function to adapt to the new problem which is applied in initializing procedure and neighborhood search. Our new score function mixes the based on the degree and based on the weight. We give these definitions as follows.
The nature of our
function is similar to the degree of the vertex, thus we name it as
and it is defined as Equation (
4), where
is the edge set adjacent to the vertex
v. If the vertex is not in the solution, the score value is used to evaluate how many edges would become covered from uncovered by adding the vertex to the solution. On the contrary, if the vertex is in the solution, the score value is used to evaluate how many edges would become uncovered by deleting the vertex from the solution and the value is non-negative. Accordingly, in the initializing phase, we initialize the score value of a vertex as the number of edges adjacent to it.
When one vertex is added to the solution, then its neighbor vertexes’ values are decreased by one. On the contrary, when one vertex is deleted from the solution, its neighbor vertexes’ values are increased by one. Considering the values of , we prefer the vertexes with bigger , which makes the number of vertexes in the solution smaller. On the contrary, when we select vertexes to remove from the solution, we prefer the vertexes with smaller , which makes fewer edges become uncovered.
Because we have decomposed the multi-objective minimum weighted vertex cover into several sub-problems, we define a weighted score function to evaluate the effect of one vertex to the single sub-problems. For one sub-problem, the weighted score can be defined as Equation (
5). Once the vector
is fixed, the
of each vertex is assigned and constant during the neighborhood search. Considering the values of
, when we select the vertexes to add to solution, we prefer to the vertexes with smaller
, which makes objective value smaller. On the contrary, when we select vertexes to remove from the solution we prefer to the vertexes with bigger
.
From the above definitions of
and
, we can see that the
motivates the algorithm to use fewer vertexes to optimize the objective while the
motivates the algorithm to select vertexes with smaller weight to optimize the objective. Based on the definitions, we design a more effective score function combining the
with
. It is defined in Equation (
6).
According to the definition of , to effectively optimize the objective, we select the vertexes with bigger to add to the solution and select the vertexes with smaller to remove from solution. The experimental results show the is more effective than and .
We use an example to illustrate the difference of the score functions in
Figure 1. There are two small graphs with five vertexes and four edges and
is with different weight in the two graphs. Such graphs may be a component of a bigger graph. Each vertex is associated with a tuple (
,
,
). Because
keeps constant, once the
is fixed, we assign an integer ranging in [20, 120] to each vertex as its
. The triple tuple of each vertex is initialized as shown in
Figure 1. For the graph in
Figure 1a,
is with bigger degree and bigger weight. If we use the
, we will choose
to cover the four edges. However, the weight of
is greater than the sum weight of the remaining four vertexes, and we should add
and
to the solution to cover the edges. If we use the
or
, we can change the situation. Initially, the
of
is smaller than
’s, but the
of
will decrease after inserting
,
or
. Similarly, the
will also lose the effectiveness in the second graph. We can see that
can perform well in the two situations. However,
and
will lose the advantage in the corresponding situation.
3.3. The Procedure of Initializing
The initial population is essentially important in algorithms, which can lead the algorithm to different search directions. On the one hand, we should guarantee the population quality which will seriously influence the final quality of Pareto-front. On the other hand, to find more non-dominated solutions, we should guarantee the population diversity. To balance the quality and diversity, we adopt constructing RCL (short for Restricted Candidate List), which has been widely used in local search and approximate algorithms [
26,
27]. The procedure of initializing population called
is outlined in Algorithm 2.
Algorithm 2: Init_greedy(). |
|
After executing
, there will be
individuals to compose the population
. When
generates one individual, it firstly assigns the score value of every vertex according to Equations (
4)–(
6). Then, all edges will be added to uncovered edges link. Subsequently, the procedure will construct RCL. First, it finds the maximum score (
) and minimum score (
) values of the vertexes not in
. Second,
sets the limited score as
. Only if the vertex’s score is greater than the limited score do we add it to RCL. The parameter
is used to control the greediness of the procedure. A greater
indicates a greater greediness. Then,
randomly selects one vertex from RCL and adds it to
. At the end of one iteration, we judge whether the
is a vertex cover and different from the individuals existing in
. The procedure doe not stop until it generates
different individuals. In Algorithm 2, we present the initialize procedure for the version MONSD with
(MONSD
). For the version MONSD with
or
, we should update the score function.
3.4. The Iterated Neighborhood Search
The iterated neighborhood search is an important component in our algorithm, which focuses on one solution and deeply explores it to find more promising solutions. A neighbor is typically defined by a move operator (). Namely, a move operator () is applied to a given solution S and S is accordingly transformed to a neighbor of , denoted by . Then, the neighborhood N of S can be defined as: . In our neighborhood search, there are three complementary neighborhoods defined by three basic operators. These neighborhoods are explored in a combined manner employing a rule that selects the most favorable neighbor solution with the best score.
The score function is used to evaluate the benefit if we delete or add one vertex considering the and . Based on the mechanism, we design three move operators (denoted by , and ). The three operators are defined as:
: The operator consists in deleting one vertex from S while guaranteeing S is always a vertex cover. If the operator can find an appropriate vertex, it will return the vertex number, otherwise it will return −1 indicating the operator is not feasible. Based on the nature of , we can find that such vertexes are with equal to 0. If there are more than one vertex with equal to 0, we always select the vertex with the biggest score () to ensure the quality of the neighbors of S. The neighborhood defined by the operator is given by . The operator is described in Algorithm 3.
Algorithm 3: Delete(S). |
|
: The operator consists in exchanging one vertex () in S with one vertex () not in S while guarantee S always is a vertex cover, which is outlined in Algorithm 4. The vertex pair with smaller has a higher priority. If the value is less than 0, it indicates the objective value will be improved if we execute the swap operator. Because the swap operator does not change the number of vertexes in the solution, we should consider the benefit brought for the objective by swapping two vertexes directly. Therefore, we use the to evaluate the vertex pair. Similar to the operator , there may not be an appropriate vertex pair. In this case, it will return (), which indicates that the operator is not feasible; otherwise, it will return a pair of vertex number. The neighborhood defined by the move operator is given by .
Algorithm 4: Swap(S). |
|
: The operator consists adding a vertex not in S. Before adding a vertex, the S is already a vertex cover, thus we can judge that S is always a vertex cover after adding one vertex. Because and are greedy operators, we randomly select a vertex from the vertex set not in S to increase diversity. It returns the selected vertex number. The neighborhood defined by the operator is given by . The operator is described in Algorithm 5.
Algorithm 5: Add(S). |
|
Based on the definitions of three operators, we can see the and move always make the single objective value decrease, while always increases the single objective value. Considering the above features of three operators, we create a combined neighborhood. To effectively optimize the objective, when we choose the operator between and , we directly compare the value of and and choose the operator with the bigger value. The iterated neighborhood search is described in Algorithm 6.
Algorithm 6: NeighborhoodSearch(S). |
|
We take an example to explain how the iterated neighborhood search works. As shown in
Figure 2, the graph is with 12 vertexes and 19 edges. Each vertex is associated with a triple tuple with the same meaning as in
Figure 1. The black vertexes are in the solution while the white ones are not in the solution. At each iteration, one operator is performed and the score values are updated subsequently. By executing the procedure of initializing, an initial solution is generated and the objective
is 224 (the order of adding vertexes can be
). At the first iteration, we perform the swap operator and the objective becomes 223. At the second iteration, there is no feasible
or
operator. We randomly select a vertex to add, such as the vertex
. After updating the score values, we find that two vertexes can be deleted
and
.
is deleted due to the bigger weight. At the next iteration, there is no feasible
or
operator again and
is selected to add to the solution. Then,
and
are deleted in the following two iterations. Due to the limitation of space, we show them in one iteration here. After deleting
and
, the objective is 212, which is the minimum objective over the graph.
During the neighborhood search, if we only consider the , and would have the same probability to be deleted in the third iteration, even though is with the bigger , which would lead the search to converge more slowly. Actually, the version MONSD only considering the needs to use the to judge whether there exists the feasible or operator. Therefore, the version MONSD and MONSD have little difference during neighborhood search if they have the same initial solution. However, the important difference between MONSD and MONSD exists in the initialization procedure which plays a critical role in the framework. For example, has a higher priority to be added to the solution in the version MONSD due to the smaller weight. has the same possibility with to add to the solution in the version MONSD, although has the bigger weight. Therefore, we should take the and into account in the initializing phase and neighborhood search if we want to optimize the objectives well. The experimental results also indicate that the version MONSD is more effective than the other two versions.