1 #ifndef PMPL_LAZY_QUERY_H_
2 #define PMPL_LAZY_QUERY_H_
30 typedef std::unordered_set<VID>
VIDSet;
44 virtual void Print(std::ostream& _os)
const override;
65 typedef std::unordered_set<EdgeID>
EdgeSet;
79 typename RoadmapType::adj_edge_iterator& _ei,
80 const double _sourceDistance,
const double _targetDistance)
const
84 typename RoadmapType::adj_edge_iterator& _ei,
85 const double _sourceDistance,
const double _targetDistance)
const
std::function< double(typename GraphType::adj_edge_iterator &, const double, const double)> SSSPPathWeightFunction
Definition: SSSP.h:94
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
EID::edge_id_type EdgeID
Definition: GenericStateGraph.h:85
Definition: LazyQuery.h:20
virtual void Initialize() override
Definition: LazyQuery.cpp:78
void InvalidateVertex(const VID _vid)
Definition: LazyQuery.cpp:337
bool PruneInvalidVertices()
Definition: LazyQuery.cpp:187
bool IsEdgeInvalidated(const EdgeID _eid) const noexcept
Definition: LazyQuery.cpp:410
RoadmapType::EdgeID EdgeID
Definition: LazyQuery.h:29
std::unordered_map< RoadmapType *, VertexSet > m_invalidVertices
Lazy-invalidated vertices.
Definition: LazyQuery.h:181
void InvalidateEdge(const VID _source, const VID _target)
Definition: LazyQuery.cpp:363
void SetVertexInvalidated(const VID _vid) noexcept
Definition: LazyQuery.cpp:403
std::string m_lpLabel
The lazy local planner label.
Definition: LazyQuery.h:162
std::string m_vcLabel
The lazy validity checker label.
Definition: LazyQuery.h:161
std::unordered_map< RoadmapType *, EdgeSet > m_invalidEdges
Lazy-invalidated edges.
Definition: LazyQuery.h:183
std::vector< int > m_resolutions
List of resolution multiples to check.
Definition: LazyQuery.h:173
virtual double StaticPathWeight(typename RoadmapType::adj_edge_iterator &_ei, const double _sourceDistance, const double _targetDistance) const override
Definition: LazyQuery.cpp:131
virtual void NodeEnhance()
Definition: LazyQuery.cpp:294
LazyQuery()
Definition: LazyQuery.cpp:12
size_t m_numEnhance
Number of enhancement nodes to generate.
Definition: LazyQuery.h:174
double m_d
Gaussian distance for enhancement sampling.
Definition: LazyQuery.h:175
virtual void Reset(RoadmapType *const _r) override
Definition: LazyQuery.cpp:105
virtual void Print(std::ostream &_os) const override
Definition: LazyQuery.cpp:61
virtual void ProcessInvalidNode(const Cfg &_cfg)
Definition: LazyQuery.h:112
virtual bool PerformSubQuery(const VID _start, const VIDSet &_goals) override
Definition: LazyQuery.cpp:116
bool PruneInvalidEdges()
Definition: LazyQuery.cpp:228
std::unordered_set< VID > VIDSet
Definition: LazyQuery.h:30
std::unordered_set< VID > VertexSet
Definition: LazyQuery.h:64
std::vector< std::pair< Cfg, Cfg > > m_edges
Candidate edges for enhancement sampling.
Definition: LazyQuery.h:178
RoadmapType::VID VID
Definition: LazyQuery.h:28
virtual ~LazyQuery()=default
std::string m_enhanceDmLabel
The distance metric for enhancement.
Definition: LazyQuery.h:163
std::unordered_set< EdgeID > EdgeSet
Definition: LazyQuery.h:65
virtual void SetPathWeightFunction(SSSPPathWeightFunction< RoadmapType > _f) override
Definition: LazyQuery.cpp:89
virtual double DynamicPathWeight(typename RoadmapType::adj_edge_iterator &_ei, const double _sourceDistance, const double _targetDistance) const override
Definition: LazyQuery.cpp:145
MPBaseObject::RoadmapType RoadmapType
Definition: LazyQuery.h:27
bool m_deleteInvalid
Remove invalid vertices from the roadmap?
Definition: LazyQuery.h:171
std::vector< std::string > m_ncLabels
The connectors for enhancement.
Definition: LazyQuery.h:165
void SetEdgeInvalidated(const EdgeID _eid) noexcept
Definition: LazyQuery.cpp:428
bool IsVertexInvalidated(const VID _vid) const noexcept
Definition: LazyQuery.cpp:396
bool ValidatePath()
Definition: LazyQuery.cpp:160
Definition: QueryMethod.h:31