]> AND Private Git Repository - 16dcc.git/blob - hamilton.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Ajout figure 3-cube
[16dcc.git] / hamilton.tex
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
7 at most by 2.
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 other hand, when the objective is to follow a subpart 
11 of the Gray code and to switch each element approximately the 
12 same amount of times,
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.
16  
17 The current context is to provide a function 
18 $f:\Bool^{\mathsf{N}} \rightarrow \Bool^{\mathsf{N}}$ by removing an Hamiltonian 
19 cycle in the $\mathsf{N}$-cube. Such a function is going to be iterated
20 $b$ times to produce a pseudorandom number,
21 \textit{i.e.}, a vertex in the 
22 $\mathsf{N}$-cube.
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, both algorithms are incompatible 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.
36
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, assuming the user gives 
44 a special subsequence of the transition sequence at each induction step.
45 This work has been strengthened in~\cite{DBLP:journals/combinatorics/BhatS96}
46 where the authors have explicitly shown how to build such a subsequence.
47 Finally the authors of~\cite{ZanSup04} have presented 
48 the \emph{Robinson-Cohn extension} 
49 algorithm. Their rigorous presentation of this algorithm
50 has 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 codes. 
59 What follows shows that this fact is established and first recalls the approach.
60
61
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 $\mathsf{N}$-bits Gray code.
66
67 \begin{enumerate}
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 
71 $$
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
73 $$
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}$ 
76   by 
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'$.
84 \end{enumerate} 
85
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, step~(\ref{item:nondet}) is not a constructive 
90 step that precises how to select the subsequences which ensure that 
91 yielded Gray code is balanced.
92 Following sections show how to choose the sequence $l$ to have the balance property.
93
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$.   
107
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$.
112
113
114    
115 \begin{xpl}
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. 
120
121 Let  $L^4$ $=0000,0010,0110,1110,1111,0111,0011,0001,0101,0100,1100,1101,1001,1011,1010,1000$
122 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
123 is thus totally balanced.
124
125 On the contrary, for the standard $4$-bits Gray code  
126 $L^{\textit{st}}=0000,0001,0011, 
127 0010,0110,0111,0101,0100,$ \newline $1100,1101,1111,1110,1010,1011,1001,1000$,
128 we have $\textit{TC}_4(1)=8$ $\textit{TC}_4(2)=4$ $\textit{TC}_4(3)=\textit{TC}_4(4)=2$ and
129 the code is neither balanced nor totally balanced.
130 \end{xpl}
131
132
133 \begin{thrm}\label{prop:balanced}
134 Let $\mathsf{N}$ in $\Nats^*$, and $a_{\mathsf{N}}$ be defined by
135 $a_{\mathsf{N}}= 2 \left\lfloor \dfrac{2^{\mathsf{N}}}{2\mathsf{N}} \right\rfloor$. 
136 There exists then a sequence $l$ in 
137 step~(\ref{item:nondet}) of the \emph{Robinson-Cohn extension} algorithm
138 such that all the transition counts $\textit{TC}_{\mathsf{N}}(i)$ 
139 are $a_{\mathsf{N}}$ or $a_{\mathsf{N}}+2$ 
140 for any $i$, $1 \le i \le \mathsf{N}$.
141 \end{thrm}
142
143
144
145
146
147 The proof is done by induction on $\mathsf{N}$. Let us immediately verify 
148 that it is established for both odd and even smallest values, \textit{i.e.}, 
149 $3$ and $4$.
150 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$.
151 Thus again the algorithm successively produces 
152 $U= 1,2,1$, $V = 3$, $W= 2, 1, 1,3$, and $W' = 1,2,1,3$.
153 Finally, $S_3$ is $1,2,1,3,1,2,1,3$ which obviously verifies the theorem.    
154  For the initial case where $\mathsf{N}=4$, \textit{i.e.}, $\mathsf{N-2}=2$ 
155 we successively have:  $S_1=1,2,1,2$, $l=4$, 
156 $u_0,u_1,u_2 = \emptyset,\emptyset,\emptyset$, and $v=\emptyset$.
157 Thus again the algorithm successively produces 
158 $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 $.
159 Finally, $S_4$ is 
160 $
161 2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4
162
163 such that $\textit{TC}_4(i) = 4$ and the theorem is established for 
164 odd and even initial values.
165
166
167 For the inductive case, let us first define some variables.
168 Let $c_{\mathsf{N}}$ (resp. $d_{\mathsf{N}}$) be the number of elements 
169 whose transition count is exactly $a_{\mathsf{N}}$ (resp $a_{\mathsf{N}} +2$).
170 Both of these variables are defined by the system 
171  
172 \[
173 \left\{
174 \begin{array}{lcl}
175 c_{\mathsf{N}} + d_{\mathsf{N}} & = & \mathsf{N} \\
176 c_{\mathsf{N}}a_{\mathsf{N}} + d_{\mathsf{N}}(a_{\mathsf{N}}+2) & = & 2^{\mathsf{N}} 
177 \end{array}
178 \right.
179 \Leftrightarrow 
180 \left\{
181 \begin{array}{lcl}
182 d_{\mathsf{N}} & = & \dfrac{2^{\mathsf{N}} -\mathsf{N}.a_{\mathsf{N}}}{2} \\
183 c_{\mathsf{N}} &= &\mathsf{N} -  d_{\mathsf{N}}
184 \end{array}
185 \right.
186 \]
187
188 Since $a_{\mathsf{N}}$ is even, $d_{\mathsf{N}}$ is an integer.
189 Let us first prove that both $c_{\mathsf{N}}$ and  $d_{\mathsf{N}}$ are positive
190 integers.
191 Let $q_{\mathsf{N}}$ and $r_{\mathsf{N}}$, respectively, be  
192 the quotient and the remainder in the Euclidean division
193 of $2^{\mathsf{N}}$ by $2\mathsf{N}$, \textit{i.e.}, 
194 $2^{\mathsf{N}} = q_{\mathsf{N}}.2\mathsf{N} + r_{\mathsf{N}}$, with $0 \le r_{\mathsf{N}} <2\mathsf{N}$.
195 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})$. 
196 Next,  $a_{\mathsf{N}}$ is $\frac{2^{\mathsf{N}}-r_{\mathsf{N}}}{\mathsf{N}}$. Consequently 
197 $d_{\mathsf{N}}$ is $r_{\mathsf{N}}/2$ and is thus a positive integer s.t. 
198 $0 \le d_{\mathsf{N}} <\mathsf{N}$.
199 The proof for $c_{\mathsf{N}}$ is obvious.
200
201
202 For any $i$, $1 \le i \le \mathsf{N}$, let $zi_{\mathsf{N}}$ (resp. $ti_{\mathsf{N}}$ and $bi_{\mathsf{N}}$) 
203 be the occurrence number of element $i$ in the sequence $u_0, \dots, u_{l-2}$ 
204 (resp. in the sequences $s_{i_1}, \dots , s_{i_l}$ and $v$)
205 in step (\ref{item:nondet}) of the algorithm.
206
207 Due to the definition of $u'$ in step~(\ref{item:u'}), 
208 $3.zi_{\mathsf{N}} + ti_{\mathsf{N}}$ is the
209  number of element $i$ in the sequence $U$.
210 It is clear that the number of element $i$ in the sequence $V$ is 
211 $2bi_{\mathsf{N}}$ due to step (\ref{item:VW}). 
212 We thus have the following system:
213 $$
214 \left\{
215 \begin{array}{lcl}
216 3.zi_{\mathsf{N}} + ti_{\mathsf{N}} + 2.bi_{\mathsf{N}} + \textit{TC}_{\mathsf{N}-2}(i) &= &\textit{TC}_{\mathsf{N}}(i) \\
217 zi_{\mathsf{N}} + ti_{\mathsf{N}}  + bi_{\mathsf{N}} & =& \textit{TC}_{\mathsf{N}-2}(i)
218 \end{array}
219 \right.
220 \qquad 
221 \Leftrightarrow 
222 $$
223
224 \begin{equation}
225 \left\{
226 \begin{array}{lcl}
227 zi_{\mathsf{N}} &= & 
228 \dfrac{\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) - bi_{\mathsf{N}}}{2}\\
229 ti_{\mathsf{N}} &= & \textit{TC}_{\mathsf{N}-2}(i)-zi_{\mathsf{N}}-bi_{\mathsf{N}}
230 \end{array}
231 \right.
232 \label{eq:sys:zt1}
233 \end{equation}
234
235 In this set of 2 equations with 3 unknown variables, let $b_i$ be set with 0.
236 In this case, since $\textit{TC}_{\mathsf{N}}$ is even (equal to $a_{\mathsf{N}}$ 
237 or to $a_{\mathsf{N}}+2$), the variable  $zi_{\mathsf{N}}$ is thus an integer.
238 Let us now prove that the resulting system has always positive integer 
239 solutions $z_i$, $t_i$, $0 \le z_i, t_i \le \textit{TC}_{\mathsf{N}-2}(i)$ 
240 and s.t. their sum is equal to $\textit{TC}_{\mathsf{N}-2}(i)$. 
241 This latter constraint is obviously established if the system has a solution.
242 We thus have the following system.
243
244
245
246 \begin{equation}
247 \left\{
248 \begin{array}{lcl}
249 zi_{\mathsf{N}} &= & 
250 \dfrac{\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) }{2}\\
251 ti_{\mathsf{N}} &= & \textit{TC}_{\mathsf{N}-2}(i)-zi_{\mathsf{N}}
252 \end{array}
253 \right.
254 \label{eq:sys:zt2}
255 \end{equation}
256
257 The definition of $\textit{TC}_{\mathsf{N}}(i)$ depends on the value of $\mathsf{N}$.
258 When $3 \le N \le 7$, values are defined as follows:
259 \begin{eqnarray*}
260 \textit{TC}_{3} & = & [2,2,4] \\
261 \textit{TC}_{5} & = & [6,6,8,6,6] \\
262 \textit{TC}_{7} & = & [18,18,20,18,18,18,18] \\
263 \\
264 \textit{TC}_{4} & = & [4,4,4,4] \\
265 \textit{TC}_{6} & = & [10,10,10,10,12,12] \\
266 \end{eqnarray*}
267 It is not difficult to check that all these instanciations verify the aforementioned constraints. 
268
269 When  $N  \ge 8$, $\textit{TC}_{\mathsf{N}}(i)$ is defined as follows:
270 \begin{equation}
271 \textit{TC}_{\mathsf{N}}(i) = \left\{
272 \begin{array}{l} 
273 a_{\mathsf{N}} \textrm{ if } 1 \le i \le c_{\mathsf{N}} \\
274 a_{\mathsf{N}}+2 \textrm{ if } c_{\mathsf{N}} +1 \le i \le c_{\mathsf{N}} + d_{\mathsf{N}} 
275 \end{array}
276 \right.
277 \label{eq:TCN:def}
278 \end{equation}
279
280
281 We thus  have
282 \[
283 \begin{array}{rcl} 
284 \textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) 
285 &\ge& 
286 a_{\mathsf{N}} - 2(a_{\mathsf{N}-2}+2) \\
287 &\ge& 
288 \frac{2^{\mathsf{N}}-r_{\mathsf{N}}}{\mathsf{N}}
289 -2 \left( \frac{2^{\mathsf{N-2}}-r_{\mathsf{N-2}}}{\mathsf{N-2}}+2\right)\\
290 &\ge& 
291 \frac{2^{\mathsf{N}}-2N}{\mathsf{N}}
292 -2 \left( \frac{2^{\mathsf{N-2}}}{\mathsf{N-2}}+2\right)\\
293 &\ge& 
294 \frac{(\mathsf{N} -2).2^{\mathsf{N}}-2N.2^{\mathsf{N-2}}-6N(N-2)}{\mathsf{N.(N-2)}}\\
295 \end{array}
296 \]
297
298 A simple variation study of the function $t:\R \rightarrow \R$ such that 
299 $x \mapsto t(x) = (x -2).2^{x}-2x.2^{x-2}-6x(x-2)$ shows that 
300 its derivative is strictly positive if $x \ge 6$ and $t(8)=224$.
301 The integer $\textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i)$ is thus positive 
302 for any $\mathsf{N} \ge 8$ and the proof is established.
303
304
305 % \begin{table}[ht]
306 % $$
307 % \begin{array}{|l|l|l|l|l|l|}
308 % \hline
309 % \mathsf{N}     & 3 & 4 & 5 & 6  & 7\\
310 % \hline
311 % a_{\mathsf{N}} & 2 & 4 & 6 & 10 & 18\\
312 % \hline
313 % \end{array}
314 % $$
315 % \label{tab:an}
316 % \caption{First values of  $a_{\mathsf{N}}$}
317 % \end{table}
318
319 For each element $i$, we are then left to choose $zi_{\mathsf{N}}$ positions 
320 among $\textit{TC}_{\mathsf{N}}(i)$, which leads to 
321 ${\textit{TC}_{\mathsf{N}}(i) \choose zi_{\mathsf{N}} }$ possibilities.
322 Notice that all such choices lead to an Hamiltonian path.
323
324
325
326
327
328 %%% Local Variables:
329 %%% mode: latex
330 %%% TeX-master: "main"
331 %%% ispell-dictionary: "american"
332 %%% mode: flyspell
333 %%% End: