![]() |
MineLink
|
Class that defines relaxed sliding time window heuristic that solve a scheduling instance. More...
#include <swheuristics.h>
Public Member Functions | |
SlidingTimeWindowHeuristicRelaxed (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 relaxed sliding time window heuristic with given scheduling instance and parameters. More... | |
SlidingTimeWindowHeuristicRelaxed (delphos::SchedulingInstance &si, const unsigned int &window_size, const unsigned int &sub_window_size, const string &sched_name=Scheduler::GUROBI_MIPScheduler) | |
Creates a relaxed sliding time window heuristic with given scheduling instance and parameters. More... | |
SlidingTimeWindowHeuristicRelaxed (delphos::SchedulingInstance &si, const unsigned int &window_size, const string &sched_name=Scheduler::GUROBI_MIPScheduler) | |
Creates a relaxed sliding time window heuristic with given scheduling instance and parameters. More... | |
virtual bool | Run () |
Runs the heuristic. | |
![]() | |
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... | |
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 relaxed sliding time window heuristic that solve a scheduling instance.
This is a rolling time heuristic.
delphos::SlidingTimeWindowHeuristicRelaxed::SlidingTimeWindowHeuristicRelaxed | ( | 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 relaxed 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 variables corresponding to the time window : [sub_window_size+1,window_size] are relaxed. The solution part for the first step periods is fixed. Then, rolling step periods on start and end of time window, the process is repeated still reaching the horizon. So horizon>=window_size>=sub_windows_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. |
delphos::SlidingTimeWindowHeuristicRelaxed::SlidingTimeWindowHeuristicRelaxed | ( | delphos::SchedulingInstance & | si, |
const unsigned int & | window_size, | ||
const unsigned int & | sub_window_size, | ||
const string & | sched_name = Scheduler::GUROBI_MIPScheduler |
||
) |
Creates a relaxed 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 variables corresponding to the time window : [sub_window_size+1,window_size] are relaxed. The solution part for the first period is fixed. Then, rolling 1 period on start and end of time window, the process is repeated still reaching the horizon. So horizon>=window_size>=sub_windows_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. |
delphos::SlidingTimeWindowHeuristicRelaxed::SlidingTimeWindowHeuristicRelaxed | ( | delphos::SchedulingInstance & | si, |
const unsigned int & | window_size, | ||
const string & | sched_name = Scheduler::GUROBI_MIPScheduler |
||
) |
Creates a relaxed 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. |
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 variables corresponding to the time window : [2,window_size] are relaxed. The solution part for the first period is fixed. Then, rolling 1 period on start and end of time window, the process is repeated still reaching the horizon. So horizon>=window_size>=1. 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. |