Hi everyone!


This is my first post, apologies if I made any mistakes anywhere.


Here goes the question:
Consider all length 7 binary sequences.
Let $X$ be the set of sequences with hamming weight 3 and let $Y$ be the set of sequences with hamming weight 4.
For each vertex in $X$, connect an edge to each element in $Y$ if they differ by only 1 bit.
For example, 4 edges will be connected from $0000111$ to $1000111, 0100111, 0010111$ and $0001111$.


This will result in a Bipartite Vertex Transitive graph.
To be precise, the resulting graph will be 4 regular.


How can I enumerate all Hamiltonian Cycles in this graph?


Now I am aware that a straight forward bruteforce of the 70 vertices will take forever and the generic dynamic programming approach of TSP is still quite unreachable due to the complexity being in the range of $O(2^{70})$.


The closest reference I come across is [Finding and Enumerating Hamilton Cycles in 4-Regular Graphs](http://www.inf.ethz.ch/personal/gebauerh/HC4reg.pdf), where the complexity is $O(1.783^{70})$, but still nowhere close to being solvable. I am now wondering if the additional conditions of the graph being vertex-transitive and bipartite might help be bring down the complexity. Also, there is quite a bit of "special knowledge" about the graph that we can deduce. For example, there cannot be a cycle of length 4.


Please note that this is related to [Middle Layers Conjecture](http://garden.irmacs.sfu.ca/?q=op/middle_levels_problem). I am interested to know all the Hamiltonian cycles for $k=4$ and $k=5$ (9 and 11 bit binary sequences).


I played around with the idea of using permutations to classify several paths into 1 so that only one representative needs to be checked:
Let starting vertex be $0000111$ and suppose I found all Hamiltonian cycles of the form:
$R-0001111-0000111-0010111-S$.
It appears to me that I can extend this result by applying, say a permutation of bit 1 and 4 to all elements in the cycle to get a new class: $R-1000111-0000111-0010111-S$.
Since this is a bijective function between the 2 classes, I would have effectively found all cycles in the new class too. I can use this technique to reduce 6 types of cycles of the forms:


$-0001111-0000111-0010111-$


$-0001111-0000111-0100111-$


$-0001111-0000111-1000111-$


$-0010111-0000111-0100111-$


$-0010111-0000111-1000111-$


$-0100111-0000111-1000111-$


into just one case.
However, I cannot find a way to generalize this approach too far down to compress more paths. I am interested to know how everyone thinks of this question. Does it seem to be solvable in practical time?


Finally, my pleasure to meet all of you!


EDIT: Preliminary results 2


I had written better pruning codes and I realized that it takes only at most a couple of weeks to finish the running.
However, based on extrapolation of the initial few branches I had completed, I will need some whooping 5+ TB of hard disk space just to store the results.
Comparing with just measly 24 Hamiltonian cycles for $n=5$, it seems pretty clear that even if I can find all cycles for $n=9$ there is no way I can store all of them. Sad =(



Enumerating all Hamiltonian Cycles in a Bipartite Vertex Transitive Graph
The case n=7 is pretty similar to counting the Hamiltonian cycles in the 6-cube (which has 64 vertices but more edges). That problem has been open for a long time, but was recently settled by Harri Haanpaa and myself. The approach is general and we just submitted a paper with the title "A Dynamic Programming Approach to Counting Hamiltonian Cycles in Bipartite Graphs".


Our approach can be applied to the current problem as well (Brendan is right, as usual, n=7 can be done but n=9 is hopeless). I ran a program that I have which does not take the automorphism group into account, but it became clear that one really has to utilize the symmetries. This would require some instance-specific programming, which I had neither time nor motivation to do. I can send you a preprint of the paper if you are interested. 


And what is the number of Hamiltonian cycles in the 6-cube? 
35 838 213 722 570 883 870 720


