Kuhn-Munkres (aka Hungarian) algorithm for solving the Assignment Problem in O(n^3), written in Rust.
d3e2c23415
Add support for disallowed assignments, and include a check to avoid attempting to solve unsolvable matrices (where a row only has disallowed values). For now only allow `f32`/`f64`, as we can use `INFINITY` to encode a disallowed assignment. This is a re-implementation of most of bmc/munkres#20, but is missing the changes to `step6`, which attempt to detect when we're not making progress. I couldn't implement this without regressing performance and I am not sure they add much given we're checking `is_solvable()` before attempting to solve. |
||
---|---|---|
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
rustfmt.toml |
munkres-rs
Kuhn-Munkres (aka Hungarian) algorithm for solving the Assignment Problem written in Rust.
This is a modified port from https://github.com/bmc/munkres.
TODO
- Implement SIMD f32x4 weight matrix