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

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

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 .

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

TIP
On peut reformuler la reconnaisance d’un mot ainsi
Donc si il existe un état initial tq contient un etat final
Notes
- Si alors on a
- Si n’a pas de circuit alors est fini
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.

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 )

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
- Le déterminiser
- Le compléter
- 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

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
- Complémenter et
- Faire l’union de ces compléments
- Complémenter cette même union