Définitions

Un automate permet de savoir si un mot appartient à un langage, représente les mots d’un langage reconnus par un automate

center

Un chemin est une séquence d’États reliés par des transitions, l’ensemble des transitions forment une étiquette

center

IMPORTANT

  • est reconnu par un automate A ssi il l’est l’étiquette d’un chemin qui commence par in état initial et qui finit sur un état final.
  • Deux automates sont équivalents si ils reconnaissent le même langage et seulement L, pas plus pas moins

Fonction de transition

On peut utiliser une fonction qui prend en paramètre un état et un mot de (donc pas forcément reconnu par l’automate) et retourne tous les états que l’on atteint en partant de avec l’etiquette .

center center

INFO

Si le mot est de longueur 1 on a donc les voisins directs accessibles avec a

Exemple: center

TIP

On peut reformuler la reconnaisance d’un mot ainsi

Donc si il existe un état initial tq contient un etat final

Déterminisme

Définition

Un automate fini est déterministe (AFD) si il admet un seul état initial, et si tous les états ont au plus une transition d’une lettre donnée. center

Ici l’automate n’est pas déterministe car l’état 1 à deux transitions avec le mot . Un AFD est en général plus rapide

Epsilon Transitions

Il est possible d’avoir des epsilon transitions, c’est a dire d’avoir des transitions avec epsilon (ou le mot vide) comme lettre. C’est notamment utile quand on veut joindre deux automates pour le produit de deux alphabets

NOTE

car avec epsilon on ne nous demande pas forcément de bouger donc e est une réponse valide

Déterminisation d’un automate

On peut déterminiser un automate avec cet algorithme on a donc une complexité exponentielle

Concrètement avec cet algorithme on démarre depuis l’état initial pour chaque lettre du langage on note l’ensemble états sur lesquels on atterrit avec puis on répète l’opération pour chaque état de l’ensemble obtenu. Après tout cela on crée des états pour chaque état/ensemble d’état créés, on les relie et on marque les groups qui ont des états finaux en eux comme tel.

Complémentaire

Un automate peut admettre un complémentaire, càd pour un automate sur un alphabet qui reconnait un langage on admet qui reconnait des mots sur l’alphabet , qui ne sont pas de (qu’on appelle ) center

On peut faire ceci en intervertissant les états finaux et les états non-finaux si et seulement si l’automate est déterministe et complet.

Un automate est complet si càd si pour tout état et pour toute lettre de I’alphabet il existe une transition étiquetée qui part de

Pour compléter un automate on va créer un état puis qui va recevoir toutes les transitions manquantes.

Important

Pour Avoir la complémentaire d’un automate on va donc faire ces étapes dans l’ordre

  1. Le déterminiser
  2. Le compléter
  3. Inverser ses états finaux et non-finaux

L’union de deux langages

Pour créer un automate qui reconnait le langage de et de Il suffit de les prendre un à côté de l’autre. On a donc à un automate fini non déterministe car il garde les mêmes états finaux et initiaux on a donc center

L’intersection de deux langages

Pour créer un automate qui reconnait les mots communs à et à , on utiise là loi de Morgan: .

On va donc

  1. Complémenter et
  2. Faire l’union de ces compléments
  3. Complémenter cette même union