1 | /* $Id: CbcHeuristicDivePseudoCost.hpp 1240 2009-10-02 18:41:44Z forrest $ */ |
---|

2 | // Copyright (C) 2008, International Business Machines |
---|

3 | // Corporation and others. All Rights Reserved. |
---|

4 | #ifndef CbcHeuristicDivePseudoCost_H |
---|

5 | #define CbcHeuristicDivePseudoCost_H |
---|

6 | |
---|

7 | #include "CbcHeuristicDive.hpp" |
---|

8 | |
---|

9 | /** DivePseudoCost class |
---|

10 | */ |
---|

11 | |
---|

12 | class CbcHeuristicDivePseudoCost : public CbcHeuristicDive { |
---|

13 | public: |
---|

14 | |
---|

15 | // Default Constructor |
---|

16 | CbcHeuristicDivePseudoCost (); |
---|

17 | |
---|

18 | // Constructor with model - assumed before cuts |
---|

19 | CbcHeuristicDivePseudoCost (CbcModel & model); |
---|

20 | |
---|

21 | // Copy constructor |
---|

22 | CbcHeuristicDivePseudoCost ( const CbcHeuristicDivePseudoCost &); |
---|

23 | |
---|

24 | // Destructor |
---|

25 | ~CbcHeuristicDivePseudoCost (); |
---|

26 | |
---|

27 | /// Clone |
---|

28 | virtual CbcHeuristicDivePseudoCost * clone() const; |
---|

29 | |
---|

30 | /// Assignment operator |
---|

31 | CbcHeuristicDivePseudoCost & operator=(const CbcHeuristicDivePseudoCost& rhs); |
---|

32 | |
---|

33 | /// Create C++ lines to get to current state |
---|

34 | virtual void generateCpp( FILE * fp) ; |
---|

35 | |
---|

36 | /// Selects the next variable to branch on |
---|

37 | /** Returns true if all the fractional variables can be trivially |
---|

38 | rounded. Returns false, if there is at least one fractional variable |
---|

39 | that is not trivially roundable. In this case, the bestColumn |
---|

40 | returned will not be trivially roundable. |
---|

41 | */ |
---|

42 | virtual bool selectVariableToBranch(OsiSolverInterface* solver, |
---|

43 | const double* newSolution, |
---|

44 | int& bestColumn, |
---|

45 | int& bestRound); |
---|

46 | /** Initializes any data which is going to be used repeatedly |
---|

47 | in selectVariableToBranch */ |
---|

48 | virtual void initializeData() ; |
---|

49 | /// Fix other variables at bounds |
---|

50 | virtual int fixOtherVariables(OsiSolverInterface * solver, |
---|

51 | const double * solution, |
---|

52 | PseudoReducedCost * candidate, |
---|

53 | const double * random); |
---|

54 | |
---|

55 | }; |
---|

56 | |
---|

57 | #endif |
---|

58 | |
---|