-
-
Notifications
You must be signed in to change notification settings - Fork 437
Simple Cycle Search #2181
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
Simple Cycle Search #2181
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2181 +/- ##
==========================================
+ Coverage 84.31% 84.33% +0.02%
==========================================
Files 380 381 +1
Lines 63015 63186 +171
Branches 12293 12322 +29
==========================================
+ Hits 53130 53291 +161
- Misses 9885 9895 +10
Continue to review full report in Codecov by Sentry.
|
|
Great to see such quick progress! Small note: Be sure to work on the latest igraph 0.10 will be released within days, at which point the Because of the workload with the release, we won't be able to look at this PR for a while. We can discuss the issue with persisting the state when the dust settles a bit. |
|
|
…nto simple-cycle-detection
…nto simple-cycle-detection
…nto simple-cycle-detection
…mpilation works yet
…ist_t with better suited type
|
There are quite a few unrelated changes in this PR that should ideally be reverted in order to make it easier to review later. These unrelated changes can roughly be grouped as follows:
Can you revert these so we can see better what the relevant changes are? |
|
Yes, sure, thanks for the feedback, will do. Currently, there is lots other things wrong in my code that I might focus on first; I suppose you will want to squash merge this PR in the end anyway, if at all |
|
Also, what will you need |
Yes, I actually have a comment where I use the |
|
@ntamas Let me know if you have any comments before I merge this. @GenieTim Can you please also have a look, in case I missed something? I would like to merge this before the next release. One issue is that the function gets slow on large graphs with few cycles, such as a very large cycle graph. We can try to improve on this later. On small graphs with a huge number of cycles (which are likely to be a common use case) the performance is good. I made the functions for searching from a single vertex private for now, as I'm not sure what the best way is to expose these, and I don't want to delay the PR further. One such unused function is commented. Commented debugging code is left in for now. |
|
Added a |
|
A big thank you for your hard work, and patience on this @GenieTim! If all goes well, it will be released later this week. I'd love to have this in the Python interface, to actually get it out to users. If you have time to help with that, let me know, and I ca give you the basic steps. https://github.com/igraph/python-igraph/ Exposing We can continue making improvements, and expose more functions which are now internal, at a later stage. It might also be good to look into the performance on large cycles (I guess this relates to not running the search from all vertices). |
|
Well, thank you too. Progress with the Python binding will be handled in igraph/python-igraph#803 |
This could one day fix #1398, but still requires lots of work.
As of writing this (after first commit), I guess Johnson's algorithm is sketched out, but the results are never returned as I have not yet agreed on what structure I want to use to persist the search state between different calls to the function.
Various other todos are noted in the code.