libFirm
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
hungarian.h
Go to the documentation of this file.
1
/********************************************************************
2
********************************************************************
3
**
4
** libhungarian by Cyrill Stachniss, 2004
5
**
6
** Added to libFirm by Christian Wuerdig, 2006
7
** Added several options for not-perfect matchings.
8
**
9
** Solving the Minimum Assignment Problem using the
10
** Hungarian Method.
11
**
12
** ** This file may be freely copied and distributed! **
13
**
14
** Parts of the used code was originally provided by the
15
** "Stanford GraphGase", but I made changes to this code.
16
** As asked by the copyright node of the "Stanford GraphGase",
17
** I hereby proclaim that this file are *NOT* part of the
18
** "Stanford GraphGase" distribution!
19
**
20
** This file is distributed in the hope that it will be useful,
21
** but WITHOUT ANY WARRANTY; without even the implied
22
** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
23
** PURPOSE.
24
**
25
********************************************************************
26
********************************************************************/
27
32
#ifndef FIRM_ADT_HUNGARIAN_H
33
#define FIRM_ADT_HUNGARIAN_H
34
35
#include "../begin.h"
36
45
typedef
enum
match_type_t
{
46
HUNGARIAN_MATCH_NORMAL
,
47
HUNGARIAN_MATCH_PERFECT
49
}
match_type_t
;
50
52
typedef
enum
hungarian_mode_t
{
53
HUNGARIAN_MODE_MINIMIZE_COST
,
54
HUNGARIAN_MODE_MAXIMIZE_UTIL
55
}
hungarian_mode_t
;
56
60
typedef
struct
hungarian_problem_t
hungarian_problem_t
;
61
71
FIRM_API
hungarian_problem_t
*
hungarian_new
(
unsigned
num_rows,
72
unsigned
num_cols,
73
match_type_t
match_type);
74
78
FIRM_API
void
hungarian_add
(
hungarian_problem_t
*p,
unsigned
left,
79
unsigned
right,
unsigned
cost);
80
84
FIRM_API
void
hungarian_remove
(
hungarian_problem_t
*p,
unsigned
left,
85
unsigned
right);
86
93
FIRM_API
void
hungarian_prepare_cost_matrix
(
hungarian_problem_t
*p,
94
hungarian_mode_t
mode);
95
99
FIRM_API
void
hungarian_free
(
hungarian_problem_t
*p);
100
109
FIRM_API
int
hungarian_solve
(
hungarian_problem_t
*p,
unsigned
*assignment,
110
unsigned
*final_cost,
unsigned
cost_threshold);
111
117
FIRM_API
void
hungarian_print_cost_matrix
(
hungarian_problem_t
*p,
118
int
cost_width);
119
122
#include "../end.h"
123
124
#endif
libfirm
adt
hungarian.h
Generated on Sat Nov 24 2012 19:13:48 for libFirm by
1.8.1.2