La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Expressions régulières et hash tables Expressions rationnelles/régulières Hash Tables.

Présentations similaires


Présentation au sujet: "1 Expressions régulières et hash tables Expressions rationnelles/régulières Hash Tables."— Transcription de la présentation:

1 1 Expressions régulières et hash tables Expressions rationnelles/régulières Hash Tables

2 2 Expressions rationnelles Qu'est-ce une expression rationnelle (régulière)? Définition et propriétés Exercices

3 3 Définitions : alphabet, mot, langage Définition Un alphabet Σ est un ensemble fini de symboles, comme par exemple de lettres, de chiffres ou d'autres sigles. Exemples Σ = {a,b,c}Σ = {0,1} Définition Un mot w défini sur un alphabet est une suite ou séquence finie de symboles appartenant à Σ. ExemplesSi Σ = {a,b,c}, w = abc est un mot défini sur Σ. La séquence de 0 symboles est nommée le mot vide et sécrit : ε. Définition Un langage L défini sur un alphabet Σ est un ensemble de mots définis sur l'alphabet en question. Cet ensemble de mots peut être infini. Exemple Soit l'alphabet Σ = {a,b,c}, le langage L = {acbb, accbb, acccbb, …} est le langage de tous le mots qui débutent par le symbole a, suivi d'au moins un symbole c et qui se terminent par deux symboles b.

4 4 Opérations sur les langages Union L'union L 1 U L 2 de deux langages L 1 et L 2 définis sur un alphabet Σ correspond exactement à l'union d'ensembles. Exemple Soient Σ= {a,b,c}, L 1 ={a,b} et L 2 ={bac,b, c}, on a L 1 U L 2 = {a,b,bac,c} Concaténation Soient L 1 et L 2 deux langages définis sur un alphabet Σ, l'opération de concaténation est définie comme suit L 1. L 2 = {w 1.w 2, t.q. w 1 appartient à L 1 et w 2 appartient à L 2 } L'élément neutre est donc l'ensemble Lε = {ε} (L. Lε = L, Lε.L = L) Exemple Soient Σ= {a,b,c}, L 1 ={a,b} et L 2 ={bac,b,a}, on a L 1. L 2 = {abac,bbac,ab,bb,aa,ba}

5 5 Opérations sur les langages Puissance La puissance d'un langage L, notée L n où n >= 0, est définie par 1) L 0 = {ε} 2) L n+1 = L n. L Kleene star ou fermeture itérative La fermeture itérative (ou de Kleene) d'un langage L, notée L*, est l'ensemble de mots résultant d'une concaténation d'un nombre fini de mots de L. Formellement : L* = L 0 U L 1 U L 2 U L 3 … Le mot vide appartient donc à L* mais pas à L + qui est défini comme suit : L + = L 1 U L 2 U L 3 … = L. L* Exemples Soient Σ= {a}, L = {a}. Alors L 0 ={ε}, L 1 ={a}, L 2 ={aa}, L 3 ={aaa},…, L + = {a,aa,aaa,aaaa,aaaaa,…..}, L* = {ε, a,aa,aaa,aaaa,aaaaa,…..}.

6 6 Formalisme de spécification des langages Pour spécifier (décrire formellement) un langage, différents formalismes sont à notre disposition. La première solution serait dénumérer de manière exhaustive les composants du langage. Cela est une définition extensionnelle. C'est irréalisable si le langage est infini. Pour décrire un langage infini on utilise des formalismes plus riches, comme les grammaires, les machine de Turing, etc. Le formalisme le plus simple est celui des expressions rationnelles ou régulières.

7 7 Qu'est-ce une expression rationnelle (régulière)? Définition Soit un alphabet Σ. Une expression régulière définie sur Σ, ainsi que les ensembles qu'elle dénote, sont définis récursivement comme suit : 1) Ø est une expression régulière dénotant l'ensemble vide, 2) ε est une expression régulière dénotant l'ensemble {ε}, 3) pour tous a dans Σ, a est une expression régulière dénotant l'ensemble {a}, 4) si r et s sont des expressions régulières dénotant respectivement les ensembles R et S, alors (r + s), (rs), (r*) sont des expressions régulières dénotant respectivement les ensembles R U S, R. S, et R*, 5) Rien d'autre n'est considéré comme une expression régulière. Le langage que dénote une expression régulière r sécrit L(r). Note terminologique: expression régulière = expression rationnelle.

8 8 Expressions rationnelles - exemples Soit l'alphabet Σ = {a,b} et l'expression régulière r = (a(a+b)*), alors le langage généré par r est L(r) ={a}. {a,b}* Son extension contient donc {a,aa,aaa,aaaa,…,ab,aba,abbaaababa, …}. Cest le langage de toutes les chaînes de a et de b commençant par un a. Soit l'alphabet Σ = {0,1}, l'expression régulière s= (0*1)* dénote l'ensemble L(s) = {{0}*. {1}} * ou bien L(s) = {x t.q. x appartient à {0,1}* et x est vide ou représente un nombre impair} Son extension contient donc {ε,1,01,010101, , … }.

9 9 Exercices : expressions rationnelles Exercice 1 Vrai ou faux? baaappartient à(a*b*a*b*) b* a* intersection a* b* =a* U b* abcdappartient à(a(cd)*b*)

10 10 Exercices : expressions rationnelles Exercice 2 Français Expressions régulières Écrire les expressions régulières sur Σ = {a,b,c} dénotant les langages suivants : tous les mots contenant a tous les mots ne contenant pas ac

11 11 Solutions Soit Σ = {a,b,c}, tous les mots contenant a tous les mots ne contenant pas ac

12 12 Solutions Soit Σ = {a,b,c}, tous les mots contenant a (a|b|c)* a (a|b|c)* tous les mots ne contenant pas ac c* (a | (bc*))*

13 13 Solutions Décrire en français le langage dénoté par les expressions régulières suivantes : (a|b)*b(a|b)*a(a|b)* b*(abb*)*aa(bb*a)*b*

14 14 Exercices : expressions rationnelles Exercice 3 Expressions régulières Français Décrire en français le langage dénoté par les expressions régulières suivantes : (a|b)*b(a|b)*a(a|b)* Toutes les chaînes de a et de b qui ne correspondent pas à a*b*. Ou : toutes les chaînes de a et de b où au moins un b précède un a. b*(abb*)*aa(bb*a)*b* Toutes les chaînes de a et de b où la sous-chaîne « aa » apparaît exactement une fois.

15 15 Exercices : expressions rationnelles Exercice 3 Expressions régulières Français Décrire en français le langage dénoté par les expressions régulières suivantes : (a|b)*b(a|b)*a(a|b)* Toutes les chaînes de a et de b qui ne correspondent pas à a*b*. Ou : toutes les chaînes de a et de b où au moins un b précède un a. Question supplémentaire : est-ce que (a|b)*ba(a|b)* dénote le même langage? Et quen est-il de a*ba(a|b)*? b*(abb*)*aa(bb*a)*b* Toutes les chaînes de a et de b où la sous-chaîne « aa » apparaît exactement une fois.

16 16 Exercices : expressions rationnelles Exercice 4 Français Expressions régulières Écrire les expressions régulières sur Σ = {a,b} dénotant les langages suivants : tous les mots de longueur 2 tous les mots de longueur paire tous les mos contenant un nombre impair de b tous les mots ne contenant pas plus que deux a consécutifs tous les mots ne contenant pas aba

17 17 Solutions Écrire les expressions régulières sur Σ = {a,b} dénotant les langages suivants: tous les mots de longueur 2 (aa|ab|ba|bb) tous les mots de longueur paire (aa|ab|ba|bb) * tous les mos contenant un nombre impair de b a*ba*(ba*ba*)* tous les mots ne contenant pas plus que deux a consécutifs (b|ab|aab)*(ε|a|aa) tous les mots ne contenant pas aba b* (aa*bbb*)* a* (ε|b)

18 18 Exercices : expressions rationnelles Exercice 5 Expressions régulières Français Décrire en français les langages dénotés par les expressions régulières suivantes : (11+0)*(00+1)* ( )*(ε+0+00) 0*(10*10*10*)*

19 19 Solutions Décrire en français les langages dénotés par les expressions régulières suivantes : (11+0)*(00+1)* ( )*(ε+0+00) 0*(10*10*10*)*

20 20 Solutions Décrire en français les langages dénotés par les expressions régulières suivantes: (11+0)*(00+1)* L(x) ={ x t.q x ne contient pas la séquence 1010} ( )*(ε+0+00) tous les mots ne contenant pas plus que deux 0 consécutifs 0*(10*10*10*)* tous les mots contenant un nombre de 1 multiple de 3

21 21 Hash Tables Plusieurs applications informatiques, et parmi eux, celle qui intéressent le TALN, nécessitent seulement les opérations INSERT, DELETE et SEARCH. Par exemple, les compilateurs maintient une table des symboles, quils consultent pour vérifier les noms et les types des variables. Les hash tables (tableaux dhashage) sont des structures des données très appropriées pour mettre en place un dictionnaire et le consulter.

22 22 Tableaux daccès direct La techniques des tableaux à accès direct marche assez bien si lensemble m des clés uniques est petit. On utilise un tableau T[0..m-1] où chaque position correspond à une clé

23 23 Tableaux daccès direct Les opérations sont très simples et exécutées en temps constant O(1). Recherche(T,k) return T[k] Insert(T,x) T[key(x)] <- x Delete(T,x) T[key(x)] <- NIL

24 24 Tableaux dhashage Désavantage de ladresse directe Si lensemble des clés possibles U est grand, il y a des problèmes de mémoire Si lensemble des clés réellement utilisées est beaucoup plus petit que U, une grande partie de la mémoire est gaspillée.

25 25 Tableaux dhachage Avec ladresse directe, un élément à clé k est placé en position k. Avec hashage, il est stocké en position h(k). Le seul problème avec cette technique sont les collisions H(k1) H(k5) H(k3)=h(k7)

26 26 Tableaux dhashage Collision: lorsque deux éléments ayant clés différentes ont la même valeur dhashage. Solution (partielle): fonctions dhashage pseudo-aléatoire (random-looking hash functions). Chaining: les éléments sont associés à la même position dans une liste chaînée. la complexité de recherche, insertion et effacement est proportionnelle à la longueur de cette liste.

27 27 Fonction dhashage Une bonne fonction dhashage satisfait (approximativement) la présupposition dhashage uniforme: pour toutes positions, une clé a la même probabilité dêtre associé à cette position En général, une bonne technique consiste à développer une fonction indépendante de toutes régularités des distribution dans les données.

28 28 Fonctions dhashage Hashage par divisions: h(k) = k mod m m est choisi tel que le résultat de la division dépend de toute les chiffres de k (pas puissance de 2 ou de 10, m=prime) Hashage par multiplication: h(k) = floor(m(k A mod 1)) en général, on choisit une puissance de 2 Hashage universel= hashage aléatoire

29 29 Open addressing Open addressing est une techniques autre que chaining pour résoudre les collisions On nutilise aucune structure externe, mais on relie les cases disponibles par double hashage. h(k,i) = (h1(k) + ih2(k)) mod m Cela évite les clusters des valeurs dans le tableau qui surgissent avec dautres techniques


Télécharger ppt "1 Expressions régulières et hash tables Expressions rationnelles/régulières Hash Tables."

Présentations similaires


Annonces Google