/home/coin/SVN-release/CoinAll-1.1.0/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 Common 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-2007, 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

Generated on Sun Nov 14 14:06:28 2010 for Coin-All by  doxygen 1.4.7