To Do
Comprehensive improvements to the implementation:
Extended doctests covering:
best-case scenarios,
worst-case time complexity examples, and
examples for each method of the class.
Method to collect and report algorithm execution statistics, including:
number of blossoms formed,
number of augmenting paths found,
number of phases executed,
time spent in each phase, etc.
Parallel processing wherever possible to speed up computation, for example:
processing multiple augmenting paths simultaneously, and
computing the matching for each connected components of the graph concurrently.
Performance and complexity improvements:
Use a specialized disjoint set union variant to reduce the time to find the \(k\)-th bud/base of a vertex to \(\mathcal{O}(\alpha(m, n))\) on RAM models [1],
Explore and implement further heuristics to optimize the algorithm in practice.
Documentation and comments:
References