Équivalence de Nerode

Un article de Wikipédia, l'encyclopédie libre.

L'équivalence de Nerode (ou congruence de Nerode) est une relation d'équivalence sur les états d'un automate fini déterministe permettant de définir l'automate minimal reconnaissant le même langage. Elle est nommée ainsi en l'honneur de Anil Nerode.

Définition[modifier | modifier le code]

Soit un alphabet et un automate fini déterministe sur cet alphabet, où est l'ensemble des états, est l'ensemble des états finaux, est l'état initial. La fonction de transition est notée par un point.

Pour tout état on note

l'ensemble des mots qui mènent de à un état final. L'équivalence de Nerode est la relation, notée , sur l'ensemble des états définie par

.

Deux états équivalents sont aussi dits indistinguables. Ne pas confondre cette équivalence, définie sur les états, avec la relation de Myhill-Nerode, du théorème de Myhill-Nerode, qui est définie sur les mots.

Propriétés[modifier | modifier le code]

Cette relation permet de définir un automate dont les états sont les classes d'équivalence induites par la relation . Cet automate est l'automate minimal reconnaissant le même langage. La propriété suivante exprime que l'équivalence de Nerode est régulière à droite.

Propriété — Si , alors pour toute lettre .

En effet, , or , donc .

Il est commode de noter la classe de l'état , et l'ensemble des classes des éléments de . On peut alors définir un nouvel automate , où est l'ensemble des classes d'équivalences, et où pour et , l'état est la classe d'équivalence commune à tous les est dans la classe .

L'automate ainsi obtenu est isomorphe à l'automate minimal du langage rationnel reconnu par l'automate initial.

Mise en pratique[modifier | modifier le code]

Le calcul des classes d'équivalence peut être effectué avec l'algorithme de Moore ou l'algorithme de Hopcroft.

Bibliographie[modifier | modifier le code]