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

An exact solver for the energy optimization problem. More...

#include <RoboticLineSolverILP.h>

+ Collaboration diagram for RoboticLineSolverILP:

Public Member Functions

 RoboticLineSolverILP (Robot *r, const PrecalculatedMapping &m)
 Integer Linear Programming problem is built from the robot. More...
 
 RoboticLineSolverILP (const RoboticLine &l, const PrecalculatedMapping &m)
 Integer Linear Programming problem is built from the robotic cell. More...
 
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. More...
 

Static Public Member Functions

static double lowerBoundOnEnergy (const std::vector< Robot * > &robots, const PrecalculatedMapping &m)
 A tight lower bound on the energy consumption. More...
 

Private Member Functions

void construct (ConstraintsGenerator &generator, bool addGlobalConstraints=true)
 It builds the Integer Linear Programming problem corresponding to the energy optimization problem of the robotic cell. More...
 

Private Attributes

ILPModel mModel
 The energy optimization of the robotic cell formulated as an Integer Linear Programming problem.
 
VariableMappingILP mMapper
 Mapping of both the continuous and binary variables.
 

Detailed Description

An exact solver for the energy optimization problem.

An exact solver for the energy optimization of robotic cells. It employs an Integer Linear Programming solver to solve the problem. Only small instances can be solved with a satisfactory quality.

See also
mathematical formulation

Definition at line 41 of file RoboticLineSolverILP.h.

Constructor & Destructor Documentation

RoboticLineSolverILP::RoboticLineSolverILP ( Robot r,
const PrecalculatedMapping m 
)

Integer Linear Programming problem is built from the robot.

Parameters
rRobot to be optimized.
mFast mapping for the searching in the data structure of the robotic cell (containing one robot).

Definition at line 34 of file RoboticLineSolverILP.cpp.

RoboticLineSolverILP::RoboticLineSolverILP ( const RoboticLine l,
const PrecalculatedMapping m 
)

Integer Linear Programming problem is built from the robotic cell.

Parameters
lRobotic cell to be energy optimized.
mFast mapping for the searching in the data structure of the robotic cell.

Definition at line 39 of file RoboticLineSolverILP.cpp.

Member Function Documentation

void RoboticLineSolverILP::construct ( ConstraintsGenerator generator,
bool  addGlobalConstraints = true 
)
private

It builds the Integer Linear Programming problem corresponding to the energy optimization problem of the robotic cell.

Parameters
generatorInstance of the class is responsible for the constraints generation.
addGlobalConstraintsWhether the global constraints should be considered.

Definition at line 113 of file RoboticLineSolverILP.cpp.

double RoboticLineSolverILP::lowerBoundOnEnergy ( const std::vector< Robot * > &  robots,
const PrecalculatedMapping m 
)
static

A tight lower bound on the energy consumption.

A tight lower bound neglects the global constraints, i.e. linkage between robots, and solves each robot individually as an ILP problem with a given time limit. The resulting bound is a summation of individual lower bounds.

Parameters
robotsRobots located in a robotic cell.
mFast mapping for the searching in the data structure of the related robotic cell.
Returns
Lower estimation on the optimal energy consumption of the robotic cell.

Definition at line 102 of file RoboticLineSolverILP.cpp.

Solution RoboticLineSolverILP::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.

Parameters
relGapA relative gap used as a stop criterion.
timLimTime limit used as a stop criterion.
Returns
The best found solution.

Definition at line 44 of file RoboticLineSolverILP.cpp.


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