Initial commit with Blossom algorithm implementation#15
Initial commit with Blossom algorithm implementation#15aybanda wants to merge 1 commit intoJuliaGraphs:masterfrom
Conversation
|
Wow, that was quick! Thank you so much! Before an in-depth review, two quick things:
Please ping us when you are done with these cleanup and the Graphs.jl team and I will be able to provide a real code review. |
|
hi, @aybanda ! We will be making a decision how to assign the exclusive time for the bounty shortly. Could you let us know whether you are still interested and give a few more details about your past projects that might have exercised similar skills? |
|
hi, @aybanda! Thank you for the first draft, it is very much appreciated! For the bounty, we will assign some exclusive time to another applicant for the time being, as they have more background in the necessary fields, but we would be happy to help you engage with any of the other bounties we are opening |
|
@Krastanov |
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