I have found an algorithm that might be helpful in finding minimal superpermutations.
Given a weighted directed graph (V,E) the algorithm finds a minimal weight cycle cover of that graph (vertex-disjoint cycle cover).
The algorithm first takes each vertex of the graph and splits it in two; one vertex for all outgoing edges and one for all incoming edges.
We get an bipartite graph. On this bipartite graph we apply the Hungarian Algorithm (
Wikipedia,
My explanation) to find a minimum weight perfect matching.
Then finally it glues the vertices back together, then the matching will become a cycle cover.
There is still a problem we have to solve; If we apply the algorithm on the complete permutation graph we get a trivial cycle cover: all 1-cycles.
We must figure out if we can adapt the input graph such that the output is a Hamiltonian cycle, while preserving minimality.
I have two possible approaches, but haven't tested them
1. Run the algorithm multiple times, each time giving the edges of the found cycle cover a little extra weight. This might not converge to a Hamiltionian cycle.
2. Using the cycle cover found by the algorithm, set up a "chair dance" for each cycle. For each cycle of n vertices we add (n-1) chair vertices. These new vertices get a bidirectional edge of weight 0 to all vertices of the cycle. We remove all edges that belonged to the cycle cover. This forces at least one outgoing edge for each cycle, as well as at least one incoming edge for each cycle. This way we find a cycle cover over the 1-cycles but this method might not preserve minimality.