Non-déterminisme et déterminisation
Nous avons introduit au chapitre 1 une distinction entre automates finis déterministes et automates finis non déterministes. La notion de non-déterminisme provient de l'impossibilité de déterminer l'état courant de l'automate à partir de son état initial et des symboles lus.
Nous avons vu au chapitre 2 l'intérêt des transitions instantanées (étiquetées ) pour la construction de Kleene qui construit, pour toute expression régulière, un automate fini non déterministe qui accepte le même langage. Se pose alors la question de l'expressivité du non-déterminisme : existe-t-il des langages réguliers qui sont acceptés par des AFN, mais par aucun AFD ? Nous avons en effet montré que tout problème de décision décrit par un langage régulier est décidé par un automate fini non déterministe. Existe-t-il donc des problèmes de décision "réguliers" qui ne peuvent pas être décidés par un automate fini déterministe ?
Élimination du non-déterminisme
Considérons l'automate fini non déterministe suivant.

accepte en particulier le mot , notamment sur l'exécution suivante :
Nous remarquons que cette exécution contient deux transitions instantanées qui sont toutes les deux indispensables à pour accepter (sur cette exécution) puisque, d'une part, depuis il n'y a aucune transition d'étiquette et, d'autre part, sans la transition , l'exécution se terminerait en qui n'est pas accepteur. En toute généralité, il peut être nécessaire qu'un automate fini non déterministe franchisse une ou plusieurs transitions instantanées avant et après avoir lu chaque symbole du mot d'entrée afin de l'accepter. La figure suivante présente l'arbre des exécutions de sur le mot , où nous avons donné l'occasion à de franchir autant de transitions instantanées que possible (les symboles de sont séparés par des ). Nous voyons en particulier que, pour toutes les exécutions acceptantes de sur , il est nécessaire de commencer par une transition instantanée : soit , soit . Rappelons également que permet de boucler sur tout état (une séquence vide de transitions instantanées laisse l'automate dans son état). Nous construisons la séquence de transitions d'ensemble d'états en ensemble d'états de en regroupant les états suivant leur distance à la racine dans l'arbre :

Dans cette séquence, la transition signifie que, sans avoir lu aucune lettre du mot , peut se déplacer de l'état à l'un des états , ou . Puis les deux transitions indiquent que, depuis un état parmi , en lisant le symbole , atteint un état parmi , puis peut se déplacer suivant des transitions instantanées (si possible) pour se trouver dans un état parmi . Les transitions de la séquence peuvent donc être regroupées de la façon suivante :
L'ensemble des exécutions d'un automate fini non déterministe sur un mot peut donc être vu comme suit.
- débute dans l'ensemble des états pour lesquels il existe une séquence (éventuellement vide) de transitions d'un état initial à .
- Puis lit le premier symbole et atteint l'ensemble des états pour lesquels il existe une séquence de transitions issue d'un état , débutant par et suivie d'une séquence (éventuellement vide) de transitions .
- Puis lit le second symbole et atteint l'ensemble d'états .
- Et ainsi de suite : est accepté si et seulement si contient un état accepteur.
Nous pouvons in fine éliminer les pour obtenir la séquence de transitions qui suit :
Nous présentons maintenant une construction de déterminisation des automates finis non déterministes qui généralise le principe exposé ci-dessus. Celle-ci requiert deux phases :
- l'élimination des transitions instantanées ;
- l'élimination des choix non déterministes.
Clôture instantanée
Reprenons la séquence de transitions précédente. La première transition définit l'ensemble des états accessibles depuis par des transitions instantanées.
Soient un automate fini et un état de . La clôture instantanée de , notée , est l'ensemble des états de accessibles depuis par une séquence (éventuellement vide) de transitions instantanées :
La clôture instantanée se généralise à un ensemble d'états :
Construction par sous-ensembles
La seconde phase regroupe dans un même état de l'automate déterministe tous les états que l'AFN peut atteindre après la lecture d'un même préfixe, comme dans la séquence ci-dessus. À partir de , on construit l'automate déterministe :
- l'état initial est ;
- pour tout ensemble et tout , ;
- est l'ensemble des parties atteintes depuis par ;
- .
Par construction, : le non-déterminisme n'augmente donc pas l'expressivité des automates finis. En revanche, l'automate déterministe obtenu peut compter jusqu'à états, et cette borne est atteinte pour certains langages.