The Minimum Vertex cover (MVC) problem is a well known NP-complete problem with numerous applications in computational biology, operations research, the routing and management of resources. In this project, we will treat the problem using different algorithms, evaluating their theoretical and experimental complexities on real world datasets.
- Construction Heuristics with approximation guarantees.
- Exact algorithm using Branch-and-Bound.
- Local Search: Hill Climbing Algorithm.
- Local Search: Simulated Annealing Algorithm.
The code was executed successfully on Windows 10 Command Line cmd.
- MVC - the main executable file which also contains Local Search Hill Climbing algorithm
- Edge - the file the class for object Edge
- APPR - the approximation algorithm
- LSSA - the Local Search simulated annealing
- BBEdge - Edge class used in branch-and-bound algorithm
- BranchAndBound - contains branch-and-bound algorithm for MVC
- Graph - Graph class used in branch-and-bound algorithm
- Utilities - helper class for branch-and-bound algorithm
- Vertex - Vertex class used in branch-and-bound algorithm
* javac Edge.java
* javac MVC.java
* etc
* java MVC -<graphfilename.graph> -<method> -<Cutoff> -<Random seed> for two local search algorithms
* java MVC -<graphfilename.graph> -<method> -<Cutoff> for Approximation or Branch and Bound
* LS1 is Local search hill climbing
* LS2 is Local search simulated annealing
* Approx is Approximation
* BnB is Branch and bound
-Random seed: is the random seed, which can be any positive integer. This param is only appliable to local search.
* java MVC -jazz.graph -LS1 -3600 -0
* java MVC -karate.graph -Approx -300
The command must have 3 or 4 proper arguments.