diff options
Diffstat (limited to 'build/Bonmin/include/coin/CbcCompareBase.hpp')
-rw-r--r-- | build/Bonmin/include/coin/CbcCompareBase.hpp | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/build/Bonmin/include/coin/CbcCompareBase.hpp b/build/Bonmin/include/coin/CbcCompareBase.hpp deleted file mode 100644 index 1242f6d..0000000 --- a/build/Bonmin/include/coin/CbcCompareBase.hpp +++ /dev/null @@ -1,142 +0,0 @@ -/* $Id: CbcCompareBase.hpp 1573 2011-01-05 01:12:36Z lou $ */ -// Copyright (C) 2002, International Business Machines -// Corporation and others. All Rights Reserved. -// This code is licensed under the terms of the Eclipse Public License (EPL). - -#ifndef CbcCompareBase_H -#define CbcCompareBase_H - - -//############################################################################# -/* These are alternative strategies for node traversal. - They can take data etc for fine tuning - - At present the node list is stored as a heap and the "test" - comparison function returns true if node y is better than node x. - - This is rather inflexible so if the comparison functions wants - it can signal to use alternative criterion on a complete pass - throgh tree. - -*/ -#include "CbcNode.hpp" -#include "CbcConfig.h" - -class CbcModel; -class CbcTree; -class CbcCompareBase { -public: - // Default Constructor - CbcCompareBase () { - test_ = NULL; - threaded_ = false; - } - - /*! \brief Reconsider behaviour after discovering a new solution. - - This allows any method to change its behaviour. It is called - after each solution. - - The method should return true if changes are made which will - alter the evaluation criteria applied to a node. (So that in - cases where the search tree is sorted, it can be properly - rebuilt.) - */ - virtual bool newSolution(CbcModel * ) { return (false) ; } - - /*! \brief Reconsider behaviour after discovering a new solution. - - This allows any method to change its behaviour. It is called - after each solution. - - The method should return true if changes are made which will - alter the evaluation criteria applied to a node. (So that in - cases where the search tree is sorted, it can be properly - rebuilt.) - */ - virtual bool newSolution(CbcModel * , - double , - int ) { return (false) ; } - - // This allows any method to change behavior as it is called - // after every 1000 nodes. - // Return true if want tree re-sorted - virtual bool every1000Nodes(CbcModel * , int ) { - return false; - } - - /** Returns true if wants code to do scan with alternate criterion - NOTE - this is temporarily disabled - */ - virtual bool fullScan() const { - return false; - } - - virtual ~CbcCompareBase() {} - /// Create C++ lines to get to current state - virtual void generateCpp( FILE * ) {} - - // Copy constructor - CbcCompareBase ( const CbcCompareBase & rhs) { - test_ = rhs.test_; - threaded_ = rhs.threaded_; - } - - // Assignment operator - CbcCompareBase & operator=( const CbcCompareBase& rhs) { - if (this != &rhs) { - test_ = rhs.test_; - threaded_ = rhs.threaded_; - } - return *this; - } - - /// Clone - virtual CbcCompareBase * clone() const { - abort(); - return NULL; - } - - /// This is test function - virtual bool test (CbcNode * , CbcNode * ) { - return true; - } - - /// This is alternate test function - virtual bool alternateTest (CbcNode * x, CbcNode * y) { - return test(x, y); - } - - bool operator() (CbcNode * x, CbcNode * y) { - return test(x, y); - } - /// Further test if everything else equal - inline bool equalityTest (CbcNode * x, CbcNode * y) const { - assert (x); - assert (y); - if (!threaded_) { - CbcNodeInfo * infoX = x->nodeInfo(); - assert (infoX); - int nodeNumberX = infoX->nodeNumber(); - CbcNodeInfo * infoY = y->nodeInfo(); - assert (infoY); - int nodeNumberY = infoY->nodeNumber(); - assert (nodeNumberX != nodeNumberY); - return (nodeNumberX > nodeNumberY); - } else { - assert (x->nodeNumber() != y->nodeNumber()); - return (x->nodeNumber() > y->nodeNumber()); - } - } - /// Say threaded - inline void sayThreaded() { - threaded_ = true; - } -protected: - CbcCompareBase * test_; - // If not threaded we can use better way to break ties - bool threaded_; -}; - -#endif - |