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