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

Recherche par automates finis

Présentations similaires


Présentation au sujet: "Recherche par automates finis"— Transcription de la présentation:

1 Recherche par automates finis
Nadia El-Mabrouk

2 Motifs dégénérés Alphabet S
ADN: {A,C,G,T} ARN:{A,C,G,U} Protéines: {g,a,v,l,i,p,f,y,c,m,h,k,r,w,s,t,d,e,n,q,b,z} Mot sur S: Chaque position est un caractère de S Mot dégénéré sur S: Chaque position peut « matcher » différents caractères de S.

3 Motifs dégénérés Exemple 1: Alanine encodée par GC{A,C,G,T}
On note N={A,C,G,T}. Alanine identifiée par le codon  « dégénéré» GCN Il existe une convention de notation pour les symboles dégénérés. En particulier: Purines: R = {A,G}; Pyrimidines: Y = {T,C} Exemple 2: leucine encodée par CT{A,C,G,T} ou TT{A,G}. On peut l’écrire « CTN ou TTR »

4 [Ala or Cys]-any-Val-any-any-any-any-{any but Glu or Asp}
Contexte biologique PROSITE: Banque de données de protéines. Regroupe les protéines en familles. Identifie les domaines ou les sites fonctionnels par des « mots dégénérés » ou « signatures » Par exemple: [AC]-x-V-x(4)-{ED}. [Ala or Cys]-any-Val-any-any-any-any-{any but Glu or Asp} Les “signatures” sont déduites à partir d’alignements multiples de protéines de la même famille

5

6 Contexte biologique Familles d’ARN caractérisées par des «motifs clefs », identifiés par alignement multiple. Identifier toutes les occurrences d’une famille donnée d’ARN dans le génome  Recherche de « mots clefs » dégénérés.

7 Contexte biologique Une structure consensus de l’ARNt

8 Expression régulière Définie récursivement sur un alphabet S par:
Ø, e (le mot vide), et tout caractère de S sont des expressions régulières. Si S et R sont deux expressions régulières alors: RS est une expression régulière (concaténation) R | S est une exp. Reg. (ou) R* est une ex. reg (étoile de Kleene) Exemple: a(bc|e)d = {ad, abcd}

9 ( CT(A|C|G|T) ) | ( TT(A|G) )
Expression régulière Exemple 1: Alanine GC{A,C,G,T} GC (A|C|G|T) Exemple2: leucine « CTN ou TTR » ( CT(A|C|G|T) ) | ( TT(A|G) )

10 Grammaire hors contexte
G Y N C R N N* G (C|U)(A|C|G|U)(A|C|G|U)*(A|C|G|U)(A|G)C ? NON! GCCACAC n’est pas une structure valide. Une structure secondaire d’ARN n’est pas une expression régulière C’est une grammaire hors contexte.

11 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e

12 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e G U C A A G A C ?

13 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G U C A A G A C G W1 C

14 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G U C A A G A C G W1 C U A W2

15 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G U C A A G A C G W1 C U A W2 C W3 G

16 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G U C A A G A C G W1 C U A W2 C W3 G A W3

17 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G W1 C G U C A A G A C U A W2 C W3 G A W3 A W3

18 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G W1 C G U C A A G A C U A W2 C W3 G A W3 A W3 e

19 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e G C C A C A C ?

20 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G C C A C A C G W1 C

21 Grammaire hors contexte
G Y N C R N N* S  G W1 C W1  U W2 A | C W2 G W2  A W3 U | U W3 A | C W3 G | G W3 C W3  A W3 | U W3 | C W3 | G W3| e S G C C A C A C G W1 C Pas de règle de dérivation permettant de continuer => GCCACAC n’est pas un mot de la grammaire

22 Grammaire Ensemble de symboles terminaux et non-terminaux;
Ensemble de règles de réécritures a  b où a, b sont deux séquences de symboles, a contenant au moins un non-terminal.

23 Grammaire Grammaire régulière: Règles de production de la forme: W  aW ou Wa ou W  e Une grammaire régulière génère une exp. régulière. Grammaire hors contexte: Toutes les règles de production : W  b autorisées.

24 Automate Fini Déterministe
Une expression régulière est reconnue par un Automate Fini Déterministe (AFD): quintuplet A=(Q ; S ; q0 ; d ; F) où: Q est un ensemble fini d’états; S est un alphabet fini; q0 (Є Q) est l’état initial; F (inclu dans Q) est l’ensemble des états terminaux d: Q x S  Q est la fonction de transition. d (q,a) = p: Si on est dans l’état q et qu’on lit a, on va à l’état p.

25 Automate Fini Déterministe
d: Q x S  Q s’étend à d: Q x S*  Q : Pour u un mot de S, d(q,u): état de Q atteint (s’il existe) après avoir lu le mot u. A reconnaît le langage: LA ={u Є S*/ d(q,u) Є F} D’après le Théorème de Kleene, un langage L est reconnaissable par AFD ssi L est un langage régulier (défini par une expression régulière).

26 Automate Fini Déterministe
Q = {q0, q1, q2}; S = {0,1}; q0 est l’état initial; F={q2} est l’ensemble des états terminaux 0, 1 1 1 q0 q1 q2 Langage reconnu par l’automate: 0*11 S*

27 Automate Fini Déterministe
Q = {0, 1, 2, 3}; S = {A, C, G, T}; 0 est l’état initial; 3 est le seul état terminal. A,C,G,T 1 2 3 G C A,C,G,T Langage reconnu par l’automate: GC S S* (Alanine)

28 Automate pour « vérification »
Exemple: S*ACA S* S\{A} A,C,G,T S\{A,C} 1 2 3 A C A S\{A} A

29 Automate pour « recherche exacte »
Exemple: S*ACA Rechercher tous les « ACA » dans un texte S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A S\{A,C}

30 T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C

31 T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C

32 T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C

33 * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C *

34 * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C *

35 * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C *

36 * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * *

37 * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * *

38 * * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * * *

39 * * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * * *

40 * * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * * *

41 * * * T : A C A A C A C A G A C S\{A} S\{A,C} C 1 2 3 A C A S\{A} A A
1 2 3 A C A S\{A} A A S\{A,C} T : A C A A C A C A G A C * * *

42 Construction d’un AFD pour la recherche exacte d’un mot
Alphabet S, Mot P= p1 p2 … pi … pm Algorithme en O(m|S|), temps et espace pour construire l’automate A= (Q={q0, q1,… qm} ; S ; q0 ; d ; {qm}) Algorithme SMA (String-Matching Algorithm) Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour

43 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A q0 q1 q2 q3

44 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A q0 q1 q2 q3 S

45 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A q0 q1 q2 q3 S

46 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A r q0 q1 q2 q3 A S\{A}

47 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A} r q0 q1 q2 q3 A S\{A} A

48 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A} q0 q1 q2 q3 A S\{A} A

49 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A,C} r q0 q1 q2 q3 A C S\{A} A

50 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A} S\{A} A r q0 q1 q2 q3 A C S\{A} A

51 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A} S\{A,C} A q0 q1 q2 q3 A C S\{A} A

52 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A S\{A} S\{A,C} r q0 q1 q2 q3 A C A S\{A} A

53 P = A C A Algorithme SMA (String-Matching Algorithm)
Pour tout a dans S Faire d(q0, a) := q0; Pour i:=1 à m Faire r:= d(qi-1 , pi); d(qi-1 , pi):= qi Pour tout a dans S Faire d(qi , a):= d(r, a) Fin Pour i = P = A C A q0 q1 q2 q3 A S\{A,C} C S\{A} r

54 Automate fini non-déterministe (AFND)
Quintuplet A=(Q ; S ; q0 ; d ; F) définit de la même façon qu’un AFD, à part pour d : d: Q x S  P (Q) d (q,a) = {p1, p2, …, pn} A reconnaît le langage: LA ={u=u1…um Є S*/ il existe q0,… qm Є Q tq qm Є F et pour tout i, qi+1 Є d(qi ,ui+1 )} Pour tout AFND, il existe un AFD qui reconnaît le même langage.

55 Automate fini non déterministe (AFND)
Exemple: S*ACA 1 2 3 A C A S Généralement difficile de construire directement un AFD. Méthode généralement utilisée: Construire un AFND Le transformer en AFD  en temps O(|QDFA||QNFA||S|)

56 Automate avec e-transitions
Transitions sans lecture de caractère. G e e e e C e e e Langage reconnu par l’automate: G|C

57 Automate avec e-transitions et e-états
Transitions sans lecture de caractère. Étiquetage des états e G e e e e C e Langage reconnu par l’automate: G|C

58 Automate avec e-transitions et e-états
Transitions sans lecture de caractère. Étiquetage des états G C Pour toute expression régulière, on peut construire un AFND par induction, de la façon suivante:

59 http://www. cs. rochester

60 Exemple1: GC (G|C) G: C: G C GC: G C G G|C: C GC(G|C): G G C C

61 Exemple2: ((AC)|G)(A|C)T(T|G)((GT)|C)
Pour la recherche de toutes les occurrences dans un texte: S

62 Automate fini non-déterministe
Soit R une expression régulière de taille r (nombre de caractères dans R, plus les | et *) Construction de l’AFND reconnaissant R linéaire en r en temps et en espace. Déterminiser l’AFND en AFD: peut-être couteux en espace. Différentes façons de « simuler » un AFND: Structure de donnée que l’on peut utiliser pour différentes fins. Recherche exacte Recherche multiple: L’algorithme de Aho-Corasick peut-être réécrit en utilisant un automate plutôt qu’un arbre de mots clefs Recherche approchée: Simulation par programmation dynamique

63 Alignement d’une expression régulière avec une séquence
Revient à l’alignement d’automates (Myers and Miller 1989) Exemple: E = (A|C) T (T|G) S = A T A T

64 « G C T T C » appartient à l’expression régulière
((AC)|G)(A|C)T(T|G)((GT)|C)

65 Structure secondaire représentée par la grammaire hors contexte:
S  A C W1G U | G W1C W1 A W2T | C W2G W2 T Reconnue par un Automate à piles

66 A C A T T G T ?

67 A C A T T G T A

68 A C A T T G T C A

69 A C A T T G T A C A

70 A C A T T G T A C A

71 A C A T T G T A C A

72 A C A T T G T A C A

73 A C A T T G T A C A


Télécharger ppt "Recherche par automates finis"

Présentations similaires


Annonces Google