\documentclass[a4paper,french]{article} \title{Mathématiques pour l'informatique} \author{} \date{Dernière compilation~: \today{} à \currenttime} \usepackage{../cours} \begin{document} \maketitle \tableofcontents \clearpage \section{Automates finis} Automate = fonction qui dépend d'un état et d'un changement d'état. Par exemple ON / OFF, la machine est en état d'arrêt ou en état de marche. Autre exemple~: téléphone. \begin{tabular}{l|ll} \toprule Mode & Évènement & Nouvel état \\ \midrule avion & appel émis & avion \\ avion & bouton téléphonie & téléphonie \\ \midrule téléphonie & bouton décrocher & communication \\ \midrule communication & bouton raccrocher & téléphonie \\ \bottomrule \end{tabular} L'automate est sous un état, il a des entrées qui le font peut-être passer d'un état à un autre ou effectuer des actions. Il faut en plus de cela définir un état initial (quel état avoir quand l'automate est mis en marche~?) et final (quel état avoir pour éteindre l'automate proprement~?) Un nouvel état peut dépendre de l'état précédent ou pas. On peut très bien trouver une action qui mette l'automate dans un état Y sans se soucier d'un autre état X dans lequel se trouve l'automate à un moment donné. \subsection{Automates accepteurs} Valide une suite d'entrée en fonction de certains critères. Le changement d'état est interne à l'automate, et c'est une fois que toutes les entrées ont été analysées que la sortie se fait connaître. Exemple~: déterminer si une suite de chiffres en entrée constitue un mois de l'année. \subsection{Définitions} \begin{itemize} \item \textbf{Alphabet}~: Ensemble des éléments en entrée de l'automate. \item \textbf{Mot}~: Suite d'éléments issus de l'alphabet. Cas particulier~: le mot vide, noté $\epsilon$. On a du coup $x = x\epsilon = \epsilon x$. \item \textbf{Langage}~: Ensemble de tous les mots pouvants être construits sur un alphabet donné. On note $A^*$ tous les mots y compris le mot vide. On note $A^+$ tous les mots sauf le mot vide. On appelle \emph{langage reconnu} l'ensemble des mots que l'automate a validé. \end{itemize} \subsection{Reconnaissance de mot} \begin{itemize} \item Principe \item ... \end{itemize} \subsection{Automate déterministe} À un état donné, il n'y a qu'une seule transition possible. \subsubsection{Automate complet} \subsubsection{Automate non complet} \subsection{Automate non déterministe} À un état donné, il y a plusieurs transitions possibles. Un automate non déterministe est plus difficile à mettre en \oe{}uvre en algorithmique qu'un automate déterministe. En effet, il faudra en plus des pointeurs d'état et de symbole courant maintenir une pile des opérations possibles. \end{document}