solver
1.0
|
Determines an optimal timing of a partially fixed problem. More...
#include <RoboticLineSolverLP.h>
Public Member Functions | |
RoboticLineSolverLP (Robot *r, const PartialSolution &ps, const PrecalculatedMapping &m) | |
It builds a Linear Programming problem (variables, constraints, criterion) to be solved. More... | |
RoboticLineSolverLP (const RoboticLine &l, const PartialSolution &ps, const PrecalculatedMapping &m) | |
It builds a Linear Programming problem (variables, constraints, criterion) to be solved. More... | |
Solution | solve () const |
The energy optimal timing is determined by solving Linear Programming problem and the solution is returned. | |
void | addCollisionResolution (Activity *i, Activity *j, const int32_t &multipleOfCycleTime) |
It adds a constraint to resolve a collision where and are start time and duration of the activity , respectively, and is the robot cycle time. More... | |
Private Member Functions | |
void | addVariablesForSelectedDynamicActivities () |
It adds additional float variables for optional activities. | |
void | construct (const PrecalculatedMapping &m, bool addTimeLags=true) |
Complete construction of the Linear Programming problem for the energy optimization. More... | |
void | checkArguments (const PrecalculatedMapping &m, const uint32_t &numberOfRobots=1u) const |
It checks that the arguments passed to the constructor are valid and correct. More... | |
Private Attributes | |
ILPModel | mModel |
Linear Programming problem to be solved. | |
VariableMappingLP | mMapper |
Mapping of the continuous variables. | |
ConstraintsGenerator | mGenerator |
Generator of the constraints. | |
PartialSolution | mPartialSolution |
Partially fixed problem, or in other words, a partial solution. | |
Determines an optimal timing of a partially fixed problem.
Linear Programming solver that determines an optimal timing of a partially fixed problem. It is used by the parallel heuristic, see ParallelHeuristicSolver, that evaluates lots of partially fixed problems to find high quality solutions in terms of energy consumption.
Definition at line 58 of file RoboticLineSolverLP.h.
RoboticLineSolverLP::RoboticLineSolverLP | ( | Robot * | r, |
const PartialSolution & | ps, | ||
const PrecalculatedMapping & | m | ||
) |
It builds a Linear Programming problem (variables, constraints, criterion) to be solved.
r | Robot for which the timing should be evaluated. |
ps | Partially fixed problem, i.e. selected locations, modes, and movements. |
m | Fast mapping for the searching in the data structure of the robotic cell (containing one robot). |
Definition at line 32 of file RoboticLineSolverLP.cpp.
RoboticLineSolverLP::RoboticLineSolverLP | ( | const RoboticLine & | l, |
const PartialSolution & | ps, | ||
const PrecalculatedMapping & | m | ||
) |
It builds a Linear Programming problem (variables, constraints, criterion) to be solved.
l | Robotic cell for which the timing should be evaluated. |
ps | Partially fixed problem, i.e. selected locations, modes, and movements. |
m | Fast mapping for the searching in the data structure of the robotic cell. |
Definition at line 40 of file RoboticLineSolverLP.cpp.
void RoboticLineSolverLP::addCollisionResolution | ( | Activity * | i, |
Activity * | j, | ||
const int32_t & | multipleOfCycleTime | ||
) |
It adds a constraint to resolve a collision where and are start time and duration of the activity , respectively, and is the robot cycle time.
i,j | First and second considered activity, respectively. |
multipleOfCycleTime | Multiple of the robot cycle time. |
Definition at line 99 of file RoboticLineSolverLP.cpp.
|
private |
It checks that the arguments passed to the constructor are valid and correct.
m | Fast mapping for the searching in the data structure of the robotic cell. |
numberOfRobots | Number of robots considered in the problem. |
Definition at line 216 of file RoboticLineSolverLP.cpp.
|
private |
Complete construction of the Linear Programming problem for the energy optimization.
m | Fast mapping for the searching in the data structure of the robotic cell. |
addTimeLags | Whether time lags should be considered, i.e. a robotic cell with more than one robot. |
Definition at line 122 of file RoboticLineSolverLP.cpp.