solver  1.0
RoboticLineSolverILP.h
Go to the documentation of this file.
1 /*
2  This file is part of the EnergyOptimizatorOfRoboticCells program.
3 
4  EnergyOptimizatorOfRoboticCells is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  EnergyOptimizatorOfRoboticCells is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with EnergyOptimizatorOfRoboticCells. If not, see <http://www.gnu.org/licenses/>.
16 */
17 
18 #ifndef HLIDAC_PES_ROBOTIC_LINE_SOLVER_ILP_H
19 #define HLIDAC_PES_ROBOTIC_LINE_SOLVER_ILP_H
20 
27 #include "Settings.h"
28 #include "RoboticLine.h"
29 #include "Solution/Solution.h"
30 #include "ILPModel/ILPModel.h"
33 
42  public:
55 
62  Solution solve(double relGap = Settings::ILP_RELATIVE_GAP, double timLim = Settings::MAX_RUNTIME) const;
71  static double lowerBoundOnEnergy(const std::vector<Robot*>& robots, const PrecalculatedMapping& m);
72 
73  private:
79  void construct(ConstraintsGenerator& generator, bool addGlobalConstraints = true);
80 
85 };
86 
87 #endif
double ILP_RELATIVE_GAP
If a given relative gap from the best known lower bound is achieved, then the solver stops...
Definition: Settings.cpp:37
Generation of the (I)LP constraints.
The structure representing a solution found by an algorithm.
Definition: Solution.h:50
Instance of this class includes all the data structures and methods related to a robot.
Definition: RoboticLine.h:432
RoboticLineSolverILP(Robot *r, const PrecalculatedMapping &m)
Integer Linear Programming problem is built from the robot.
VariableMappingILP mMapper
Mapping of both the continuous and binary variables.
Integer Linear Programming problem is stored in this data structure.
Definition: ILPModel.h:69
Solution solve(double relGap=Settings::ILP_RELATIVE_GAP, double timLim=Settings::MAX_RUNTIME) const
ILP solver optimizes the energy consumption of the robotic cell until a stop criterion is reached...
Declares a class for the generation of constraints.
An exact solver for the energy optimization problem.
static double lowerBoundOnEnergy(const std::vector< Robot * > &robots, const PrecalculatedMapping &m)
A tight lower bound on the energy consumption.
General model for Integer Linear Programming problem.
It declares the namespace for program settings.
void construct(ConstraintsGenerator &generator, bool addGlobalConstraints=true)
It builds the Integer Linear Programming problem corresponding to the energy optimization problem of ...
A representation of the solution that is algorithm independent.
ILPModel mModel
The energy optimization of the robotic cell formulated as an Integer Linear Programming problem...
The robotic cell corresponds to an instance of this class.
Definition: RoboticLine.h:563
The structure contains the maps for fast searching in the robotic cell.
Mapping of integer, to be more precise binary, variables of the energy optimization problem...
The file contains various classes devoted to abstract representation of the robotic cell...
double MAX_RUNTIME
Maximal run time of the solver.
Definition: Settings.cpp:31
Mapping of continuous and binary variables.