1 #ifndef QUADRATICASSIGNMENTPROBLEM_H
2 #define QUADRATICASSIGNMENTPROBLEM_H
29 std::vector<std::vector<double> > flows;
32 std::vector<std::vector<double> > distances;
35 std::vector<std::vector<double> > costs;
42 bool checkSchedule(
const std::vector<unsigned int>& schedule);
51 void writeResultToFile(
const std::vector<unsigned int>& schedule,
double costFunctionValue,
const std::string& filename);
62 QuadraticAssignmentProblem(
unsigned int objects,
const std::vector<std::vector<double> >& flows,
const std::vector<std::vector<double> >& distances,
const std::vector<std::vector<double> >& costs);
76 QuadraticAssignmentProblem(
unsigned int objects,
double minFlow,
double maxFlow,
double minDistance,
double maxDistance,
double minCost,
double maxCost,
bool integerValues =
false);
94 void setData(
unsigned int objects,
const std::vector<std::vector<double> >& flows,
const std::vector<std::vector<double> >& distances,
const std::vector<std::vector<double> >& costs);
108 void generateData(
unsigned int objects,
double minFlow,
double maxFlow,
double minDistance,
double maxDistance,
double minCost,
double maxCost,
bool integerValues =
false);
136 double evaluateQAP(
const std::vector<unsigned int>& schedule);
146 double evaluateQAP(
const std::vector<unsigned int>& schedule,
const std::string& filename);
154 double evaluateQBAP(
const std::vector<unsigned int>& schedule);
164 double evaluateQBAP(
const std::vector<unsigned int>& schedule,
const std::string& filename);
170 const std::vector<std::vector<double> >&
getCosts()
const {
186 const std::vector<std::vector<double> >&
getFlows()
const {
201 #endif // QUADRATICASSIGNMENTPROBLEM_H
Interface for reading, writing and displaying data.
Definition: BinPackingProblem.cpp:3
const std::vector< std::vector< double > > & getFlows() const
Getter for flows.
Definition: QuadraticAssignmentProblem.h:186
unsigned int getObjects() const
Getter for number of objects.
Definition: QuadraticAssignmentProblem.h:194
QuadraticAssignmentProblem(unsigned int objects, const std::vector< std::vector< double > > &flows, const std::vector< std::vector< double > > &distances, const std::vector< std::vector< double > > &costs)
Constructor.
Definition: QuadraticAssignmentProblem.cpp:11
void setData(unsigned int objects, const std::vector< std::vector< double > > &flows, const std::vector< std::vector< double > > &distances, const std::vector< std::vector< double > > &costs)
Setter for quadratic assignment problem data.
Definition: QuadraticAssignmentProblem.cpp:293
void readDataFromFile(const std::string &filename)
Reads quadratic assignment problem data from a file with a filename.
Definition: QuadraticAssignmentProblem.cpp:182
double evaluateQAP(const std::vector< unsigned int > &schedule)
Evaluates quadratic assignment problem.
Definition: QuadraticAssignmentProblem.cpp:72
void generateData(unsigned int objects, double minFlow, double maxFlow, double minDistance, double maxDistance, double minCost, double maxCost, bool integerValues=false)
Generates quadratic assignment problem data according to setup.
Definition: QuadraticAssignmentProblem.cpp:103
Simple pseudo random number generator class.
double evaluateQBAP(const std::vector< unsigned int > &schedule)
Evaluates quadratic bottleneck assignment problem.
Definition: QuadraticAssignmentProblem.cpp:41
const std::vector< std::vector< double > > & getDistances() const
Getter for distances.
Definition: QuadraticAssignmentProblem.h:178
void showData()
Shows quadratic assignment problem data.
Definition: QuadraticAssignmentProblem.cpp:355
Definition: QuadraticAssignmentProblem.h:22
void writeDataToFile(const std::string &filename)
Writes quadratic assignment problem data to a file with a filename.
Definition: QuadraticAssignmentProblem.cpp:387
const std::vector< std::vector< double > > & getCosts() const
Getter for costs.
Definition: QuadraticAssignmentProblem.h:170