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

add parameter forbidden_vertices to some connectivity methods #39151

Merged

Conversation

dcoudert
Copy link
Contributor

I frequently have to do a depth/breadth-first search in a graph in which some vertices are forbidden. Instead of removing the vertices from the graph, we can simply ensure that the search will not visit these vertices. Actually, the extra cost to do so is very small.

We add such extra functionality to depth/breadth-first search methods for both directed and undirected graphs, and to connectivity methods in undirected graphs. It remains to do the same for directed graphs, but in a follow-up PR to ease the review.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link

github-actions bot commented Dec 17, 2024

Documentation preview for this PR (built with commit 2b8f836; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

@fchapoton fchapoton self-assigned this Jan 10, 2025
@dcoudert
Copy link
Contributor Author

codecov is now happy.

Copy link
Contributor

@fchapoton fchapoton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, looks good

@dcoudert
Copy link
Contributor Author

Thank you !

vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 12, 2025
…vity methods

    
I frequently have to do a depth/breadth-first search in a graph in which
some vertices are forbidden. Instead of removing the vertices from the
graph, we can simply ensure that the search will not visit these
vertices. Actually, the extra cost to do so is very small.

We add such extra functionality to depth/breadth-first search methods
for both directed and undirected graphs, and to connectivity methods in
undirected graphs. It remains to do the same for directed graphs, but in
a follow-up PR to ease the review.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39151
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 16, 2025
…vity methods

    
I frequently have to do a depth/breadth-first search in a graph in which
some vertices are forbidden. Instead of removing the vertices from the
graph, we can simply ensure that the search will not visit these
vertices. Actually, the extra cost to do so is very small.

We add such extra functionality to depth/breadth-first search methods
for both directed and undirected graphs, and to connectivity methods in
undirected graphs. It remains to do the same for directed graphs, but in
a follow-up PR to ease the review.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39151
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton
@vbraun vbraun merged commit 2765b20 into sagemath:develop Jan 18, 2025
23 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants