solver  1.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
RoboticLineSolverLP Class Reference

Determines an optimal timing of a partially fixed problem. More...

#include <RoboticLineSolverLP.h>

+ Collaboration diagram for RoboticLineSolverLP:

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 $s_j \geq s_i+d_i+CT*\mathrm{multipleOfCycleTime}$ to resolve a collision where $s_i$ and $d_i$ are start time and duration of the activity $i$, respectively, and $\mathrm{CT}$ 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.
 

Detailed Description

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.

Constructor & Destructor Documentation

RoboticLineSolverLP::RoboticLineSolverLP ( Robot r,
const PartialSolution ps,
const PrecalculatedMapping m 
)

It builds a Linear Programming problem (variables, constraints, criterion) to be solved.

Parameters
rRobot for which the timing should be evaluated.
psPartially fixed problem, i.e. selected locations, modes, and movements.
mFast 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.

Parameters
lRobotic cell for which the timing should be evaluated.
psPartially fixed problem, i.e. selected locations, modes, and movements.
mFast mapping for the searching in the data structure of the robotic cell.

Definition at line 40 of file RoboticLineSolverLP.cpp.

Member Function Documentation

void RoboticLineSolverLP::addCollisionResolution ( Activity i,
Activity j,
const int32_t &  multipleOfCycleTime 
)

It adds a constraint $s_j \geq s_i+d_i+CT*\mathrm{multipleOfCycleTime}$ to resolve a collision where $s_i$ and $d_i$ are start time and duration of the activity $i$, respectively, and $\mathrm{CT}$ is the robot cycle time.

Parameters
i,jFirst and second considered activity, respectively.
multipleOfCycleTimeMultiple of the robot cycle time.

Definition at line 99 of file RoboticLineSolverLP.cpp.

void RoboticLineSolverLP::checkArguments ( const PrecalculatedMapping m,
const uint32_t &  numberOfRobots = 1u 
) const
private

It checks that the arguments passed to the constructor are valid and correct.

Parameters
mFast mapping for the searching in the data structure of the robotic cell.
numberOfRobotsNumber of robots considered in the problem.
Note
It is only called in the debug mode due to the performance issues.

Definition at line 216 of file RoboticLineSolverLP.cpp.

void RoboticLineSolverLP::construct ( const PrecalculatedMapping m,
bool  addTimeLags = true 
)
private

Complete construction of the Linear Programming problem for the energy optimization.

Parameters
mFast mapping for the searching in the data structure of the robotic cell.
addTimeLagsWhether time lags should be considered, i.e. a robotic cell with more than one robot.
Note
Gurobi convex functions can be employed to accelerate the solution process.

Definition at line 122 of file RoboticLineSolverLP.cpp.


The documentation for this class was generated from the following files: