1
0
Fork 0
This commit is contained in:
Joris van Rantwijk 2024-07-11 21:24:32 +02:00
parent 3c069bd23e
commit 3d0cd92285
1 changed files with 4 additions and 5 deletions

View File

@ -25,10 +25,9 @@ cd python
pip install . pip install .
``` ```
Using the algorithm is easy. Using the package is easy.
You describe the input graph by listing its edges. You describe the input graph by listing its edges.
Each edge is represented as a pair of vertex indices and the weight of the edge. Each edge is represented as a tuple of vertex indices and the weight of the edge.
The example below finds a matching in a graph with 5 vertices and 5 edges. The example below finds a matching in a graph with 5 vertices and 5 edges.
The maximum weight matching contains two edges and has total weight 11. The maximum weight matching contains two edges and has total weight 11.
@ -50,7 +49,7 @@ I plan to eventually update the C++ code to implement the faster _O(n*m*log(n))_
The C++ code is self-contained and can easily be linked into an application. The C++ code is self-contained and can easily be linked into an application.
It is also reasonably efficient. It is also reasonably efficient.
For serious use cases, [LEMON](http://lemon.cs.elte.hu/trac/lemon) may be a better choice. For serious use cases, [LEMON](https://lemon.cs.elte.hu/trac/lemon) may be a better choice.
LEMON is a C++ library that provides a very fast and robust implementation of LEMON is a C++ library that provides a very fast and robust implementation of
maximum weighted matching and many other graph algorithms. maximum weighted matching and many other graph algorithms.
To my knowledge, it is the only free software library that provides a high-quality To my knowledge, it is the only free software library that provides a high-quality
@ -111,7 +110,7 @@ However, earlier versions of the algorithm were invented and improved by several
See the file [Algorithm.md](doc/Algorithm.md) for links to the most important papers. See the file [Algorithm.md](doc/Algorithm.md) for links to the most important papers.
I used some ideas from the source code of the `MaxWeightedMatching` class in I used some ideas from the source code of the `MaxWeightedMatching` class in
[LEMON](http://lemon.cs.elto.hu/trac/lemon): [LEMON](https://lemon.cs.elto.hu/trac/lemon):
the technique to implement lazy updates of vertex dual variables, the technique to implement lazy updates of vertex dual variables,
and the approach to re-use alternating trees after augmenting the matching. and the approach to re-use alternating trees after augmenting the matching.