Joris van Rantwijk
4203b1e5cc
Optimize deletion of expanded blossoms
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
6d46a9d89a
Minor cleanups
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
8bef12559a
Improve performance of verification code
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
291d3ead8b
Mark static methods
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
d1b79c1cde
Clean up trace_alternating_paths()
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
f491d6dcec
Object oriented blossoms, first attempt
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
b42440784f
Clean up explicit-stack recursion
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
fc31657a56
Avoid redundant calls to edge_slack_2x()
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
14b5a032a7
Move least-slack edge tracking to separate class
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
0ad3020425
Use (x, y) instead of (i, j)
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
d063bbd45a
Merge StageData and PartialMatching
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
8950096df9
minor cleanup
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
4f62a15c06
Use (i, j) instead of (v, w)
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
0f7423e2b8
Simplify naming related to double weights
2023-02-13 22:20:02 +01:00
Joris van Rantwijk
23c3e35865
Eliminate edges with negative weight
...
The base algorithm transparently ignores edges, but only if
the graph contains at least 1 edge with positive weight.
If ALL edges have negative weight, dual variables may be
initialized to negative values which leads to failure.
2023-02-13 22:17:48 +01:00
Joris van Rantwijk
99bc2912d8
Fix wrong assumption about subblossom labels
...
When a blossom forms, the labels of sub-blossoms do NOT strictly alternate between S and T when walking around the blossom.
2023-02-13 22:06:13 +01:00
Joris van Rantwijk
3a347e8edb
Rename Python module to max_weight_matching
2023-02-13 22:06:13 +01:00