Skip to content

Implementing DigraphEdgeConnectivity - #884

Merged
james-d-mitchell merged 25 commits into
digraphs:mainfrom
RheyaM:EdgeConnectivity
Oct 8, 2026
Merged

james-d-mitchell merged 25 commits into
digraphs:mainfrom
RheyaM:EdgeConnectivity

Conversation

@RheyaM

@RheyaM RheyaM commented Nov 21, 2025

Copy link
Copy Markdown
Contributor

Implemented two methods for calculating the EdgeConnectivity of a Digraph, one using Spanning Trees and one using Dominating Sets, based on the Algorithms detailed in: https://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf

Additional functions: DigraphDominatingSet() and DigraphGetNeighbourhood(), for getting a Dominating Set of a digraph and getting the neighbourhood of a subset of vertices in a digraph, respectively.

@reiniscirpons reiniscirpons left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for the implementation! I had some suggestions for the documentation and for improving the performance of the methods. Mainly more details in the docs and reworking some loops to implement more efficient DFS.

Some other things:

  • The documentation is not currently linked in the manual. You should edit the correct doc/z-chapX.xml file to add this. For example, to get the DigraphDominatingSet documentation to show up you should add the <#Include Label="DigraphDominatingSet"> tag in the correct place of doc/z-chap4.xml. You can test this by seeing if ?DigraphDominatingSet shows up the docs after running DigraphsMakeDoc() in gap. Same applies for the other functions.
  • Functions need to be more careful about symmetric vs non symmetric digraphs.
  • You should re-run the benchmarks after making the performance based changes to the implementation. I think currently the benchmarks are skewed by the time it takes to find the dominating set/spanning tree, but after the reimplementation this time should become negligible, and it will be more about how many vertices need to be checked. So maybe hold-off on removing the methods for now.

Afterwards should be good to merge!

Comment thread doc/oper.xml Outdated
Comment thread doc/oper.xml Outdated
Comment thread doc/weights.xml Outdated
Comment thread doc/weights.xml Outdated
Comment thread gap/oper.gi Outdated
Comment thread gap/weights.gi Outdated
Comment thread gap/weights.gi Outdated
Comment thread gap/weights.gi Outdated
Comment thread gap/weights.gi Outdated
Comment thread gap/weights.gi Outdated
@mtorpey

mtorpey commented Apr 23, 2026 •

Copy link
Copy Markdown
Collaborator

@RheyaM, I wonder if you could merge or rebase to resolve the merge conflicts with the current main branch. Then could you indicate whether you think you've resolved @reiniscirpons's comments? We can then review this again.

@reiniscirpons

Copy link
Copy Markdown
Collaborator

Thanks again for the PR @RheyaM ! I took some time to finish off some minor polish so we can merge into main.

@mtorpey @james-d-mitchell Could either of you give this a review when you have the time please?

@codecov

codecov Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.47%. Comparing base (c4ced48) to head (c3f4897).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #884      +/-   ##
==========================================
+ Coverage   97.46%   97.47%   +0.01%     
==========================================
  Files          51       51              
  Lines       21191    21301     +110     
  Branches      639      639              
==========================================
+ Hits        20653    20763     +110     
  Misses        473      473              
  Partials       65       65              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@james-d-mitchell james-d-mitchell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Some superficial changes, then I'm happy to merge this

Comment thread doc/attr.xml Outdated
Comment thread doc/attr.xml Outdated
Comment thread doc/oper.xml Outdated
Comment thread doc/oper.xml Outdated
Comment thread doc/weights.xml Outdated
Comment thread gap/attr.gi Outdated
Comment thread gap/attr.gi Outdated
Comment thread gap/attr.gi Outdated
Comment thread gap/oper.gi Outdated
Comment thread gap/oper.gi Outdated
@reiniscirpons

Copy link
Copy Markdown
Collaborator

@james-d-mitchell ready for re-review

@james-d-mitchell
james-d-mitchell merged commit 2d68171 into digraphs:main Oct 8, 2026
28 checks passed
@james-d-mitchell

Copy link
Copy Markdown
Member

Thanks @RheyaM and @reiniscirpons !

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.

5 participants