1
#ifndef HEADER_lp_mipbb
2
#define HEADER_lp_mipbb
8
/* Bounds storage for B&B routines */
11
struct _BBrec *parent;
16
int lastvarcus; /* Count of non-int variables of the previous branch */
22
REAL lastsolution; /* Optimal solution of the previous branch */
25
REAL UPbound, LObound;
26
int UBtrack, LBtrack; /* Signals that incoming bounds were changed */
27
MYBOOL contentmode; /* Flag indicating if we "own" the bound vectors */
31
int *varmanaged; /* Extended list of variables managed by this B&B level */
32
MYBOOL isfloor; /* State variable indicating the active B&B bound */
33
MYBOOL UBzerobased; /* State variable indicating if bounds have been rebased */
40
STATIC BBrec *create_BB(lprec *lp, BBrec *parentBB, MYBOOL dofullcopy);
41
STATIC BBrec *push_BB(lprec *lp, BBrec *parentBB, int varno, int vartype, int varcus);
42
STATIC MYBOOL initbranches_BB(BBrec *BB);
43
STATIC MYBOOL fillbranches_BB(BBrec *BB);
44
STATIC MYBOOL nextbranch_BB(BBrec *BB);
45
STATIC MYBOOL strongbranch_BB(lprec *lp, BBrec *BB, int varno, int vartype, int varcus);
46
STATIC MYBOOL initcuts_BB(lprec *lp);
47
STATIC int updatecuts_BB(lprec *lp);
48
STATIC MYBOOL freecuts_BB(lprec *lp);
49
STATIC BBrec *findself_BB(BBrec *BB);
50
STATIC int solve_LP(lprec *lp, BBrec *BB);
51
STATIC int rcfbound_BB(BBrec *BB, int varno, MYBOOL isINT, REAL *newbound, MYBOOL *isfeasible);
52
STATIC MYBOOL findnode_BB(BBrec *BB, int *varno, int *vartype, int *varcus);
53
STATIC int solve_BB(BBrec *BB);
54
STATIC MYBOOL free_BB(BBrec **BB);
55
STATIC BBrec *pop_BB(BBrec *BB);
57
STATIC int run_BB(lprec *lp);
63
#endif /* HEADER_lp_mipbb */