Solves bipartite matching problems (minimize/maximize cost function)
More...
Functions |
hungarian_problem_t * | hungarian_new (unsigned num_rows, unsigned num_cols, match_type_t match_type) |
| This method initialize the hungarian_problem structure and init the cost matrix (missing lines or columns are filled with 0).
|
void | hungarian_add (hungarian_problem_t *p, unsigned left, unsigned right, unsigned cost) |
| Adds an edge from left to right with some costs.
|
void | hungarian_remove (hungarian_problem_t *p, unsigned left, unsigned right) |
| Removes the edge from left to right.
|
void | hungarian_prepare_cost_matrix (hungarian_problem_t *p, hungarian_mode_t mode) |
| Prepares the cost matrix dependent on the given mode.
|
void | hungarian_free (hungarian_problem_t *p) |
| Destroys the hungarian object.
|
int | hungarian_solve (hungarian_problem_t *p, unsigned *assignment, unsigned *final_cost, unsigned cost_threshold) |
| This method computes the optimal assignment.
|
void | hungarian_print_cost_matrix (hungarian_problem_t *p, int cost_width) |
| Print the cost matrix.
|
Detailed Description
Solves bipartite matching problems (minimize/maximize cost function)
Typedef Documentation
Internal representation of a bipartite matching problem.
Definition at line 60 of file hungarian.h.
Enumeration Type Documentation
mode of matching (the optimization goal)
- Enumerator:
HUNGARIAN_MODE_MINIMIZE_COST |
minimize cost
|
HUNGARIAN_MODE_MAXIMIZE_UTIL |
maximize cost
|
Definition at line 52 of file hungarian.h.
type of matching
- Enumerator:
HUNGARIAN_MATCH_NORMAL |
ever nodes matches another node
|
HUNGARIAN_MATCH_PERFECT |
matchings of nodes having no edge getting removed
|
Definition at line 45 of file hungarian.h.
Function Documentation
Adds an edge from left to right with some costs.
Destroys the hungarian object.
This method initialize the hungarian_problem structure and init the cost matrix (missing lines or columns are filled with 0).
- Parameters
-
num_rows | Number of rows in the given matrix |
num_cols | Number of cols in the given matrix |
match_type | The type of matching |
- Returns
- The problem object.
Prepares the cost matrix dependent on the given mode.
- Parameters
-
p | The hungarian object |
mode | specify whether to minimize or maximize the costs |
Print the cost matrix.
- Parameters
-
p | The hungarian object |
cost_width | The minimum field width of the costs |
Removes the edge from left to right.
int hungarian_solve |
( |
hungarian_problem_t * |
p, |
|
|
unsigned * |
assignment, |
|
|
unsigned * |
final_cost, |
|
|
unsigned |
cost_threshold |
|
) |
| |
This method computes the optimal assignment.
- Parameters
-
p | The hungarian object |
assignment | The final assignment |
final_cost | The final costs |
cost_threshold | Matchings with costs >= this limit will be removed (if limit > 0) |
- Returns
- 0 on success, negative number otherwise