1 #ifndef FLOWSHOPSCHEDULINGPROBLEM_H
2 #define FLOWSHOPSCHEDULINGPROBLEM_H
29 unsigned int machines;
32 std::vector<std::vector<double> > processingTimes;
39 bool checkSchedule(
const std::vector<unsigned int>& schedule);
48 void writeResultToFile(
const std::vector<unsigned int>& schedule,
double costFunctionValue,
const std::string& filename);
58 FlowShopSchedulingProblem(
unsigned int jobs,
unsigned int machines,
const std::vector<std::vector<double> >& processingTimes);
69 FlowShopSchedulingProblem(
unsigned int jobs,
unsigned int machines,
double minProcessingTime,
double maxProcessingTime,
bool integerValues =
false);
106 void setData(
unsigned int jobs,
unsigned int machines,
const std::vector<std::vector<double> >& processingTimes);
117 void generateData(
unsigned int jobs,
unsigned int machines,
double minProcessingTime,
double maxProcessingTime,
bool integerValues =
false);
125 double evaluatePFSSP(
const std::vector<unsigned int>& schedule);
134 double evaluatePFSSP(
const std::vector<unsigned int>& schedule,
const std::string& filename);
142 double evaluateFSSPB(
const std::vector<unsigned int>& schedule);
152 double evaluateFSSPB(
const std::vector<unsigned int>& schedule,
const std::string& filename);
170 double evaluateFSSPNW(
const std::vector<unsigned int>& schedule,
const std::string& filename);
193 return processingTimes;
199 #endif // FLOWSHOPSCHEDULINGPROBLEM_H
Interface for reading, writing and displaying data.
double evaluateFSSPNW(const std::vector< unsigned int > &schedule)
Evaluates flow shop scheduling problem with no-wait.
Definition: FlowShopSchedulingProblem.cpp:60
void readDataFromFile(const std::string &filename)
Reads flow shop scheduling problem data from a file with a filename.
Definition: FlowShopSchedulingProblem.cpp:198
unsigned int getMachines() const
Getter for number of machines.
Definition: FlowShopSchedulingProblem.h:184
unsigned int getJobs() const
Getter for number of jobs.
Definition: FlowShopSchedulingProblem.h:176
Definition: BinPackingProblem.cpp:3
const std::vector< std::vector< double > > & getProcessingTimes() const
Getter for number of processing times.
Definition: FlowShopSchedulingProblem.h:192
void setData(unsigned int jobs, unsigned int machines, const std::vector< std::vector< double > > &processingTimes)
Setter for flow shop scheduling problem data.
Definition: FlowShopSchedulingProblem.cpp:282
double evaluateFSSPB(const std::vector< unsigned int > &schedule)
Evaluates flow shop scheduling problem with limited intermediate storage (flow shop scheduling proble...
Definition: FlowShopSchedulingProblem.cpp:21
double evaluatePFSSP(const std::vector< unsigned int > &schedule)
Evaluates permutative flow shop scheduling problem with unlimited intermediate storage (permutative f...
Definition: FlowShopSchedulingProblem.cpp:105
void generateData(unsigned int jobs, unsigned int machines, double minProcessingTime, double maxProcessingTime, bool integerValues=false)
Generates flow shop scheduling problem data according to setup.
Definition: FlowShopSchedulingProblem.cpp:145
void writeDataToFile(const std::string &filename)
Writes flow shop scheduling problem data to a file with a filename.
Definition: FlowShopSchedulingProblem.cpp:331
void showData()
Shows flow shop scheduling problem data.
Definition: FlowShopSchedulingProblem.cpp:316
Simple pseudo random number generator class.
Definition: FlowShopSchedulingProblem.h:22
FlowShopSchedulingProblem(unsigned int jobs, unsigned int machines, const std::vector< std::vector< double > > &processingTimes)
Constructor.
Definition: FlowShopSchedulingProblem.cpp:11