1
0
Fork 0
Commit Graph

101 Commits

Author SHA1 Message Date
Joris van Rantwijk caac6825a6 Expand zero-dual blossom before assigning label T 2023-04-09 21:19:41 +02:00
Joris van Rantwijk 8d69a3316c Minor fix language in docstring 2023-03-13 21:56:46 +01:00
Joris van Rantwijk b144fd7cdd Update graph generation script (skip huge graphs) 2023-03-12 12:29:00 +01:00
Joris van Rantwijk bf7437b7ad Add .gitignore 2023-03-12 12:17:38 +01:00
Joris van Rantwijk b8391ea319 Pylint cleanups 2023-03-12 12:16:29 +01:00
Joris van Rantwijk dd24776149 Add missing import statements 2023-03-11 22:00:38 +01:00
Joris van Rantwijk ba28bbf7ca Add missing type annotation 2023-03-11 17:32:49 +01:00
Joris van Rantwijk 5048bbaf99 Input has type Sequence[...] instead of list 2023-03-11 17:31:41 +01:00
Joris van Rantwijk ce5ff2d581 Add test graphs 2023-02-25 16:50:36 +01:00
Joris van Rantwijk 80dd53c736 Add program for matching with LEMON 2023-02-22 23:20:51 +01:00
Joris van Rantwijk 1e81129476 Tool for testing and benchmarking 2023-02-22 23:20:43 +01:00
Joris van Rantwijk 37aa0c605b Read from stdin when no input file specified 2023-02-22 23:20:43 +01:00
Joris van Rantwijk 83d9e37db6 Rename to test_mwmatching.py 2023-02-22 23:20:43 +01:00
Joris van Rantwijk 64851c98c5 Test that edge/vertex order is irrelevant 2023-02-22 23:20:17 +01:00
Joris van Rantwijk 71a7dfc9a3 Add generators: chain, hardcard.f, t.f, tt.f 2023-02-22 23:20:17 +01:00
Joris van Rantwijk 3f5d61d0e7 Rename Python module to "mwmatching" 2023-02-14 20:49:24 +01:00
Joris van Rantwijk f0624fa2a5 Slightly rephrase docstring 2023-02-13 22:38:40 +01:00
Joris van Rantwijk 118007e953 Add testcases that are sensitive to specific bugs 2023-02-13 22:20:02 +01:00
Joris van Rantwijk 8f81154169 Test coverage of verification routine 2023-02-13 22:20:02 +01:00
Joris van Rantwijk 4dc7befd9d Check that unmatched vertices have zero dual 2023-02-13 22:20:02 +01:00
Joris van Rantwijk be0f5c3881 Raise MatchingFailed when verify fails 2023-02-13 22:20:02 +01:00
Joris van Rantwijk f1a60febe7 Improve test coverage to 100% 2023-02-13 22:20:02 +01:00
Joris van Rantwijk fa524ce754 Simplify deletion of expanded blossoms 2023-02-13 22:20:02 +01:00
Joris van Rantwijk a1836a585f Improve test coverage 2023-02-13 22:20:02 +01:00
Joris van Rantwijk a0ed8716ae Remove distracting comment 2023-02-13 22:20:02 +01:00
Joris van Rantwijk 38374e293f Code to generate test graphs 2023-02-13 22:20:02 +01:00
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 d4bfb712d2 Add a few tests for maximum cardinality 2023-02-13 22:20:02 +01:00
Joris van Rantwijk 7617e68d59 Add command-line runner 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 575d33c90f Unit tests ported over from old code
These tests probably don't provide good coverage for the new code.
But it's a start.
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
Joris van Rantwijk f76623dd5f Fix bugs and cleanup 2023-02-13 22:05:08 +01:00
Joris van Rantwijk 5827c0ccfa Fix multiple bugs and cleanup 2023-02-13 22:03:02 +01:00
Joris van Rantwijk 8d5087060f Fix bug in trace_alternating_paths 2023-02-13 22:02:00 +01:00
Joris van Rantwijk 780ccd009d Finished Python code - untested 2023-02-13 22:01:45 +01:00