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

Private GIT Repository
-> prng inclus
[hdrcouchot.git] / chaosANN.tex
1
2 Les réseaux de neurones chaotiques ont été étudiés à de maintes reprises 
3 par le passé en raison notamment de leurs applications potentielles:
4 %les mémoires associatives~\cite{Crook2007267}  
5 les  composants utiles à la  sécurité comme les fonctions de 
6 hachage~\cite{Xiao10},
7 le tatouage numérique~\cite{1309431,Zhang2005759}
8 ou les schémas de chiffrement~\cite{Lian20091296}.  
9 Dans tous ces cas, l'emploi de fonctions chaotiques est motivé par 
10 leur comportement imprévisible et proche de l'aléa. 
11
12
13 Les réseaux de neurones chaotiques peuvent être conçus selon plusieurs 
14 principes. Des neurones modifiant leur état en suivant une fonction non 
15 linéaire son par exemple appelés neurones chaotiques~\cite{Crook2007267}.
16 L'architecture de réseaux de neurones de type Perceptron multi-couches
17 (MLP) n'itèrent quant à eux, pas nécessairement de fonctions chaotiques.
18 Il a cependant été démontré  que ce sont des approximateurs 
19 universels~\cite{Cybenko89,DBLP:journals/nn/HornikSW89}.   
20 Ils permettent, dans certains cas, de simuler des comportements 
21 physiques chaotiques comme le  circuit de Chua~\cite{dalkiran10}.  
22 Parfois~\cite{springerlink:10.1007/s00521-010-0432-2},
23 la fonction de transfert de cette famille de réseau celle 
24 d'initialisation sont toutes les deux définies à l'aide de 
25 fonctions chaotiques. 
26
27
28
29 Ces réseaux de neurones partagent le fait qu'ils sont qualifiés de 
30 ``chaotiques'' sous prétexte qu'ils embarquent une fonction de ce type 
31 et ce sans aucune preuve rigoureuse. Ce chapitre caractérise la 
32 classe des réseaux de neurones MLP chaotiques. Il  
33 s'intéresse ensuite à l'étude de prévisibilité de systèmes dynamiques
34 discrets chaotiques par cette famille de MLP.
35
36 La section~\ref{S2} définit la construction d'un réseau de neurones 
37 chaotique selon Devanay. La section~\ref{S3} présente l'approche duale 
38 de vérification si un réseau de neurones est chaotique ou non.
39 La section~\ref{sec:ann:approx} s'intéresse à étudier pratiquement
40 si un réseau de 
41 neurones peut approximer des itération unaires chaotiques. Ces itérations
42 étant obtenues à partir de fonction générées à l'aide du chapitre précédent.
43
44
45 \section{Un réseau de neurones chaotique au sens de Devaney}
46 \label{S2}
47
48 On considère une fonction 
49 $f:\Bool^n\to\Bool^n$ telle que  $\textsc{giu}(f)$ est fortement connexe.
50 Ainsi $G_{f_u}$ est chaotique d'après le théorème~\ref{Th:CaracIC}.
51
52 On considère ici le schéma unaire défini par l'équation (\ref{eq:asyn}).
53 On construit un Perceptron multi-couches associé à la fonction  
54 $F_{f_u}$. 
55 Plus précisément, pour chaque entrée 
56  $(x,s)   \in  \mathds{B}^n \times [n]$,
57 la couche de sortie doit générer $F_{f_u}(x,s)$.   
58 On peut ainsi lier la couche de sortie avec celle d'entrée pour représenter 
59 les dépendance entre deux itérations successives.
60 On obtient une réseau de neurones dont le comportement est le suivant 
61 (voir Figure.~\ref{Fig:perceptron}):
62
63 \begin{itemize}
64 \item   Le réseau est initialisé avec le vecteur d'entrée
65   $\left(x^0,S^0\right)  \mathds{B}^n \times [n]$      
66   et calcule le  vecteur de sortie 
67   $x^1=F_{f_u}\left(x^0,S^0\right)$. 
68   Ce vecteur est publié comme une sortie et est aussi retournée sur la couche d'entrée 
69   à travers les liens de retours.
70 \item Lorsque le réseau est  activé à la $t^{th}$  itération, l'état du 
71   système $x^t  \in \mathds{B}^n$ reçu depuis la couche de sortie ainsi que le 
72   premier terme de la  séquence $(S^t)^{t  \in \Nats}$
73   (\textit{i.e.},  $S^0  \in [n]$)  servent à construire le nouveau vecteur de sortie.
74   Ce nouveau vecteur, qui représente le nouvel état du système dynamique, satisfait:
75   \begin{equation}
76     x^{t+1}=F_{f_u}(x^t,S^0) \in \mathds{B}^n \enspace .
77   \end{equation}
78 \end{itemize}
79
80 \begin{figure}
81   \centering
82   \includegraphics[scale=0.625]{images/perceptron}
83   \caption{Un Perceptron équivalent  aux itérations unitaires}
84   \label{Fig:perceptron}
85 \end{figure}
86
87 Le comportement de ce réseau de neurones est tel que lorsque l'état 
88 initial est composé de $x^0~\in~\mathds{B}^n$ et d'une séquence
89  $(S^t)^{t  \in \Nats}$, alors la séquence  contenant les vecteurs successifs 
90 publiés $\left(x^t\right)^{t \in \mathds{N}^{\ast}}$ est exactement celle produite 
91 par les itérations unaires décrites à la section~\ref{sec:TIPE12}.
92 Mathématiquement, cela signifie que si on utilise les mêmes vecteurs d'entrées
93 les deux approches génèrent successivement les mêmes sorties.
94 En d'autres termes ce réseau de neurones modélise le comportement de  
95 $G_{f_u}$,  dont les itérations sont chaotiques sur $\mathcal{X}_u$.
96 On peut donc le  qualifier de chaotique au sens de Devaney.
97
98 \section{Vérifier si un réseau de neurones est chaotique}
99 \label{S3}
100 On s'intéresse maintenant au cas où l'on dispose d'un
101 réseau de neurones de type Perceptron multi-couches
102 dont on cherche à savoir s'il est chaotique (parce qu'il a par exemple été 
103 déclaré comme tel) au sens de Devaney. 
104 On considère de plus que sa topologie est la suivante:
105 l'entrée est constituée de  $n$ bits et un entier, la sortie est constituée de $n$ bits
106 et chaque sortie est liée à une entrée par une boucle.
107
108 \begin{itemize}
109 \item Le réseau est initialisé avec  $n$~bits
110    $\left(x^0_1,\dots,x^0_n\right)$ et une valeur entière $S^0 \in [n]$.
111 \item  A l'itération~$t$,     le vecteur 
112   $\left(x^t_1,\dots,x^t_n\right)$  permet de construire les $n$~bits 
113   servant de sortie $\left(x^{t+1}_1,\dots,x^{t+1}_n\right)$.
114 \end{itemize}
115
116 Le comportement de ce type de réseau de neurones peut être prouvé comme 
117 étant chaotique en suivant la démarche énoncée maintenant.
118 On nomme tout d'abord $F:    \mathds{B}^n  \times [n] \rightarrow
119 \mathds{B}^n$     la      fonction qui associe  
120 au vecteur 
121 $\left(\left(x_1,\dots,x_n\right),s\right)    \in   \mathds{B}^n \times[n]$ 
122 le vecteur 
123 $\left(y_1,\dots,y_n\right)       \in       \mathds{B}^n$, où
124 $\left(y_1,\dots,y_n\right)$  sont les sorties du réseau neuronal
125 après l'initialisation de la couche d'entrée avec 
126 $\left(s,\left(x_1,\dots, x_n\right)\right)$.  Ensuite, on définie $f:
127 \mathds{B}^n       \rightarrow      \mathds{B}^n$  telle que 
128 $f\left(x_1,x_2,\dots,x_n\right)$ est égal à 
129 \begin{equation}
130 \left(F\left(\left(x_1,x_2,\dots,x_n\right),1\right),\dots,
131   F\left(\left(x_1,x_2,\dots,x_n\right)\right),n\right) \enspace .
132 \end{equation}
133 Ainsi pour chaque $j$, $1 \le j \le n$, on a 
134 $f_j\left(x_1,x_2,\dots,x_n\right) = 
135 F\left(\left(x_1,x_2,\dots,x_n\right),j\right)$.
136 Si ce réseau de neurones est initialisé avec 
137 $\left(x_1^0,\dots,x_n^0\right)$   et $S   \in    [n]^{\mathds{N}}$, 
138 il produit exactement les même sorties que les itérations de  $F_{f_u}$ avec une 
139 condition initiale $\left((x_1^0,\dots,  x_n^0),S\right)  \in  \mathds{B}^n \times [n]^{\mathds{N}}$.
140 Les itérations de $F_{f_u}$ 
141 sont donc un modèle formel de cette classe de réseau de neurones.
142 Pour vérifier si un de ces représentants est chaotique, il suffit ainsi 
143 de vérifier si le graphe d'itérations
144 $\textsc{giu}(f)$ est fortement connexe.
145
146
147 \section{Un réseau de neurones peut-il approximer
148 des itération unaires chaotiques?}\label{sec:ann:approx}
149
150 Cette section s'intéresse à étudier le comportement d'un réseau de neurones 
151 face à des itérations unaires chaotiques, comme définies à 
152 la section~\ref{sec:TIPE12}.
153 Plus précisément, on considère dans cette partie une fonction  dont le graphe 
154 des itérations unaires est fortement connexe et une séquence dans 
155 $[n]^{\mathds{N}}$. On cherche à construire un réseau de neurones
156 qui approximerait les itérations de la fonction $G_{f_u}$ comme définie 
157 à l'équation~(\ref{eq:sch:unaire}).
158
159 Sans perte de généralité, on considère dans ce qui suit une instance
160 de de fonction à quatre éléments.
161
162 \subsection{Construction du réseau} 
163 \label{section:translation}
164
165 On considère par exemple les deux fonctions $f$ and $g$ de $\Bool^4$
166 dans $\Bool^4$ définies par:
167
168 \begin{eqnarray*}
169 f(x_1,x_2,x_3,x_4) &= &
170 (x_1(x_2+x_4)+ \overline{x_2}x_3\overline{x_4},
171 x_2,
172 x_3(\overline{x_1}.\overline{x_4}+x_2x_4+x_1\overline{x_2}),
173 x_4+\overline{x_2}x_3) \\
174 g(x_1,x_2,x_3,x_4) &= &
175 (\overline{x_1},
176 \overline{x_2}+ x_1.\overline{x_3}.\overline{x_4},
177 \overline{x_3}(x_1 + x_2+x_4),
178 \overline{x_4}(x_1 + \overline{x_2}+\overline{x_3}))
179 \end{eqnarray*}
180 On peut vérifier facilement que le graphe $\textsc{giu}(f)$ 
181 n'est pas fortement connexe car $(1,1,1,1)$ est un point fixe de $f$
182 tandis que le graphe $\textsc{giu}(g)$ l'est.   
183
184 L'entrée du réseau est une paire de la forme 
185 $(x,(S^t)^{t  \in  \Nats})$ et sa sortie correspondante est
186 de la forme  $\left(F_{h_u}(S^0,x), \sigma((S^t)^{t          \in
187   \Nats})\right)$ comme définie à l'équation~(\ref{eq:sch:unaire}).
188
189 On s'intéresse d'abord aux différentes manières de  
190 mémoriser des configurations. On en considère deux principalement.
191 Dans le premier cas, on considère une entrée booléenne par élément
192 tandis que dans le second cas, les configurations  sont mémorisées comme 
193 des entiers naturels. Dans ce dernier cas, une approche naïve pourrait 
194 consister à attribuer à chaque configuration de $\Bool^n$ 
195 l'entier naturel naturel correspondant.
196 Cependant, une telle représentation rapproche 
197 arbitrairement des configurations diamétralement
198 opposées dans le $n$-cube comme  une puissance de
199 deux et la configuration immédiatement précédente: 10000 serait modélisée 
200 par 16 et  et 01111 par 15 alors que leur distance de Hamming est 15.
201 De manière similaire, ce codage éloigne des configurations qui sont 
202 très proches: par exemple 10000 et 00000 ont une distance de Hamming 
203 de 1 et sont respectivement représentées par 16 et 0.
204 Pour ces raisons, le codage retenu est celui des codes de Gray~\cite{Gray47}.
205
206 Concentrons nous sur la traduction de la stratégie.
207 Il n'est naturellement pas possible de traduire une stratégie 
208 infinie quelconque à l'aide d'un nombre fini d'éléments.
209 On se restreint donc à des stratégies de taille 
210 $l \in \llbracket 2,k\rrbracket$, où $k$ est un paramètre défini
211 initialement. 
212 Chaque stratégie est mémorisée comme un entier naturel exprimé en base 
213 $n+1$: à chaque itération, soit aucun élément n'est modifié, soit un 
214 élément l'est. 
215 Enfin, on donne une dernière entrée: $m  \in \llbracket
216 1,l-1\rrbracket$, qui est le nombre d'itérations successives que l'on applique 
217 en commençant à $x$. 
218 Les sorties (stratégies et configurations) sont mémorisées 
219 selon les mêmes règles.
220
221 Concentrons nous sur la complexité du problème.
222 Chaque entrée, de l'entrée-sortie de l'outil est un triplet 
223 composé d'une configuration $x$, d'un extrait  $S$ de la stratégie à 
224 itérer de taille $l \in \llbracket 2, k\rrbracket$ et d'un nombre $m \in  \llbracket 1, l-1\rrbracket$ d'itérations à exécuter.
225 Il y a  $2^n$  configurations $x$ et  $n^l$ stratégies de
226 taille $l$. 
227 De plus, pour une  configuration donnée, il y a 
228 $\omega = 1 \times n^2 +  2 \times n^3 + \ldots+ (k-1) \times n^k$
229 manières d'écrire le couple $(m,S)$. Il n'est pas difficile d'établir que 
230 \begin{equation}
231 \displaystyle{(n-1) \times \omega = (k-1)\times n^{k+1} - \sum_{i=2}^k n^i} \nonumber
232 \end{equation}
233 donc
234 \begin{equation}
235 \omega =
236 \dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2} \enspace . \nonumber
237 \end{equation}
238 \noindent
239 Ainsi le nombre de paire d'entrée-sortie pour les réseaux de neurones considérés
240 est 
241 $$
242 2^n \times \left(\dfrac{(k-1)\times n^{k+1}}{n-1} - \dfrac{n^{k+1}-n^2}{(n-1)^2}\right) \enspace .
243 $$
244 Par exemple, pour $4$   éléments binaires et une stratégie d'au plus 
245 $3$~termes on obtient 2304 couples d'entrée-sortie.
246
247 \subsection{Expérimentations}
248 \label{section:experiments}
249 On se focalise dans cette section sur l'entraînement d'un Perceptron 
250 multi-couches pour apprendre des itérations chaotiques. Ce type de réseau
251 ayant déjà été évalué avec succès dans la prédiction de 
252 séries chaotiques temporelles. En effet, les auteurs de~\cite{dalkiran10} 
253 ont montré qu'un MLP pouvait apprendre la dynamique du circuit de Chua.
254 Ce réseau avec rétropropagation est composé de  deux couches 
255 et entraîné à l'aide d'une  propagation arrière Bayesienne.
256
257 Le choix de l'architecture du réseau ainsi que de la méthode d'apprentissage 
258 ont été détaillé dans~\cite{bcgs12:ij}.
259 En pratique, nous avons considéré des configurations de
260 quatre éléments booléens 
261 et une stratégie fixe de longueur 3.
262 Pour le premier codage, nous avons ainsi 6~entrées et 5~sorties
263 tandis que pour le second, uniquement  3 entrées et 2 sorties.
264 Cela engendre ainsi 2304~combinaisons possibles comme détaillé à la 
265 section précédente.
266
267
268
269 \begin{table}[htbp!]
270 \centering {\small
271 \begin{tabular}{|c|c||c|c|c|}
272 \hline 
273 \multicolumn{5}{|c|}{Topologie du réseau: 6~entrées, 5~sorties, 1~couche cachée} \\
274 \hline
275 \hline
276 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{10 neurones} \\
277 \cline{3-5} 
278 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ 
279 \hline
280 \multirow{6}{*}{\rotatebox{90}{Chaotique $g$ }}&Entrée~(1) & 90.92\% & 91.75\% & 91.82\% \\ 
281 & Entrée~(2) & 69.32\% & 78.46\% & 82.15\% \\
282 & Entrée~(3) & 68.47\% & 78.49\% & 82.22\% \\
283 & Entrée~(4) & 91.53\% & 92.37\% & 93.4\% \\
284 & Config. & 36.10\% & 51.35\% & 56.85\% \\
285 & Stratégie~(5) & 1.91\% & 3.38\% & 2.43\% \\
286 \hline
287 \multirow{6}{*}{\rotatebox{90}{Non-chaotic $f$}}&Entrée~(1) & 97.64\% & 98.10\% & 98.20\% \\
288 & Entrée~(2) & 95.15\% & 95.39\% & 95.46\% \\
289 & Entrée~(3) & 100\% & 100\% & 100\% \\
290 & Entrée~(4) & 97.47\% & 97.90\% & 97.99\% \\
291 & Config. & 90.52\% & 91.59\% & 91.73\% \\
292 & Stratégie~(5) & 3.41\% & 3.40\% & 3.47\% \\
293 \hline
294 \hline
295 \multicolumn{2}{|c||}{Neurones cachés} & \multicolumn{3}{c|}{25 neurones} \\
296 \cline{3-5} \\%& \multicolumn{3}{|c|}{40 neurons} \\
297 \multicolumn{2}{|c||}{Epochs} & 125 & 250 & 500 \\ %& 125 & 250 & 500 \\ 
298 \hline
299 \multirow{6}{*}{\rotatebox{90}{Chaotique $g$}}&Entrée~(1) & 91.65\% & 92.69\% & 93.93\% \\ %& 91.94\% & 92.89\% & 94.00\% \\
300 & Entrée~(2) & 72.06\% & 88.46\% & 90.5\% \\ %& 74.97\% & 89.83\% & 91.14\% \\
301 & Entrée~(3) & 79.19\% & 89.83\% & 91.59\% \\ %& 76.69\% & 89.58\% & 91.84\% \\
302 & Entrée~(4) & 91.61\% & 92.34\% & 93.47\% \\% & 82.77\% & 92.93\% & 93.48\% \\
303 & Config. & 48.82\% & 67.80\% & 70.97\% \\%& 49.46\% & 68.94\% & 71.11\% \\
304 & Stratégie~(5) & 2.62\% & 3.43\% & 3.78\% \\% & 3.10\% & 3.10\% & 3.03\% \\
305 \hline
306 \multirow{6}{*}{\rotatebox{90}{Non-chaotique $f$}}&Entrée~(1) & 97.87\% & 97.99\% & 98.03\% \\ %& 98.16\% \\
307 & Entrée~(2) & 95.46\% & 95.84\% & 96.75\% \\ % & 97.4\% \\
308 & Entrée~(3) & 100\% & 100\% & 100\% \\%& 100\% \\
309 & Entrée~(4) & 97.77\% & 97.82\% & 98.06\% \\%& 98.31\% \\
310 & Config. & 91.36\% & 91.99\% & 93.03\% \\%& 93.98\% \\
311 & Stratégie~(5) & 3.37\% & 3.44\% & 3.29\% \\%& 3.23\% \\
312 \hline
313 \end{tabular}
314 }
315 \caption{Taux de prédiction lorsque les configurations sont exprimées comme un vecteur booléen.}
316 \label{tab1}
317 \end{table}
318 Le tableau~\ref{tab1} synthétise les résultats obtenus avec le premier 
319 codage. Sans surprise, la précision de la prédiction croit 
320 avec l'Epoch et le nombre de neurones sur la couche cachée.
321 Dans tous les cas, les résultats sont plus précis dans le cas non 
322 chaotique que dans l'autre. Enfin, le réseau ne parvient jamais à
323 apprendre le comportement de la stratégie.
324
325 \begin{table}[b]
326 \centering
327 \begin{tabular}{|c|c||c|c|c|}
328 \hline 
329 \multicolumn{5}{|c|}{Topologie du réseau: 3~entrées, 2~sorties, 1~couche cachée} \\
330 \hline
331 \hline
332 & Neurones cachés & \multicolumn{3}{c|}{10 neurones} \\
333 \cline{2-5}
334 & Epochs & 125 & 250 & 500 \\ %& 1000 
335 \hline
336 \multirow{2}{*}{Chaotique $g$}& Config.~(1) & 13.29\% & 13.55\% & 13.08\% \\ %& 12.5\%
337 & Stratégie~(2) & 0.50\% & 0.52\% & 1.32\% \\ %& 1.42\%
338 \hline
339 \multirow{2}{*}{Non-Chaotique $f$}&Config.~(1) & 77.12\% & 74.00\% & 72.60\% \\ %& 75.81\% 
340 & Stratégie~(2) & 0.42\% & 0.80\% & 1.16\% \\ %& 1.42\% 
341 \hline
342 \hline
343 & Neurones cachés& \multicolumn{3}{c|}{25 neurones} \\
344 \cline{2-5}
345 & Epochs & 125 & 250 & 500 \\ %& 1000 
346 \hline
347 \multirow{2}{*}{Chaotique $g$ }& Config.~(1) & 12.27\% & 13.15\% & 13.05\% \\ %& 15.44\%
348 & Stratégie~(2) & 0.71\% & 0.66\% & 0.88\% \\ %& 1.73\%
349 \hline
350 \multirow{2}{*}{Non-Chaotique $f$}&Config.~(1) & 73.60\% & 74.70\% & 75.89\% \\ %& 68.32\%
351 & Stratégie~(2) & 0.64\% & 0.97\% & 1.23\% \\ %& 1.80\%
352 \hline
353 \end{tabular}
354 \caption{Taux de prédiction lorsque les configurations sont exprimées 
355 à l'aide de codes de Gray.}
356 \label{tab2}
357 \end{table}
358
359
360
361 Les résultats concernant le second codage  (\textit{i.e.},  avec les codes
362 de   Gray) sont synthétisés dans le tableau~\ref{tab2}. On constate 
363 que le réseau apprend cinq fois mieux les comportement non chaotiques
364 que ceux qui le sont. Ceci est est illustré au travers des 
365 figures~\ref{Fig:chaotic_predictions} et~\ref{Fig:non-chaotic_predictions}.
366 De plus, comme dans le codage précédent, les stratégies ne peuvent pas être 
367 prédites.  
368 On constate que ce second codage réduit certes le nombre de sorties, mais est 
369 largement moins performant que le premier.
370 On peut expliquer ceci par le fait
371 que ce second codage garantit que deux entiers successifs correspondent 
372 à deux configurations voisines, \textit{i.e.}, qui ne diffèrent que d'un 
373 élément.
374 La réciproque n'est cependant pas établie et deux configurations voisines
375 peuvent être traduites par des entiers très éloignés et ainsi difficiles 
376  à apprendre. 
377
378
379 \begin{figure}[ht]
380   \begin{center}
381     \subfigure[Fonction chaotique $g$]{
382       \begin{minipage}{0.48\textwidth}
383         \begin{center}
384           \includegraphics[scale=0.37]{images/chaotic_trace2}
385         \end{center}
386       \end{minipage}
387       \label{Fig:chaotic_predictions}
388     }
389     \subfigure[Fonction non-chaotique $f$]{
390       \begin{minipage}{0.48\textwidth}
391         \begin{center}
392           \includegraphics[scale=0.37]{images/non-chaotic_trace2} 
393         \end{center}
394       \end{minipage}
395       \label{Fig:non-chaotic_predictions}
396     }
397   \end{center}
398   \caption {Prédiction lorsque les configurations sont exprimées 
399 à l'aide de codes de Gray.}
400 \end{figure}
401
402
403 \section{Conclusion}
404 Dans ce chapitre, nous avons établi une similitude entre les itérations 
405 chaotiques et une famille  de Perceptrons multi-couches.
406 Nous avons d'abord montré comment  construire un réseau de neurones 
407 ayant un comportement chaotique.
408 Nous avons présenté ensuite comment vérifier si un réseau de neurones 
409 établi était chaotique.
410 Nous avons enfin montré en pratique qu'il est difficile pour un 
411 réseau de neurones d'apprendre le comportement global d'itérations
412 chaotiques.
413 Comme il est difficile (voir impossible) d'apprendre le comportement 
414 de telles fonction, il paraît naturelle de savoir si celles ci peuvent être 
415 utilisées pour générer des nombres pseudo aléatoires.
416
417
418 % \appendix{}
419
420 % \begin{Def} \label{def2}
421 % A continuous function $f$  on a topological space $(\mathcal{X},\tau)$
422 % is defined  to be  {\emph{topologically transitive}}  if for any  pair of
423 % open  sets $U$,  $V  \in  \mathcal{X}$ there  exists  
424 % $k \in
425 % \mathds{N}^{\ast}$
426 %  such  that
427 % $f^k(U) \cap V \neq \emptyset$.
428 % \end{Def}
429
430 %\bibliography{chaos-paper}% Produces the bibliography via BibTeX.
431
432 %\end{document}
433 %
434 % ****** End of file chaos-paper.tex ******