-
Notifications
You must be signed in to change notification settings - Fork 2
berty38/BMatchingSolver
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This software solves maximum weight b-matchings using fast belief propagation. It is provided as-is, with no warranty, and can be freely used for scientific research. Please contact me at bert@cs.columbia.edu if you want to use it for commercial reasons. If you use this code in research for publication, please cite the papers: Fast b-Matching via Sufficient Selection Belief Propagation B. Huang and T. Jebara. Fourteenth International Conference on Artificial Intelligence and Statistics (AISTATS) 2011 and Loopy Belief Propagation for Bipartite Maximum Weight b-Matching. B. Huang and T. Jebara. Eleventh International Conference on Artificial Intelligence and Statistics (AISTATS) 2007, Compile the software by using the makefile in the "Release" directory, which will create a binary BMatchingSolver program. Or if you wish to use the static methods in the BMatchingLibrary as a dynamic library, use the makefile in "Shared Library", which creates a dylib file. Alternatively, this repository is an Eclipse project, which can be imported into your workspace. See the "html" directory for documentation. Please send questions, comments to bert@cs.umd.edu. See shell script examples/runExamples.sh for how to call the command line tool, and see the matlab script tester.m for how to call the matlab functions. Usage: BMatchingSolver <options> -w, --weights weight matrix file -d, --degree degree file -x, --data node descriptor file -o, --output_file output file -n, --total total number of nodes -D, --dimensions dimensionality of node descriptors -c, --cacheSize number of cached weights per row -b, --bipartite number of nodes in first bipartition -t, --weight_type weight type (0 = matrix, 1 = negative Euclidean, 2 = inner product) -i, --max_iter maximum iterations of belief propagation to run -B, --binary use binary data files The weight matrix file is a tab-delimited matrix ascii matrix of size nxn Alternatively, you can give node descriptor (feature vectors) of size nxd. The degree file is a file of ascii numbers, one per line, indicating the target degree for each node. Parameter n is the total number of nodes in your input graph, and if the graph is bipartite, parameter b is the number of nodes in the first bipartition. A number of matlab toolbox functions are in the matlab directory: bdmatch_augment.m - create an augmented weight matrix for bd-matching (degree- constrained subgraph) using auxiliary nodes BMatchingSolver.cpp - mex c++ file for direct matlab interface BMatchingSolver.mexmaci64 - 64-bit mac binary for mex version BMatchingSolverCmd.m - command line wrapper that calls the CLI BMatchingSolver lprelax.m - much slower lp relaxation solver for bd-matchings makeMex.m - script to compile the mex BMatchingSolver.cpp tester.m - tests the mex and the CLI versions against the lprelax on various random problems of different sizes
About
Code from 2011 paper "Fast b-Matching via Sufficient Selection Belief Propagation" by Bert Huang and Tony Jebara
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published