États inaccessibles
Un automate fini peut avoir des états que l’on ne peut jamais atteindre. On les appelle des états inaccessibles. En général, on veut les supprimer, car ils compliquent l’automate pour rien.
Exemple d’états inaccessibles
Considérons cet automate :
On voit que, quoi que l’on fasse, on n’arrive jamais à l’état q3, car aucune transition n’y mène. On dit donc que l’état q3 est inaccessible. Une question : l’état q3 serait-il accessible si une transition partait d’un autre état pour y aboutir ? Si l’on faisait partir un arc de l’un des états q0, q1, q2, q5, il serait accessible. Et si l’on ajoutait un autre nœud et une transition partant de lui…
…alors les deux états q3 et q4 seraient bien sûr inaccessibles.
Définition d’un état inaccessible
On commence par définir un état accessible. Soit un automate fini A = (Q ; Σ ; δ ; q0 ; F). On dit qu’un état q ∈ Q est accessible s’il existe un mot w ∈ Σ∗ tel que
Un état q ∈ Q est inaccessible s’il n’est pas accessible.
Comment supprimer les états inaccessibles
Si un automate possède déjà des états inaccessibles, il vaut mieux les supprimer. On construit ainsi un automate équivalent A′ = (Q′ ; Σ ; δ′ ; q0 ; F′) sans états inaccessibles.
On construit pas à pas l’ensemble des états accessibles. On commence par l’ensemble S0 = {q0}, car l’état initial est évidemment accessible. On construit l’ensemble suivant ainsi :
En clair, l’ensemble S0 est toujours donné ; pour obtenir S1, on prend tous les états de S0 et l’on regarde où mènent les transitions pour toutes les lettres de Σ. On fait la réunion de ces états avec l’ensemble initial S0. On trouve de la même façon S2, puis les suivants. On a évidemment Si − 1 ⊂ Si.
On obtient alors l’ensemble des états accessibles ainsi :
Cela peut sembler étrange de faire la réunion d’une infinité d’ensembles Si, mais l’automate n’a qu’un nombre fini d’états. À partir d’un certain moment, les ensembles Sj, Sj + 1 et tous les suivants sont donc égaux, si bien que même après la réunion d’une infinité d’ensembles, on obtient un ensemble fini d’états.
Revenons à l’automate
et cherchons l’ensemble de ses états accessibles. On commence par poser l’égalité de départ
Calculons maintenant l’ensemble S1. Il faut trouver toutes les transitions partant de l’état q0 et ajouter leurs états d’arrivée à l’ensemble S0. Comme q0 → a q1 et q0 → bq2, l’ensemble S1 contiendra en plus les états q1 et q2 :
Construisons ensuite l’ensemble S2. On regarde où l’on peut aller à partir des états q0, q1, q2. Le seul nouvel état est q5, que l’on atteint depuis l’état q1 :
Construisons maintenant l’ensemble S3. Peut-on atteindre un nouvel état depuis q0, q1, q2, q5 ? Non, donc l’ensemble S3 contient les mêmes éléments que S2 :
Comme S2 = S3, on a aussi S3 = S4 = S5 = … Si l’on fait la réunion de tous les Si, on obtient l’ensemble S2, car aucun autre élément n’apparaît dans les ensembles suivants.
L’ensemble des états accessibles de l’automate est donc {q0 ; q1 ; q2 ; q5}. On obtient les états inaccessibles par une simple différence d’ensembles :
L’ensemble des états inaccessibles de notre automate est {q3 ; q4}. On supprime de l’automate A tous les états inaccessibles et toutes les transitions qui contenaient un état inaccessible. C’est-à-dire que l’automate équivalent sans états inaccessibles A′ = (Q′ ; Σ ; δ′ ; q0 ; F′) associé à l’automate A = (Q ; Σ ; δ ; q0 ; F) se définit ainsi :
- ∀q ∈ Q′, a ∈ Σ: δ′(q, a) = δ(q, a)
Sources
Chapitres: États inaccessibles, États inutiles, Minimisation d’un automate