Initial commit with Blossom algorithm implementation #15
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.
Implement Blossom Algorithm for Maximum Weight Perfect Matching
#Overview
This pull request introduces an implementation of the Blossom algorithm for maximum weight perfect matching in generic graphs using Julia. The goal is to provide a foundational structure that can be further refined and optimized based on community feedback and collaboration.
#Key Features
Basic Implementation: The algorithm includes the core logic for finding augmenting paths and handling blossoms.
Weight Calculation: The total weight of the matching is calculated and returned alongside the matching pairs.
Labeling and Parent Tracking: The implementation tracks the state of vertices and their parents during the search for augmenting paths.
#Areas for Improvement
While this implementation serves as a starting point, there are several areas where it can be enhanced:
Blossom Handling: The logic for detecting and managing blossoms may need further refinement. Input on how to effectively shrink cycles and manage labels would be invaluable.
#Performance Optimizations: Suggestions for optimizing the algorithm, especially for larger graphs, are welcome. Considerations for using efficient data structures like union-find could be explored.
#Testing and Validation: Comprehensive tests are essential to ensure the robustness of the implementation. Contributions of test cases covering various scenarios, including edge cases, would be greatly appreciated.
#Collaboration Invitation
I invite all collaborators to review this implementation and provide feedback. Your insights and suggestions will be crucial in making this algorithm more robust and efficient. Whether it’s improvements to the logic, performance enhancements, or additional test cases, every contribution is welcome
Thank you for your time and consideration!
If you like what you see and want to support me:
https://buymeacoffee.com/aybanda