1 On a vu dans la partie précédente que pour avoir un générateur à sortie
2 uniforme, il est nécessaire que la matrice d'adjacence du graphe d'itération du
3 système soit doublement stochastique. Nous présentons dans cette partie une
4 méthode permettant de générer de telles matrices.
6 Les approches théoriques basées sur la programmation logique par contraintes sur
7 domaines finis ne sont pas envisageables en pratique dès que la taille des
8 matrices considérées devient suffisamment grande.
10 Une approche plus pragmatique consiste à supprimer un cycle hamiltonien dans le
11 graphe d'itérations, ce qui revient à supprimer en chaque n{\oe}ud de ce graphe une
12 arête sortante et une arête entrante.
16 $3$-cube dans lequel le cycle hamiltonien défini par la séquence
17 $000,100,101,001,011,111,110,010,000$ a été supprimé.
18 Ceci correspond à la fonction $f^*$ définie par
20 (x_2 \oplus x_3, \overline{x_1}\overline{x_3} + x_1\overline{x_2},
21 \overline{x_1}\overline{x_3} + x_1x_2).
24 Le graphe des itérations chaotiques de $f^*$ est représenté à la
25 Figure~\ref{fig:iteration:f*}.
26 La matrice de Markov correspondante est donnée à
27 la figure~\ref{fig:markov:f*}.
31 \subfloat[Graphe des itérations chaotiques de $f^*$.
32 \label{fig:iteration:f*}]{
33 \begin{minipage}{0.55\linewidth}
35 \includegraphics[width=\columnwidth]{images/iter_f}%
38 \subfloat[Matrice de Markov du graphe d'itérations chaotiques de
39 $f^*$\label{fig:markov:f*}]{%
40 \begin{minipage}{0.35\linewidth}
44 \begin{array}{cccccccc}
45 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\
47 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0 \\
49 0 & 0 & 1 & 1 & 0 & 0 & 1 & 1 \\
51 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\
53 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 \\
55 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
57 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
59 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 \\
66 \caption{Représentations de $f^*(x_1,x_2,x_3)=
67 (x_2 \oplus x_3, \overline{x_1}\overline{x_3} + x_1\overline{x_2},
68 \overline{x_1}\overline{x_3} + x_1x_2)$.}\label{fig1}
73 \subsection{Suppression des cycles hamiltoniens}
74 \label{sec:hamiltonian}
76 Dans un premier temps, nous montrons en section~\ref{sub:removing:theory} que la
77 suppression d'un cycle hamiltonien produit bien des matrices doublement
78 stochastiques. Nous établissons ensuite le lien avec les codes de Gray
81 \subsubsection{Aspects théoriques}
82 \label{sub:removing:theory}
84 Nous donnons deux résultats complémentaires, reliant la suppression d'un cycle
85 hamiltonien du $n$-cube, les matrices doublement stochastiques et la forte
86 connexité du graphe d'itérations.
88 \begin{Theo}\label{th:supprCH}
89 La suppression d'un cycle hamiltonien dans une matrice de Markov $M$, issue du
90 $n$-cube, produit une matrice doublement stochastique.
94 Un cycle hamiltonien passe par chaque n{\oe}ud une et une seule fois.
95 Pour chaque n{\oe}ud $v$ dans le $n$-cube $C_1$,
96 une arête entrante $(o,v)$ et une arête sortante $(v,e)$
98 Considérons un autre $n$-cube $C_2$ auquel on ajoute les arêtes
99 pour le rendre complet. La matrice de Markov $M$ correspondante est
100 remplie de $\frac{1}{2^n}$ et est doublement stochastique.
101 Comme on enlève exactement une arête sortante $(v,e)$
102 à chaque n{\oe}ud $v$ dans $C_1$, on enlève ainsi dans
103 $C_2$ les $2^{n-1}$ arêtes issues de $v$ et
104 relatives aux parties de $\{1,\ldots,n\}$ qui
105 contiennent $e$. Cela revient à annuler
106 dans la matrice $M$ les $2^{n-1}$ coefficients correspondants et ajouter
107 $1/2$ à l'élément $M_{vv}$.
108 La matrice $M$ reste stochastique.
109 On effectue un raisonnement similaire pour les arêtes entrantes:
110 comme on enlève exactement une arête entrante $(o,v)$ pour chaque
111 n{\oe}ud $v$ dans $C_1$, dans $C_2$, ce sont exactement
112 $2^{n-1}$ arêtes menant à $v$ qui sont enlevées.
113 Dans $M$ les $2^{n-1}$ coefficients correspondants sont mis à 0 et
114 $M_{vv}$ vaut alors $\frac{2^{n-1} +1}{2}$.
115 $M$ est donc doublement stochastique.
120 \begin{Theo}\label{th:grapheFC}
121 Le graphe d'itérations issu du $n$-cube, auquel un cycle hamiltonien est
122 enlevé, est fortement connexe.
127 On considère les deux $n$-cubes $C_1$ et $C_2$ définis
128 dans la preuve du théorème~\ref{th:supprCH}.
129 Dans $C_1$ on considère le cycle inverse $r$ du cycle
131 Aucun arc n'appartient à la fois à $r$ et à $c$:
132 en effet, sinon $c$ contiendrait un n{\oe}ud deux fois.
133 Ainsi aucune arête de $r$ n'est enlevée dans $C_1$.
134 Le cycle $r$ est évidement un cycle hamiltonien et contient tous les n{\oe}uds.
135 Tous les n{\oe}uds de $C_1$ dans lequel $c$ a été enlevé sont accessibles
136 depuis n'importe quel n{\oe}ud. Le graphe des itérations $\Gamma$ qui
137 étend le précédent graphe est ainsi fortement connexe.
143 Les preuves, relativement directes, sont laissées en exercices au lecteur. Par
144 contre, ce qui est moins aisé est la génération de cycles hamiltoniens dans le
145 $n$-cube, ce qui revient à trouver des \emph{codes de Gray cycliques}. On
146 rappelle que les codes de Gray sont des séquences de mots binaires de taille
147 fixe ($n$), dont les éléments successifs ne différent que par un seul bit. Un
148 code de Gray est \emph{cyclique} si le premier élément et le dernier ne
149 différent que par un seul bit.
151 \subsection{Lien avec les codes de Gray cycliques (totalement) équilibrés}
154 La borne inférieure du nombre de codes de Gray ($\left(\frac{n*\log2}{e \log
155 \log n}\times(1 - o(1))\right)^{2^n}$), donnée dans~\cite{Feder2009NTB},
156 indique une explosion combinatoire pour notre recherche. Afin de contourner
157 cette difficulté, nous nous restreignons aux codes induisant un graphe
158 d'itérations $\Gamma(f)$ \emph{uniforme}. Cette uniformité se traduit par des
159 nombres d'arcs équilibrés entre les \emph{dimensions} du graphe, la dimension
160 $i$ correspondant aux seules variations du bit $i$ (parmi les $n$ bits au
161 total). Cette approche revient à chercher des codes de Gray cycliques
164 Un code de Gray équilibré peut être défini de la façon suivante :
166 \begin{Def}[Code de Gray cyclique équilibré]\label{def:grayequ}
167 Soit $L = w_1, w_2, \dots, w_{2^n}$ la séquence d'un code de Gray cyclique à
168 $n$ bits. Soit $S = s_1, s_2, \dots, s_{2^n}$ la séquence des transitions où
169 $s_i$, $1 \le i \le 2^n$ est l'indice du seul bit qui varie entre les mots
170 $w_i$ et $w_{i+1}$. Enfin, soit $\textit{NT}_n : \{1,\dots, n\} \rightarrow
171 \{0, \ldots, 2^n\}$ la fonction qui au paramètre $i$ associe le \emph{nombre
172 de transitions} présentes dans la séquence $L$ pour le bit $i$, c'est-à-dire
173 le nombre d'occurrences de $i$ dans $S$.
175 Le code $L$ est \textbf{équilibré} si $\forall
176 i,j\in\{1,...,n\},~|\textit{NT}_n(i) - \textit{NT}_n(j)| \le 2$. Il est
177 \textbf{totalement équilibré} si $\forall
178 i\in\{1,...,n\},~\textit{NT}_n(i)=\frac{2^n}{n}$.
181 On peut donc déjà déduire qu'il ne peut exister des codes de Gray totalement
182 équilibrés que pour les systèmes ayant un nombre d'éléments $n=2^k, k>0$. De
183 plus, comme dans tout code de Gray cyclique, $\textit{NT}_n(i)$ est pair
184 $\forall i\in\{1,...,n\}$, alors les systèmes ayant un nombre d'éléments
185 différent de $2^k$, ne peuvent avoir que des codes de Gray équilibrés avec
186 $\textit{NT}_n(i)=\lfloor\frac{2^n}{n}\rfloor$ ou
187 $\textit{NT}_n(i)=\lceil\frac{2^n}{n}\rceil, \forall i\in\{1,...,n\}$ et
188 vérifiant $\sum_{i=1}^nNT_n(i) = 2^n$.
191 Soit $L^*=000,100,101,001,011,111,110,010$ le code de Gray correspondant au
192 cycle hamiltonien enlevé de $f^*$. Sa séquence des transitions est \linebreak
193 $S=3,1,3,2,3,1,3,2$ et les nombres de transitions sont $\textit{TC}_3(1)=
194 \textit{TC}_3(2)=2$ et $\textit{TC}_3(3)=4$. Un tel code est équilibré.
196 Si l'on considère maintenant $L^4=$ 0000, 0010, 0110, 1110, 1111, 0111, 0011,
197 0001, 0101, 0100, 1100, 1101, 1001, 1011, 1010, 1000, un code de Gray
198 cyclique. En construisant la séquence $S=$ 2,3,4,1,4,3,2,3,1,4,1,3,2,1,2,4,
199 on constate que $\forall
200 i\in\{1,..,4\},~\textit{TC}_4(i)=4$ et donc que
201 ce code est totalement équilibré.
204 \subsection{Génération de codes de Gray équilibrés par induction}
205 \label{sec:induction}
207 Dans leur article de 2004~\cite{ZanSup04}, Zanten et Suparta proposent un
208 algorithme inductif pour générer des codes de Gray équilibrés de $n$ bits à
209 partir de codes de $n-2$ bits. Cependant, leur méthode n'est pas
210 constructive. En effet, elle effectue des manipulations sur un partitionnement du
211 code de Gray initial de $n-2$ bits pour obtenir un code de Gray sur $n$ bits,
212 mais le résultat n'est pas systématiquement équilibré. Il est donc nécessaire
213 d'évaluer les résultats obtenus à partir de tous les partitionnements réalisables
214 en suivant les contraintes spécifiées. Or, le nombre de possibilités augmente
215 exponentiellement (voir~\cite{Mons14} pour l'évaluation détaillée), ce qui rend
216 déraisonnable tout parcours exhaustif. Une amélioration proposée
217 dans~\cite{Mons14} permet de réduire le nombre de partitionnements considérés,
218 mais l'ordre de grandeur reste similaire. On constate donc clairement ici la
219 nécessité de trouver des algorithmes de génération de codes de Gray équilibrés
220 plus efficaces. Ce problème représente une des voies que nous souhaitons
221 explorer dans la suite de nos travaux.
223 Le tableau~\ref{table:nbFunc} donne le nombre de fonctions différentes
224 compatibles avec les codes de Gray équilibrés générés par l'approche précédente
225 selon le nombre de bits. Il donne donc la taille de la classe des générateurs
226 pouvant être produits. Les cas 7 et 8 ne sont que des bornes minimales basées
227 sur des sous-ensembles des partitionnements possibles.
229 \begin{table}[table:nbFunc]{Nombre de générateurs selon le nombre de bits.}
231 \begin{tabular}{|l|c|c|c|c|c|}
233 $n$ & 4 & 5 & 6 & 7 & 8 \\
235 nb. de fonctions & 1 & 2 & 1332 & > 2300 & > 4500 \\
244 %%% TeX-master: "main"