18 #ifndef HLIDAC_PES_VARIABLE_MAPPING_ILP_H
19 #define HLIDAC_PES_VARIABLE_MAPPING_ILP_H
32 using map2to1 = std::map<std::pair<uint32_t, uint32_t>, uint32_t>;
34 using map4toN = std::map<std::pair<uint64_t, uint64_t>, std::vector<uint32_t> >;
97 std::map<uint32_t, uint32_t>
inverseMapping(
const std::vector<double>& solution,
const map2to1& mapping);
Instance of this class includes all the data structures and methods related to a robot.
uint32_t numberOfVariables() const
Total number of variables including both continuous and binary ones.
map4toN c
Binary variables used for collisions resolution.
void addActivityBinaryVariables(Robot *r)
It creates the mapping for x, z, and y variables.
Mapping of continuous variables of the energy optimization problem.
void addActivityOrderBinaryVariables(Robot *r)
It constructs the mapping for w variables.
Mapping of continuous variables occurring in the energy optimization problem.
std::map< std::pair< uint64_t, uint64_t >, std::vector< uint32_t > > map4toN
Mapping of variables indexed by four numbers.
void addCollisionBinaryVariables(const RoboticLine &l)
Mapping of c variables is created.
VariableMappingILP(Robot *r)
Constructs the mapping of all the variables related to robot r.
std::map< uint32_t, uint32_t > inverseMapping(const std::vector< double > &solution, const map2to1 &mapping)
It extracts the variables set to true and returns the ,,selected" indices.
The robotic cell corresponds to an instance of this class.
std::map< std::pair< uint32_t, uint32_t >, uint32_t > map2to1
Mapping of variables indexed by two numbers.
Mapping of continuous and binary variables.