-
-
Notifications
You must be signed in to change notification settings - Fork 648
use decomposition into biconnected components in Gomory-Hu tree #39478
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
use decomposition into biconnected components in Gomory-Hu tree #39478
Conversation
Documentation preview for this PR (built with commit 2cda7d5; changes) is ready! 🎉 |
9b08796
to
2cda7d5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a real need to "avoid" recursion by using a stack?
Anyway, LGTM
Thank you for the review. The stack has been introduced in #38791 to avoid reaching the maximum recursion depth (https://ask.sagemath.org/question/79577/graphs-gomory-hu-tree-memory-blow-up-and-max-recursion-depth/). Furthermore, the construction is faster this way. |
sagemathgh-39478: use decomposition into biconnected components in Gomory-Hu tree We use method `blocks_and_cut_vertices` to decompose the graph into biconnected components. - isolated vertices can be ignored - a block of size 2 is a cut-edge. It suffices to add an edge of capacity 1 to the tree. - it remains to compute the Gomory-Hu trees of the remaining biconnected components. ### 📝 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#39478 Reported by: David Coudert Reviewer(s): Dima Pasechnik
sagemathgh-39478: use decomposition into biconnected components in Gomory-Hu tree We use method `blocks_and_cut_vertices` to decompose the graph into biconnected components. - isolated vertices can be ignored - a block of size 2 is a cut-edge. It suffices to add an edge of capacity 1 to the tree. - it remains to compute the Gomory-Hu trees of the remaining biconnected components. ### 📝 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#39478 Reported by: David Coudert Reviewer(s): Dima Pasechnik
sagemathgh-39478: use decomposition into biconnected components in Gomory-Hu tree We use method `blocks_and_cut_vertices` to decompose the graph into biconnected components. - isolated vertices can be ignored - a block of size 2 is a cut-edge. It suffices to add an edge of capacity 1 to the tree. - it remains to compute the Gomory-Hu trees of the remaining biconnected components. ### 📝 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#39478 Reported by: David Coudert Reviewer(s): Dima Pasechnik
sagemathgh-39478: use decomposition into biconnected components in Gomory-Hu tree We use method `blocks_and_cut_vertices` to decompose the graph into biconnected components. - isolated vertices can be ignored - a block of size 2 is a cut-edge. It suffices to add an edge of capacity 1 to the tree. - it remains to compute the Gomory-Hu trees of the remaining biconnected components. ### 📝 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#39478 Reported by: David Coudert Reviewer(s): Dima Pasechnik
We use method
blocks_and_cut_vertices
to decompose the graph into biconnected components.📝 Checklist
⌛ Dependencies