I was approached with the following question by a person who ran into it while working on her Ph.D. thesis in BioInformatics (years ago we worked on the same project):I am working with a directed graph with about 1000 nodes and 4300 edges. Do you know of any algorithm which can calculate the number of cycles each node is involved in. I have done some literature search, and tried to come up with some feasible ideas myself unsuccessfully. A stochastic approximation would also work.
Later on I got some more detail:
As far as the cycle problem being NP-hard. I do realize that, so what I am hoping to find is either some brilliant algorithm that can simplify it'somehow, or a stochastic approximation for it. For my work I need to break the cycles in the graph. In order to have this make sense biologically I need for the nodes that are broken more frequently to be those which are involved in the most cycles. So, it does not have to be an exact count – but rather an approximate listing of the most to least (as far as number of cycles) for all the nodes.
Does any one no anything about that?
Many thanks,
Alex