Skip to content

Add parameter forbidden vertices to methods related to biconnected components#40965

Merged
vbraun merged 10 commits intosagemath:developfrom
dcoudert:graphs/forbidden_vertices_for_biconnected_components
Feb 1, 2026
Merged

Add parameter forbidden vertices to methods related to biconnected components#40965
vbraun merged 10 commits intosagemath:developfrom
dcoudert:graphs/forbidden_vertices_for_biconnected_components

Conversation

@dcoudert
Copy link
Copy Markdown
Collaborator

@dcoudert dcoudert commented Oct 3, 2025

Similarly to methods about connected components, we add parameter forbidden_vertices to methods related to biconnected components. In some cases, it avoids to build a graph without the forbidden vertices.

The method for boost graphs could be improved to avoid a copy of the graph.

📝 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

#40951

@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 3, 2025

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

@cxzhong cxzhong requested a review from dimpase October 21, 2025 16:55
@dimpase
Copy link
Copy Markdown
Member

dimpase commented Oct 21, 2025

@dcoudert - can you have a look?

@dcoudert
Copy link
Copy Markdown
Collaborator Author

Well, I'm the author of this PR, so I will not review it ;)

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Oct 21, 2025

oh, I haven't noticed, sorry. What's going on there, mathematically?

@dcoudert
Copy link
Copy Markdown
Collaborator Author

You can specify a set $X$ of vertices to avoid. That is the decomposition into biconnected components is done in the graph without vertices in $X$ without requiring to build a copy of the graph with vertices in $X$ removed.

@dimpase
Copy link
Copy Markdown
Member

dimpase commented Oct 21, 2025

OK, I see

Copy link
Copy Markdown
Contributor

@Ordoviz Ordoviz left a comment

Choose a reason for hiding this comment

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

This looks good overall, but I left a few suggestions. There's also a cute little typo in the commit message of fddaf9e.

Comment thread src/sage/graphs/connectivity.pyx Outdated
Comment thread src/sage/graphs/connectivity.pyx Outdated
Comment thread src/sage/graphs/connectivity.pyx Outdated
Comment thread src/sage/graphs/base/boost_graph.pyx
@dcoudert
Copy link
Copy Markdown
Collaborator Author

I think this is ok now. Thanks.

Comment thread src/sage/graphs/connectivity.pyx Outdated
Copy link
Copy Markdown
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. Thanks

vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 30, 2026
sagemathgh-40965: Add parameter `forbidden vertices` to methods related to biconnected components
    
Similarly to methods about connected components, we add parameter
`forbidden_vertices` to methods related to biconnected components. In
some cases, it avoids to build a graph without the forbidden vertices.

The method for boost graphs could be improved to avoid a copy of the
graph.

### 📝 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.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

sagemath#40951
    
URL: sagemath#40965
Reported by: David Coudert
Reviewer(s): David Coudert, Frédéric Chapoton, Lennard Hofmann
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 30, 2026
sagemathgh-41493: add parameter immutable to `(bi_|strongly_)connected_components_subgraphs`
    
This PR adds parameter immutable to methods
`connected_components_subgraphs`, `biconnected_components_subgraphs` and
`strongly_connected_components_subgraphs`. This way, we can choose
whether the returned subgraphs should behave as the input graph (`None`)
or be mutable (`False`) or immutable (`True`).

This was discussed in sagemath#41488.

### 📝 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.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] 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: ... -->

sagemath#40965: add parameter `forbidden_vertices` to methods related to
biconnected components
    
URL: sagemath#41493
Reported by: David Coudert
Reviewer(s): David Coudert, Lennard Hofmann, Martin Rubey
vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 31, 2026
sagemathgh-41493: add parameter immutable to `(bi_|strongly_)connected_components_subgraphs`
    
This PR adds parameter immutable to methods
`connected_components_subgraphs`, `biconnected_components_subgraphs` and
`strongly_connected_components_subgraphs`. This way, we can choose
whether the returned subgraphs should behave as the input graph (`None`)
or be mutable (`False`) or immutable (`True`).

This was discussed in sagemath#41488.

### 📝 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.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [x] 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: ... -->

sagemath#40965: add parameter `forbidden_vertices` to methods related to
biconnected components
    
URL: sagemath#41493
Reported by: David Coudert
Reviewer(s): David Coudert, Lennard Hofmann, Martin Rubey
@vbraun vbraun merged commit 4f966ca into sagemath:develop Feb 1, 2026
25 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.

5 participants