Is there any implementation of an algorithm finding all the cycles in a directed multigraph with self edges in Golang ? I found out that the Johnson's algo is the best solution for directed graphs and an implementation is given in gonum but it works only on directed graphs (not multigraphs) and it does not support self edges (actually directed graphs in gonum don't support self edges). Is there any short/clever hack that I can do in gonum to make johnson's work for directed multigraphs with self edges ? Or is there any other implementation in Golang ?
One thing that can be done is to create a dummy node between self edges and the duplicate edges between same pair of nodes. This will remove all self edges and graph will be a directed one and I can use the Johnson's here. But is there any better way ?