\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.

    \subsection{Accessibilité}

        \begin{itemize}

            \item Un automate accessible ne contient que des états qui peuvent être atteints.

            \item Un automate coaccessible ne contient que des états pouvant mener à un état terminal.

            \item Un automate émondé est à la fois accessible et coaccessible.

        \end{itemize}

    \subsection{Automate standard}

        Un automate standard ne contient qu'un seul état initial.
        Aucune transition n'arrive sur cet état initial.

\end{document}
