]> AND Private Git Repository - hdrcouchot.git/blob - 15RairoGen.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
835555e30d8a824611831230b94a2518bb3ea7f0
[hdrcouchot.git] / 15RairoGen.tex
1  Cette section présente une application directe de la théorie développée ci-avant
2 à la génération de nombres pseudo aléatoires. On présente tout d'abord le générateur
3 basé sur des fonctions chaotiques (section~\ref{sub:prng:algo}), 
4 puis comment intégrer la contrainte de \gls{distributionuniforme} 
5 (cf. glossaire) de la sortie 
6 dans le choix de la fonction à itérer (section~\ref{sub:prng:unif}). 
7 L'approche est évaluée dans la dernière section.
8  
9
10 \subsection{ Générateur de nombres pseudo aléatoires basé sur le chaos}\label{sub:prng:algo}
11
12
13
14
15
16 On peut penser à construire un générateur de nombres pseudo 
17 aléatoires comme dans l'algorithme~\ref{CI Algorithm} donné ci-dessous.
18
19 \begin{algorithm}[h]
20 %\begin{scriptsize}
21 \KwIn{une fonction $f$, un nombre d'itérations $b$, 
22 une configuration initiale $x^0$ ($n$ bits)}
23 \KwOut{une configuration $x$ ($n$ bits)}
24 $x\leftarrow x^0$\;
25 $k\leftarrow b + \textit{Random}(b+1)$\;
26 %$k\leftarrow b + \textit{XORshift}(b+1)$\;
27 \For{$i=0,\dots,k-1$}
28 {
29 $s\leftarrow{\textit{Random}(n)}$\;
30 %$s\leftarrow{\textit{XORshift}(n)}$\;
31 $x\leftarrow{F_f(s,x)}$\;
32 }
33 return $x$\;
34 %\end{scriptsize}
35 \caption{Algorithme de génération de nombres pseudo aléatoires 
36 à l'aide de la fonction chaotique $G_f$}
37 \label{CI Algorithm}
38 \end{algorithm}
39
40
41 Celui-ci prend en entrée: une fonction $f$;
42 un entier $b$, qui assure que le nombre d'itérations
43 est compris entre $b+1 $ et  $2b+1$ et une configuration initiale $x^0$.
44 Il retourne une nouvelle configuration $x$.
45 En interne, il exploite un algorithme de génération
46 de nombres pseudo aléatoires
47 \textit{Random}$(l)$. 
48 Cet algorithme est utilisée dans notre générateur pour construire la longueur 
49 de la stratégie ainsi que les éléments qui la composent.
50 Pratiquement, il retourne des entiers dans $\llbracket 1 ; l \rrbracket$ 
51 selon une \gls{distributionuniforme} (cf. glossaire) et utilise 
52 \textit{XORshift} qui est une classe de générateurs de
53 nombres pseudo aléatoires
54 très rapides conçus par George Marsaglia. 
55
56 % L'algorithme \textit{XORshift} exploite itérativement
57 % la fonction \og \gls{xor}\fg{} $\oplus$ (cf. glossaire) 
58 % sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
59
60 L'algorithme \textit{XORshift} 
61 exploite itérativement l'opérateur $\oplus$  
62 sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
63 Cet opérateur, défini dans $\Bool^{n}$, 
64 applique la fonction \og  \gls{xor} \fg{} (cf. glossaire) 
65 aux bits de même rang de ses deux opérandes (\og opération bit à bit \fg{}).
66 Une instance de cette classe est donnée dans l'algorithme~\ref{XORshift} donné 
67 ci-dessous.
68
69 \begin{algorithm}[h]
70 %\SetLine
71 \KwIn{la configuration interne $z$ (un mot de 32-bit)}
72 \KwOut{$y$ (un mot de 32-bits)}
73 $z\leftarrow{z\oplus{(z\ll13)}}$\;
74 $z\leftarrow{z\oplus{(z\gg17)}}$\;
75 $z\leftarrow{z\oplus{(z\ll5)}}$\;
76 $y\leftarrow{z}$\;
77 return $y$\;
78 \medskip
79 \caption{Une boucle de l'algorithme de \textit{XORshift}}
80 \label{XORshift}
81 \end{algorithm}
82
83
84
85 Il reste à instancier une fonction $f$ dans 
86 l'algorithme~\ref{CI Algorithm} 
87 en adéquation avec  l'approche développée 
88 en section~\ref{sec:sccg}.
89 La section suivante montre comment l'uniformité de la distribution a
90 contraint cette instanciation.
91
92 \subsection{Un générateur à sortie uniformément distribuée}\label{sub:prng:unif}
93
94 Une matrice stochastique est une matrice carrée
95 dont tous les éléments sont positifs ou nuls et dont
96 la somme de chaque ligne
97 vaut 1. 
98 Une matrice stochastique l'est doublement si la somme de chaque colonne est 1.
99 Enfin, une matrice stochastique de taille $n \times n$ est régulière 
100 si  la propriété suivante est établie:
101 $$\exists k \in \mathds{N}^\ast, \forall i,j \in \llbracket 1; n \rrbracket, M_{ij}^k>0.$$
102
103 On énonce enfin le théorème suivant liant les 
104 \glspl{vecteurDeProbabilite} (cf. glossaire) 
105 et les \glspl{chaineDeMarkov} (cf. glossaire):
106
107
108  
109 \begin{Theo}\label{th}
110   Si $M$ est une matrice stochastique régulière, alors $M$ 
111   possède un unique vecteur stationnaire de probabilités  $\pi$
112   ($\pi.M = \pi$).
113   De plus, si $\pi^0$ est un \gls{vecteurDeProbabilite} 
114  et si on définit 
115   la suite $(\pi^{k})^{k \in  \Nats}$ par 
116   $\pi^{k+1} = \pi^k.M $ pour $k = 0, 1,\dots$ 
117   alors la \gls{chaineDeMarkov} $\pi^k$
118   converge vers $\pi$ lorsque $k$ tend vers l'infini.
119 \end{Theo}
120
121
122 Montrons sur un exemple jouet à deux éléments 
123 que ce théorème permet de vérifier si la sortie d'un générateur de 
124 nombres pseudo aléatoires est uniformément distribuée ou non.
125 Soit alors $g$ et $h$ deux fonctions  de $\Bool^2$
126 définies par $g(x_1,x_2)=(\overline{x_1},x_1.\overline{x_2}) $
127 et $h(x_1,x_2)=(\overline{x_1},x_1\overline{x_2}+\overline{x_1}x_2)$.
128 Leurs graphes d'interactions donnés en figure \ref{fig:g:inter} et \ref{fig:h:inter}
129 vérifient les hypothèses du théorème~\ref{th:Adrien}. 
130 Leurs graphes d'itérations
131 sont donc fortement connexes, ce que l'on a pu déjà vérifier aux figures
132 \ref{fig:g:iter} et \ref{fig:h:iter}.
133 \textit{A priori}, ces deux fonctions pourraient être intégrées
134 dans un générateur de nombres pseudo aléatoires. Montrons que ce n'est pas le cas pour $g$ et 
135 que cela l'est pour $h$.
136
137
138 Comme le générateur \textit{Random} possède une sortie uniformément 
139 distribuée,  la  stratégie est uniforme sur $\llbracket 1, 2 \rrbracket$,
140 et donc, 
141 pour tout sommet de $\Gamma(g)$ et de  $\Gamma(h)$,
142 chaque arc sortant de ce sommet a, parmi l'ensemble des arcs sortant 
143 de ce sommet, une probabilité $1/2$ d’être celui qui sera traversé.
144 En d'autres mots, $\Gamma(g)$ est le graphe orienté d'une chaîne de Markov.
145 Il est facile de vérifier que la \gls{matriceDeTransitions} (cf. glossaire)
146 d'un tel processus 
147 est $M_g   = \frac{1}{2} \check{M}_g$, 
148 où $\check{M}_g$ est la \gls{matriceDAdjacence} (cf. glossaire) donnée en 
149 figure~\ref{fig:g:incidence} (voir ci-après), et similairement pour $M_h$. 
150
151 \begin{figure}[h]
152   \begin{center}
153     \subfloat[$\check{M}_g $.]{
154       \begin{minipage}{0.25\textwidth}
155         \begin{center}
156           % \vspace{-3cm}
157           $\left( 
158             \begin{array}{cccc} 
159               1 & 0 & 1 & 0 \\ 
160               1 & 0 & 0 & 1 \\ 
161               1 & 0 & 0 & 1 \\ 
162               0 & 1 & 1 & 0 
163             \end{array}
164           \right)
165           $
166         \end{center}
167       \end{minipage}
168       \label{fig:g:incidence}
169     }
170     \subfloat[$\check{M}_h $.]{
171         \begin{minipage}{0.25\textwidth}
172           \begin{center}
173             $\left( 
174               \begin{array}{cccc} 
175                 1 & 0 & 1 & 0 \\ 
176                 0 & 1 & 0 & 1 \\ 
177                 1 & 0 & 0 & 1 \\ 
178                 0 & 1 & 1 & 0 
179               \end{array}
180             \right)
181             $
182           \end{center}
183         \end{minipage}
184         \label{fig:h:incidence}
185       }
186     \end{center}
187     \caption{Graphe des fonctions candidates avec $n=2$}
188     \label{fig:xplgraph}
189   \end{figure}
190
191 Les deux matrices $M_g$ et $M_h$ sont  stochastiques. Pour
192 montrer qu'elles sont régulières il suffit de constater qu'aucun élément de 
193 $M^5_g$ ni de  $M^3_h$ n'est nul.
194 De plus, les vecteurs de probabilités 
195 $\pi_g=(\frac{4}{10}, \frac{1}{10},\frac{3}{10},\frac{2}{10})$ et
196 $\pi_h=(\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})$ 
197 vérifient $\pi_g M_g = \pi_g$ et 
198 $\pi_h M_h = \pi_h$. 
199 Alors d'après le théorème~\ref{th}, 
200 pour n'importe quel vecteur initial de probabilités $\pi^0$, on a 
201 $\lim_{k \to \infty} \pi^0 M^k_g = \pi_g$ et 
202 $\lim_{k \to \infty} \pi^0 M^k_h = \pi_h$. 
203 Ainsi la chaîne de Markov associé à $h$ tend vers une 
204 distribution uniforme, contrairement à celle associée à $g$.
205 On en déduit que $g$ ne devrait pas être itérée dans 
206 un générateur de nombres pseudo aléatoires.
207 Au contraire, 
208 $h$ devrait pouvoir être embarquée dans l'algorithme~\ref{CI Algorithm}, 
209 pour peu que le nombre $b$ d'itérations entre deux mesures successives 
210 de valeurs  soit suffisamment grand de sorte que
211 le vecteur d’état de la chaîne de Markov
212 ait une distribution suffisamment proche de la distribution uniforme.
213
214
215 Considérons le lemme technique suivant:
216 \begin{Lemma}\label{lem:stoc}
217 Soit $f: \Bool^{n} \rightarrow \Bool^{n}$, $\Gamma(f)$ son graphe d'itérations, $\check{M}$ la matrice d'adjacence de $\Gamma(f)$, et  $M$  la matrice 
218 $2^n\times 2^n$  définie par
219 $M = \frac{1}{n}\check{M}$.
220 Alors $M$ est une matrice stochastique régulière si et seulement si
221 $\Gamma(f)$ est fortement connexe.
222 \end{Lemma}
223
224 \begin{Proof}  
225 On remarque tout d'abord que $M$ 
226 est une matrice stochastique par construction.
227 Supposons $M$ régulière. 
228 Il existe donc  $k$ tel que $M_{ij}^k>0$ pour chaque $i,j\in \llbracket
229 1;  2^n  \rrbracket$. L'inégalité  $\check{M}_{ij}^k>0$  est alors établie.
230 Puisque $\check{M}_{ij}^k$ est le nombre de chemins de  $i$ à $j$ de longueur $k$
231 dans $\Gamma(f)$ et puisque ce nombre est positif, alors 
232 $\Gamma(f)$ est fortement connexe.
233
234 Réciproquement si $\Gamma(f)$ 
235 est fortement connexe, alors pour tous les sommets $i$ et $j$, un chemin peut être construit pour atteindre  $j$  depuis $i$ en au plus $2^n$ étapes.
236 Il existe donc 
237 $k_{ij} \in \llbracket 1,  2^n \rrbracket$ tels que $\check{M}_{ij}^{k_{ij}}>0$.  
238 Comme tous les  multiples $l \times k_{ij}$ de $k_{ij}$ sont tels que 
239 $\check{M}_{ij}^{l\times  k_{ij}}>0$, 
240 on peut conclure que, si 
241 $k$ est le plus petit multiple commun de $\{k_{ij}  \big/ i,j  \in \llbracket 1,  2^n \rrbracket  \}$ alors
242 $\forall i,j  \in \llbracket  1, 2^n \rrbracket,  \check{M}_{ij}^{k}>0$. 
243 Ainsi, $\check{M}$ et donc $M$ sont régulières.
244 \end{Proof}
245
246 Ces résultats permettent formuler et de prouver le théorème suivant:
247
248 \begin{Theo}
249   Soit $f: \Bool^{n} \rightarrow \Bool^{n}$, $\Gamma(f)$ son 
250   graphe d'itérations , $\check{M}$ sa matrice d'adjacence
251   et $M$ une matrice  $2^n\times 2^n$  définie comme dans le lemme précédent.
252   Si $\Gamma(f)$ est fortement connexe, alors 
253   la sortie du générateur de nombres pseudo aléatoires détaillé par 
254   l'algorithme~\ref{CI Algorithm} suit une loi qui 
255   tend vers la distribution uniforme si 
256   et seulement si  $M$ est une matrice doublement stochastique.
257 \end{Theo}
258 \begin{Proof}
259   $M$ est une matrice stochastique régulière (Lemme~\ref{lem:stoc}) 
260   qui a un unique vecteur de probabilités stationnaire
261   (Théorème \ref{th}).
262   Soit $\pi$  défini par 
263   $\pi = \left(\frac{1}{2^n}, \hdots, \frac{1}{2^n} \right)$.
264   On a  $\pi M = \pi$ si et seulement si
265   la somme des valeurs de chaque colonne de $M$  est 1, 
266   \textit{i.e.} si et seulement si 
267   $M$ est  doublement  stochastique.
268 \end{Proof}
269
270
271 \subsection{Expérimentations}
272
273 On considère le graphe d'interactions $G(f)$ donné en figure~\ref{fig:G}. 
274 Il vérifie le théorème~\ref{th:Adrien}: 
275 toutes les fonctions $f$ possédant un tel graphe d'interactions
276 ont un graphe d'itérations  $\Gamma(f)$ fortement connexe.
277 Pratiquement, un algorithme simple de satisfaction de contraintes
278 a trouvé  520 fonctions $f$ non isomorphes de graphe d'interactions  $G(f)$, 
279 dont seulement 16 d'entre elles possédent une matrice doublement stochastique.
280
281 La figure~\ref{fig:listfonction} explicite ces 16 fonctions en 
282 définissant les images des éléments de la liste
283 0, 1, 2,\ldots, 14, 15 en respectant  l'ordre.
284 Expliquons enfin comment a été calculé le nombre de la troisième 
285 colonne utilisé comme le paramètre $b$ 
286 dans l'algorithme~\ref{CI Algorithm}.
287
288 Soit $e_i$ le $i^{\textrm{ème}}$ vecteur la base canonique de $\R^{2^{n}}$. 
289 Chacun des éléments $v_j$, $1 \le j \le 2^n$, 
290 du vecteur $e_i M_f^t$ représente la probabilité 
291 d'être dans la configuration $j$ après $t$ étapes du processus de Markov 
292 associé à $\Gamma(f)$ en partant de la configuration $i$.   
293 Le nombre $\min \{
294  t \mid t \in \Nats, \vectornorm{e_i M_f^t - \pi} < 10^{-4}
295 \}$ représente le plus petit nombre d'itérations où la distance de 
296 ce vecteur au vecteur $\pi=(\frac{1}{2^n},\ldots,\frac{1}{2^n})$
297 -- autrement dit, où la déviation par rapport à la distribution uniforme --
298  est inférieure 
299 à $10^{-4}$. En prenant le max pour tous les $e_i$, on obtient une valeur pour
300  $b$. Ainsi, on a 
301 $$
302 b = \max\limits_{i \in \llbracket 1, 2^n \rrbracket} 
303 \{
304 \min \{
305  t \mid t \in \Nats, \vectornorm{e_i M_f^t - \pi} < 10^{-4}
306 \}
307 \}. 
308 $$
309
310 \begin{figure}%[h]
311   \begin{center}
312   \subfloat[Graphe d'interactions]{
313     \begin{minipage}{0.20\textwidth}
314       \begin{center}
315         \includegraphics[width=3.5cm]{images/Gi.pdf}
316       \end{center}
317     \end{minipage}
318     \label{fig:G}
319   }\hfill
320   \subfloat[Fonctions doublement stochastiques]{
321     \begin{minipage}{0.75\textwidth}
322       \begin{scriptsize}
323         \begin{center}
324           \begin{tabular}{|c|c|c|}
325 \hline
326 {Nom}& {Définition}&{$b$} \\
327 \hline 
328 $\mathcal{F}_1$ & 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 1, 0  & 206\\
329 \hline
330 $\mathcal{F}_2$ &14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 5, 4, 3, 2, 0, 1  
331  & 94 \\
332 \hline
333 $\mathcal{F}_3$ &14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 5, 4, 3, 2, 1, 0
334  & 69 \\
335 \hline
336 $\mathcal{F}_4$ &14, 15, 12, 13, 10, 11, 9, 8, 6, 7, 5, 4, 3, 2, 0, 1
337  & 56 \\
338 \hline
339 $\mathcal{F}_5$ &14, 15, 12, 13, 10, 11, 9, 8, 6, 7, 5, 4, 3, 2, 1, 0
340  & 48 \\
341 \hline
342 $\mathcal{F}_6$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 2, 3, 0, 1
343  & 86 \\
344 \hline
345 $\mathcal{F}_7$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 2, 3, 1, 0
346  & 58 \\
347 \hline
348 $\mathcal{F}_8$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0
349  & 46 \\
350 \hline
351 $\mathcal{F}_9$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1
352  & 42 \\
353 \hline
354 $\mathcal{F}_{10}$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
355  & 69 \\
356 \hline
357 $\mathcal{F}_{11}$ &14, 15, 12, 13, 11, 10, 9, 8, 7, 6, 5, 4, 2, 3, 1, 0
358  & 58 \\
359 \hline
360 $\mathcal{F}_{12}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 4, 5, 2, 3, 1, 0
361  & 35 \\
362 \hline
363 $\mathcal{F}_{13}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 4, 5, 3, 2, 1, 0
364  & 56 \\
365 \hline
366 $\mathcal{F}_{14}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 5, 4, 3, 2, 1, 0
367  & 94 \\
368 \hline
369 $\mathcal{F}_{15}$ &14, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1
370  & 86 \\ 
371 \hline
372 $\mathcal{F}_{16}$ &14, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
373   & 206 \\
374  \hline
375 \end{tabular}
376 \end{center}
377 \end{scriptsize}
378 \end{minipage}
379 \label{fig:listfonction}
380 }
381 \end{center}
382 \caption{Candidates pour le générateur  avec $n=4$}
383  \end{figure}
384
385
386 La qualité des séquences aléatoires a été évaluée à travers la suite 
387 de tests statistiques développée pour les générateurs de nombres 
388 pseudo aléatoires par le 
389 \emph{National Institute of Standards and Technology} (NIST).
390 % Pour les 15 tests, le seuil $\alpha$ est fixé à $1\%$:
391 % une  valeur  
392 % qui est plus grande que $1\%$  signifie 
393 % que la chaîne est considérée comme aléatoire avec une confiance de $99\%$.
394 % Le tableau~\ref{fig:TEST} donne une vision synthétique de toutes 
395 % les expérimentations. 
396 L'expérience a montré notamment que toutes ces fonctions
397 passent avec succès cette batterie de tests.
398
399
400
401
402 % \begin{table}[th]
403 % \begin{scriptsize}
404 % \begin{tabular}{|*{17}{c|}}
405 % \hline
406 % {Propriété}& $\mathcal{F}_{1}$ &$\mathcal{F}_{2}$ &$\mathcal{F}_{3}$ &$\mathcal{F}_{4}$ &$\mathcal{F}_{5}$ &$\mathcal{F}_{6}$ &$\mathcal{F}_{7}$ &$\mathcal{F}_{8}$ &$\mathcal{F}_{9}$ &$\mathcal{F}_{10}$ &$\mathcal{F}_{11}$ &$\mathcal{F}_{12}$ &$\mathcal{F}_{13}$ &$\mathcal{F}_{14}$ &$\mathcal{F}_{15}$ &$\mathcal{F}_{16}$ \\
407 % \hline
408 % Fréquence &77.9 &15.4 &83.4 &59.6 &16.3 &38.4 &20.2 &29.0 &77.9 &21.3 &65.8 &85.1 &51.4 &35.0 &77.9 &92.4 \\ 
409 %  \hline 
410 % Fréquence / bloc &88.3 &36.7 &43.7 &81.7 &79.8 &5.9 &19.2 &2.7 &98.8 &1.0 &21.3 &63.7 &1.4 &7.6 &99.1 &33.5 \\ 
411 %  \hline 
412 % Somme cummulée &76.4 &86.6 &8.7 &66.7 &2.2 &52.6 &20.8 &80.4 &9.8 &54.0 &73.6 &80.1 &60.7 &79.7 &76.0 &44.7 \\ 
413 %  \hline 
414 % Exécution &5.2 &41.9 &59.6 &89.8 &23.7 &76.0 &77.9 &79.8 &45.6 &59.6 &89.8 &2.4 &96.4 &10.9 &72.0 &11.5 \\ 
415 %  \hline 
416 % Longue exécution &21.3 &93.6 &69.9 &23.7 &33.5 &30.4 &41.9 &43.7 &30.4 &17.2 &41.9 &51.4 &59.6 &65.8 &11.5 &61.6 \\ 
417 %  \hline 
418 % Rang &1.0 &41.9 &35.0 &45.6 &51.4 &20.2 &31.9 &83.4 &89.8 &38.4 &61.6 &4.0 &21.3 &69.9 &47.5 &95.6 \\ 
419 %  \hline 
420 % Fourrier Rapide &40.1 &92.4 &97.8 &86.8 &43.7 &38.4 &76.0 &57.5 &36.7 &35.0 &55.4 &57.5 &86.8 &76.0 &31.9 &7.6 \\ 
421 %  \hline 
422 % Sans superposition &49.0 &45.7 &50.5 &51.0 &48.8 &51.2 &51.6 &50.9 &50.9 &48.8 &45.5 &47.3 &47.0 &49.2 &48.6 &46.4 \\ 
423 %  \hline 
424 % Avec Superposition &27.6 &10.9 &53.4 &61.6 &16.3 &2.7 &59.6 &94.6 &88.3 &55.4 &76.0 &23.7 &47.5 &91.1 &65.8 &81.7 \\ 
425 %  \hline 
426 % Universelle &24.9 &35.0 &72.0 &51.4 &20.2 &74.0 &40.1 &23.7 &9.1 &72.0 &4.9 &13.7 &14.5 &1.8 &93.6 &65.8 \\ 
427 %  \hline 
428 % Entropie approchée &33.5 &57.5 &65.8 &53.4 &26.2 &98.3 &53.4 &63.7 &38.4 &6.7 &53.4 &19.2 &20.2 &27.6 &67.9 &88.3 \\ 
429 %  \hline 
430 % Suite aléatoire &29.8 &35.7 &40.9 &36.3 &54.8 &50.8 &43.5 &46.0 &39.1 &40.8 &29.6 &42.0 &34.8 &33.8 &63.0 &46.3 \\ 
431 %  \hline 
432 % Suite aléatoire variante &32.2 &40.2 &23.0 &39.6 &47.5 &37.2 &56.9 &54.6 &53.3 &31.5 &23.0 &38.1 &52.3 &57.1 &47.7 &40.8 \\ 
433 %  \hline 
434 % Série &56.9 &58.5 &70.4 &73.2 &31.3 &45.9 &60.8 &39.9 &57.7 &21.2 &6.4 &15.6 &44.7 &31.4 &71.7 &49.1 \\ 
435 %  \hline 
436 % Complexité linéaire &24.9 &23.7 &96.4 &61.6 &83.4 &49.4 &49.4 &18.2 &3.5 &76.0 &24.9 &97.2 &38.4 &38.4 &1.1 &8.6 \\ 
437 %  \hline
438 % \end{tabular}
439 % \end{scriptsize}
440 % \caption{Test de NIST réalisé sur des instances de générateurs}\label{fig:TEST}  
441 % \end{table}
442
443
444