Blis 0.94
Loading...
Searching...
No Matches
BlisBranchStrategyStrong.h
Go to the documentation of this file.
1/*===========================================================================*
2 * This file is part of the BiCePS Linear Integer Solver (BLIS). *
3 * *
4 * ALPS is distributed under the Eclipse Public License as part of the *
5 * COIN-OR repository (http://www.coin-or.org). *
6 * *
7 * Authors: *
8 * *
9 * Yan Xu, Lehigh University *
10 * Ted Ralphs, Lehigh University *
11 * *
12 * Conceptual Design: *
13 * *
14 * Yan Xu, Lehigh University *
15 * Ted Ralphs, Lehigh University *
16 * Laszlo Ladanyi, IBM T.J. Watson Research Center *
17 * Matthew Saltzman, Clemson University *
18 * *
19 * *
20 * Copyright (C) 2001-2019, Lehigh University, Yan Xu, and Ted Ralphs. *
21 * All Rights Reserved. *
22 *===========================================================================*/
23
24
25//#############################################################################
26// NOTE: Borrow ideas from COIN/Cbc
27//#############################################################################
28
29
30#ifndef BlisBranchStrategyStrong_h_
31#define BlisBranchStrategyStrong_h_
32
33#include "BcpsBranchObject.h"
34#include "BcpsBranchStrategy.h"
35#include "BlisModel.h"
36
37
38//#############################################################################
39
40
41typedef struct {
42 int objectIndex; // object index
43 BcpsBranchObject * bObject; // the branching object
44 int numIntInfUp; // without odd ones
45 int numObjInfUp; // just odd ones
46 bool finishedUp; // true if solver finished
47 int numIntInfDown; // without odd ones
48 int numObjInfDown; // just odd ones
49 bool finishedDown; // true if solver finished
51
52
53//#############################################################################
54
55
58
59 private:
60
63
64 public:
65
70
76
79
82
84 virtual BcpsBranchStrategy * clone() const {
85 return new BlisBranchStrategyStrong(*this);
86 }
87
89 virtual int createCandBranchObjects(int numPassesLeft, double ub);
90
96 virtual int betterBranchObject(BcpsBranchObject * thisOne,
97 BcpsBranchObject * bestSoFar);
98};
99
100#endif
@ BlisBranchingStrategyStrong
Definition Blis.h:106
This class implements strong branching.
virtual ~BlisBranchStrategyStrong()
Destructor.
virtual int betterBranchObject(BcpsBranchObject *thisOne, BcpsBranchObject *bestSoFar)
Compare branching object thisOne to bestSoFar.
virtual int createCandBranchObjects(int numPassesLeft, double ub)
Create a set of candidate branching objects.
BlisBranchStrategyStrong()
Strong Constructor.
virtual BcpsBranchStrategy * clone() const
Clone a brancing strategy.
BlisBranchStrategyStrong(const BlisBranchStrategyStrong &)
Copy constructor.
BlisBranchStrategyStrong(BlisModel *model)
Strong Constructor.
BcpsBranchObject * bObject