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

- File List
- File Members

# /home/coin/svn-release/Alps-1.4.8/Alps/examples/Abc/AbcBranchBase.h

Go to the documentation of this file.

    00001 /*===========================================================================*
    00002  * This file is part of the Abstract Library for Parallel Search (ALPS).     *
    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  *===========================================================================*/
    00022
    00023 #ifndef AbcBranchBase_h_
    00024 #define AbcBranchBase_h_
    00025
    00026 //#############################################################################
    00027 // This file is modified from SbbBranchBase.hpp
    00028 //#############################################################################
    00029
    00030 #include <string>
    00031 #include <vector>
    00032
    00033 class OsiSolverInterface;
    00034
    00035 class AbcModel;
    00036 class AbcNode;
    00037 class AbcNodeDesc;
    00038 class AbcBranchingObject;
    00039
    00040 //#############################################################################
    00041
    00050 class AbcBranchDecision {
    00051  public:
    00053     AbcBranchDecision ();
    00054
    00056     virtual ~AbcBranchDecision();
    00057
    00059     virtual AbcBranchDecision * clone() const = 0;
    00060
    00062     virtual void initialize(AbcModel * model) = 0;
    00063
    00074     virtual int
    00075         betterBranch(int thisOne,
    00076                      int bestSoFar,
    00077                      double changeUp,
    00078                      int numberInfeasibilitiesUp,
    00079                      double changeDown,
    00080                      int numberInfeasibilitiesDown) = 0 ;
    00081
    00088     virtual int bestBranch ( AbcModel* model,
    00089                              int* objects,
    00090                              int numberObjects,
    00091                              int numberUnsatisfied,
    00092                              double * changeUp,
    00093                              int * numberInfeasibilitiesUp,
    00094                              double * changeDown,
    00095                              int * numberInfeasibilitiesDown,
    00096                              double objectiveValue );
    00097
    00098  private:
    00099
    00101     AbcBranchDecision & operator=(const AbcBranchDecision& rhs);
    00102
    00103 };
    00104
    00105 #endif