Most Valuable Player Algorithm for Solving Minimum Vertex Cover Problem

Minimum Vertex Cover Problem (MVCP) is a combinatorial optimization problem that is utilized to formulate multiple real-life applications. Owing to this fact, abundant research has been undertaken to discover valuable MVCP solutions. Most Valuable Player Algorithm (MVPA) is a recently developed metaheuristic algorithm that inspires its idea from team-based sports. In this paper, the MVPA_MVCP algorithm is introduced as an adaptation of the MVPA for the MVCP. The MVPA_MVCP algorithm is implemented using Java programming language and tested on a Microsoft Azure virtual machine. The performance of the MVPA_MVCP algorithm is evaluated analytically in terms of run time complexity. Its average-case run time complexity is ceased to Θ(I(|V|+|E|)), where I is the size of the initial population, |V| is the number of vertices and |E| is the number of edges of the tested graph. The MVPA_MVCP algorithm is evaluated experimentally in terms of the quality of gained solutions and the run time. The experimental results over 15 instances of DIMACS benchmark revealed that the MVPA_MVCP algorithm could, in the best case, get the best known optimal solution for seven data instances. Also, the experimental findings exposed that there is a direct relation between the number of edges of the graph under test and the run time.

The MVCP is a combinatorial optimization problem in computer science. It is a classic example of an NP-hard optimization problem. The MVCP is the problem of finding the smallest set of vertices such that at least one endpoint of each edge of the tested graph belongs to that set [15].
The Vertex Cover Problem (VCP) can be defined as follows: let G = (V, E) be an undirected graph with set V of vertices and set E of edges. If S is a subset of V (S ⊆ V) and (x, y) is an edge in G, then S is the cover of G if either x S or y S or both [15]. The MVCP is the problem of finding a subset S such that |S| is the minimum. The MVCP can be formulated as in (1).

∑
(1) For the sake of clarity, Fig. 1 depicts an illustrative example for the MVCP. In this figure, the graph G consists of 6 vertices and 6 edges. For instance, the subset {1, 2, 5, 6} represents a cover for G, but it is not the minimum. In fact, the subsets {1, 5} and {1, 6} are the minimum ones.
Many real-life problems and applications can be developed as MVCP. Therefore, many scientists have been encouraged to create higher attempts to discover efficient solutions. Networks and communications [16], engineering [17], and bioinformatics [18] are some of the real-world applications that they were represented and solved as MVCP.
To solve the MVCP, distinct kinds of algorithms were developed to introduce worthy solutions. Several exact [19,20], heuristic [21][22][23], and metaheuristic [10][11][12][13][14]24] algorithms were presented to achieve the purpose of solving the MVCP. The exact algorithms always find the optimal solution to the optimization problems if the problem size is comparatively small. This is because, in a feasible time, the optimal solution can be achieved. But once the problem size starts to increase, heuristic and metaheuristic algorithms are needed. Both of these types of algorithms can find a solution as close as possible to the optimal solution. Maximum Degree Greedy (MDG), Vertex Support Algorithm (VSA), and New Modified Vertex Support Algorithm (NMVSA) [21,22] are some of the heuristic algorithms that were introduced specifically for the MVCP.
Many researchers adapted metaheuristic algorithms to handle MVCP. The GA was used to solve the MVCP in [10,11]. The ACO algorithm also tackled the MVCP in [12,13]. Furthermore, it was addressed by the CRO algorithm in [14]. 160 | P a g e www.ijacsa.thesai.org The Most Valuable Player Algorithm (MVPA) is a recent metaheuristic algorithm that was introduced in 2017 for solving optimization problems [25]. The algorithm is inspired by sport, where the players make up teams, then they compete (in teams) together to win the championship. They also compete for the best player award on an individual basis.
In this paper, the MVPA is adapted and implemented for treating the MVCP. This algorithm is implemented using Java programming language and executed on a Microsoft Azure virtual machine. The performance of the implemented algorithm is evaluated analytically in terms of run time complexity and cost function metrics. Furthermore, it is evaluated experimentally in terms of solution quality and run time. The experiments have been conducted using different DIMACS benchmark instances for MVCP.
The structure of this paper is summarized as follows: Section II reviews some of the related work. In Section III, the MVPA is briefly lunched and explained. Section IV shows how the MVPA is tailored to the MVCP. Section V analytically evaluates the implemented MVPA. Section VI shows and discusses the experimental outcomes. Finally, Section VII concludes the conducted work and suggests some future work.

II. RELATED WORK
As several essential applications are depicted as MVCP, it has been the heart of extensive research. In [26], a new local search algorithm that is named NuMVC (New Minimum Vertex Cover) has been introduced to tackle the MVCP. The primary concept for NuMVC was to confront some weaknesses, which normally occur in the local search algorithms, linked to the exchange of vertices and weight of edges. NuMVC has come up with new approaches to address these weaknesses. VEWLS (Vertex Edge Weighting Local Search) algorithm is presented in [27]. This algorithm integrates the vertex weighting scheme with the edge weighting scheme. In comparison with the NuMVC algorithm, VEWLS performance was evaluated. The findings showed that the VEWLS algorithm was superior to the NuMVC algorithm.
Moreover, GA has been used to solve the MVCP in [10]. The primary objective of this research was to demonstrate the effects of growing the population size. The results exposed that the number of generations required getting the optimal solution decreases as the population size increases.
The ACO algorithm has been exploited in [13] to solve the minimum weight VCP. In this research, a heuristic strategy has been put forward to rule out suspicious elements to correct the pheromone. This strategy is based on extracting information related to the best solution. This information enhanced the canonical ACO algorithm by avoiding the premature trapping of the local optima. The findings indicated a noticeably shorter time, while the results achieved were somewhat better.
A version of CRO algorithm called Hybrid Chemical Reaction Optimization Algorithm (HCROA) was designed to solve the minimum vertex cover problem for an undirected graph in [14]. In this algorithm, a greedy approach is adopted for implementing the main reactions operators. The HCROA was compared with genetic algorithm and branch and bound approach. The comparison was in terms of the number of iterations that were executed to reach the optimal solution. The results exposed that HCROA outperformed the genetic algorithm and the branch and bound approach.
There are not many research work so far as the MVPA is concerned. This is due to the fact that MVPA is invented so recently [25]. However, the same author who introduced the MVPA has investigated his algorithm to tackle the optimal design of circular antenna arrays for maximum sidelobe levels reduction [28]. The results of testing the proposed algorithm showed that it is superior to many other counterpart algorithms.
In [29], a comparison has been conducted between the MVPA and other sport-inspired metaheuristic algorithms. All compared algorithms have been tested using unimodal and multimodal problems. The MVPA has been proved to be the best algorithm regarding unimodal problems. For the multimodal problems, it has been the best together with two other algorithms.

III. MOST VALUABLE PLAYER ALGORITHM
As previously stated, Bouchekara has recently introduced the MVPA in 2017 [25]. He inspired the idea of the MVPA from the team-based sports; where all participated players are grouped in teams. Algorithm 1 illustrates the MVPA phases.
The inputs of the MVPA are the problem size (the dimension of the tackled problem), players size (the number of players), teams size (the number of teams), and MaxNFix (the maximum number of fixtures (iterations)). The Most Valuable Player (MVP) that represents the best-obtained players is the output of the MVPA.
The MVPA begins with the initial phase. In this phase, the initial population of players is randomly created. In the main phase, all other phases are executed and repeated until the stop condition is satisfied. The first step that is executed in the main phase is the distribution of the players of the population into teams. The competition phase iterates for all teams. For each selected team, two types of competitions are carried out, individual and team competitions. In the individual competition, each player of the selected team tries to improve his sporting skills to be the best player in his team and the league. Concerning the team competition, it is performed among the competed teams. Each selected team plays against another randomly picked team. As a result of this play, the players of the selected team follow a certain mechanism to update their skills. It must be mentioned that the player skills have lower and upper bounds, and in each competition, all players are constantly seeking to improve their skills. So, if the improvement tries updating the players' skills out of these bounds, these skills must be brought back to their bounds. This checking of the player's skills bounds is regularly performed in the bound checking phase.
At the end of the competition phase, the new population of players is shaped. This new population faces the greediness phase where the player who only got better skills is accepted, otherwise, his skills remain without accepting the conducted changes. In the elitism phase, a specific number of worst players in the new population are replaced with the same number of elite players who have the best skills. As a final phase, any duplicated player is replaced by a player from the winning teams.
As mentioned beforehand, the main phase iterates until the stop condition is satisfied. In [25], this condition is determined by the number of iterations which equals a specific number that is assigned to the MaxNFix. All information about the MVPA designing details can be found in [25].

IV. MOST VALUABLE PLAYER ALGORITHM FOR THE MINIMUM VERTEX COVER PROBLEM
The first step of adapting the MVPA for the MVCP is to align its main concepts of the MVPA with the MVCP. Table I shows the main concepts of the MVPA and their related meanings of the MVCP. The player concept in the MVPA represents a solution of the graph considered. In order to implement a solution, let a graph G = (V, E), then the vector a = (a 1 , a 2 , ..., a |V| ) where a i {0, 1}, is a binary vector that represents the solution. If the i th vertex contributes to covering the graph G, then a i = 1, otherwise, a i = 0. In consequence, the number of ones in the binary vector represents the solution size which is noted as player skills in the MVPA. To clarify the idea, consider the following example. For instance, for a graph G with 6 vertices, if a = (1, 1, 0, 1, 0, 1), then the solution size is 4 and vertices 1, 2, 4 and 6 cover all edges of the graph G.
The problem size in the MVPA corresponds to the number of vertices in the graph considered for the MVCP; which represents the length of the created binary vector.
In the MVCP, the number of initial solutions that are created to form the initial population corresponds to the players size concept in the MVPA. When the initial population's solutions are distributed over teams, the solution which has the minimum size in a team represents the Franchise player. However, the solution which has the minimum size in all teams is considered the most valuable player. The best-gained solution is the most valuable player after all the MaxNFix iterations.
The adaptation of MVPA for the MVCP is described in Algorithm 2. As inputs, the algorithm requires a graph to be tested, it is denoted as G. The initial population size which represents the number of initial solutions is symbolized by I. Variable T stands for the number of groups that the population solutions will be distributed into. The maximum number of times that the algorithm should iterate is denoted by M. The best solution obtained after the M iterations is represented by the Minimum Vertex Cover (MVC) which is the output of Algorithm 2.
In regards to MVPA phases, they are adapted for the MVCP firstly by assembling the competition, bound checking, greediness, and elitism phases in the main phase. Duplicates removing phase is ignored because of what will be explained after a while. Besides, the original order of the MVPA phases is modified to meet the needs of adaptation.
In the initial phase, as in line 1 of Algorithm 2 shows, I of initial solutions are randomly created to form the initial population. The initial solutions are created using a Random Bit-Vector (RBV) approach [30]. In RBV, the solution binary vector is made up by assigning each vertex value of 0 or 1 based on a generated random number. If this number is greater than a predefined constant, then the value of the vertex will be 1, or 0 otherwise. Calculating the sizes of these initial solutions is the next step. After then, the best solution (i.e. the solution with the minimum size) of the initial population is determined as illustrated in line 2. Player skills Solution size.
Problem size Tested graph size (the number of its vertices).
Players size The number of initial solutions (initial population size).

Franchise player
The solution with the minimum size in a team.

Most valuable player
The solution with the minimum size in all teams. 162 | P a g e www.ijacsa.thesai.org Create the initial population (P) by generating I random initial solutions and calculate the sizes of these solutions. 2 Find the best solution in P (i.e. the solution with minimum size) and denoted as L.
Distribute P solutions over T groups // Competition Phase Pick randomly group j (g j ), given that i ≠ j 8 Find the best solutions in g i and g j . Denote them as B i and B j , respectively. // Individual Competition Phase 9 for each solution (X) in g i Do 10 for each vertex d of X Do Calculate the probability of winning g i against g j and g j against g i 21 for each solution (X) in g i Do

22
for each vertex d of X Do 23 if g i wins against g j 24 The main phase, which is represented in lines 3-40, iterates M times. The first step in each time is to subsequently spread the population solutions across the T groups as depicted in line 4. Shortly afterwards, the competition phase (lines 5-36) starts with retrieving the group that is due to be processed (g i ) as shown in line 6. In line 7, another group (g j ) is randomly retrieved to confront g i in the team competition phase, where g i and g j should be different. Before delving in executing any of the competition phases (individual or team), it is needed first to find the best solution in g i and g j as exposed in line 8. Concerning the individual competition phase, it extends between lines 9 and 19. In this phase, each solution of g i undergoes an improvement attempt to minimize its size using the equation in line 11 [25]. In this equation, the vertices values of each solution are updated based on the values of the vertices of the best solution in the g i (B i ) and the best solution in population P (L). Regarding the team competition phase, its steps are allocated in lines 20-35. Its first step is to determine the winner group by calculating the probability of winning g i against g j and g j against g i . Equation (2) is used to calculate these probabilities [25]. (2) where g a and g b are any competed groups, k is a constant and is the normalized size of g a 's solutions sizes that is calculated as in (3) [25].
On the consequence of the winner group determination, the vertices values of g i solution are updated using either the equation in line 24 or in line 26 [25].
As stated formerly, the solution vertices values are restricted to be 0 or 1. However, when the equations in lines 11, 24, and 26 are used to update the values of the vertices, some of the obtained values differ from 0 or 1. So, in the bound checking phase, these values must be checked and brought back to 0 or 1. Specifically, when the value acquired of applying any of these equations is less than 1, then the vertex value is determined to be 0. Otherwise, it is considered to be 1.
Since the values of the vertices are updated in both individual and team competition phases, the bound checking phase is executed twice, once after each updating process. This is illustrated in lines 12 and 28.
Intuitively, after each updating, the sizes of the updated solutions are re-calculated. Accepting these solutions essentially is based on the fact that their sizes must be smaller than the original one, with emphasizing that the accepted www.ijacsa.thesai.org solutions should cover the graph under test. The decision of accepting the updated solutions or rejecting them mainly is made in the greediness phase. Taking into consideration that the solutions are updating twice, as mentioned beforehand, the greediness phase is accomplished also twice, once is after the updating process in the individual competition phase as shown in lines 14-18. Once again is at the end of each iteration of the team competition phase as presented in lines 30-34.
The last phase that is included in the main phase is the elitism phase. In this phase, as recommended in [25], one-third of all solutions which have worst sizes (i.e. largest sizes) are replaced with these one-third solutions which have the best sizes (i.e. smallest sizes). With an aim to perform this replacement, first of all, the solutions from all groups must be collected back to the population P. In the aftermath, these solutions are sorted in a non-descending manner based on their sizes. As clearly observed in Algorithm 2, the elitism phase is implemented in lines 37-39. Ultimately, after executing all M iterations, the best-obtained solution is announced as MVC like is reveled in line 41.
It is worth noting that the duplicates removing phase is ignored during the adaptation of MVPA to the MVCP. Since it is inapplicable in case of the MVCP, this inapplicability attributed to that in some cases, the number of solutions of the graph under consideration is less than the initial population size. Thereupon, the duplication is unavoidable. Consequently, this phase cannot be applied.

V. ANALYTICAL EVALUATION
This section offers a detailed discussion of an analytical evaluation for MVPA_MVCP algorithm in terms of the run time complexity. Given that, M is the maximum number of iterations, I is the initial population size, T is the number of groups, and |V| and |E| are, respectively, the number of vertices and edges in the graph under test.
The run time of an algorithm, as indicated in [15], is described as the number of steps executed over a particular size of input. The run time complexity calculated in this section is the average-case of the run time.
The run time complexity of MVPA_MVCP algorithm is the result of summing the run time complexity of its phases. Nonetheless, the run time complexity of creating the initial population solutions and calculating their sizes are not taken into consideration. This is due to the fact that it is assumed to be a preprocessing step. Theorem 1 remarks MVPA_MVCP algorithm average-case run time complexity. Yet, the details of calculating this complexity are illuminated in the following proof based on tracing the steps and phases listed in Algorithm 2.
Theorem 1 The average-case run time complexity of MVPA_MVCP algorithm is ( ).
Proof: In the initial phase (lines 1-2), the process of generating the initial population is ignored. This is because it is assumed to be a preprocessing step. Finding the best solution in P requires I steps. Thus, the total run time complexity of the initial phase is I.
The main phase (lines 3-40) iterates M times. In each time, the following steps and phases are executed:  Distributing the population solutions into T groups needs I steps.
 The competition phase (lines 5-36) iterates T times by executing the following steps and phases: -Finding the best solution in any group requires steps. For the group that is currently processed and the randomly retrieved group, they require steps.
-The individual competition phase (lines [9][10][11][12][13][14][15][16][17][18][19],  The elitism phase (lines 37-39), the first step of applying this phase is to recollect the solutions from all the groups back to the population P. Actually, this step costs steps. Worst one-third solutions that are replaced by the best one-third solutions costs steps. But to be able to do this replacement, sorting the www.ijacsa.thesai.org solutions regarding their sizes is needed. Radix sort is chosen to perform this task. The time complexity of radix sort is , where D is the number of digits of the largest number to be sorted [14]. Accordingly, the elitism phase run time complexity is .
That is to say, the total run time complexity of the main phase is ( ( In conclusion, the overall run time complexity of the MVPA_MVCP algorithm is However, M, T and D can be dropped since they are constants which are much less than I, |V|, and |E|. As a result and by dropping all other constants, the average-case run time complexity of MVPA_MVCP algorithm is ended to be . This completed the proof of Theorem 1.

VI. EXPERIMENTAL RESULTS AND DISCUSSION
To evaluate the performance of the MVPA_MVCP algorithm experimentally, it is first implemented using Java programming language under 64-bit windows 10 pro operating system. Then, the MVPA_MVCP algorithm was tested on a Microsoft Azure virtual machine which has a 2.00 GHz Intel Xeon processor with 64 GB memory. Different instances of the DIMACS benchmark for the MVCP have been used to test the MVPA_MVCP algorithm. These instances are listed in Table II [31,32], where the benchmark instances name, number of vertices, number of edges and their best known optimal solutions sizes [32] are presented.
As an overview of Microsoft Azure, it is one of the most recent services of Microsoft [33]. It is a cloud computing service that provides facilities for building, testing, deploying, and managing applications and services over Microsoft global datacenters network. In addition to supporting many frameworks and tools, it supports various programming languages. One of the most important facilities that Microsoft Azure implemented as a computer service is the creation of virtual machines [33].

Number of Edges
In point of fact, the evaluation of the MVPA_MVCP algorithm is based on two performance metrics, the gained solution quality and the run time. For each benchmark instance, all tests are performed 10 times. The best-case, average-case and worst-case of these 10 tries are recorded for the solution quality metric. The run times of these three cases are also recorded. Besides, it is important to emphasize that the average-case of the solution quality metric is calculated as ⌊ ∑ ⌋, where r i is the minimum solution size gained in try i.
It is essential to draw the attention to the values of the main variables of the MVPA_MVCP algorithm before beginning to show and discuss the experimental outcomes. Regarding the initial population size, the number of groups, and k constant that is used in (2), they are specified as recommended in [25]. Their values are 100, 5, and 1, respectively. As regards the maximum number of iterations (M), several experiments have been performed to explore its best possible value that achieves a compromise between the gained solution quality and the run time. Three instances were used as samples for the conducted exploratory experiments. These instances varied in size; small (graph50_6, 50 vertices), medium (Hamming8_4, 256 vertices) and large (phat700-1, 700 vertices). The implemented MVPA_MVCP algorithm was executed using these three instances with M values 2, 4, 6, 8, and 10. The results showed that the most appropriate value was 6. This is because of the fact that the value of best-gained solutions of all three instances has not changed after the sixth iteration. On this foundation, M was assigned to 6 in all conducted experiments.

A. Solution Quality
First and foremost, solution quality is considered as one of the most expressive performance metrics to evaluate the metaheuristic algorithms. It specifies how much a gained solution has diverted from the optimal one. In the conducted experiments, the quality of a gained solution can be assessed since the best known optimal sizes of the solutions of the selected DIMACS data instances are recorded [32]. As an www.ijacsa.thesai.org evaluator metric of the quality of gained solutions, the approximation ratio concept is used as in [21]. Mathematically, the approximation ratio is calculated as , where is the approximation ratio of the size of gained solution (α), and β is the size of the best known optimal solution. If the value of equals to 1, then the size of the gained solution is the same as the size of the best known optimal solution. But with a value above 1, the size of the gained solution is worse than the size of the best known optimal solution.
In light of that, Table III demonstrates the best, average, and worst sizes of the obtained solutions and their respective approximation ratios. In this table, the chosen benchmark instances are sorted in non-descending order according to their number of vertices. Additionally, the noted bolded values appear in Table III indicate to those solutions that their sizes equal to the best known optimal solutions sizes. For the best case, average case and worst case, the MVPA_MVCP algorithm could gain respectively, seven, three and two solutions, with sizes equal to the best known optimal solutions sizes.
With respect to the approximation ratio, the gained solutions that have sizes equal to the sizes of the best known optimal solutions, their approximation ratios are equal to 1. Intuitively, the solutions that have sizes larger than the sizes of the best known optimal solutions, their values of the approximation ratios are greater than 1. All approximation ratios that have values equal to 1 are also bolded in Table III. As an accumulated view, the last row of Table III shows the average of the approximation ratio values of all benchmark instances for all cases (i.e. best, average, and worst). These average values indicate that, on average, the MVPA_MVCP algorithm slightly diverted by only 0.01, 0.021, and 0.033 from the best known optimal solutions in the best case, average case and worst case, respectively.

B. Run Time
In order to discuss the run time (RT), the number of edges of a graph must be taken into consideration. Indeed, this number significantly impacts the entire RT, based on the fact that it impacts one process that is frequently repeated. Usually, this process checks the solution's capability to cover the involved graph. Actually, this check is performed by removing the edges of those vertices which are composing the solution. Thusly, when the number of edges becomes larger, more RT is needed to end the checking test. Consequently, the total RT will increase. Taking this fact into account, the DIMAC benchmark instances in Table IV are re-sorted in an ascending manner depending on their number of edges to clarify the effect of this number on the RT.
In Table IV, the RT (in seconds) of executing the MVPA_MVCP algorithm over the selected benchmark instances are recorded. The relationship between the number of edges and the RT, which outlined beforehand, can be clearly observed in all cases (best, average and worst) of gained solutions sizes. In fact, the general observation in Table IV is that, as the number of edges increases, the RT increases too.
Furthermore, Fig. 2 is created to graphically clarify the behaviour of the RT when the number of edges increases. Particularly, Fig. 2 demonstrates how long the average-case solutions can be accomplished. Moreover, since there is a large difference between the smallest and largest values of the RT in Table IV, the vertical axis of Fig. 2 is labelled by the logarithmic values of base 10 of the RT. This is to present these times more clearly. As laid out in Fig. 2, it also depicts the direct relationship between the RT and the number of edges.

VII. CONCLUSIONS AND FUTURE WORK
On one side, the MVCP is one of the NP-hard problems that many scientists have been dealing with. This is because it has demonstrated its flexibility in solving problems in several applications in real-life. On the other side, the MVPA has recently developed as one of the metaheuristic algorithms that has been influenced by its concept in team sports. In this paper, the MVPA_MVCP algorithm is presented as an adaptation of the MVPA for the MVCP. The MVPA_MVCP algorithm is analytically evaluated, and several tests are conducted with a target of experimental evaluation. Regarding the analytical evaluation, the MVPA_MVCP algorithm is evaluated in terms of the run time complexity. It has been shown that its averagecase run time complexity ended to be , where I is the size of the initial population, |V| is the number of vertices and |E| is the number of edges of the graph under test.
For the conducted experiments, the MVPA_MVCP algorithm is developed using Java programming language and it is executed on a Microsoft Azure virtual machine that has a 2.0 GHz Intel Xeon processor with 64 GB memory. As test data set, 15 DIMACS benchmark instances for minimum vertex cover problem are used.
The experimental results are evaluated in terms of the run time; in addition to the quality of the gained solutions. These results clarified that there is a direct relation between the number of edges of the processed graph and the run time.
Where when the number of edges increases, the run time increases too. Besides, they showed that, in the best case, the MVPA_MVCP algorithm could gain seven solutions that have sizes exactly as the best known optimal solutions sizes.
As future work, the MVPA_MVCP algorithm can be compared with other metaheuristic algorithms such as GA and ACO. Microsoft Azure service of creating multi-core virtual machines can be also invested to parallelize the MVPA_MVCP algorithm. Additionally, it can be parallelized over some types of interconnection networks like Chained-Cubic Tree interconnection network (CCT) [34], Optical Chained-Cubic Tree interconnection network (OCCT) [35], and Optical Transpose Interconnection System (OTIS) networks; such as OTIS-hypercube, OTIS-mesh, OTIS hyper hexa-cell, and OTIS mesh of trees [36,37]. These interconnection networks exposed their usefulness for solving various problems in a parallel mode [36][37][38]. Solving the MVPA_MVCP algorithm on parallel computing environment could greatly reduce the run time, and it should not affect the quality of the obtained solutions.