00001 // Copyright (C) 2005, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef CbcStatistics_H 00004 #define CbcStatistics_H 00005 00006 #include "CbcModel.hpp" 00007 00010 class CbcStatistics { 00011 public: 00012 // Default Constructor 00013 CbcStatistics (); 00014 // Branch 00015 CbcStatistics(CbcNode * node, CbcModel * model); 00016 00017 ~CbcStatistics(); 00018 // Copy 00019 CbcStatistics(const CbcStatistics & rhs); 00020 // Assignment 00021 CbcStatistics& operator=(const CbcStatistics & rhs); 00022 // Update at end of branch 00023 void endOfBranch(int numberIterations, double objectiveValue); 00024 // Update number of infeasibilities 00025 void updateInfeasibility(int numberInfeasibilities); 00026 // Branch found to be infeasible by chooseBranch 00027 void sayInfeasible(); 00028 // Just prints 00029 void print(const int * sequenceLookup=NULL) const; 00030 // Node number 00031 inline int node() const 00032 { return id_;} 00033 // Parent node number 00034 inline int parentNode() const 00035 { return parentId_;} 00036 // depth 00037 inline int depth() const 00038 { return depth_;} 00039 // way 00040 inline int way() const 00041 { return way_;} 00042 // value 00043 inline double value() const 00044 { return value_;} 00045 // starting objective 00046 inline double startingObjective() const 00047 { return startingObjective_;} 00048 // Unsatisfied at beginning 00049 inline int startingInfeasibility() const 00050 { return startingInfeasibility_;} 00051 // starting objective 00052 inline double endingObjective() const 00053 { return endingObjective_;} 00054 // Unsatisfied at end 00055 inline int endingInfeasibility() const 00056 { return endingInfeasibility_;} 00057 // Number iterations 00058 inline int numberIterations() const 00059 { return numberIterations_;} 00060 00061 protected: 00062 // Data 00064 double value_; 00066 double startingObjective_; 00068 double endingObjective_; 00070 int id_; 00072 int parentId_; 00074 int way_; 00076 int sequence_; 00078 int depth_; 00080 int startingInfeasibility_; 00082 int endingInfeasibility_; 00084 int numberIterations_; 00085 }; 00086 00087 #endif