JuliaGraphs / JuliaGraphs/GraphsMatching.jl

implementing the Blossom algorithm for maximum weight matching

Open
#14 27 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
20
Forks
8
Avg merge
9h 15m
Merged PRs (30d)
1

Description

Edit: The bounty is removed as the urgency to fix this is gone now that we have working MWPM on all platforms thanks to LEMONGraphs.jl. Leaving this up as a feature request.

Implement the well-known Blossom algorithm for maximum weight (perfect) matching in generic graphs.

Two bounties are available here:

  • a 500$ bounty for implementing a pure-julia Blossom with tests and documentation, making it the default here, and moving BlossomV.jl from a dependency to a weak dependency (so that it is not necessary during installation)
  • a 500$ bounty on improving the performance of the new implementation to no-worse than 90% of BlossomV.jl

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Blossom algorithm overview linked in the issue and inspect how BlossomV.jl and LEMONGraphs.jl currently provide matching support. Define the scope for a pure-Julia implementation, including tests, documentation, default selection, and dependency handling; completion should cover those requested pieces and establish whether performance meets the stated target.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.