A Proposed Algorithm for Minimum Vertex Cover Problem and its Testing
📝 Abstract
The paper presents an algorithm for minimum vertex cover problem, which is an NP-Complete problem. The algorithm computes a minimum vertex cover of each input simple graph. Tested by the attached MATLAB programs, Stage 1 of the algorithm is applicable to, i.e., yields a proved minimum vertex cover for, about 99.99% of the tested 610,000 graphs of order 16 and 99.67% of the tested 1,200 graphs of order 32, and Stage 2 of the algorithm is applicable to all of the above tested graphs. All of the tested graphs are randomly generated graphs of random “edge density” or in other words, random probability of each edge. It is proved that Stage 1 and Stage 2 of the algorithm run in $O(n^{5+logn})$ and $O(n^{3(5+logn)/2})$ time respectively, where $n$ is the order of input graph. Because there is no theoretical proof yet that Stage 2 is applicable to all graphs, further stages of the algorithm are proposed, which are in a general form that is consistent with Stages 1 and 2.
💡 Analysis
The paper presents an algorithm for minimum vertex cover problem, which is an NP-Complete problem. The algorithm computes a minimum vertex cover of each input simple graph. Tested by the attached MATLAB programs, Stage 1 of the algorithm is applicable to, i.e., yields a proved minimum vertex cover for, about 99.99% of the tested 610,000 graphs of order 16 and 99.67% of the tested 1,200 graphs of order 32, and Stage 2 of the algorithm is applicable to all of the above tested graphs. All of the tested graphs are randomly generated graphs of random “edge density” or in other words, random probability of each edge. It is proved that Stage 1 and Stage 2 of the algorithm run in $O(n^{5+logn})$ and $O(n^{3(5+logn)/2})$ time respectively, where $n$ is the order of input graph. Because there is no theoretical proof yet that Stage 2 is applicable to all graphs, further stages of the algorithm are proposed, which are in a general form that is consistent with Stages 1 and 2.
📄 Content
1 A Proposed Algorithm for Minimum Vertex Cover Problem and its Testing
Gang Hu Email: garyhu3@163.com
Abstract
The paper presents an algorithm for minimum vertex cover problem, which is an NP-Complete problem. The algorithm computes a minimum vertex cover of each input simple graph. Tested by the attached MATLAB programs, Stage 1 of the algorithm is applicable to, i.e., yields a proved minimum vertex cover for, about 99.99% of the tested 610,000 graphs of order 16 and 99.67% of the tested 1,200 graphs of order 32, and Stage 2 of the algorithm is applicable to all of the above tested graphs. All of the tested graphs are randomly generated graphs of random “edge density” or in other words, random probability of each edge. It is proved that Stage 1 and Stage 2 of the algorithm run in O(n5+logn) and O(n3(5+logn)/2) time respectively, where n is the order of input graph. Because there is no theoretical proof yet that Stage 2 is applicable to all graphs, further stages of the algorithm are proposed, which are in a general form that is consistent with Stages 1 and 2.
- INTRODUCTION
If the algorithm is to be classified as one algorithm design technique, then transform-and-conquer
strategy maybe most suitable for it [1].
Suppose we need to find a minimum vertex cover of simple graph G, then the first part of the
algorithm is to generate an auxiliary simple graph H, which satisfies the following four conditions:
A. L(V(H)) ⊇ L(V(G)), of which L(X) denotes X’s label set, i.e., the set of X’s all vertex’s labels;
B. Different vertices of H may share a same label. For any edge of H, however, the two endpoints
have different labels;
C. Of each component P of H, all maximal-clique’s vertex-sets have a same cardinal number, and
thus this number is called “grade of component P” and denoted by g(P);
D. For any nonempty subset T of L(V(G)), there exists a maximal clique Q in H such that L(V(Q))
T.
Remark 1.1. H is generated by Steps 1 to 3 in Section 2, and it is not any other graph which
satisfies the above conditions.
The remaining part of the algorithm is to find out a maximal clique of H whose label set can be
proved to be the label set of a minimum vertex cover of graph G.
Let N[x] = N(x)∪{x}, of which N(x) is the neighbor set of vertex x. Suppose a subgraph of H
which satisfies both of the following conditions.
Condition 1. For any vertex v of the subgraph, there exists a vertex cover C of G such that
L(N[v]) L(C).
Condition 2. For any edge uv of the subgraph, there exists a vertex cover C of G such that
L(N[uv]) L(C), where N[uv] N[u]∩N[v].
Then for each component of H in ascending order of its grade, which is defined in Condition C,
find out a maximal subgraph S of it which satisfies Conditions 1 and 2. Iterate this computation for the
next component until S is nonempty. Then find out a minimal-order subgraph I of S which contains a
nonempty subgraph that satisfies Conditions 1 and 2. If I is a clique, then it is proved by Claim 2.10
that L(V(I)) is the label set of a minimum vertex cover of graph G. If I is not a clique, then go to Stage 2
of the algorithm, which is introduced in Section 5
In Section 3, Stage 1 of the algorithm is proved to run in O(n5+logn) time.
The algorithm was tested by MATLAB programs, and it was found that I is not a clique for only 44
of the tested 711,200 graphs. Then by Claim 2.10, Stage 1 of the algorithm cannot yield a minimum
vertex cover for only about 0.0062% of all tested graphs. The test results are detailed in Section 4.
For the graphs to which Stage 1 of the algorithm is not applicable, a stronger version of Condition
2 is introduced. With this change, the algorithm reaches Stage 2 for the graphs to which Stage 1 is not
2 applicable, and it was found that, with O(n3(5+logn)/2) time, Stage 2 is applicable to, i.e., yields a minimum vertex cover of, each of the 44 tested graphs. Because Stage 2 is same as Stage 1 except that Condition 2 is replaced by a stronger version, so Stage 2 actually works for all of the 711,200 tested graphs. Furthermore, if there exist graphs to which Stage 2 of the algorithm is not applicable, those graphs will go to further stages of the algorithm which are expressed in a general form that is consistent with Stages 1 and 2. Those stages are introduced in Section 6.
- STEPS OF THE ALGORITHM
Firstly, graph H is constructed by Steps 1 to 3.
Step 1. Suppose L(V(G)) {1, 2, …, n}, and k log2ni.e., k is the smallest integer which
satisfies n 2k. Let L(V(H)) {1, 2, 3, …,2k}.
Then define Z, which is a family of sets, as follows.
Definition 2.1 Let L(V(H)) be the “first” member of Z. Then partition L(V(H)) into two
equal-sized disjoint sets {1, 2, …, 2k1} and {2k11, 2k12, …,2k}, whose elements are consecutive
numbers, and let the two sets become members of Z. For each of the two “new” members, if its cardinal
number is larger than 1, then continue t
This content is AI-processed based on ArXiv data.