On Efficient Computation of �DiRe Committees���Kunal Relia�kunal.relia91@gmail.com, krelia@nyu.edu�����July 11, 2023
(Contextually) Equivalent to: �On Efficient Computation of Minimum Vertex Cover���Kunal Relia�kunal.relia91@gmail.com, krelia@nyu.edu�����July 11, 2023
An Algorithm for an NP-complete problem
EXAMPLE 1
(simultaneously read notes)
1
5
4
2
3
6
7
8
0
1
5
4
2
3
6
7
8
0
Maximum Matching
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 | 1 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 | 7 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 | 5 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 | 6 |
1
5
4
2
3
6
7
8
0
BFS
Level | Vertices |
A | 0 |
B | 1 |
C | 2, 3 |
D | 4, 5, 7, 8 |
E | 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Local Minimization
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Smallest Vertex Cover = {1, 2, 3, 6}
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
Minimum Vertex Cover = {1, 2, 3, 6}
Node 1 | Node 2 |
0 – {1} | 1 – {0, 2, 3} |
2 – {4, 7} | 7 – {2} |
3 – {5, 8} | 5 – {3, 6} |
4 – {6} | 6 – {4} |
1
5
4
2
3
6
7
8
0
Minimum Vertex Cover = {1, 2, 3, 6}
Proof Sketch
Proof Sketch
If a given instance of Vertex Cover is a ``Yes'' instance, then the Algorithm returns ``Yes’’.
If the Algorithm returns ``Yes'', then the given instance of Vertex Cover is a ``Yes'' instance.
EXAMPLE 2
(notes deliberately absent –
refer to notes of Example 1 to
traverse through the example)
0
6
5
4
2
1
3
0
6
5
4
2
1
3
Maximum Matching
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
Node 1 | Node 2 |
0 | 1 |
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 |
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
Acknowledgement: Creators and maintainers at VisuAlgo as their website helped me visualize vertex cover in the desired manner - http://visualgo.net/
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
0
6
5
4
2
1
3
BFS
Level | Vertices |
A | 0 |
B | 1, 2, 3 |
C | 4, 5, 6 |
Maximal Matching
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Local Minimization
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Minimum Vertex Cover: {1, 2, 3}
Node 1 | Node 2 |
0 – {1, 2, 3} | 1 – {0, 4} |
2 – {5} | 5 – {2} |
3 – {6} | 6 – {3} |
Minimum Vertex Cover: {1, 2, 3}
0
6
5
4
2
1
3
Thank You!
Author, while at NYU, was generously supported in part by Julia Stoyanovich’s NSF grants.