Langages
1. Mots
Définition : Alphabet
Soit \(A\) un ensemble fini "de lettres"
\(A\) est appelé alphabet.
\(A = \{red,green,blue\}\)
\(Mot = \{abc...z / a \in A, b \in A,c \in A...\}\)
\((red) (green red)\)
\(A^*\) : l'ensemble de tous les mots sur \(A\)
Exemple
- \(A = \{0,1\}\)
- \(A^* =\{\epsilon,0,1,00,01,10,11\}\)
-
\(B =\{x \in A^* \wedge |x| < 9\}\)
-
\(B =\{\epsilon,0,1,00,01,10,11,000,001,010,011...\}\)
- Donc \(|B| \simeq2^8-1\)
Démonstration
\(B_i = \{x \in B \wedge |x| = i\}\)
\(B_0\) | \(\epsilon\) | nb_element |
---|---|---|
\(B_1\) | \(0,1\) | 2 |
\(B_2\) | \(00,01,10,11\) | 4 |
\(B_3\) | \(8\) | |
\(B_8\) | \(256\) |
Donc \(|B_i| = 2^i\)
\(B = B_0 \cup B_1 \cup B_3 ...B_8\)
\(|B| = |B_0| + |B_1| + |B_2| + ...+ |B_8|\)
\(=2^0 + 2^1 + 2^n + ... + 2^8\)
\(=\displaystyle\sum^8_{i=0} 2^i = 2^9 -1\)
Formule générale
\(\forall i, |B_i| = 2^{i+1}-1\)
Rappel:
Longueur d'un mot : le nombre de lettre.
Cardinal (noté | |): le nombre d'élément.
Mots et concaténation
Souvent la concaténation entre 2 mots \(m\) et \(p\) est notée \(m.p\) ou \(mp\)
\(|mp| = |m| + |p|\)
Duplication
\(m^2 = m.m\)
\(m^3 = m.m.m\)
\(|m^i| = |m| \times i\)
\(A^* = A^0 \cup A^1 \cup A^2 \cup... A^\infty\)
Ordre dans l'alphabet : \(<_A\)
Propriétés
Soit l'ordre lexicographique : \(<_{lex}\)
-
\(\forall m \in A^*\) \(\epsilon\), \(m>_{lex} \epsilon\)
-
\(\forall x,y \in A\)
-
Si \(x<_{lex}y\) alors \(\forall a,b \in A, xa <_{lex} yb\)
Exemple :
- \('a'<'b'\)
- \('abc'<'baaa'\)
-
-
\(\forall w,m,v \in A^*\)
-
Si \(w<_{lex}v\) alors \(mw<_{lex}mv\)
Exemple :
- \(cos < sin \Rightarrow arccos < arcsin\)
-
Ordre militaire (\(<_{mil}\))
\(w,m \in A^*, w<_{mil} m\) si et seulement si :
- Soit \(|w| <|m|\)
- Soit \(|w| = |m|\)
Exemple
- \(1 <_{mil} 00\)
- \(11 >_{mil} 10\)
Exercice
\(w= aba, m= caba, v=\epsilon\)
- \(A = \{a,b,c\}\)
- \(|w| = 3, |n| = 4, |u| = 0\)
- \(wm = abacaba, wmw = abacabaaba, vwm^2 = abacabacaba\)
-
Soient \(z\) et \(y\)
- \(k = |z|, j = |y|\)
- \(|zy| = k + j\)
- \(|zyz^2| = 3k +j\)
- \(|z^2 y| = 2k + j\)
-
Mirroir (reverse)
- \(a = 'ete'\)
- \(a^{-1} = 'ete'\)
- \(m^{-1} = abac\)
- \(|w^{-1}| = |w| = 3\)
- \(a = 'conca'\)
- \(b = 'tener'\)
- \((ab)^{-1} = b^{-1}a^{-1}\) (formule à démontrer)
Démonstration : \((ab)^{-1} = b^{-1}a^{-1}\)
-
Initialisation : \(|b| = 0, (a.b)^{-1} = b^{-1}a^{-1}\)
-
HR : \(|b| = n,\) alors \((a.b)^{-1} = b^{-1} a^{-1}\)
-
Hérédité :
\(|c| = n+1\) alors \((a.c)^{-1} = c^{-1} a^{-1}\)
\(c =d.x\) où d est un mot \(|d| = n\)
\(x\) est une lettre \((x \in A)\)
On a déjà : \((a.d)^{-1} = d^{-1}.a^{-1}\)
\((a.d.x)^{-1} = (d.x)^{-1}.a^{-1}\)
\(x.(a.d)^{-1} = x.d^{-1}.a^{-1}\)
Rappels
- \(L = \{w...\}\)
- \(M = \{v...\}\)
- \(LM = \{x; x:wv,w \in L, v \in M\}\)
- \(L^* = \{\epsilon, w, w_1,v_2,w_1 w_2 v_2, ...\}\)
- \(L^+ = \{w,w_1,v_2,w_1 w_2v_2...\}\)
\(L =\{a,b\}\)
\(L^*= \{\epsilon, a,b,ab,aa,ba,bb,aaa,aab,aba,baa,abb,bab,bbb...\}\)
\(L^0 = \{w ; |w| = 0\}\)
\(L^1 = \{w ; |w| = 1\}\)
\(L^2 = \{w ; |w| = 2\}\)
\(L^* =L^0 \cup L^1 \cup L^2 \cup L^3 \cup ...\)
\(L^0 =\{\epsilon\}\)
\(L^1 =\{b,a\}\)
\(L^2 = \{ba,bb,aa,ab\}\)
\(L^3 = \{bba,bbb,baa,bab,aba,abb,aaa,aab\}\)
Exemple
- \(M= \{ab,c,d\}\)
- \(L =\{b,a\}\)
- \(L.M = \{bab,bc,bd,aab,ac,ad\}\)
- \(M.L = \{abb,aba,cb,ca,db,da\}\)
- \(|M.L.M| =18\)
Expressions régulières
Définition
\(E\) est une regex sur un alphabet \(A\)
\(\iff\)
-
\(E = \emptyset\) ou,
-
\(E =\epsilon\) ou,
-
\(E=a\) avec \(a \in A\), ou,
-
\(E = E_1 | E_2\) et \(E_1 et E_2\) sont des regex sur \(A\), ou,
-
\(E= E1.E_2\) et \(E_1 et E_2\) sont des regex sur \(A\), ou,
-
\(E=E_1^*\) et \(E_1\) est une regex sur \(A\).
Exemple
\(ab^* = \{\epsilon, a, ab,abb,abbb...\}\)
\((ab)^* = \{\epsilon, ab,abab,ababab...\}\)
\((a|b)^* = \{\epsilon,a,b,aa,bb,ab,ba...\}\)
\((a|b)(c|b) \Rightarrow \{ac,ab,bc,bb\}\)
\((a|ba)^* \Rightarrow \{\epsilon,a,ba,aba,baa,aa,baba,a...\}\)
\(a(aa|b(ab)^* a)^*a : \{aa,aaaa,abaa,aaaaaa,ababaa,ababaa,...\}\)