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

- File List
- File Members

# /home/coin/svn-release/Blis-0.93.10/Blis/src/BlisBranchStrategyStrong.h

Go to the documentation of this file.

    00001 /*===========================================================================*
    00002  * This file is part of the BiCePS Linear Integer Solver (BLIS).             *
    00003  *                                                                           *
    00004  * ALPS is distributed under the Eclipse Public License as part of the       *
    00005  * COIN-OR repository (http://www.coin-or.org).                              *
    00006  *                                                                           *
    00007  * Authors:                                                                  *
    00008  *                                                                           *
    00009  *          Yan Xu, Lehigh University                                        *
    00010  *          Ted Ralphs, Lehigh University                                    *
    00011  *                                                                           *
    00012  * Conceptual Design:                                                        *
    00013  *                                                                           *
    00014  *          Yan Xu, Lehigh University                                        *
    00015  *          Ted Ralphs, Lehigh University                                    *
    00016  *          Laszlo Ladanyi, IBM T.J. Watson Research Center                  *
    00017  *          Matthew Saltzman, Clemson University                             *
    00018  *                                                                           *
    00019  *                                                                           *
    00020  * Copyright (C) 2001-2013, Lehigh University, Yan Xu, and Ted Ralphs.       *
    00021  * All Rights Reserved.                                                      *
    00022  *===========================================================================*/
    00023
    00024
    00025 //#############################################################################
    00026 // NOTE: Borrow ideas from COIN/Cbc
    00027 //#############################################################################
    00028
    00029
    00030 #ifndef BlisBranchStrategyStrong_h_
    00031 #define BlisBranchStrategyStrong_h_
    00032
    00033 #include "BcpsBranchObject.h"
    00034 #include "BcpsBranchStrategy.h"
    00035 #include "BlisModel.h"
    00036
    00037
    00038 //#############################################################################
    00039
    00040
    00041 typedef struct {
    00042     int objectIndex;            // object index
    00043     BcpsBranchObject * bObject; // the branching object
    00044     int numIntInfUp;            // without odd ones
    00045     int numObjInfUp;            // just odd ones
    00046     bool finishedUp;            // true if solver finished
    00047     int numIntInfDown;          // without odd ones
    00048     int numObjInfDown;          // just odd ones
    00049     bool finishedDown;          // true if solver finished
    00050 } BlisStrong;
    00051
    00052
    00053 //#############################################################################
    00054
    00055
    00057 class BlisBranchStrategyStrong : public BcpsBranchStrategy {
    00058
    00059  private:
    00060
    00062     BlisBranchStrategyStrong& operator=(const BlisBranchStrategyStrong& rhs);
    00063
    00064  public:
    00065
    00067     BlisBranchStrategyStrong() {
    00068         type_ = static_cast<int>(BlisBranchingStrategyStrong);
    00069     }
    00070
    00072     BlisBranchStrategyStrong(BlisModel *model)
    00073         : BcpsBranchStrategy(model) {
    00074         type_ = static_cast<int>(BlisBranchingStrategyStrong);
    00075     }
    00076
    00078     virtual ~BlisBranchStrategyStrong() {}
    00079
    00081     BlisBranchStrategyStrong(const BlisBranchStrategyStrong &);
    00082
    00084     virtual BcpsBranchStrategy * clone() const {
    00085         return new BlisBranchStrategyStrong(*this);
    00086     }
    00087
    00089     virtual int createCandBranchObjects(int numPassesLeft, double ub);
    00090
    00096     virtual int betterBranchObject(BcpsBranchObject * thisOne,
    00097                                    BcpsBranchObject * bestSoFar);
    00098 };
    00099
    00100 #endif