- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

BlisBranchStrategyStrong.h
Go to the documentation of this file.
1 /*===========================================================================*
2 * This file is part of the Bcps Linear 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-2013, 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
41 typedef 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
50 } BlisStrong;
51
52
53 //#############################################################################
54
55
59 class BlisBranchStrategyStrong : public BcpsBranchStrategy {
60
61 private:
62
64 BlisBranchStrategyStrong& operator=(const BlisBranchStrategyStrong& rhs);
65
66 public:
67
69 BlisBranchStrategyStrong() {}
70
72 BlisBranchStrategyStrong(BlisModel *model)
73 : BcpsBranchStrategy(model)
74 {}
75
77 virtual ~BlisBranchStrategyStrong() {}
78
80 BlisBranchStrategyStrong(const BlisBranchStrategyStrong &);
81
83 virtual BcpsBranchStrategy * clone() const {
84 return new BlisBranchStrategyStrong(*this);
85 }
86
88 virtual int createCandBranchObjects(int numPassesLeft);
89
95 virtual int betterBranchObject(BcpsBranchObject * thisOne,
96 BcpsBranchObject * bestSoFar);
97 };
98
99 #endif
BlisModel
Definition: BlisModel.h:60
BlisModel.h
BlisBranchStrategyStrong::createCandBranchObjects
virtual int createCandBranchObjects(int numPassesLeft)
Create a set of candidate branching objects.
BlisStrong::finishedUp
bool finishedUp
Definition: BlisBranchStrategyStrong.h:46
BcpsBranchStrategy.h
BlisBranchStrategyStrong::operator=
BlisBranchStrategyStrong & operator=(const BlisBranchStrategyStrong &rhs)
Illegal Assignment operator.
BlisStrong::numIntInfUp
int numIntInfUp
Definition: BlisBranchStrategyStrong.h:44
BlisBranchStrategyStrong::clone
virtual BcpsBranchStrategy * clone() const
Clone a brancing strategy.
Definition: BlisBranchStrategyStrong.h:83
BcpsBranchObject
BcpsBranchObject contains the member data required when choosing branching entities and excuting actu...
Definition: BcpsBranchObject.h:47
BlisBranchStrategyStrong::~BlisBranchStrategyStrong
virtual ~BlisBranchStrategyStrong()
Destructor.
Definition: BlisBranchStrategyStrong.h:77
BlisStrong::numIntInfDown
int numIntInfDown
Definition: BlisBranchStrategyStrong.h:47
BlisStrong::finishedDown
bool finishedDown
Definition: BlisBranchStrategyStrong.h:49
BlisBranchStrategyStrong
Blis branching strategy default class This class implements a simple default algorithm, betterBranchObject(), for choosing a branching variable.
Definition: BlisBranchStrategyStrong.h:59
BcpsBranchStrategy
Branching strategy specifies: (1) how to select a candidate set of branching objects (2) how to compa...
Definition: BcpsBranchStrategy.h:39
BlisStrong::bObject
BcpsBranchObject * bObject
Definition: BlisBranchStrategyStrong.h:43
BlisBranchStrategyStrong::BlisBranchStrategyStrong
BlisBranchStrategyStrong(BlisModel *model)
Strong Constructor.
Definition: BlisBranchStrategyStrong.h:72
BlisStrong::objectIndex
int objectIndex
Definition: BlisBranchStrategyStrong.h:42
BlisBranchStrategyStrong::BlisBranchStrategyStrong
BlisBranchStrategyStrong()
Strong Constructor.
Definition: BlisBranchStrategyStrong.h:69
BcpsBranchObject.h
BlisStrong::numObjInfDown
int numObjInfDown
Definition: BlisBranchStrategyStrong.h:48
BlisBranchStrategyStrong::betterBranchObject
virtual int betterBranchObject(BcpsBranchObject *thisOne, BcpsBranchObject *bestSoFar)
Compare branching object thisOne to bestSoFar.
BlisStrong
Definition: BlisBranchStrategyStrong.h:41
BlisStrong::numObjInfUp
int numObjInfUp
Definition: BlisBranchStrategyStrong.h:45