112 lines
3.7 KiB
TeX
112 lines
3.7 KiB
TeX
\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}
|