This project implements algorithms for solving the Maximum Independent Set problem in graphs.
- Backtracking Solver: An implementation using recursive backtracking
- Predefined test cases including:
- Triangle graphs
- Star graphs
- Square graphs
- Random graph generation with configurable parameters
- Automated validation of solutions
The project uses a comprehensive Makefile system with the following capabilities:
make: Build the projectmake clean: Remove all built filesmake run: Execute with default test cases
make test-small: Run small test casesmake test-medium: Run medium test casesmake test-large: Run large test casesmake test-all: Run all test sizesmake test-{size} OUTPUT_TO_FILE: Save test results to a file
make analyze: Run analysis with default parameters (100 trials, 5 graphs per case)make analyze-custom: Run analysis with custom parameters using TRIALS=X GRAPH_COUNT=Y
make debug: Build with debugging symbolsmake release: Build optimized release versionmake docs: Generate documentation using Doxygenmake format: Format code using clang-formatmake memcheck: Check for memory leaks using valgrindmake profile: Generate performance profile using gprof
make install: Install the program to system
- C++17 compatible compiler
- Make build system
- Optional tools:
- Doxygen (for documentation)
- clang-format (for code formatting)
- cppcheck (for static analysis)
- valgrind (for memory checking)
- gprof (for profiling)