• Aucun résultat trouvé

L2: cours I4c Langages et automates

N/A
N/A
Protected

Academic year: 2022

Partager "L2: cours I4c Langages et automates"

Copied!
24
0
0

Texte intégral

(1)

L2: cours I4c Langages et automates

Olivier Togni, LE2I (038039)3887

olivier.togni@u-bourgogne.fr

Modifi´e le 31 mai 2007

(2)

L2: cours I4c Langages et automates

Sommaire

Utiles pour compilation, interpr´etation,...

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

(3)

Les mots

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

- mot vide∈A

- longueur d’un motu :|u|=nb de lettres. |u|a=nb d’occurences de adansu.

- op´eration de concat´enation surA : siu =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 motaaabbab sera raccourci ena3b2ab.

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

(4)

L2: cours I4c Langages et automates Langages rationnels

Langages rationnels

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

- op´erations :

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

* unionL1∪L2 ={u ∈A,u∈L1 ouu ∈L2}

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

* produitL1.L2 ={u ∈A,u =u1u2,u1 ∈L1 etu2∈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− {}.

(5)

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 uneexpression 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.

(6)

L2: cours I4c Langages et automates Langages rationnels

Exemple

Ex : siA={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 pas abab.

(7)

Langages reconnaissables

D´efinition

Un automate finiA 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 deA).

(8)

L2: cours I4c Langages et automates Langages reconnaissables

Exemple

(9)

Langage reconnu par un automate

Soitr =q0,q1, . . . ,qp un chemin dansA

Latraceλ(r) der est le mot deA 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 automateAest 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 finiA tel que L=L(A).

(10)

L2: cours I4c Langages et automates Langages reconnaissables

Exemple :

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

(11)

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 estcomplet 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 puitet toutes les transitions manquantes de chaque ´etat vers ce puit.

(12)

L2: cours I4c Langages et automates Langages reconnaissables

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.

(13)

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 :

(14)

L2: cours I4c Langages et automates Langages reconnaissables

Automates d´ eterministes

Un automateAsera 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 ! !

(15)

Exemple

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

(16)

L2: cours I4c Langages et automates Langages reconnaissables

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

(17)

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)

L2: cours I4c Langages et automates Langages alg´ebriques

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 ditterminal,

- N est un alphabet fini ditnon-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)

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

(20)

L2: cours I4c Langages et automates Langages alg´ebriques

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´erivationest une s´equence de r´e´ecritures la forme f1p1 f2p2. . .fnpn fn+1.

On dit qu’un motf se d´erive en un motg, not´ef →g si f =g ou s’il existe une d´erivation telle que f1 =f etfn+1 =g.

(21)

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 aou que desb.

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

(22)

L2: cours I4c Langages et automates Langages alg´ebriques

Quelques propri´ et´ es des langages alg´ ebriques

I L1 etL2 alg´ebriques⇒L1∪L2 etL1.L2 alg´ebriques,

I L1 etL2 alg´ebriques6⇒L1∩L2 alg´ebrique,

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

(23)

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 diteambigu¨e.

Ex :G :S →x|y|z|(S)|S ∗S|S +S est ambigu¨e caru =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 etu =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.

(24)

L2: cours I4c Langages et automates Langages alg´ebriques

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

Chaque ´etatqi 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`egleQi →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

En 2002, Agrawzl, Kayal et Saxena ont trouv´e un algorithme qui d´ecide la primalit´e d’un entier naturel en temps polynomial autrement dit Prime ∈ P.. Le but de cet exercice est

• Possibilité de déplacer diverses poubelles domestiques et commerciales (240 - 1 100 l) avec et sans barres de traction, grâce à la fourniture de cadres et de chariots

Introduction Automate Fini Non-d´ eterministe D´ eterminisation Th´ eor` eme de Kleene.. Objectifs de la s´

e - Construire un automate reconnaissant le

Intuitivement, la technique pour construire un automate serait de m´ emoriser la diff´ erence du nombre a et de b ` a l’aide d’un

[r]

Intuitivement, la technique pour construire un automate serait de m´ emoriser la diff´ erence du nombre a et de b ` a l’aide d’un

Un processus dynamique peut ´ evoluer de deux fa¸ cons : - d´ eterministe ⇒ il peut ˆ etre mod´ elis´ e par un automate. - al´ eatoire (le hasard intervient)⇒ son comportement