Concepts Fondamentaux des Automates et Langages Formels
Classé dans Informatique
Écrit le en français avec une taille de 5,27 KB
Concepts Clés en Théorie des Automates et Langages
Automate Fini Non Déterministe (AFND)
Un automate fini non déterministe est un ensemble d'états et de transitions d'un état à un autre, basées sur des symboles pris à partir d'un alphabet. Il peut avoir plusieurs transitions possibles pour un même symbole d'entrée depuis un état donné, ou aucune.
Langage Formel
Un langage formel est un ensemble de mots (ou chaînes de caractères) de longueur finie, formés à partir d'un alphabet fini. Chaque mot du langage est une séquence valide de symboles selon des règles spécifiques.
Expression Régulière
Une expression régulière est une méthode concise pour représenter les langages réguliers en utilisant les caractères de l'alphabet qui définissent le langage. Elles sont largement utilisées pour la recherche de motifs et la validation de texte.
Concaténation
La concaténation est l'opération qui consiste à combiner des caractères ou des chaînes de caractères. Elle permet de former une nouvelle chaîne en plaçant une chaîne à la suite d'une autre.
Exemples de concaténation :
'Z'
concaténé avec'132'
donne"Z132"
'456'
concaténé avec'AB'
donne"456AB"
'Z'
concaténé avec'A'
donne"ZA"
Alphabet
Un alphabet est un ensemble fini et ordonné de symboles ou de caractères. Il représente le regroupement des graphèmes utilisés pour former les mots d'un langage et sert de système de communication dans divers domaines, notamment en mathématiques et en informatique.
Chaîne de Caractères (String)
Une chaîne de caractères, un mot ou une phrase (string) est une séquence ordonnée d'éléments (symboles) de longueur arbitraire (mais finie) appartenant à un alphabet donné.
Fermeture de Kleene (Étoile de Kleene)
Si A
est un langage, la fermeture de Kleene (ou étoile de Kleene) est définie comme suit :
A* = U n = 0 An
Cela signifie qu'un caractère ou une séquence peut apparaître 0, 1, ou un nombre infini de fois dans une chaîne. C'est un opérateur fondamental en théorie des langages formels.
Fermeture Positive
La fermeture positive est définie comme suit :
A+ = U n = 1 An
Cela indique qu'un caractère ou une séquence doit apparaître au moins une fois. Elle est similaire à la fermeture de Kleene mais exclut la chaîne vide.
Exemple :
Pour l'expression "ho la+"
, les chaînes générées peuvent être : "hola", "hoola", "hooola", etc.
Machine à États Finis (Automate Fini)
Une machine à états finis, ou automate fini, est un modèle mathématique d'un système discret d'entrées et de sorties. Elle est utilisée pour modéliser des comportements séquentiels et reconnaître des langages réguliers.
Grammaire Formelle et Langages
Définition d'un Langage L(G)
Un langage L(G)
peut être défini comme l'ensemble des chaînes x
telles que :
L(G) = {x | x est (w, z)^n pour n de 1 à l'infini}
Règles de Production (Exemple) :
X -> séquence
Stream -> wyz
Stream -> séquence wyz
Structure d'une Grammaire Formelle G
Une grammaire formelle G
est généralement définie par un quadruplet (V, N, V0, P)
où :
V
: Ensemble des symboles terminaux (vocabulaire terminal)N
: Ensemble des symboles non-terminaux (vocabulaire non-terminal)V0
: Symbole de départ (axiome)P
: Ensemble des règles de production (ici représenté par|->
ou?
)
Exemple de Composants de Grammaire :
V = {dim}
(ou d'autres symboles terminaux)S = {w, z}
(peut être un sous-ensemble de V ou N, ou un alphabet)N = {V0, séquences}
V0 = V0
(le symbole de départ)
Exemple de Grammaire pour Nombres Décimaux
Voici un exemple de règles de production pour définir des nombres décimaux :
V0 -> nombre décimal
nombre décimal -> Unsigned
nombre décimal -> fraction décimale
nombre décimal -> décimal non signé
fraction décimale -> Unsigned
Unsigned -> Chiffre
Unsigned -> Chiffres Unsigned
Chiffres -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Composants de la Grammaire G :
V = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
(Symboles terminaux)N = {V0, nombre décimal, fraction décimale, Unsigned, Chiffres}
(Symboles non-terminaux)V0 = V0
(Symbole de départ)
Exemples de nombres générés : 950
, 0.85
, 830.20
, 0.79
, 1.5
...