Construct a maximum matching on a graph with the blossom algorithm
Project description
blossalg
blossalg is a Python implementation of the Edmonds algorithm for constructing maximum matchings on graphs. For more information on how the Edmonds algorithm works see the Wikipedia page.
Installation
You can install blossalg from PyPI:
pip install blossalg
blossalg is supported on Python 2.7 and Python 3.8.
Usage
You can run blossalg as follows:
blossalg infile.csv [outfile.txt]
The input file infile.csv
contains information on the number of nodes and the neighbours
of each node. This information is stored using a series of comma-delimited
binary-valued strings. Nodes are identified by different rows and columns
and a value of 1 indicates a node neighbour. By convention a node cannot be
a neighbour with itself.
For example, the input file of a three node graph where both node 0 and node 2 are neighbours of node 1 would look as follows:
0,1,0
1,0,1
0,1,0
Given an input file, blossalg will compute the maximum matching using the Edmonds blossom algorithm. The total number of matched nodes will then be output to screen.
If an output file outfile.txt
is supplied the matched pairs from the
maximal matching will be saved to the file. The format of the output is as follows.
Each node and its matched node will be stored as node_number: matched_node_number
.
The node number will correspond to the node number from the input file (e.g. row 1
in the input file will represent node 0 in the output file). Each matched pair in
the output file will be separated by a newline. By convention, unmatched nodes are
not included in the outfile.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file blossalg-1.1.0.tar.gz
.
File metadata
- Download URL: blossalg-1.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65c2dd9b084659a20f338552eeea7dc0226a58b6bfc4e5a3e91475d6ad7ec77d |
|
MD5 | 63c4aae435160e8f4684f64fe96c58eb |
|
BLAKE2b-256 | a6fb1f10980b40f10ee62c22532ca737828b9992b8ad28fc29390cd737d2a903 |
File details
Details for the file blossalg-1.1.0-py3-none-any.whl
.
File metadata
- Download URL: blossalg-1.1.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e74d6f5865fe8f35096ee5797ee3ece6389f1974319134f0e82cecec34507f6e |
|
MD5 | 68ecafd5ab41ebfac3dda1f6bc7ecbca |
|
BLAKE2b-256 | 34de422d7e98676e5ff4ec8c9fecd56c1873cea57de7dee3e360b58d34217118 |