X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/blobdiff_plain/103fee06d77ee199f8956ccb0747b45676c834e5..1f464e74c8a635f445b2acf2825ee2b61405e46e:/15RairoGen.tex?ds=sidebyside diff --git a/15RairoGen.tex b/15RairoGen.tex index fe1c034..a950d85 100644 --- a/15RairoGen.tex +++ b/15RairoGen.tex @@ -46,8 +46,7 @@ $x\leftarrow{F_{f_u}(s,x)}$\; } return $x$\; %\end{scriptsize} -\caption{Algorithme de génération de nombres pseudo aléatoires -à l'aide de la fonction chaotique $G_f$} +\caption{PRNG basé sur les itérations unaires.} \label{CI Algorithm} \end{algorithm} @@ -64,38 +63,43 @@ Il retourne une nouvelle configuration $x$ en appliquant la fonction $F_{f_u}$ vue au chapitre~\ref{chap:carachaos} et correspondant à des itérations unaires. En interne, il exploite un algorithme de génération -de nombres pseudo aléatoires -\textit{Random}$(l)$. -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 distribution uniforme et utilise -\textit{XORshift} qui est une classe de générateurs de -nombres pseudo aléatoires conçus par George Marsaglia. - - -L'algorithme \textit{XORshift} -exploite itérativement l'opérateur $\oplus$ -sur des nombres obtenus grâce à des décalages de bits. -Cet opérateur, défini dans $\Bool^{n}$, -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. - -\begin{algorithm}[h] -%\SetLine -\KwIn{la configuration interne $z$ (un mot de 32-bit)} -\KwOut{$y$ (un mot de 32-bits)} -$z\leftarrow{z\oplus{(z\ll13)}}$\; -$z\leftarrow{z\oplus{(z\gg17)}}$\; -$z\leftarrow{z\oplus{(z\ll5)}}$\; -$y\leftarrow{z}$\; -return $y$\; -\medskip -\caption{Une boucle de l'algorithme de \textit{XORshift}} -\label{XORshift} -\end{algorithm} +de nombres pseudo aléatoires donné en paramètre. +Cela peut être n'importe quel PRNG (XORshift, Mersenne-Twister) dont la +sortie est uniformément distribuée. +Notre approche vise a donner des propriétés de chaos a ce générateur embarqué. + + +% \textit{Random}$(l)$. +% 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 distribution uniforme et utilise +% \textit{XORshift} qui est une classe de générateurs de +% nombres pseudo aléatoires conçus par George Marsaglia. + + +% L'algorithme \textit{XORshift} +% exploite itérativement l'opérateur $\oplus$ +% sur des nombres obtenus grâce à des décalages de bits. +% Cet opérateur, défini dans $\Bool^{n}$, +% 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. + +% \begin{algorithm}[h] +% %\SetLine +% \KwIn{la configuration interne $z$ (un mot de 32-bit)} +% \KwOut{$y$ (un mot de 32-bits)} +% $z\leftarrow{z\oplus{(z\ll13)}}$\; +% $z\leftarrow{z\oplus{(z\gg17)}}$\; +% $z\leftarrow{z\oplus{(z\ll5)}}$\; +% $y\leftarrow{z}$\; +% return $y$\; +% \medskip +% \caption{Une boucle de l'algorithme de \textit{XORshift}} +% \label{XORshift} +% \end{algorithm} Nous avons vu au chapitre~\ref{chap:carachaos} que @@ -178,7 +182,8 @@ que cela l'est pour $h$. \end{minipage} \label{fig:h:iter} } \end{center} - \caption{Graphes d'itérations de fonctions booléennes dans $\Bool^2$} + \caption{Graphes des itérations unaires + de fonctions booléennes dans $\Bool^2$} \label{fig:xplgraphIter} \end{figure} @@ -295,10 +300,12 @@ ait une distribution suffisamment proche de la distribution uniforme. On énonce directement le théorème suivant dont la preuve est donnée en annexes~\ref{anx:generateur}. -\begin{theorem} +\begin{theorem}\label{thm:prng:u} Soit $f: \Bool^{n} \rightarrow \Bool^{n}$, $\textsc{giu}(f)$ son graphe d'itérations , $\check{M}$ sa matrice d'adjacence - et $M$ une matrice $2^n\times 2^n$ définie comme dans le lemme précédent. + et $M$ une matrice $2^n\times 2^n$ + définie par + $M = \dfrac{1}{n} \check{M}$. Si $\textsc{giu}(f)$ est fortement connexe, alors la sortie du générateur de nombres pseudo aléatoires détaillé par l'algorithme~\ref{CI Algorithm} suit une loi qui