-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Duplicate copies of GraphEdge stored within a graph #69
Comments
This is an unfortunate consequence of making it efficient to query all edges to/from a given node. It needs to be possible to find all in/out connections in an O(1) operation, and the easiest option is store in/out edges with each node. The most obvious modification would be
with
where Switching to a single vector of edges would probably affect the locality of edge lookups, although without testing it would be hard to know if the impact is good/bad/inconsequential. |
I was thinking we store the edges in the |
That solution has a couple issues:
That would be a significant loss in some cases, since that translates to no longer being able to automatically parallelize some collision checks during planning. |
A graph node currently stores in_edges and out_edges.
This duplicates each edge.
More importantly, it is possible to make inconsistent graphs where edges have different weights (and other properties) depending if looking from the "in_edges" or "out_edges" perspective.
The text was updated successfully, but these errors were encountered: