102 struct OptimizationData;
109 const core::ProblemConstPtr_t& problem,
110 const core::RoadmapPtr_t& roadmap);
160 const core::RoadmapPtr_t&);
163 void init(StatesPathFinderWkPtr_t weak) { weak_ = weak; }
166 typedef constraints::solver::BySubstitution Solver_t;
167 struct GraphSearchData;
170 void gatherGraphConstraints();
174 bool findTransitions(GraphSearchData& data)
const;
178 const std::size_t& i)
const;
185 bool contains(
const Solver_t& solver,
const ImplicitPtr_t& c)
const;
191 bool containsStricter(
const Solver_t& solver,
const ImplicitPtr_t& c)
const;
192 bool checkConstantRightHandSide(
size_type index);
197 bool analyseOptimizationProblem(
const graph::Edges_t& transitions,
198 core::ProblemConstPtr_t _problem);
201 void initializeRHS(std::size_t j);
202 bool solveOptimizationProblem();
210 typedef std::unordered_map<size_t, size_t> ConstraintMap_t;
240 bool checkSolvers(ConstraintMap_t
const& pairMap,
241 ConstraintMap_t
const& constraintMap)
const;
251 bool saveIncompatibleRHS(ConstraintMap_t& pairMap,
252 ConstraintMap_t& constraintMap,
size_type const wp);
255 core::JointConstPtr_t maximalJoint(
size_t const wp, core::JointConstPtr_t a);
258 core::Configurations_t getConfigList()
const;
261 bool checkWaypointRightHandSide(std::size_t ictr, std::size_t jslv)
const;
262 bool checkSolverRightHandSide(std::size_t ictr, std::size_t jslv)
const;
263 bool checkWaypointRightHandSide(std::size_t jslv)
const;
264 bool checkSolverRightHandSide(std::size_t jslv)
const;
266 void displayRhsMatrix();
272 core::ProblemPtr_t inStateProblem_;
277 std::map<std::string, std::size_t> index_;
281 std::map<ImplicitPtr_t, ImplicitPtr_t> sameRightHandSide_;
286 std::map<ImplicitPtr_t, ImplicitPtr_t> stricterConstraints_;
288 mutable OptimizationData* optData_;
289 mutable std::shared_ptr<GraphSearchData> graphData_;
300 bool goalDefinedByConstraints_;
303 core::Configurations_t configList_;
304 std::size_t idxConfigList_;
306 bool solved_, interrupt_;
309 StatesPathFinderWkPtr_t weak_;