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

Private GIT Repository
15
[hdrcouchot.git] / 15RairoGen.tex
index 3c49eb6da0d3fea5e96a97387ac163e32781745b..f2b9243846240ff1a26753e288cc6e53264479e5 100644 (file)
@@ -1,99 +1,27 @@
-Pour décrire un peu plus précisément le principe de
-la génération pseudo-aléatoire, considérons l'espace booléen 
-$\Bool=\{0,1\}$
-muni des lois \og +\fg{}, \og . \fg{} et \og $\overline{\mathstrut\enskip}$ \fg{} 
-définies par les tableaux ci-dessous:
-
-\begin{minipage}{0.33\textwidth}
-  \begin{center}
-  \begin{tabular}{|c|c|c|}
-    \hline 
-    + & 0& 1 \\
-    \hline 
-    0 & 0& 1 \\
-    \hline 
-    1 & 1& 1 \\
-    \hline
-  \end{tabular}
-\end{center}
-\end{minipage}
-\begin{minipage}{0.33\textwidth}
-  \begin{center}
-  \begin{tabular}{|c|c|c|}
-    \hline 
-    . & 0& 1 \\
-    \hline 
-    0 & 0& 0 \\
-    \hline 
-    1 & 0& 1 \\
-    \hline
-  \end{tabular}
-\end{center}
-\end{minipage}
-\begin{minipage}{0.32\textwidth}
-  \begin{center}
-  \begin{tabular}{|c|c|c|}
-    \hline 
-     & 0& 1 \\
-    \hline 
-    $\overline{\mathstrut\enskip}$ & 1& 0 \\
-    \hline 
-   \end{tabular}
-\end{center}
-\end{minipage}
-
-
-La fonction itérée est
-une fonction $f$ de $\Bool^n$ dans lui-même qui à
-un mot binaire $x = (x_1,\ldots,x_n)$ 
-associe le mot $(f_1(x),\ldots, f_n(x))$.
-Un exemple de fonction de $\Bool^n$ dans lui-même
-est la fonction négation 
-définie par  
-$\neg(x)=(\overline{x_1},\dots,\overline{x_n})$. 
-
-Le principe itératif est le suivant: 
-à chaque itération $t$, on choisit un indice $i$ entre $1$ et $n$,
-et le mot $x^t = (x_1^t,\ldots,x_n^t)$ est remplacé par
-$x^{t+1} = (x_1^t,\ldots , x_{i-1}^t, f_i(x^t), x_{i+1}^t,\ldots, x_n^t)$.
-
-Au bout d'un nombre $N$ d'itérations,
-si la fonction, notée $G_f$ dans ce document, 
-que l'on peut associer à l'algorithme décrit ci-dessus
+Au bout d'un nombre $b$ d'itérations,
+si la fonction, notée $G_{f_u}$ (ou bien $G_{f_g}$) 
+présentée au chapitre~\ref{chap:carachaos}, 
 a de \og bonnes\fg{} propriétés chaotiques, 
 a de \og bonnes\fg{} propriétés chaotiques, 
-le mot $x^N$ doit être \og très différent\fg{} de $x^0$ 
-de façon à même sembler ne plus dépendre de $x_0$:
-pour un générateur aléatoire, il faut que la structure de 
-$x^N$ semble être due au hasard; 
-pour une application cryptographique, il faut qu'il
-soit matériellement impossible (dans les conditions techniques actuelles) 
-de retrouver $x^0$ à partir de $x^N$.
-
-Tous les mots de 
-$\Bool^n$ peuvent constituer les
-$2^n$ sommets d'un \gls{graphoriente} (cf. glossaire)
-dans lequel un arc relie deux sommets $x$ et $x'$ 
-s'il existe une itération de l'algorithme
-de génération qui permet de passer de $x$ à $x'$. 
-Ce graphe est appelé le graphe d'itérations et 
-ce document montre que si l'on a un \gls{graphfortementconnexe} (cf. glossaire),
-alors la fonction $G_f$ est transitive, donc chaotique.
-
+le mot $x^b$ devrait  \og sembler ne plus dépendre\fg{} de $x^0$.
+On peut penser à exploiter une de ces fonctions $G_f$ 
+comme un générateur aléatoire. 
 Enfin, un bon générateur aléatoire se doit de 
 Enfin, un bon générateur aléatoire se doit de 
-fournir  des nombres selon une \gls{distributionuniforme} (cf. glossaire). 
-La dernière partie de ce document donnera, 
+fournir  des nombres selon une {distributionuniforme} 
+La suite de ce document donnera, 
 dans le cas où le graphe d'itérations est fortement connexe, 
 une condition nécessaire est suffisante pour que
 cette propriété soit satisfaite.
 
 
 dans le cas où le graphe d'itérations est fortement connexe, 
 une condition nécessaire est suffisante pour que
 cette propriété soit satisfaite.
 
 
- Cette section présente une application directe de la théorie développée ci-avant
-à la génération de nombres pseudo aléatoires. On présente tout d'abord le générateur
+Cette section présente une application directe de la théorie développée ci-avant
+à la génération de nombres pseudo aléatoires. 
+On présente tout d'abord le générateur
 basé sur des fonctions chaotiques (section~\ref{sub:prng:algo}), 
 basé sur des fonctions chaotiques (section~\ref{sub:prng:algo}), 
-puis comment intégrer la contrainte de \gls{distributionuniforme} 
-(cf. glossaire) de la sortie 
+puis comment intégrer la contrainte de distributionuniforme
+de la sortie 
 dans le choix de la fonction à itérer (section~\ref{sub:prng:unif}). 
 L'approche est évaluée dans la dernière section.
 dans le choix de la fonction à itérer (section~\ref{sub:prng:unif}). 
 L'approche est évaluée dans la dernière section.
+\JFC{plan à revoir}
  
 
 \subsection{ Générateur de nombres pseudo aléatoires basé sur le chaos}\label{sub:prng:algo}
  
 
 \subsection{ Générateur de nombres pseudo aléatoires basé sur le chaos}\label{sub:prng:algo}
@@ -137,20 +65,20 @@ de nombres pseudo aléatoires
 Cet algorithme est utilisée dans notre générateur pour construire la longueur 
 de la stratégie ainsi que les éléments qui la composent.
 Pratiquement, il retourne des entiers dans $\llbracket 1 ; l \rrbracket$ 
 Cet algorithme est utilisée dans notre générateur pour construire la longueur 
 de la stratégie ainsi que les éléments qui la composent.
 Pratiquement, il retourne des entiers dans $\llbracket 1 ; l \rrbracket$ 
-selon une \gls{distributionuniforme} (cf. glossaire) et utilise 
+selon une distributionuniforme et utilise 
 \textit{XORshift} qui est une classe de générateurs de
 nombres pseudo aléatoires
 très rapides conçus par George Marsaglia. 
 
 % L'algorithme \textit{XORshift} exploite itérativement
 \textit{XORshift} qui est une classe de générateurs de
 nombres pseudo aléatoires
 très rapides conçus par George Marsaglia. 
 
 % L'algorithme \textit{XORshift} exploite itérativement
-% la fonction \og \gls{xor}\fg{} $\oplus$ (cf. glossaire) 
-% sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
+% la fonction \og {xor}\fg{} $\oplus$ (cf. glossaire) 
+% sur des nombres obtenus grâce à des pl{decalageDeBits} (cf. glossaire).
 
 L'algorithme \textit{XORshift} 
 exploite itérativement l'opérateur $\oplus$  
 
 L'algorithme \textit{XORshift} 
 exploite itérativement l'opérateur $\oplus$  
-sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
+sur des nombres obtenus grâce à des decalages de bits.
 Cet opérateur, défini dans $\Bool^{n}$, 
 Cet opérateur, défini dans $\Bool^{n}$, 
-applique la fonction \og  \gls{xor} \fg{} (cf. glossaire) 
+applique la fonction \og  xor \fg{} 
 aux bits de même rang de ses deux opérandes (\og opération bit à bit \fg{}).
 Une instance de cette classe est donnée dans l'algorithme~\ref{XORshift} donné 
 ci-dessous.
 aux bits de même rang de ses deux opérandes (\og opération bit à bit \fg{}).
 Une instance de cette classe est donnée dans l'algorithme~\ref{XORshift} donné 
 ci-dessous.
@@ -190,8 +118,8 @@ si  la propriété suivante est établie:
 $$\exists k \in \mathds{N}^\ast, \forall i,j \in \llbracket 1; n \rrbracket, M_{ij}^k>0.$$
 
 On énonce enfin le théorème suivant liant les 
 $$\exists k \in \mathds{N}^\ast, \forall i,j \in \llbracket 1; n \rrbracket, M_{ij}^k>0.$$
 
 On énonce enfin le théorème suivant liant les 
-\glspl{vecteurDeProbabilite} (cf. glossaire) 
-et les \glspl{chaineDeMarkov} (cf. glossaire):
+vecteurDeProbabilite 
+et les chaineDeMarkov:
 
 
  
 
 
  
@@ -199,11 +127,11 @@ et les \glspl{chaineDeMarkov} (cf. glossaire):
   Si $M$ est une matrice stochastique régulière, alors $M$ 
   possède un unique vecteur stationnaire de probabilités  $\pi$
   ($\pi.M = \pi$).
   Si $M$ est une matrice stochastique régulière, alors $M$ 
   possède un unique vecteur stationnaire de probabilités  $\pi$
   ($\pi.M = \pi$).
-  De plus, si $\pi^0$ est un \gls{vecteurDeProbabilite} 
+  De plus, si $\pi^0$ est un {vecteurDeProbabilite} 
  et si on définit 
   la suite $(\pi^{k})^{k \in  \Nats}$ par 
   $\pi^{k+1} = \pi^k.M $ pour $k = 0, 1,\dots$ 
  et si on définit 
   la suite $(\pi^{k})^{k \in  \Nats}$ par 
   $\pi^{k+1} = \pi^k.M $ pour $k = 0, 1,\dots$ 
-  alors la \gls{chaineDeMarkov} $\pi^k$
+  alors la {chaineDeMarkov} $\pi^k$
   converge vers $\pi$ lorsque $k$ tend vers l'infini.
 \end{Theo}
 
   converge vers $\pi$ lorsque $k$ tend vers l'infini.
 \end{Theo}
 
@@ -231,10 +159,10 @@ pour tout sommet de $\Gamma(g)$ et de  $\Gamma(h)$,
 chaque arc sortant de ce sommet a, parmi l'ensemble des arcs sortant 
 de ce sommet, une probabilité $1/2$ d’être celui qui sera traversé.
 En d'autres mots, $\Gamma(g)$ est le graphe orienté d'une chaîne de Markov.
 chaque arc sortant de ce sommet a, parmi l'ensemble des arcs sortant 
 de ce sommet, une probabilité $1/2$ d’être celui qui sera traversé.
 En d'autres mots, $\Gamma(g)$ est le graphe orienté d'une chaîne de Markov.
-Il est facile de vérifier que la \gls{matriceDeTransitions} (cf. glossaire)
+Il est facile de vérifier que la {matriceDeTransitions}
 d'un tel processus 
 est $M_g   = \frac{1}{2} \check{M}_g$, 
 d'un tel processus 
 est $M_g   = \frac{1}{2} \check{M}_g$, 
-où $\check{M}_g$ est la \gls{matriceDAdjacence} (cf. glossaire) donnée en 
+où $\check{M}_g$ est la {matriceDAdjacence}  donnée en 
 figure~\ref{fig:g:incidence} (voir ci-après), et similairement pour $M_h$. 
 
 \begin{figure}[h]
 figure~\ref{fig:g:incidence} (voir ci-après), et similairement pour $M_h$. 
 
 \begin{figure}[h]