2 #ifndef __GUROBIFRACTIONALSCHEDULER_H__ 
    3 #define __GUROBIFRACTIONALSCHEDULER_H__ 
    9 #include "fractional_scheduler.h" 
   10 #include "../../../problems/scheduling/filtering.h" 
   11 #include "gurobi_model.h" 
   30     GurobiModel * _gmodel;
 
   38     Model::OptimizationSense _optimization_sense;
 
   41     bool CreateVariables();
 
   42     bool CreateGoalFunction();
 
   43     bool CreateCoreConstraints();
 
   44     bool CreateUserConstraints();
 
   46     const bool CreatedVars() 
const;
 
   47     const bool UpdatedConstrs() 
const;
 
   60     vector<BlockIndexType> _index_in_bs;
 
   62         const BlockIndexType& block_index, 
 
   63         const unsigned int& period, 
 
   64         const unsigned int& destination);
 
   67         const unsigned int& stock_index, 
 
   68         const unsigned int& period, 
 
   69         const unsigned int& destination);
 
   71     LinearExpr RealProcVar(
 
   72         const BlockIndexType& block_index, 
 
   73         const unsigned int& period, 
 
   74         const unsigned int& destination);
 
   76     LinearExpr RealProcVar2P(
 
   77         const BlockIndexType & block_index, 
 
   78         const unsigned int & period, 
 
   79         const unsigned int & destination);
 
   81     bool SetFractionalSchedule();
 
   82     unsigned long _nb_prec; 
 
  127     void WriteLP(
const string outfile);
 
  136     void WriteSol(
const string outfile);
 
  144     double GetSol(
const BlockIndexType& block_index, 
 
  145         const unsigned int& period, 
 
  146         const unsigned int& destination);
 
  177     static string ProcVarName(
 
  178         const BlockIndexType& block_index, 
 
  179         const unsigned int& period, 
 
  180         const unsigned int& destination);
 
  181     static string ProcVarName2P(
 
  182         const BlockIndexType & block_index, 
 
  183         const unsigned int & period, 
 
  184         const unsigned int & destination);  
 
  185     static string StockVarName(
 
  186         const unsigned long& stock_index, 
 
  187         const unsigned int& period, 
 
  188         const unsigned int& destination);   
 
  198     const double GetDual(
const string & cname);
 
const delphos::FractionalSchedule & GetFractionalSchedule()
Returns the result fractional schedule. 
Definition: gurobi_fractional_scheduler.cpp:1192
void WriteSol(const string outfile)
Writes the solution in given file. 
Definition: gurobi_fractional_scheduler.cpp:995
void SetOptimizationSense(const Model::OptimizationSense &sense)
Set the sense of the optimization model. 
Definition: gurobi_fractional_scheduler.cpp:980
A constraint on the addition of the attributes of a block. 
Definition: constraint.h:264
A constraint limiting the period at which a block should be mined. 
Definition: filtering.h:62
double GetSol(const BlockIndexType &block_index, const unsigned int &period, const unsigned int &destination)
Returns the solution value for a block period and destination. 
Definition: gurobi_fractional_scheduler.cpp:1004
Defines a scheduling instance to be solved. 
Definition: instance.h:41
A constraint that prevents certain blocks to be sent to given processes. 
Definition: filtering.h:107
Abstracts a Gurobi LP solver that can solve a scheduling instance. 
Definition: gurobi_fractional_scheduler.h:28
A constraint on the average values of attributes of blocks. 
Definition: constraint.h:426
double GetObjValue()
Returns the objective value of the optimized model. 
Definition: gurobi_fractional_scheduler.cpp:316
void ComputeExpectedTime(const string column)
Computes the expected times. 
Definition: gurobi_fractional_scheduler.cpp:1070
void SetLogFile(const string &name)
Set the use of the log with given file name. 
Definition: gurobi_fractional_scheduler.cpp:983
A geometric constraint. 
Definition: constraint.h:632
A constraint that forces a block to be mined before or at some period. 
Definition: filtering.h:19
GurobiFractionalScheduler(delphos::SchedulingInstance &si)
Creates a gurobi fractional scheduler with given scheduling instance. 
Definition: gurobi_fractional_scheduler.cpp:5
Defines a fractional scheduling of blocks. 
Definition: fractional_schedule.h:22
void WriteLP(const string outfile)
Writes the LP model in given file. 
Definition: gurobi_fractional_scheduler.cpp:988
virtual ~GurobiFractionalScheduler()
The destructor. 
Definition: gurobi_fractional_scheduler.cpp:15
Defines the base class for all constraints. 
Definition: constraint.h:33
bool CreateModel()
Inits the solver and load the model in gurobi. 
Definition: gurobi_fractional_scheduler.cpp:1031
A precedence constraint. 
Definition: constraint.h:513
virtual bool Run()
Generates the model in Gurobi and optimize it. 
Definition: gurobi_fractional_scheduler.cpp:270
A block selection precedence constraint. 
Definition: constraint.h:572
Dummy class that define required methods for a solver of a scheduling instance. 
Definition: fractional_scheduler.h:14
GurobiModel & GetMathematicalModel()
Returns the mathematical model. 
Definition: gurobi_fractional_scheduler.cpp:311
const double GetDual(const string &cname)
Returns the dual value of given constraint. 
Definition: gurobi_fractional_scheduler.cpp:1018
const bool IsStock()
Return true only if the inner scheduling instance has stoks. 
Definition: gurobi_fractional_scheduler.cpp:973