Class that defines a twos phase Reblocking heuristic that solve a scheduling instance. First phase is a topological aggregation. The second phase is a topoligcal desaggregation that permit to obtain a feasible solution to original problem. This implementation of the heuristic is not working for a model that got multi fractional destination variables. If the scheduling instance has got the PCPSP flag on, an exception is thrown. This implementation of the heuristic is working only for a simple slope precedence. RampPrecedenceConstaint, sinking constraints, GeometricConstraint and BlockSelectionPrecedenceConstraint not implemented. Use of BlockSelection not null in all Constraints not implemented.
More...
#include <aggheuristics.h>
|
| HReb (delphos::SchedulingInstance &si, const double &slope_ang, const unsigned int &nblevels, const string &agg_sched_name=Scheduler::GUROBI_SlidingTimeWindowHeuristic, const string &desagg_sched_name=Scheduler::GUROBI_SlidingTimeWindowHeuristic, const double &rx=0.0, const double &ry=0.0, const double &rz=0.0) |
| Creates a twos phase Reblocking heuristic that solve a scheduling instance. More...
|
|
virtual | ~HReb () |
| The destructor.
|
|
bool | Run () |
| Runs the heuristic.
|
|
void | SetGap (const float &gap) |
| Set the gap of the sub-problems. More...
|
|
void | SetSTWHParam (const unsigned int &window_size, const unsigned int &sub_window_size, const unsigned int &step, const bool &backward=true) |
| Set the Sliding time window heuristic parameter. More...
|
|
double | GetObjective () |
| Returns the objective value.
|
|
double | GetAggregatedObjective () |
| Returns the objective value of the Aggregated model.
|
|
void | SetLastFixedPeriod (const unsigned int &lastperiod) |
| Set the last fixed period. More...
|
|
delphos::BlockModel & | GetAggregatedModel () |
| Returns the aggregated block model.
|
|
void | SetNumThread (const unsigned int &nthread) |
| Set the number of threads used for the optimization of each sub problem.
|
|
void | SetVerbose () |
| Set the verbose mode on.
|
|
| 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...
|
|
|
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 a twos phase Reblocking heuristic that solve a scheduling instance. First phase is a topological aggregation. The second phase is a topoligcal desaggregation that permit to obtain a feasible solution to original problem. This implementation of the heuristic is not working for a model that got multi fractional destination variables. If the scheduling instance has got the PCPSP flag on, an exception is thrown. This implementation of the heuristic is working only for a simple slope precedence. RampPrecedenceConstaint, sinking constraints, GeometricConstraint and BlockSelectionPrecedenceConstraint not implemented. Use of BlockSelection not null in all Constraints not implemented.
Creates a twos phase Reblocking heuristic that solve a scheduling instance.
- Parameters
-
si | The scheduling instance to be solved. |
slope_ang | The slope angle of the precedence. |
nblevels | Number of benches to consider as limit for precedences. |
agg_sched_name | The name of the scheduler used for the aggregation phase. |
desagg_sched_name | The name of the scheduler used for the desaggregation phase. |
rx | The block dimensions in the X axis of aggregated block model. |
ry | The block dimensions in the Y axis of aggregated block model. |
rz | The block dimensions in the Z axis of aggregated block model. This implementation of the heuristic is not working for a model that got multi fractional destination variables. If the scheduling instance has got the PCPSP flag on, an exception is thrown. GeometricConstraint and BlockSelectionPrecedenceConstraint not implemented. Use of BlockSelection not null in Constraints not implemented. |
void delphos::HReb::SetGap |
( |
const float & |
gap | ) |
|
|
virtual |
Set the gap of the sub-problems.
- Parameters
-
gap | The desired realtive integer gap of the sub problems. |
Reimplemented from delphos::Scheduler.
void delphos::HReb::SetLastFixedPeriod |
( |
const unsigned int & |
lastperiod | ) |
|
Set the last fixed period.
- Parameters
-
lastperiod | The last period to be fixed. |
void delphos::HReb::SetSTWHParam |
( |
const unsigned int & |
window_size, |
|
|
const unsigned int & |
sub_window_size, |
|
|
const unsigned int & |
step, |
|
|
const bool & |
backward = true |
|
) |
| |
Set the Sliding time window heuristic parameter.
- Parameters
-
window_size | The window size. |
sub_window_size | The sub window size. |
step | The step. |
backward | The flag that defines for which stage the parameters applies. |
The documentation for this class was generated from the following files:
- /home/gmorales/dev/MineLink/BlockScheduling/core/trunk/solvers/scheduling/heuristics/private_heuristics/aggheuristics.h
- /home/gmorales/dev/MineLink/BlockScheduling/core/trunk/solvers/scheduling/heuristics/private_heuristics/aggheuristics.cpp