1 Many approaches have been developed to solve the problem of building
2 a Gray code in a $\mathsf{N}$-cube~\cite{Robinson:1981:CS,DBLP:journals/combinatorics/BhatS96,ZanSup04,Bykov2016}, according to properties
3 the produced code has to verify.
4 For instance,~\cite{DBLP:journals/combinatorics/BhatS96,ZanSup04} focus on
5 balanced Gray codes. In the transition sequence of these codes,
6 the number of transitions of each element must differ
8 This uniformity is a global property on the cycle, \textit{i.e.}
9 a property that is established while traversing the whole cycle.
10 On the opposite side, when the objective is to follow a subpart
11 of the Gray code and to switch each element approximately the
13 local properties are wished.
14 For instance, the locally balanced property is studied in~\cite{Bykov2016}
15 and an algorithm that establishes locally balanced Gray codes is given.
17 The current context is to provide a function
18 $f:\Bool^{\mathsf{N}} \rightarrow \Bool^{\mathsf{N}}$ by removing a Hamiltonian
19 cycle in the $\mathsf{N}$-cube. Such a function is going to be iterated
20 $b$ times to produce a pseudo random number,
21 \textit{i.e.} a vertex in the
23 Obviously, the number of iterations $b$ has to be sufficiently large
24 to provide a uniform output distribution.
25 To reduce the number of iterations, it can be claimed
26 that the provided Gray code
27 should ideally possess both balanced and locally balanced properties.
28 However, none of the two algorithms is compatible with the second one:
29 balanced Gray codes that are generated by state of the art works~\cite{ZanSup04,DBLP:journals/combinatorics/BhatS96} are not locally balanced. Conversely,
30 locally balanced Gray codes yielded by Igor Bykov approach~\cite{Bykov2016}
31 are not globally balanced.
32 This section thus shows how the non deterministic approach
33 presented in~\cite{ZanSup04} has been automatized to provide balanced
34 Hamiltonian paths such that, for each subpart,
35 the number of switches of each element is as uniform as possible.
37 \subsection{Analysis of the Robinson-Cohn extension algorithm}
38 As far as we know three works,
39 namely~\cite{Robinson:1981:CS},~\cite{DBLP:journals/combinatorics/BhatS96},
40 and~\cite{ZanSup04} have addressed the problem of providing an approach
41 to produce balanced gray code.
42 The authors of~\cite{Robinson:1981:CS} introduced an inductive approach
43 aiming at producing balanced Gray codes, provided the user gives
44 a special subsequence of the transition sequence at each induction step.
45 This work have been strengthened in~\cite{DBLP:journals/combinatorics/BhatS96}
46 where the authors have explicitly shown how to construct such a subsequence.
47 Finally the authors of~\cite{ZanSup04} have presented
48 the \emph{Robinson-Cohn extension}
49 algorithm. There rigorous presentation of this one
50 have mainly allowed them to prove two properties.
51 The former states that if
52 $\mathsf{N}$ is a 2-power, a balanced Gray code is always totally balanced.
53 The latter states that for every $\mathsf{N}$ there
54 exists a Gray code such that all transition count numbers
55 are 2-powers whose exponents are either equal
56 or differ from each other by 1.
57 However, the authors do not prove that the approach allows to build
58 (totally balanced) Gray code.
59 What follows shows that this fact is established and first recalls the approach.
62 Let be given a $\mathsf{N}-2$-bit Gray code whose transition sequence is
63 $S_{\mathsf{N}-2}$. What follows is the
64 \emph{Robinson-Cohn extension} method~\cite{ZanSup04}
65 which produces a $n$-bits Gray code.
68 \item \label{item:nondet}Let $l$ be an even positive integer. Find
69 $u_1, u_2, \dots , u_{l-2}, v$ (maybe empty) subsequences of $S_{\mathsf{N}-2}$
70 such that $S_{\mathsf{N}-2}$ is the concatenation of
72 s_{i_1}, u_0, s_{i_2}, u_1, s_{i_3}, u_2, \dots , s_{i_l-1}, u_{l-2}, s_{i_l}, v
74 where $i_1 = 1$, $i_2 = 2$, and $u_0 = \emptyset$ (the empty sequence).
75 \item\label{item:u'}Replace in $S_{\mathsf{N}-2}$ the sequences $u_0, u_1, u_2, \ldots, u_{l-2}$
77 $\mathsf{N} - 1, u'(u_1,\mathsf{N} - 1, \mathsf{N}) , u'(u_2,\mathsf{N}, \mathsf{N} - 1), u'(u_3,\mathsf{N} - 1,\mathsf{N}), \dots, u'(u_{l-2},\mathsf{N}, \mathsf{N} - 1)$
78 respectively, where $u'(u,x,y)$ is the sequence $u,x,u^R,y,u$ such that
79 $u^R$ is $u$ in reversed order.
80 The obtained sequence is further denoted as $U$.
81 \item\label{item:VW} Construct the sequences $V=v^R,\mathsf{N},v$, $W=\mathsf{N}-1,S_{\mathsf{N}-2},\mathsf{N}$, and let $W'$ be $W$ where the first
82 two elements have been exchanged.
83 \item The transition sequence $S_{\mathsf{N}}$ is thus the concatenation $U^R, V, W'$.
86 It has been proven in~\cite{ZanSup04} that
87 $S_{\mathsf{N}}$ is the transition sequence of a cyclic $\mathsf{N}$-bits Gray code
88 if $S_{\mathsf{N}-2}$ is.
89 However, the step~(\ref{item:nondet}) is not a constructive
90 step that precises how to select the subsequences which ensures that
91 yielded Gray code is balanced.
92 Next section shows how to choose the sequence $l$ to have the balance property.
94 \subsection{Balanced Codes}
95 Let us first recall how to formalize the balance property of a Gray code.
96 Let $L = w_1, w_2, \dots, w_{2^\mathsf{N}}$ be the sequence
97 of a $\mathsf{N}$-bits cyclic Gray code.
98 The transition sequence
99 $S = s_1, s_2, \dots, s_{2^n}$, $s_i$, $1 \le i \le 2^\mathsf{N}$,
100 indicates which bit position changes between
101 codewords at index $i$ and $i+1$ modulo $2^\mathsf{N}$.
102 The \emph{transition count} function
103 $\textit{TC}_{\mathsf{N}} : \{1,\dots, \mathsf{N}\} \rightarrow \{0, \ldots, 2^{\mathsf{N}}\}$
104 gives the number of times $i$ occurs in $S$,
105 \textit{i.e.}, the number of times
106 the bit $i$ has been switched in $L$.
108 The Gray code is \emph{totally balanced} if $\textit{TC}_{\mathsf{N}}$
109 is constant (and equal to $\frac{2^{\mathsf{N}}}{\mathsf{N}}$).
110 It is \emph{balanced} if for any two bit indices $i$ and $j$,
111 $|\textit{TC}_{\mathsf{N}}(i) - \textit{TC}_{\mathsf{N}}(j)| \le 2$.
116 Let $L^*=000,100,101,001,011,111,$ $110,010$ be the Gray code that corresponds to
117 the Hamiltonian cycle that has been removed in $f^*$.
118 Its transition sequence is $S=3,1,3,2,3,1,3,2$ and its transition count function is
119 $\textit{TC}_3(1)= \textit{TC}_3(2)=2$ and $\textit{TC}_3(3)=4$. Such a Gray code is balanced.
122 $L^4=0000, 0010, 0110, 1110, 1111, 0111, 0011,$ $0001, 0101,$
123 $0100, 1100, 1101, 1001, 1011, 1010, 1000$
124 be a cyclic Gray code. Since $S=2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4$, $\textit{TC}_4$ is equal to 4 everywhere, this code
125 is thus totally balanced.
127 On the contrary, for the standard $4$-bits Gray code
128 $L^{\textit{st}}=0000,0001,0011,0010,0110,0111,0101,0100,1100,$
129 $1101,1111,1110,1010,1011,1001,1000$,
130 we have $\textit{TC}_4(1)=8$ $\textit{TC}_4(2)=4$ $\textit{TC}_4(3)=\textit{TC}_4(4)=2$ and
131 the code is neither balanced nor totally balanced.
135 \begin{thrm}\label{prop:balanced}
136 Let $\mathsf{N}$ in $\Nats^*$, and $a_{\mathsf{N}}$ be defined by
137 $a_{\mathsf{N}}= 2 \left\lfloor \dfrac{2^{\mathsf{N}}}{2\mathsf{N}} \right\rfloor$.
138 There exists then a sequence $l$ in
139 step~(\ref{item:nondet}) of the \emph{Robinson-Cohn extension} algorithm
140 such that all the transition counts $\textit{TC}_{\mathsf{N}}(i)$
141 are $a_{\mathsf{N}}$ or $a_{\mathsf{N}}+2$
142 for any $i$, $1 \le i \le \mathsf{N}$.
149 The proof is done by induction on $\mathsf{N}$. Let us immediately verify
150 that it is established for both odd and even smallest values, \textit{i.e.}
152 For the initial case where $\mathsf{N}=3$, \textit{i.e.} $\mathsf{N-2}=1$ we successively have: $S_1=1,1$, $l=2$, $u_0 = \emptyset$, and $v=\emptyset$.
153 Thus again the algorithm successively produces
154 $U= 1,2,1$, $V = 3$, $W= 2, 1, 1,3$, and $W' = 1,2,1,3$.
155 Finally, $S_3$ is $1,2,1,3,1,2,1,3$ which obviously verifies the theorem.
156 For the initial case where $\mathsf{N}=4$, \textit{i.e.} $\mathsf{N-2}=2$
157 we successively have: $S_1=1,2,1,2$, $l=4$,
158 $u_0,u_1,u_2 = \emptyset,\emptyset,\emptyset$, and $v=\emptyset$.
159 Thus again the algorithm successively produces
160 $U= 1,3,2,3,4,1,4,3,2$, $V = 4$, $W= 3, 1, 2, 1,2, 4$, and $W' = 1, 3, 2, 1,2, 4 $.
163 2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4
165 such that $\textit{TC}_4(i) = 4$ and the theorem is established for
166 odd and even initial values.
169 For the inductive case, let us first define some variables.
170 Let $c_{\mathsf{N}}$ (resp. $d_{\mathsf{N}}$) be the number of elements
171 whose transition count is exactly $a_{\mathsf{N}}$ (resp $a_{\mathsf{N}} +2$).
172 These two variables are defined by the system
177 c_{\mathsf{N}} + d_{\mathsf{N}} & = & \mathsf{N} \\
178 c_{\mathsf{N}}a_{\mathsf{N}} + d_{\mathsf{N}}(a_{\mathsf{N}}+2) & = & 2^{\mathsf{N}}
184 d_{\mathsf{N}} & = & \dfrac{2^{\mathsf{N}} -\mathsf{N}.a_{\mathsf{N}}}{2} \\
185 c_{\mathsf{N}} &= &\mathsf{N} - d_{\mathsf{N}}
190 Since $a_{\mathsf{N}}$ is even, $d_{\mathsf{N}}$ is an integer.
191 Let us first proove that both $c_{\mathsf{N}}$ and $d_{\mathsf{N}}$ are positive
193 Let $q_{\mathsf{N}}$ and $r_{\mathsf{N}}$, respectively, be
194 the quotient and the remainder in the Euclidean disvision
195 of $2^{\mathsf{N}}$ by $2\mathsf{N}$, \textit{i.e.}
196 $2^{\mathsf{N}} = q_{\mathsf{N}}.2\mathsf{N} + r_{\mathsf{N}}$, with $0 \le r_{\mathsf{N}} <2\mathsf{N}$.
197 First of all, the integer $r$ is even since $r_{\mathsf{N}} = 2^{\mathsf{N}} - q_{\mathsf{N}}.2\mathsf{N}= 2(2^{\mathsf{N}-1} - q_{\mathsf{N}}.\mathsf{N})$.
198 Next, $a_{\mathsf{N}}$ is $\frac{2^{\mathsf{N}}-r_{\mathsf{N}}}{\mathsf{N}}$. Consequently
199 $d_{\mathsf{N}}$ is $r_{\mathsf{N}}/2$ and is thus a positive integer s.t.
200 $0 \le d_{\mathsf{N}} <\mathsf{N}$.
201 The proof for $c_{\mathsf{N}}$ is obvious.
204 For any $i$, $1 \le i \le \mathsf{N}$, let $zi_{\mathsf{N}}$ (resp. $ti_{\mathsf{N}}$ and $bi_{\mathsf{N}}$)
205 be the occurence number of element $i$ in the sequence $u_0, \dots, u_{l-2}$
206 (resp. in the sequences $s_{i_1}, \dots , s_{i_l}$ and $v$)
207 in step (\ref{item:nondet}) of the algorithm.
209 Due to the definition of $u'$ in step~(\ref{item:u'}),
210 $3.zi_{\mathsf{N}} + ti_{\mathsf{N}}$ is the
211 number of element $i$ in the sequence $U$.
212 It is clear that the number of element $i$ in the sequence $V$ is
213 $2bi_{\mathsf{N}}$ due to step (\ref{item:VW}).
214 We thus have the following system:
218 3.zi_{\mathsf{N}} + ti_{\mathsf{N}} + 2.bi_{\mathsf{N}} + \textit{TC}_{\mathsf{N}-2}(i) &= &\textit{TC}_{\mathsf{N}}(i) \\
219 zi_{\mathsf{N}} + ti_{\mathsf{N}} + bi_{\mathsf{N}} & =& \textit{TC}_{\mathsf{N}-2}(i)
230 \dfrac{\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) - bi_{\mathsf{N}}}{2}\\
231 ti_{\mathsf{N}} &= & \textit{TC}_{\mathsf{N}-2}(i)-zi_{\mathsf{N}}-bi_{\mathsf{N}}
237 In this set of 2 equations with 3 unknown variables, let $b_i$ be set with 0.
238 In this case, since $\textit{TC}_{\mathsf{N}}$ is even (equal to $a_{\mathsf{N}}$
239 or to $a_{\mathsf{N}}+2$), the variable $zi_{\mathsf{N}}$ is thus an integer.
240 Let us now prove that the resulting system has always positive integer
241 solutions $z_i$, $t_i$, $0 \le z_i, t_i \le \textit{TC}_{\mathsf{N}-2}(i)$
242 and s.t. their sum is equal to $\textit{TC}_{\mathsf{N}-2}(i)$.
243 This latter consraint is obviously established if the system has a solution.
244 We thus have the following system.
252 \dfrac{\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) }{2}\\
253 ti_{\mathsf{N}} &= & \textit{TC}_{\mathsf{N}-2}(i)-zi_{\mathsf{N}}
259 The definition of $\textit{TC}_{\mathsf{N}}(i)$ depends on the value of $\mathsf{N}$.
260 When $3 \le N \le 7$, values are defined as follows:
262 \textit{TC}_{3} & = & [2,2,4] \\
263 \textit{TC}_{5} & = & [6,6,8,6,6] \\
264 \textit{TC}_{7} & = & [18,18,20,18,18,18,18] \\
266 \textit{TC}_{4} & = & [4,4,4,4] \\
267 \textit{TC}_{6} & = & [10,10,10,10,12,12] \\
269 It is not hard to verify that all these instanciations verify the aformentioned contraints.
271 When $N \ge 8$, $\textit{TC}_{\mathsf{N}}(i)$ is defined as follows:
273 \textit{TC}_{\mathsf{N}}(i) = \left\{
275 a_{\mathsf{N}} \textrm{ if } 1 \le i \le c_{\mathsf{N}} \\
276 a_{\mathsf{N}}+2 \textrm{ if } c_{\mathsf{N}} +1 \le i \le c_{\mathsf{N}} + d_{\mathsf{N}}
286 \textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i)
288 a_{\mathsf{N}} - 2(a_{\mathsf{N}-2}+2) \\
290 \frac{2^{\mathsf{N}}-r_{\mathsf{N}}}{\mathsf{N}}
291 -2 \left( \frac{2^{\mathsf{N-2}}-r_{\mathsf{N-2}}}{\mathsf{N-2}}+2\right)\\
293 \frac{2^{\mathsf{N}}-2N}{\mathsf{N}}
294 -2 \left( \frac{2^{\mathsf{N-2}}}{\mathsf{N-2}}+2\right)\\
296 \frac{(\mathsf{N} -2).2^{\mathsf{N}}-2N.2^{\mathsf{N-2}}-6N(N-2)}{\mathsf{N.(N-2)}}\\
300 A simple variation study of the function $t:\R \rightarrow \R$ such that
301 $x \mapsto t(x) = (x -2).2^{x}-2x.2^{x-2}-6x(x-2)$ shows that
302 its derivative is strictly postive if $x \ge 6$ and $t(8)=224$.
303 The integer $\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i)$ is thus positive
304 for any $\mathsf{N} \ge 8$ and the proof is established.
309 % \begin{array}{|l|l|l|l|l|l|}
311 % \mathsf{N} & 3 & 4 & 5 & 6 & 7\\
313 % a_{\mathsf{N}} & 2 & 4 & 6 & 10 & 18\\
318 % \caption{First values of $a_{\mathsf{N}}$}
321 For each element $i$, we are then left to choose $zi_{\mathsf{N}}$ positions
322 among $\textit{TC}_{\mathsf{N}}(i)$, which leads to
323 ${\textit{TC}_{\mathsf{N}}(i) \choose zi_{\mathsf{N}} }$ possibilities.
324 Notice that all such choices lead to a hamiltonian path.
332 %%% TeX-master: "main"
333 %%% ispell-dictionary: "american"