Grammaires de mots et langages
Mots et langages
Nous considรฉrons des ensembles finis de symboles, ou lettres, appelรฉs alphabets. Les suites finies de lettres sont appelรฉes mots. Autrement dit, un mot u de longeur n โฅ 0 sur un alphabet ฮฃ peut รชtre vu comme un n-uplet (a1, ยท ยท ยท ,an) dโรฉlรฉments de ฮฃ, ou de faรงon รฉquivalente comme une application de lโintervalle des entiers [1,n] dans ฮฃ. Tout mot u = (a1, ยท ยท ยท ,an) est habituellement notรฉ a1 ยท ยท ยท an ; sa i-รจme lettre est u(i) = ai . Lโensemble de tous les mots construits sur ฮฃ se note ฮฃโ . Un langage sur lโalphabet ฮฃ est un sous-ensemble de ฮฃโ .
Le nombre dโoccurrences dโune lettre a dans un mot u est notรฉ |u|a. Ainsi, le nombre total dโoccurrences de toutes les lettres dans le mot u est sa longueur et se note |u|. Lโunique mot de longueur 0, qui ne contient aucune lettre, est appelรฉ le mot vide et est notรฉ ฮต.
La concatรฉnation de deux mots u = a1 ยท ยท ยท an et v = b1 ยท ยท ยท bm, qui se note u.v ou plus simplement uv, est le mot uv = a1 ยท ยท ยท anb1 ยท ยท ยท bm. Ainsi, la concatรฉnation est une opรฉration associative ayant วซ pour รฉlรฉment neutre. Pour tout mot u = xvy, v est un facteur de u, x est un prรฉfixe de u et y est un suffixe de u. En particulier, tout prรฉfixe ou suffixe dโun mot est un facteur du mot.
Lโitรฉration de la concatรฉnation ร tout langage L est : Lโ = S nโฅ0 L n , avec L0 = {ฮต} et L n+1 = Ln .L pour tout n โฅ 0.
De faรงon abusive, on pourra รฉcrire u ร la place de {u}. Ainsi ฮฃn est lโensemble des mots de longueur n.
Exemple. Avec un alphabet ฮฃ = {0, 1}, nous avons :
ฮฃโ = {วซ, 0, 1, 00, 01, 10, 11, 000, 001, ยท ยท ยท }
(11000)0 = ฮต
(110)ยฒ = 110110
1ยณย = 111
Monoรฏdes. La structure algรฉbrique sous-jacente aux mots est le monoรฏde. Un monoรฏde M est simplement un ensemble, potentiellement infini, muni dโune opรฉration interne associative appelรฉe produit, et dโun รฉlรฉment neutre 1M. Une partie S dโun monoรฏde M est un ensemble de gรฉnรฉrateurs de M si chaque รฉlรฉment de M admet une dรฉcomposition comme produit dโรฉlรฉments de S : M = Sโ ; on dit que S est libre si toute dรฉcomposition en รฉlรฉments de S est unique :
Si u1 ยท ยท ยท um = v1 ยท ยท ยท vn avec u1, ยท ยท ยท ,um,v1, ยท ยท ยท ,vn โ S
alors m = n et u1 = v1, ยท ยท ยท ,un = vn.
Si de plus S est fini, M est dit de type fini.
Exemple. Lโensemble N des entiers positifs est un monoรฏde pour lโaddition. Son รฉlรฉment neutre est 0. Il est librement engendrรฉ par le singleton {1} et est donc de type fini.
Exemple. Lโensemble ฮฃโ de tous les mots sur un alphabet ฮฃ est un monoรฏde pour la concatรฉnation. Il est de type fini et librement engendrรฉ par ฮฃ. Son รฉlรฉment neutre est le mot vide ฮต.
Systรจmes de rรฉcriture
Les systรจmes de rรฉcriture figurent parmi les formalismes les plus simples et les plus gรฉnรฉraux pour la modรฉlisation de transformations sur les mots (voir par exemple [DJ 90] et [Ca 90]). Ils gรฉnรฉralisent les grammaires, peuvent reprรฉsenter des calculs dโautomates finis, de transducteurs, dโautomates ร pile ou mรชme de machines de Turing. Autant que faire se peut, nous donnerons une caractรฉrisation de chacun de ces formalismes en termes de systรจmes de rรฉcriture
Un systรจme de rรฉcriture de mots sur lโalphabet ฮฃ est un ensemble potentiellement infini de rรจgles de rรฉcriture, cโest-ร -dire de couples de mots (l,r) โ ฮฃโ ร ฮฃโ .
Exemple. Un systรจme de rรฉcriture sur lโalphabet ฮฃ = {0, 1,S} est le suivant :
R = {(S, 0S),(S, 1S),(S, 0),(S, 1)}
Ce qui sโรฉcrit de la faรงon plus lisible suivante :
S โ 0S
S โ 1S
S โ 0
S โ 1
|
Table des matiรจres
1 Introduction
2 Notions prรฉliminaires
2.1 Grammaires de mots et langages
2.1.1 Mots et langages
2.1.2 Systรจmes de rรฉcriture
2.1.3 Grammaires et hiรฉrarchie de langages
2.2 Grammaires de graphes et langages
2.2.1 Graphes
2.2.2 Chemins
2.2.3 Graphes et langages
2.2.4 Isomorphisme de graphes
2.2.5 Grammaires de graphes
3 Grammaires de graphes et langages algรฉbriques
3.1 Lemme des paires itรฉrantes
3.1.1 Introduction
3.1.2 Lemme des paires itรฉrantes
3.1.3 Dรฉmonstration gรฉomรฉtrique du lemme des paires itรฉrantes
3.2 Lemme de Parikh
3.2.1 Introduction
3.2.2 Lemme de Parikh
3.2.3 Dรฉmonstration gรฉomรฉtrique du lemme de Parikh
4 Plus courts chemins
4.1 Calculs avec des grammaires de graphes
4.2 Algorithmes de calculs
4.3 Calculs sur des graphes rรฉguliers
5 Rรฉgularitรฉ et algรฉbricitรฉ des systรจmes de rรฉcriture
5.1 Introduction
5.2 Dรฉcomposition de la dรฉrivation
5.2.1 Notations
5.2.2 Propriรฉtรฉs de prรฉservation
5.2.3 Dรฉcomposition
5.3 Applications
5.3.1 Systรจmes prรฉfixes, suffixes et bifixes
5.3.2 Dรฉrivation gauche-droite
5.3.3 Systรจmes marquรฉs
6 Conclusion