I have a directed graph with 562 vertices and 3961 edges (the edges are http://a3nm.net/share/raw_graph_284374.txt if you are curious) and I would like to find a cycle in this graph which does not go twice through the same vertex and is as long as possible.
I am aware that this problem is NP-hard (by reduction from the hamiltonian cycle problem), but I don't really care about finding the longest cycle, just a reasonably long cycle. A naive DFS implementation can find cycles of length 100-200, but I'm sure that there are many heuristics and improvements that one could use to find a longer one.
Is there any (open-source) program or library that I could use to find a longer cycle in a graph of this size?