Added Bron-Kerbosch algorithm to BackTracking algos #1592
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements the Bron-Kerbosch algorithm, a recursive backtracking method designed to find all maximal cliques in an undirected graph. A maximal clique is defined as a subset of vertices that forms a complete subgraph and cannot be extended by including an adjacent vertex.
Key Features
Recursive Backtracking: The algorithm explores all potential cliques by maintaining three sets during recursion.
Efficiency: Known for its efficiency, particularly on sparse graphs, the Bron-Kerbosch algorithm reduces unnecessary computations.
Pivoting Optimization: An optional pivoting strategy is included, which minimizes the number of recursive calls, improving the algorithm's performance in practice.
Closes [NEW ALGORITHM] Bron-Kerbosch Algorithm for undirected graph #1529