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

Fix/use biconnected components #1357

Conversation

barendgehrels
Copy link
Collaborator

@barendgehrels barendgehrels commented Dec 21, 2024

This is the PR using Boost.Graph biconnected components to detect isolation.

From Boost.Graph:

image

The numbers are the biconnected components. The letters are the articulation points, but they are not necessary in the end (though for graph display it might be useful).

The big advantages:

  • it is simpler than the isolation checks in traversal_switch_detector.hpp
  • it is a standard algorithm
  • we can use it to follow the registered component_id (future PR)
  • the last point would make all traversal code much simpler

It fixes the issues also mentioned in PR 1350 and 1356

NOTE: it's only commit 61b002b

The basic functionality is shown in the next (manually edited) picture (the basis comes from overlay.cpp -> geojson -> qgis)

image

The corresponding graph-viz-graph is here. It uses the same turn indexes and component ids. Clusters are denoted as negative indexes. Extra nodes (necessary for if a turn is traveling to itself) have high numbers (>10000)

image

@barendgehrels barendgehrels added the experimental Experimental PR - might need work or discussion label Dec 21, 2024
@barendgehrels barendgehrels self-assigned this Dec 21, 2024
@barendgehrels barendgehrels force-pushed the fix/use-biconnected-components branch from c4fc5e3 to 61b002b Compare December 21, 2024 17:03
@barendgehrels
Copy link
Collaborator Author

As I had in mind, we can use this method for traversal too.
It is in a promising state now.
Closing this draft.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experimental Experimental PR - might need work or discussion
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants