![]() |
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. |