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