• Aucun résultat trouvé

Langages rationnels

N/A
N/A
Protected

Academic year: 2022

Partager "Langages rationnels"

Copied!
6
0
0

Texte intégral

(1)

L2: cours I4c Langages et automates

Olivier Togni, LE2I (038039)3887

[email protected]

Modifi´e le 30 mai 2007

1 de 25

Sommaire

Utiles pour compilation, interpr´etation,...

1. Langages rationnels 2. Langages reconnaissables 3. Langages alg´ebriques

2 de 25 L2: cours I4c Langages et automates

Langages rationnels

Les mots

- alphabet=ensemble fini de symboles (lettres) - mot sur alphabet A : suite finie de lettres de A - A=ensemble des mots d´efinis sur A

- mot vide ∈A

- longueur d’un mot u : |u|=nb de lettres.|u|a=nb d’occurences de a dans u.

- op´eration de concat´enation sur A : si u =abc et v =cac alors u.v =abccac.

Rem : op´eration associative (u(v.w) = (u.v)w) mais pas commutative (∃u,v,u.v 6=v.u).

- notation : le mot aaabbab sera raccourci en a3b2ab.

- (A, ., ) est un mono¨ıde (ensemble muni d’une op´eration associative et d’un ´el´ement neutre, mais pas forcement d’inverse

L2: cours I4c Langages et automates Langages rationnels

Langages rationnels

- Langage formel sur A= ensemble fini ou infini de mots de A : L⊂A.

- op´erations :

* compl´ementation L={u ∈A,u 6∈L}

* union L1∪L2 ={u ∈A,u ∈L1 ou u ∈L2}

* intersection L1∩L2={u ∈A,u ∈L1 et u ∈L2}

* produit L1.L2={u ∈A,u =u1u2,u1 ∈L1 et u2∈L2}

* fermeture it´erative : L est l’ensemble des mots form´es par un concat´enation finie de mots de L: L ={} ∪L∪L2∪L3∪. . ..

L+=L− {}.

(2)

Expressions rationnelles

D´ efinition

Un langage est dit rationnel s’il s’´ecrit de mani`ere finie `a l’aide des op´erations d’union, de produit et de fermeture transitive `a partir des lettres de l’alphabet et du mot vide.

⇒ d´efini par une expression rationnelle. De fa¸con formelle :

D´ efinition

Une expression rationnelle est d´efinie de fa¸con inductive par : - ∅ est une expression rationnelle,

- si a est une lettre, a est une expression rationnelle, - si E est une expression rationnelle, E aussi,

- si E1 et E2 sont des expr. rationnelles, E1+E2 et E1E2 aussi.

5 de 25

Exemple

Ex : si A={a,b,c}, A = (a∪b∪c) = (a+b+c).

Ex : sur {a,b}, donner les expressions rationnelles correspondant au langages suivants :

I mots ayant 1 seule occurence de b

I mots contenantabab

I mots ne contenant pasabab.

6 de 25 L2: cours I4c Langages et automates

Langages rationnels

Langages reconnaissables

D´ efinition

Un automate fini A est un sextuplet (A,Q,T, λ,I,F) avec : - A alphabet fini appel´e alphabet d’entr´ee,

- Q ensemble fini d’´etats, - T ensemble des transitions,

- λ :T →A ´etiquettes des transitions, - I ensemble des ´etats initiaux,

- F ensemble des ´etats terminaux (ou finals),

Rem : (Q,T, λ) est un graphe orient´e ´etiquet´e (les arcs ont une valeur ou ´etiquette qui est une lettre de A).

L2: cours I4c Langages et automates Langages rationnels

Exemple

(3)

Langage reconnu par un automate

Soit r =q0,q1, . . . ,qp un chemin dans A

La trace λ(r) de r est le mot de A form´e par les ´etiquettes port´ees par les arcs qui composent le chemin :

λ(r) =λ(q0,q1)λ(q1,q2). . . λ(qp−1,qp).

D´ efinition

Le langage reconnu par un automate A est l’ensemble des traces de tous les chemins qui partent d’un ´etat initial et aboutissent `a un

´etat final : L(A) ={λ(r)∈A,r =q0,q1, . . . ,qp,q0 ∈I,qp ∈F}.

D´ efinition

Un langage L est reconnaissable ssi il existe un automate fini A tel que L=L(A).

9 de 25

Exemple :

Langage reconnu par l’automate de l’ex pr´ec´edant

10 de 25 L2: cours I4c Langages et automates

Langages rationnels

Automates minimaux et complets

Il existe souvent plusieurs solutions d’automates correspondant `a un langage reconnaissable. Il existe une solution utilisant un nombre minimum d’´etats : l’automate minimal. Il existe des algos pour minimiser un automate.

D´ efinition

Un automate est complet ssi ∀q ∈Q,∀a∈A, il existe au moins une transition t d’origine q et d’´etiquette a.

Il est facile de rendre un automate complet en ajoutant un ´etat appel´e puit et toutes les transitions manquantes de chaque ´etat vers ce puit.

L2: cours I4c Langages et automates Langages rationnels

Automates d´ eterministes

D´ efinition

Un automate est d´eterministe ssi : - il n’y a qu’un seul ´etat initial, et

- ∀q ∈Q,∀a∈A, il existe au plus une transition t d’origine q et d’´etiquette a.

Un automate non d´eterministe est souvent plus facile `a construire (qu’un d´eterministe), par contre il est plus facile de tester si un mot appartient `a un langage quand on est en pr´esence d’un automate d´eterministe.

(4)

Automates d´ eterministes

Pour un automate d´eterministe, on peut d´efinir la fonction ou table de transition δ:Q ×A→Q, qui `a partir d’un ´etat et d’une lettre, donne l’´etat dans lequel on arrive si on suit la transition correspondant `a la lettre.

Ex :

13 de 25

Automates d´ eterministes

Un automate A sera non d´eterministe si au moins une des situations suivantes `a lieu :

- A poss`ede au moins deux ´etats initiaux - A poss`ede des transitions ´etiquet´ees - δ n’est pas une fonction mais une relation.

Il existe des algorithmes pour d´eterminiser un automate, donc il existe toujours une solution d´eterministe ! !

14 de 25 L2: cours I4c Langages et automates

Langages rationnels

Exemple

Construire un automate d´eterministe acceptant le langage (aab+aa+aabb)

L2: cours I4c Langages et automates Langages rationnels

Algorithme de simulation d’un automate d´ eterministe

Etat <- etat_initial

Tant Que (il reste des lettres) faire Debut

Lire(lettre)

Etat <- TT[Etat,lettre] //TT=table de transition Fin

Si Etat est un etat final alors le mot est reconnu sinon le mot n’est pas reconnu

(5)

Rationnel vs reconnaissable

Th´ eor` eme (Kleene)

L est reconnaissable ssi L est rationnel.

En d’autres termes, il est possible de construire un automate `a partir de n’importe quelle expression rationnelle et, r´eciproquement, d’associer une expression rationnelle `a tout automate.

Les langages rationnels (ou reconnaissables) permettent de d´efinir formellement beaucoup de langages, mais pas tous. Par ex le langage {anbn,n∈N} n’est pas rationnel.

⇒ Langages alg´ebriques...

18 de 25

Langages alg´ ebriques

Bas´es sur la notion de r´e´ecriture...

D´ efinition

Une grammaire alg´ebrique est un triplet G = (T,N,P) o`u - T est un alphabet fini dit terminal,

- N est un alphabet fini dit non-terminal et disjoint de T , - P est un ensemble fini de r`egles de production. Une r`egle est A→u,A∈N,u ∈(N ∪T)

19 de 25 L2: cours I4c Langages et automates

Langages rationnels

Exemple

T ={a,b}, N ={A,B,S} et

P ={S →A,S →B,B →bB,B →,A→aA,A→}.

Convention : Terminaux=minuscules, non-terminaux= majuscules

L2: cours I4c Langages et automates Langages rationnels

R´ e´ ecriture

D´ efinition

Soient f et g deux mots de (N∪T). On dit que f se r´e´ecrit en g par application de la r`egle p :A→u, que l’on note f →p g ssi f est de la forme f =f1Af2 et g =f1uf2.

Uned´erivation est une s´equence de r´e´ecritures la forme f1p1 f2p2 . . .fnpn fn+1.

On dit qu’un mot f se d´erive en un mot g, not´e f →g si f =g ou s’il existe une d´erivation telle que f1 =f et fn+1 =g.

On ne peut r´e´ecrire un mot ne contenant aucun ´el´ement non-terminal : un tel mot est ditterminal ou irr´eductible.

(6)

Langage alg´ ebrique

D´ efinition

Le langage engendr´e par une grammaire G `a partir de A (appel´e axiome) est l’ensemble des mots irr´eductibles obtenus par

d´erivation de A : L(G,A) ={u ∈T,A→ u}. Ce langage est un langage alg´ebrique.

Ex pr´ec´edent : mots ne contenant que des a ou que des b.

Ex : Soit G = ({a,b},{S},{s →aS,S →Sb,S →}). Le langage engendr´e par la grammaire G est L(G,S) =ab.

22 de 25

Quelques propri´ et´ es des langages alg´ ebriques

I L1 et L2 alg´ebriques ⇒L1∪L2 et L1.L2 alg´ebriques,

I L1 et L2 alg´ebriques 6⇒L1∩L2 alg´ebrique,

I tout langage rationnel (reconnaissable) est alg´ebrique.

23 de 25 L2: cours I4c Langages et automates

Langages rationnels

Arbre de d´ erivation

A tout mot d’un langage alg´ebrique on peut faire correspondre un arbre de d´erivation qui indique par quelle suite de d´erivations le mot

`

a ´et´e obtenu. La racine de l’arbre est le non-terminal de d´epart et le mot est obtenu par un parcours en largeur les feuilles de l’arbre.

Si un mot peut ˆetre obtenu par deux d´erivations diff´erentes, la grammaire est dite ambigu¨e.

Ex : G :S →x|y|z|(S)|S∗S|S+S est ambigu¨e car u =x +y ∗z peut ˆetre g´en´er´e par deux arbres de d´erivation diff´erents (les 2 d´erivations correspondant `au = (x +y)∗z et u =x + (y ∗z)).

Une version non ambigu¨e de la grammaire pr´ec´edente est : E →E +T|T,T →T ∗F|F,F →(E)|x|y|z.

L2: cours I4c Langages et automates Langages rationnels

Construction d’une grammaire ` a partir d’un automate

Chaque ´etat qi de l’automate correspond `a un non-terminal Qi de la grammaire et pour chaque transition (qi,qj) de l’automate, on ajoute la r`egle Qi →aQj, o`u a=λ(qi,qj) est l’´etiquette de la transition. Le langage engendr´e par cette grammaire est le mˆeme que l’ensemble des mots reconnus par l’automate.

Références

Documents relatifs

Mais il y a une différence tout de même entre le coup frappé qui depuis le début était représenté par qui est un son bref avec les mains par exemple, et la note qui en

[r]

Il est possible d’associer ` a chaque score possible un ´ etat, puis il faut alors construire une table de transition en fonction du point marqu´ e (c’est-` a-dire de la lettre lue).

un tableau a deux di- mensions donnant, pour chaque ´ etat q et chaque lettre a de l’alphabet, l’´ etat dans lequel on arrive si on emprunte la transition d’´ etiquette a en

Q₁ Déterminer le nombre maximum N d'entiers positifs distincts qu'il est possible d'obtenir en combinant ces trois entiers avec les quatre opérations élémentaitres +, ‒ , *, / et

Nombres rationnels Q : un nombre qui peut s’écrire sous la forme d’une fraction avec un numérateur et un dénominateur entiers.. Comment convertir un nombre périodique

Q₁ Quand M décrit Δ, montrer que CD reste parallèle à une direction fixe Δ' et que la distance de M à la droite [CD] est constante. Solution proposée

Dans un automate d´eterministe, on peut ´eliminer tous les ´etats qui ne sont pas accessibles `a partir de l’´etat initial ou `a partir desquels on ne peut pas atteindre un