2 #ifndef __MIP_SCHEDULER_H__
3 #define __MIP_SCHEDULER_H__
9 #include "../scheduler.h"
10 #include "../../../problems/scheduling/filtering.h"
29 virtual bool CreateGoalFunction();
30 virtual bool CreateCoreConstraints();
31 virtual bool CreateUserConstraints();
52 Model::OptimizationSense _optimization_sense;
53 Model::Emphasis _mip_emphasis;
58 unsigned int _numthread;
59 virtual void ApplyConstraint(
const Constraint& ctr);
107 virtual void WriteLP(
const string outfile);
115 virtual void WriteSol(
const string outfile);
155 void SetGap(
const float& gap);
191 virtual const double GetDual(
const string& cname);
201 const BlockIndexType& block_index,
202 const unsigned int& period,
203 const unsigned int& destination);
206 const unsigned long& stock_index,
207 const unsigned int& period,
208 const unsigned int& destination);
virtual void WriteSol(const string outfile)
Writes the solution in given file.
Definition: mip_scheduler.cpp:165
void SetTimeLimit(const float &value)
Sets a time limit for the optimization.
Definition: mip_scheduler.cpp:157
void SetNoOutput()
Sets that no output is desired meanwhile optimization.
Definition: mip_scheduler.cpp:171
virtual bool CreateModel()
Creates the model.
Definition: mip_scheduler.cpp:57
virtual bool CreateVariables()
Creates the variables.
Definition: mip_scheduler.cpp:30
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
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
virtual bool SetSchedule()
Set The result schedule This implementation is a dummy version that always returns false...
Definition: mip_scheduler.cpp:144
virtual void Optimize()
Optimizes the model.
Definition: mip_scheduler.cpp:61
A constraint on the average values of attributes of blocks.
Definition: constraint.h:426
void SetMIPEmphasis(const Model::Emphasis &emphasis)
Sets the MIP emphasis for the optimization.
Definition: mip_scheduler.cpp:160
void SetOptimizationSense(const Model::OptimizationSense &sense)
Sets the sense of the optimization model.
Definition: mip_scheduler.cpp:148
void SetNumThread(const unsigned int &nthreads)
Sets the number of threads used by the solver.
Definition: mip_scheduler.cpp:176
MIPScheduler(delphos::SchedulingInstance &si)
Creates a MIP scheduler with given scheduling instance.
Definition: mip_scheduler.cpp:5
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
void SetLogFile(const string &name)
Sets the use of the log with given file name.
Definition: mip_scheduler.cpp:151
virtual const delphos::Schedule & GetSchedule()
Returns the result schedule.
Definition: mip_scheduler.cpp:65
virtual void WriteLP(const string outfile)
Writes the LP model in given file.
Definition: mip_scheduler.cpp:164
virtual ~MIPScheduler()
The destructor.
Definition: mip_scheduler.cpp:7
virtual bool Run()
Creates the model and run the optimization.
Definition: mip_scheduler.cpp:51
Dummy class that define required methods for a solver of a scheduling instance.
Definition: scheduler.h:12
Dummy class that define required methods for a MIP solver of a scheduling instance.
Definition: mip_scheduler.h:24
Defines the base class for all constraints.
Definition: constraint.h:33
virtual double GetObjValue()
Returns the objective value of the optimized model. This implementation is a dummy version that alway...
Definition: mip_scheduler.cpp:70
A precedence constraint.
Definition: constraint.h:513
const bool Optimized()
Returns true only if the MIP have been succesfully optimized.
Definition: mip_scheduler.cpp:140
A block selection precedence constraint.
Definition: constraint.h:572
Defines a scheduling of blocks.
Definition: schedule.h:23
const bool CreatedVars() const
Returns true only if all the variables of the MIP are created.
Definition: mip_scheduler.cpp:46
virtual const double GetDual(const string &cname)
Returns the dual value of given constraint.
Definition: mip_scheduler.cpp:166
void SetGap(const float &gap)
Sets the desired gap for the optimization.
Definition: mip_scheduler.cpp:154