1 #ifndef __NESTEDPIT_H__ 
    2 #define __NESTEDPIT_H__ 
    4 #include "../../data_structures/bm/blockmodel.h" 
    5 #include "../../data_structures/precs/slopes.h" 
    6 #include "../../utils/exprtk.hpp" 
   19     const vector<double> _rf; 
 
   20     vector< vector< string> > _materials;
 
   21     const string _value_attr;
 
   22     const string _formula;
 
   23     const string _pit_attr;
 
   24     const bool _multiattr;
 
   48                         ,
const string& recformula
 
   49                         ,
const string& rmultformula
 
   50                         ,
const string& csellformula
 
   51                         ,
const string& cminformula
 
   52                         ,
const string& cplantformula
 
   53                         ,
const string& grade_attr
 
   54                         ,
const string& tonn_attr
 
   55                         ,
const vector<double>& rf
 
   57                         ,
const string& value_attr
 
   58                         ,
const string& pit_attr
 
   59                         ,
const bool& multiattr=
true);
 
   75                         ,
const vector<double>& rf
 
   77                         ,
const string& value_attr
 
   78                         ,
const string& pit_attr
 
   79                         ,
const bool& multiattr=
true);   
 
   84     const vector<double>& 
GetRF() 
const;
 
   98                         ,
const string& recformula
 
   99                         ,
const string& rmultformula
 
  100                         ,
const string& csellformula
 
  101                         ,
const string& cminformula
 
  102                         ,
const string& cplantformula
 
  103                         ,
const string& grade_attr
 
  104                         ,
const string& tonn_attr);
 
  110     const vector<string>& 
GetMaterial(
const unsigned int& index) 
const;
 
  146     vector<unsigned int> _nestedpits;
 
  147     vector<BlockSelection*> _multi_nestedpits; 
 
  188     unsigned int GetPitId(
const BlockIndexType& blockid) 
const;
 
  200     double GetRF(BlockIndexType blockid) 
const;
 
  276     virtual  const bool IsSolved() 
const;
 
Defines a case for the nested pits problem. 
Definition: nestedpit.h:16
static const unsigned int NO_INDEX
Index of nonexistent Pit. 
Definition: nestedpit.h:172
Defines nested pits. 
Definition: nestedpit.h:143
delphos::CallBackPtr GetCallBack()
Returns the user run step callback. 
Definition: nestedpit.cpp:349
A dummy class that specifies the methods of an algorithm that can solve a nested pit instance...
Definition: nestedpit.h:233
Abstracts a set of blocks (subset of a blockmodel). 
Definition: blocksel.h:33
const vector< string > & GetMaterial(const unsigned int &index) const 
Returns the indexed material characteritics used in the valorization formula if the the constructor w...
Definition: nestedpit.cpp:264
A utility class to access blocks individually. 
Definition: blockmodel.h:1390
bool IsMultiattr() const 
Returns true only if each pit will be added as 1 column attribute In case of false, only one column attribute will be created for all pits. 
Definition: nestedpit.cpp:289
unsigned int GetNumMaterials() const 
Returns the number of materials present in the valorization formula if the the constructor with 6 sub...
Definition: nestedpit.cpp:271
delphos::BlockSelection * GetBlocksInPitByIndex(const unsigned int &pitindex) const 
Returns the pit of given index. 
Definition: nestedpit.cpp:111
virtual ~NestedPitSolver()
The destructor. 
Definition: nestedpit.cpp:335
void SetInstance(delphos::NestedPitInstance &npi)
Set the instance to be solved. 
Definition: nestedpit.cpp:313
NestedPitSolver(NestedPitInstance &np)
Creates a new nested Pit Solver based on an instance of the nested Pit Problem. 
Definition: nestedpit.cpp:296
void StorePitsAsAttribute(const string &attribute, const bool &multiattr=true)
Saves the nested pits as an attribute or as attributes in the block model. 
Definition: nestedpit.cpp:133
const string & GetPitAttr() const 
Returns the pit attribute string used as base for the pit attribute string result constructed for eac...
Definition: nestedpit.cpp:280
delphos::BlockSelection * GetBlocksInPitByRF(const double &rf) const 
Returns the pit of given revenue factor. 
Definition: nestedpit.cpp:118
delphos::NestedPitInstance * GetInstancePtr() const 
Return a pointer to the instance being solved. 
Definition: nestedpit.cpp:323
Implements a precedence as an explicit set of arcs between blocks. Provides utility functions...
Definition: precs.h:22
const string & GetFormula() const 
Returns the formula used in the computation only if the 1 formula constructor was used...
Definition: nestedpit.cpp:222
virtual bool Run()
Calculates the final pit. Returns true on success. 
Definition: nestedpit.cpp:327
void SetCallBack(delphos::CallBackPtr fp)
Set the user run step callback. 
Definition: nestedpit.cpp:345
unsigned int GetPitId(const delphos::Block &block) const 
Returns the index of the Pit minimum that contains given block. 
Definition: nestedpit.cpp:77
NestedPitInstance(const string &priceformula, const string &recformula, const string &rmultformula, const string &csellformula, const string &cminformula, const string &cplantformula, const string &grade_attr, const string &tonn_attr, const vector< double > &rf, const Precedence &prec, const string &value_attr, const string &pit_attr, const bool &multiattr=true)
Creates a new instance of the Nested Pit Problem. 
Definition: nestedpit.cpp:161
const vector< double > & GetRF() const 
Returns the revenue factors. 
Definition: nestedpit.cpp:230
void SetNestedPits(const vector< unsigned int > &npits)
Set the nested pits. 
Definition: nestedpit.cpp:36
delphos::NestedPitInstance & GetInstance() const 
Returns the nested pit instance. 
Definition: nestedpit.cpp:31
void AddMaterial(const string &priceformula, const string &recformula, const string &rmultformula, const string &csellformula, const string &cminformula, const string &cplantformula, const string &grade_attr, const string &tonn_attr)
Add a new Material to the valorization formula. 
Definition: nestedpit.cpp:235
const Precedence & GetPrecedence() const 
Returns the precedence used in the computation. 
Definition: nestedpit.cpp:285
virtual const bool IsSolved() const 
Checks if the solver was already run or not. 
Definition: nestedpit.cpp:331
unsigned int GetSize() const 
Returns the number of Pits. 
Definition: nestedpit.cpp:72
A base class for object associated to a given block model. 
Definition: blockmodel.h:1356
~NestedPits()
Deletes the nested pits. 
Definition: nestedpit.cpp:20
const string & GetValueAttr() const 
Returns the value attribute string used as base for the value attribute string constructed for each r...
Definition: nestedpit.cpp:276
const NestedPitInstance & GetInstance() const 
Retrieves the instance being solved. 
Definition: nestedpit.cpp:319
double GetRF(const delphos::Block &block) const 
Returns the Revenue factor of the Pit minimum that contains given block. 
Definition: nestedpit.cpp:87
virtual delphos::NestedPits * GetNestedPits()
Returns the nested pits. 
Definition: nestedpit.cpp:340
NestedPits(NestedPitInstance &pi)
Create new nested pits. 
Definition: nestedpit.cpp:15