|  | MineLink
    | 
Class that defines sliding time window heuristic that solve a scheduling instance. More...
#include <swheuristics.h>


| Public Member Functions | |
| SlidingTimeWindowHeuristic (delphos::SchedulingInstance &si, const unsigned int &window_size, const unsigned int &sub_window_size, const unsigned int &step, const string &sched_name=Scheduler::GUROBI_MIPScheduler) | |
| Creates a sliding time window heuristic with given scheduling instance and parameters.  More... | |
| SlidingTimeWindowHeuristic (SchedulingInstance &si, const unsigned int &window_size, const unsigned int &sub_window_size, const string &sched_name=Scheduler::GUROBI_MIPScheduler) | |
| Creates a sliding time window heuristic with given scheduling instance and parameters.  More... | |
| SlidingTimeWindowHeuristic (delphos::SchedulingInstance &si, const unsigned int &window_size, const string &sched_name=Scheduler::GUROBI_MIPScheduler) | |
| Creates a sliding time window heuristic with given scheduling instance and parameters.  More... | |
| virtual bool | Run () | 
| Runs the heuristic. | |
| void | SetVerbose () | 
| Set the verbose mode on. | |
| void | SetVerbose (const string &path) | 
| Set the verbose mode on and set the path of the log file.  More... | |
| void | SetSupPBTimeLimit (const double &tlimit) | 
| Set the sub problem time limit.  More... | |
| const bool | GetVerbose () const | 
| Returns the verbose status. Can be true or false. | |
| const string | GetPath () const | 
| Returns the path of the log file. | |
| void | SetGap (const float &gap) | 
| Set the gap of the sub-problems.  More... | |
| const float | GetGap () const | 
| Returns the desired relative integer gap of the sub problems. | |
| void | SetEmphasis (const Model::Emphasis &emphasis) | 
| Set the emphasis mode for each resolution of sub-problem.  More... | |
| const Model::Emphasis | GetEmphasis () const | 
| Returns the emphasis mode for each resolution of sub-problem. | |
| void | SetSense (const Model::OptimizationSense &sense) | 
| Set the sense of the optimization model.  More... | |
| const Model::OptimizationSense | GetSense () const | 
| Returns the sense of optimization. | |
| const string & | GetLogFileName () const | 
| Returns the log file name. | |
| void | SetNumThread (const unsigned int &nthread) | 
| Set the number of threads used for the optimization of each sub problem. | |
| void | SetNoOutput () | 
| Set No Output. | |
|  Public Member Functions inherited from delphos::SchedulingHeuristic | |
| SchedulingHeuristic (SchedulingInstance &si) | |
| Creates a heuristic with given scheduling instance.  More... | |
| virtual | ~SchedulingHeuristic () | 
| The destructor. | |
| const Schedule & | GetSchedule () | 
| Returns the result schedule. | |
| void | SetCallBack (delphos::CallBackPtr fp) | 
| Set a time advance user callback.  More... | |
| delphos::CallBackPtr | GetCallBack () | 
| Returns the call back if it exists. | |
| const bool | Optimized () | 
| Returns true only if the MIP have been succesfully optimized. | |
| void | SetLogFile (const string &name) | 
| Set the use of the log with given file name.  More... | |
|  Public Member Functions inherited from delphos::Scheduler | |
| Scheduler (delphos::SchedulingInstance &si) | |
| Creates a new scheduler.  More... | |
| virtual | ~Scheduler () | 
| The destructor. | |
| delphos::SchedulingInstance & | GetInstance () | 
| Returns the associated scheduling instance. | |
| const bool | IsStock () | 
| Returns true only if the inner scheduling instance has stoks. | |
|  Public Member Functions inherited from delphos::BlockModelEntity | |
| BlockModelEntity (delphos::BlockModel &bm) | |
| Creates a new block instance associated to a given block model.  More... | |
| delphos::BlockModel & | GetBlockModel () | 
| Retrieves the block model to which the entity is associated.  More... | |
| const delphos::BlockModel & | GetBlockModel () const | 
| Retrieves the block model to which the entity is associated.  More... | |
| Additional Inherited Members | |
|  Static Public Attributes inherited from delphos::Scheduler | |
| static const string | CBC_MIPScheduler =string("CBC_MIPScheduler") | 
| Name of the CBC MIP scheduler. | |
| static const string | CBC_SlidingTimeWindowHeuristic =string("CBC_SlidingTimeWindowHeuristic") | 
| Name of the CBC implemtation of the sliding time window heuristic. | |
| static const string | GUROBI_MIPScheduler =string("GUROBI_MIPScheduler") | 
| Name of the gurobi MIP scheduler. | |
| static const string | GUROBI_SlidingTimeWindowHeuristic =string("GUROBI_SlidingTimeWindowHeuristic") | 
| Name of the gurobi implemtation of the sliding time window heuristic. | |
Class that defines sliding time window heuristic that solve a scheduling instance.
This is a rolling time heuristic.
| delphos::SlidingTimeWindowHeuristic::SlidingTimeWindowHeuristic | ( | delphos::SchedulingInstance & | si, | 
| const unsigned int & | window_size, | ||
| const unsigned int & | sub_window_size, | ||
| const unsigned int & | step, | ||
| const string & | sched_name = Scheduler::GUROBI_MIPScheduler | ||
| ) | 
Creates a sliding time window heuristic with given scheduling instance and parameters.
| si | The scheduling instance of the heuristics. | 
| window_size | The window size of the heuristic. | 
| sub_window_size | The sub window size of the heuristic. | 
| step | The step of the heuristic. | 
| sched_name | The scheduler name that will be used to solve the sub-problems. At the first iteration a sub problem that corresponds to the periods included in the window_size first periods is solved. The solution part for the first sub_window_size periods is fixed. Then, rolling step periods, the process is repeated still reaching the horizon. So horizon>=window_size>=sub_window_size>1. If Gurobi is available, it is used as default solver. On the other hand, coin CBC is used. This implementation of the heuristic is not working for a model that got multi fractional destination variables. | 
| delphos::SlidingTimeWindowHeuristic::SlidingTimeWindowHeuristic | ( | SchedulingInstance & | si, | 
| const unsigned int & | window_size, | ||
| const unsigned int & | sub_window_size, | ||
| const string & | sched_name = Scheduler::GUROBI_MIPScheduler | ||
| ) | 
Creates a sliding time window heuristic with given scheduling instance and parameters.
| si | The scheduling instance of the heuristics. | 
| window_size | The window size of the heuristic. | 
| sub_window_size | The sub window size of the heuristic. | 
| sched_name | The scheduler name that will be used to solve the sub-problems. At the first iteration a sub problem that corresponds to the periods included in the window_size first periods is solved. The solution part for the first sub_window_size periods is fixed. Then, rolling 1 period, the process is repeated still reaching the horizon. So horizon>=window_size>=sub_window_size>1. If Gurobi is available, it is used as default solver. On the other hand, coin CBC is used. | 
| delphos::SlidingTimeWindowHeuristic::SlidingTimeWindowHeuristic | ( | delphos::SchedulingInstance & | si, | 
| const unsigned int & | window_size, | ||
| const string & | sched_name = Scheduler::GUROBI_MIPScheduler | ||
| ) | 
Creates a sliding time window heuristic with given scheduling instance and parameters.
| si | The scheduling instance of the heuristics. | 
| window_size | The window size of the heuristic. | 
| sub_window_size | The sub window size of the heuristic. | 
| sched_name | The scheduler name that will be used to solve the sub-problems. At the first iteration a sub problem that corresponds to the periods included in the window_size first periods is solved. The solution part for the first period is fixed. Then, rolling 1 period, the process is repeated still reaching the horizon. So horizon>=window_size. If Gurobi is available, it is used as default solver. On the other hand, coin CBC is used as default solver. The implementation of the heuristic creates a schedule and not a fractional schedule. If the scheduling instance has got the PCPSP flag on, an exception is thrown. | 
| void delphos::SlidingTimeWindowHeuristic::SetEmphasis | ( | const Model::Emphasis & | emphasis | ) | 
Set the emphasis mode for each resolution of sub-problem.
| emphasis | The emphasis of the optimization. The emphasis can be Model::Emphasis::FEASABILITY, Model::Emphasis::OPTIMALITY or Model::Emphasis::BALANCED. | 
| 
 | virtual | 
Set the gap of the sub-problems.
| gap | The desired realtive integer gap of the sub problems. | 
Reimplemented from delphos::Scheduler.
| void delphos::SlidingTimeWindowHeuristic::SetSense | ( | const Model::OptimizationSense & | sense | ) | 
Set the sense of the optimization model.
| sense | The sense of the optimization. The sense can be Model::OptimizationSense::MINIMIZATION or Model::OptimizationSense::MAXIMIZATION. | 
| void delphos::SlidingTimeWindowHeuristic::SetSupPBTimeLimit | ( | const double & | tlimit | ) | 
Set the sub problem time limit.
| tlimit | The sub problem time limit | 
| void delphos::SlidingTimeWindowHeuristic::SetVerbose | ( | const string & | path | ) | 
Set the verbose mode on and set the path of the log file.
| path | The path of teh log file. |