Calculating minimal cycle basis on IGraph

Hi! I have to calculate minimal cycles bases for a bunch of graphs each of have around 500-1000 nodes (in that range). The algorithm implemented in NetworkX takes extremely long. While I’ve noticed it is extremely fast in mathematica. However, I want to be able to use a method that is native to python environment. So, does IGraph implement a faster method for calculating cycle basis? Or any other method I am not aware of, that is faster and can be implemented in python is useful too.


It is coming “soon”. I’m done with most of the implementation of the unweighted case, but some parts need to be finished and I have very little time right now. The weighted case still needs to be done.

The unweighted case will certainly be in C/igraph 0.10 and whatever high-level interfaces are based on that.

The work-in-progress implementation I wrote is orders of magnitude faster than networkx’s.

That’s great to know! I have been using networkx algorithm for weighted graphs and it is pretty slow. I am looking forward to using it. Is this implementation is going to be in python? or just in the mathematica package?

It will be in both Mathematica in Python. It is being contributed to the C core.

Also, to be clear, I can’t make promises about implementing the weighted case for the next release. The unweighted case will certainly be there, but I may not have time for the weighted one before the next release, so it may need to be delayed.