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

Private GIT Repository
quelques corrections après remarques de Sylvain
[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 opposite side, 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 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 
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, 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.
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, 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.
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 $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, 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.
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 now  
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.
126
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.
132 \end{xpl}
133
134
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}$.
143 \end{thrm}
144
145
146
147
148
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.} 
151 $3$ and $4$.
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 $.
161 Finally, $S_4$ is 
162 $
163 2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4
164
165 such that $\textit{TC}_4(i) = 4$ and the theorem is established for 
166 odd and even initial values.
167
168
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 
173  
174 \[
175 \left\{
176 \begin{array}{lcl}
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}} 
179 \end{array}
180 \right.
181 \Leftrightarrow 
182 \left\{
183 \begin{array}{lcl}
184 d_{\mathsf{N}} & = & \dfrac{2^{\mathsf{N}} -\mathsf{N}.a_{\mathsf{N}}}{2} \\
185 c_{\mathsf{N}} &= &\mathsf{N} -  d_{\mathsf{N}}
186 \end{array}
187 \right.
188 \]
189
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
192 integers.
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.
202
203
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.
208
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:
215 $$
216 \left\{
217 \begin{array}{lcl}
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)
220 \end{array}
221 \right.
222 \qquad 
223 \Leftrightarrow 
224 $$
225
226 \begin{equation}
227 \left\{
228 \begin{array}{lcl}
229 zi_{\mathsf{N}} &= & 
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}}
232 \end{array}
233 \right.
234 \label{eq:sys:zt1}
235 \end{equation}
236
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.
245
246
247
248 \begin{equation}
249 \left\{
250 \begin{array}{lcl}
251 zi_{\mathsf{N}} &= & 
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}}
254 \end{array}
255 \right.
256 \label{eq:sys:zt2}
257 \end{equation}
258
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:
261 \begin{eqnarray*}
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] \\
265 \\
266 \textit{TC}_{4} & = & [4,4,4,4] \\
267 \textit{TC}_{6} & = & [10,10,10,10,12,12] \\
268 \end{eqnarray*}
269 It is not hard to verify that all these instanciations verify the aformentioned contraints. 
270
271 When  $N  \ge 8$, $\textit{TC}_{\mathsf{N}}(i)$ is defined as follows:
272 \begin{equation}
273 \textit{TC}_{\mathsf{N}}(i) = \left\{
274 \begin{array}{l} 
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}} 
277 \end{array}
278 \right.
279 \label{eq:TCN:def}
280 \end{equation}
281
282
283 We thus  have
284 \[
285 \begin{array}{rcl} 
286 \textit{TC}_{\mathsf{N}}(i) - 2.\textit{TC}_{\mathsf{N}-2}(i) 
287 &\ge& 
288 a_{\mathsf{N}} - 2(a_{\mathsf{N}-2}+2) \\
289 &\ge& 
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)\\
292 &\ge& 
293 \frac{2^{\mathsf{N}}-2N}{\mathsf{N}}
294 -2 \left( \frac{2^{\mathsf{N-2}}}{\mathsf{N-2}}+2\right)\\
295 &\ge& 
296 \frac{(\mathsf{N} -2).2^{\mathsf{N}}-2N.2^{\mathsf{N-2}}-6N(N-2)}{\mathsf{N.(N-2)}}\\
297 \end{array}
298 \]
299
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.
305
306
307 % \begin{table}[ht]
308 % $$
309 % \begin{array}{|l|l|l|l|l|l|}
310 % \hline
311 % \mathsf{N}     & 3 & 4 & 5 & 6  & 7\\
312 % \hline
313 % a_{\mathsf{N}} & 2 & 4 & 6 & 10 & 18\\
314 % \hline
315 % \end{array}
316 % $$
317 % \label{tab:an}
318 % \caption{First values of  $a_{\mathsf{N}}$}
319 % \end{table}
320
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.
325
326
327
328
329
330 %%% Local Variables:
331 %%% mode: latex
332 %%% TeX-master: "main"
333 %%% ispell-dictionary: "american"
334 %%% mode: flyspell
335 %%% End: