Skip to content
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

BGL Depth First Search #77

Merged
merged 11 commits into from
Sep 7, 2021

Conversation

colin-lewis-19
Copy link
Contributor

@colin-lewis-19 colin-lewis-19 commented Sep 2, 2021

Adds a solver that utilizes BGL depth first search

Depends on #76 and #80

@marip8 marip8 changed the title Depth First Search Visitor BGL Depth First Search Sep 7, 2021
@marip8
Copy link
Collaborator

marip8 commented Sep 7, 2021

@colin-lewis-19 per our discussion, I made the following changes:

  • Added comments to the BGL solvers to document that some event visitors are created implicitly in the search and need not be specified via template parameter by the user
  • Moved the creation of the final DFS event visitor required by the search into the search methods for each solver variant
  • Opened BGL: Revise cost_recorder event visitor #82 to document revisions required for the cost_recorder event visitor

Any other changes need to be made?

@marip8
Copy link
Collaborator

marip8 commented Sep 7, 2021

Turns out there were a few unresolved issues, but I fixed them and was able to produce these graphs for the DFS search:

DFS with null visitor (i.e. without early search termination)

Screenshot from 2021-09-07 18-22-58

Note that the distances of these nodes from the source are not optimal because DFS is not guaranteed to find the optimal solution

DFS with early search termination

Screenshot from 2021-09-07 18-24-09

Other changes

I also removed the Visitors template from the solver partial implementations (BGLSolverBase, BGLSolverBaseSVSE, BGLSolverBaseSVDE) because:

  • They do not require the visitors for any of their tasks
  • Including the visitor template parameter made things more complicated downstream
  • Including the visitor template parameter essentially prevents solvers from being cast into one these partial implementations without knowledge of the visitor template type (for the purposes of serializing a Graphviz file, for example)

@marip8 marip8 merged commit 9c9d0e5 into swri-robotics:master Sep 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants