blob: e81850f2a3c72aa41acb5c10056fb782713956a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/*
* Revision Control Information
*
* $Source$
* $Author$
* $Revision$
* $Date$
*
*/
//#include "port.h"
//#include "utility.h"
#include "sparse.h"
#include "mincov.h"
#include "util_hack.h" // added
typedef struct stats_struct stats_t;
struct stats_struct {
int debug; /* 1 if debugging is enabled */
int max_print_depth; /* dump stats for levels up to this level */
int max_depth; /* deepest the recursion has gone */
int nodes; /* total nodes visited */
int component; /* currently solving a component */
int comp_count; /* number of components detected */
int gimpel_count; /* number of times Gimpel reduction applied */
int gimpel; /* currently inside Gimpel reduction */
long start_time; /* cpu time when the covering started */
int no_branching;
int lower_bound;
};
typedef struct solution_struct solution_t;
struct solution_struct {
sm_row *row;
int cost;
};
extern solution_t *solution_alloc();
extern void solution_free();
extern solution_t *solution_dup();
extern void solution_accept();
extern void solution_reject();
extern void solution_add();
extern solution_t *solution_choose_best();
extern solution_t *sm_maximal_independent_set();
extern solution_t *sm_mincov();
extern int gimpel_reduce();
#define WEIGHT(weight, col) (weight == NIL(int) ? 1 : weight[col])
|