États, transitions et diagramme d'un automate
Schéma d'un automate : cercles et flèches étiquetées
Le schéma est l'outil central pour comprendre un automate d'un coup d'oeil. La convention est universelle : chaque état est dessiné comme un cercle, chaque transition comme une flèche étiquetée par la lettre qui la déclenche, l'état initial reçoit une flèche entrante venue de nulle part, et un état acceptant se distingue par un double cercle.
Prenons un exemple concret : un automate qui reconnaît exactement les mots (sur l'alphabet {a, b}) qui SE TERMINENT par «ab». Trois états suffisent :
- q0 : état initial, rien d'utile lu encore ;
- q1 : le dernier caractère lu est un «a» (bon début de motif) ;
- q2 : les deux derniers caractères lus sont «a» puis «b» - motif trouvé, état acceptant.
Automate : mots qui se terminent par «ab» (alphabet : a, b)
etat initial etat acceptant
| ^
v a b |
--> (q0) --------------> (q1) --------------> (( q2 ))
^ |
| a |
+-----------------------+ (boucle : q1 -> q1 en lisant «a»)
(les autres transitions - q2 -> q1 sur «a», q2 -> q0 sur «b»,
q0 -> q0 sur «b» - sont regroupées dans la table ci-dessous)
Table complete des transitions :
etat sur «a» sur «b»
q0 va vers q1 reste en q0
q1 reste en q1 va vers q2
q2 va vers q1 va vers q0
Legende : --> (q0) = etat initial | (( q2 )) = etat acceptant (double cercle)
Lis bien les boucles de retour : depuis q1, si on relit un «a», on reste en q1 (rien n'est perdu) ; depuis q2, si on relit un «a», on redescend en q1 (on recommence à guetter un nouveau «ab») ; et un «b» depuis q0 ou q2 nous ramène en q0 (un «b» seul ne peut jamais commencer le motif).
Piège classique : oublier une transition. Un DFA complet doit avoir EXACTEMENT une flèche sortante par lettre de l'alphabet, pour chaque état - même quand elle "ne sert à rien" d'évident, comme le retour en q0 depuis q2 sur un «b». Un schéma incomplet ne décrit pas un DFA valide.
Autre piège : croire qu'un mot est accepté dès qu'il PASSE par l'état acceptant. Le mot «aba» passe par q2 après «ab», mais se termine en q1 après le dernier «a» : il est donc rejeté, car seul le tout dernier état compte.

