1 #ifndef __SWHEURISTICS_H__ 
    2 #define __SWHEURISTICS_H__ 
    4 #include "heuristics.h" 
    6 #include "../fractional_scheduler/fractional_scheduler.h" 
    7 #include "../../../data_structures/bm/functors.h" 
    9     #include "gurobi_model.h" 
   10     #include "../ipscheduler/gurobimipscheduler.h" 
   13     #include "cbc_model.h" 
   14     #include "../ipscheduler/cbcmipscheduler.h" 
   35     unsigned int _window_size;
 
   36     unsigned int _sub_window_size;
 
   40     Model::Emphasis _emph;
 
   42     Model::OptimizationSense _sense;
 
   43     unsigned int _numthread;
 
   44     double _subpb_timelimit;
 
   49     const unsigned int GetWindowSize() 
const;
 
   50     const unsigned int GetSubWindowSize() 
const;
 
   51     const unsigned int GetStep() 
const;
 
   57         map<string, double> & tonnages);
 
   59     void CopyToFullSchedule(
 
   64         map<string, double> & tonnages);
 
   84         const unsigned int & window_size, 
 
   85         const unsigned int & sub_window_size,
 
   86         const unsigned int & step,
 
   88         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
   90         const string& sched_name=Scheduler::CBC_MIPScheduler);
 
  106         const unsigned int & window_size, 
 
  107         const unsigned int & sub_window_size,
 
  109         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  111         const string& sched_name=Scheduler::CBC_MIPScheduler);
 
  130         const unsigned int & window_size,
 
  132         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  134         const string& sched_name=Scheduler::CBC_MIPScheduler);
 
  152     void SetVerbose(
const string & path);
 
  158     void SetSupPBTimeLimit(
const double& tlimit);
 
  164     const bool GetVerbose() 
const;
 
  169     const string GetPath() 
const;
 
  175     void SetGap(
const float & gap);
 
  180     const float GetGap() 
const;
 
  187     void SetEmphasis(
const Model::Emphasis & emphasis);
 
  192     const Model::Emphasis GetEmphasis() 
const;
 
  199     void SetSense(
const Model::OptimizationSense & sense);
 
  204     const Model::OptimizationSense GetSense() 
const;
 
  209     const string & GetLogFileName() 
const;
 
  214     void SetNumThread(
const unsigned int& nthread);
 
  232     bool RelaxSecondWindowVariables(
MIPScheduler& mip, 
const unsigned int & from, 
const unsigned int & to, 
const unsigned int & current);
 
  254         const unsigned int & window_size, 
 
  255         const unsigned int & sub_window_size,
 
  256         const unsigned int & step,
 
  257         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  276         const unsigned int & window_size, 
 
  277         const unsigned int & sub_window_size,
 
  278         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  297         const unsigned int & window_size,
 
  298         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  315     bool SetUserConstraintsAndPenalizations(
 
  317         const unsigned int & big_window_to, 
 
  318         const unsigned int & sub_window_to, 
 
  319         const unsigned int & current_from , 
 
  320         map<string,double> & duals );
 
  345         const unsigned int & sub_window_size,
 
  346         const unsigned int & step,
 
  347         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  369         const unsigned int & step,
 
  370         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
  387     vector<double> _esperate_times;
 
  399     SlidingTimeWindowHeuristicRegret(
 
  401         const unsigned int & window_size, 
 
  402         const unsigned int & sub_window_size,
 
  403         const unsigned int & step,
 
  404         const vector<double>& esperate_times,
 
  405         const string& sched_name=Scheduler::GUROBI_MIPScheduler);
 
Abstracts a set of blocks (subset of a blockmodel). 
Definition: blocksel.h:33
Class that defines relaxed sliding time window heuristic that solve a scheduling instance. 
Definition: swheuristics.h:229
Class that defines a sliding time window heuristic with lagrangean relaxion that solve a scheduling i...
Definition: swheuristics.h:312
Defines a scheduling instance to be solved. 
Definition: instance.h:41
Class that defines sliding time window heuristic that solve a scheduling instance. 
Definition: swheuristics.h:33
Dummy class that define required methods for a heuristic that solve a scheduling instance. 
Definition: heuristics.h:18
Dummy class that define required methods for a MIP solver of a scheduling instance. 
Definition: mip_scheduler.h:24
Defines a scheduling of blocks. 
Definition: schedule.h:23
Dummy class that define required methods for a solver of a scheduling instance. 
Definition: fractional_scheduler.h:14