Un algorithme v ectoriel p our le probl`eme de la recherche des o

publicité
Un algorithme vectoriel pour le problème de la
recherche des occurrences approximatives d’un
mot dans un texte.
27 janvier 2003
Sylvie Hamel
Stagiaire postdoctorale du CRSNG, Université McGill
(en collaboration avec Anne Bergeron)
Université du Québec à Montréal
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
2
Recherche approximative d’un mot dans un texte
Problème: trouver toutes les occurrences approximatives d’un mot P = p1 p2 . . . pm dans un
texte T = t1 t2 . . . tn .
Exemple:
Mot: TATA
Université du Québec à Montréal
Texte: ACG TAATA G CATA GGGTGTTGG TATA ...
27 janvier 2003
3
Applications de la recherche approximative en biologie:
1. Recherche de similitudes entre 2 séquences biologiques.
Université du Québec à Montréal
2. Recherche d’une molécule nouvellement séquencée dans les
banques de données existantes.
3. Recherche d’un gène dans un génome.
4. . . .
27 janvier 2003
4
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
5
T
A
T
4
3
2
1
0
A
2
A C
1
G T
5
A
6
A T
7
4
3
9
A G
10
C
8

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(1)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
6
T
A
T
4
3
2
1
0
∗
1
2
A C
A
G T
5
A
6
A T
7
4
3
9
A G
10
C
8

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(2)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
7
T
A
T
4
3
2
1
0
∗
1
1
2
A C
A
G T
5
A
6
A T
7
4
3
9
A G
10
C
8

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(3)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
8
T
A
T
4
3
2
1
0
∗
1
1
1
2
A C
A
G T
5
A
6
A T
7
4
3
9
A G
10
C
8

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(4)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
9
T
A
T
4
3
2
1
0
∗
2
1
1
1
2
A C
A
G T
5
A
6
A T
7
4
3
9
A G
10
C
8

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(5)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
10
T
A
T
4
3
2
1
0
3
2
1
1
1
3
2
2
2
2
3
3
3
3
3
4
3
4
3
4
G T
3
4
3
4
5
A
4
4
4
5
6
5
4
5
6
7
A T
4
5
6
7
8
5
6
7
8
9
A G
6
7
8
9
10
C
A C
A

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
(6)
Algorithme de Sellers: Calculer la matrice des distances D[i, j]
où
D[i, j] = min



Université du Québec à Montréal
avec les conditions initiales D[0, j] = j et D[i, 0] = i.
27 janvier 2003
11
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
12
A C
G T
0
A A
0
T
0
A
0
0
G C
...
...
0
...
0
1
...
0
T
2
...
0
A
3
...
0
T
4

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
A
0
Généralisation de l’algorithme:
où
D[i, j] = min



(7)
Université du Québec à Montréal
avec les conditions initiales D[0, j] = 0 et D[i, 0] = i.
27 janvier 2003
13
T
A 2
T
3
1
0
3
2
1
1
0
3
2
2
1
0
3
3
2
1
0
3
2
1
0
0
G T
2
1
0
1
0
A
1
1
1
1
0
A
2
1
1
0
0
T
1
1
0
1
0
A
2
1
1
1
0
G
2
2
2
1
0
C
...
...
...
...
...
...
A C
A 4
Généralisation de l’algorithme:
où
D[i, j] = min
D[i − 1, j] + 1
D[i, j − 1] + 1

 D[i − 1, j − 1] + δ(pi , tj )





(8)
Université du Québec à Montréal
avec les conditions initiales D[0, j] = 0 et D[i, 0] = i.
27 janvier 2003
14
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
15
011010010001000101
Un vecteur de bits
27 janvier 2003
Université du Québec à Montréal
16
Opérations sur les vecteurs de bits
4. addition binaire avec retenue
3. négation
2. conjonction
1. disjonction
↑a x
x +b y
¬x
x∧y
x∨y
Université du Québec à Montréal
Soit x et y des vecteurs booléens - ou vecteurs de bits. On permet
les opérations suivantes sur ces vecteurs:
5. déplacement vers la droite
27 janvier 2003
17
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
18
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
19
c
a
b
1
c
b
2
c
Ancienne Technologie: utilisation séquentielle d’un automate
pour convertir une chaı̂ne d’entrée en une chaı̂ne de sortie.
0
abbcbaccb...
a, b
a
000110121...
Université du Québec à Montréal
Analyse en temps: O(m) où m est la longueur de la chaı̂ne d’entrée
27 janvier 2003
20
Vecteurs caractéristiques:
Étant donné la séquence d’entrée
e = abbcbaccb...,
(e = b) =
c
b
= 000100110
= 011010001
(e = c)
Université du Québec à Montréal
=
(e = a) = a = 100001000
on a les vecteurs caractéristiques suivants:
27 janvier 2003
21
b
a
s0
s1
a
a
s2
b
s0 =a
s1 =(↑1 s0 ) ∧ b
s2 =¬ (s0 ∨ s1 )
b
b
1
a
1 1
0 0
b
0
1
a
b
a = 0
0
Université du Québec à Montréal
s0 = 0 1 0 0 1
s1 = 1 0 1 0 0
s2 = 0 0 0 1 0
b = 1
Nouvelle Technologie: trouver la chaı̂ne de sortie de
façon parallèle en utilisant des opérations vectorielles pour
calculer le vecteur caractéristique de chaque état.
27 janvier 2003
22
b
a
s0
s1
a
a
s2
b
s0 = a
s1 =(↑1 s0 ) ∧ b
s2 =¬ (s0 ∨ s1 )
b
b
1
a
1 1
0 0
b
0
1
a
b
a = 0
0
Université du Québec à Montréal
s0 = 0 1 0 0 1
s1 = 1 0 1 0 0
s2 = 0 0 0 1 0
b = 1
Nouvelle Technologie: trouver la chaı̂ne de sortie de
façon parallèle en utilisant des opérations vectorielles pour
calculer le vecteur caractéristique de chaque état.
27 janvier 2003
23
b
a
s0
s1
a
a
s2
b
s0 = a
s1 = (↑1 s0 ) ∧ b
s2 =¬ (s0 ∨ s1 )
b
b
1
a
1 1
0 0
b
0
1
a
b
a = 0
0
Université du Québec à Montréal
s0 = 0 1 0 0 1
s1 = 1 0 1 0 0
s2 = 0 0 0 1 0
b = 1
Nouvelle Technologie: trouver la chaı̂ne de sortie de
façon parallèle en utilisant des opérations vectorielles pour
calculer le vecteur caractéristique de chaque état.
27 janvier 2003
24
b
a
s0
s1
a
a
s2
b
s0 = a
s1 = (↑1 s0 ) ∧ b
s2 = ¬ (s0 ∨ s1 )
b
b
1
a
1 1
0 0
b
0
1
a
b
a = 0
0
Université du Québec à Montréal
s0 = 0 1 0 0 1
s1 = 1 0 1 0 0
s2 = 0 0 0 1 0
b = 1
Nouvelle Technologie: trouver la chaı̂ne de sortie de
façon parallèle en utilisant des opérations vectorielles pour
calculer le vecteur caractéristique de chaque état.
27 janvier 2003
25
accccccccccccc c
↓
1
b, c
0
a
b
a, c
Université du Québec à Montréal
bccccccccccccc c
↓
0
1
Se souvenir d’événements passés: une sortie peut dépendre
d’un événement arbitrairement “éloigné”...
27 janvier 2003
26
accccccccccccc c
↓
1
b, c
0
a
b
a, c
Université du Québec à Montréal
bccccccccccccc c
↓
0
1
Se souvenir d’événements passés: une sortie peut dépendre
d’un événement arbitrairement “éloigné”...
27 janvier 2003
27
0
1, 1/0
0, 0/1
1
1, 1/1
0, 1/0
1, 0/0
...mais il est encore possible de calculer, en parallèle, le vecteur
caractéristique de chaque état en utilisant l’automate
d’addition binaire:
0, 0/0
0, 1/1
1, 0/1
Université du Québec à Montréal
(x1 ∧ x2 ) ∨ [((¬x1 ∧ x2 ) ∨ (x1 ∧ ¬x2 )) ∧ ¬(x1 +b x2 )]
Si deux vecteurs de bits x1 et x2 sont additionnés, la sortie sera 1
si
27 janvier 2003
28
0
a
1
a,c
0,0/0
0,1/1
1,0/1
0
Maintenant, définissons x1 = a et x2 = a ∨ c:
b,c
b
1,1/0
0,0/1
1
1,1/1
0,1/0
1,0/0
Université du Québec à Montréal
(r = 1) = a ∨ [c ∧ ¬(a +b (a ∨ c))]
Alors:
a = x1 ∧ x2 = les deux bits sont 1
b = ¬x1 ∧ ¬x2 = les deux bits sont 0
c = ¬x1 ∧ x2 = le premier bit est 0 et le second est 1
On obtient:
27 janvier 2003
29
a, b
s
a
a
c
a
&
Université du Québec à Montréal
%
Résoudre des automates plus complexes: quels automates
pouvons-nous résoudre en utilisant nos techniques?
$
'
27 janvier 2003
30
Quelques Définitions: soit A un automate complet déterministe
sur l’alphabet Σ avec ensemble d’états Q et fonction de transition
σ
Q × Σ −→ Q.
0
0
0
∀s ∈ Q, σ(s , x) = s,
0
0
a
c
1
b
∀s 6= s ∈ Q, σ(s , x) 6= s.
a, b
a
b
c
2
Université du Québec à Montréal
c
(et alors x ∈ Is )
Définition 1.
Un état s est effeuillable si, pour tout
événement x ∈ Σ qui ne boucle pas sur s, on a
ou
27 janvier 2003
31
a, b
0
c
a
b
1
a
c
b
2
Université du Québec à Montréal
c
Definition 2. Un automate A est effeuillable s’il a un seul
état, ou s’il a un état effeuillable s et que A \ {s} est effeuillable.
27 janvier 2003
32
b
1
c
b
2
Université du Québec à Montréal
c
Definition 2. Un automate A est effeuillable s’il a un seul
état, ou s’il a un état effeuillable s et que A \ {s} est effeuillable.
27 janvier 2003
33
Université du Québec à Montréal
Théorème 1. Si un automate A est effeuillable, alors on
peut trouver un algorithme vectoriel pour A.
27 janvier 2003
34
a, b
0
b
1
a
c
b
ab bb bb cb bb ab cb cb bb
0b 0b 0b b b 0b b b b
a
c
Exemple:
Étape 1. Premier état effeuillable: 0
27 janvier 2003
2
c
Université du Québec à Montréal
35
a, b
0
b
1
a
c
b
ab bb bb cb bb ab cb cb bb
0b 0b 0b 1b b 0b 1b b b
a
c
Exemple:
Étape 2. “Voisins de 0”
27 janvier 2003
2
c
Université du Québec à Montréal
36
a, b
0
b
1
a
c
b
ab bb bb cb bb ab cb cb bb
0b 0b 0b 1b b 0b 1b b b
a
c
Exemple:
Étape 3. “Étape récursive”
27 janvier 2003
2
c
Université du Québec à Montréal
37
b
1
c
b
ab bb bb cb bb ab cb cb bb
0b 0b 0b 1b b 0b 1b b b
Exemple:
Étape 3. “Étape récursive”
27 janvier 2003
2
c
Université du Québec à Montréal
38
b
1
c
b
ab bb bb cb bb ab cb cb bb
0b 0b 0b 1b 1b 0b 1b 2b 1b
Exemple:
Étape 3. “Étape récursive”
27 janvier 2003
2
c
Université du Québec à Montréal
39
Plan de l’exposé
1. Présentation du problème et de quelques applications de
celui-ci en bioinformatique.
2. Rappel de l’algorithme de Sellers pour calculer la distance
entre deux mots (table des distances).
3. Généralisation de cet algorithme à la recherche des occurrences
approximatives d’un mot dans un texte.
4. Introduction aux vecteurs de bits.
5. Qu’est-ce qu’un automate?
6. Présentation d’un problème intéressant sur les automates et
d’un algorithme vectoriel pour le résoudre.
Université du Québec à Montréal
7. Présentation de notre algorithme vectoriel (utilisant les
automates) pour la résolution du problème de la recherche des
occurrences approximatives d’un mot dans un texte.
27 janvier 2003
40
A C
G T
0
A A
0
T
0
A
0
0
G C
...
...
0
...
0
1
...
0
T
2
...
0
A
3
...
0
T
4

 D[i − 1, j − 1] + δ(pi , tj )


D[i, j − 1] + 1
D[i − 1, j] + 1
A
0
Généralisation de l’algorithme:
où
D[i, j] = min



(9)
Université du Québec à Montréal
avec les conditions initiales D[0, j] = 0 et D[i, 0] = i.
27 janvier 2003
41
Nouvelle Solution: Calculer les distances avec un automate . . .
Définition 3. On définit les différences horizontales et verticales entre les éléments de la table des distances D de la
façon suivante:
∆vi,j = D[i, j] − D[i − 1, j],
∆hi,j = D[i, j] − D[i, j − 1].
∆vi,j ∈ {−1, . . . , 1},
∆hi,j ∈ {−1, . . . , 1}.
Université du Québec à Montréal
Lemme 1. Les différences horizontales et verticales sont
bornées, c’est-à-dire
27 janvier 2003
42
0
1
1
0
A
0
0
C
0
0
G
0
0
T
0
0
0
0
0
0
A A T
0
0
0
0
A G
0
0
C
...
...
...
...
...
...
0
Connaı̂tre les différences horizontales nous permet de
résoudre le problème...
T
1
1
3
A 2
T
1
A 4
Université du Québec à Montréal
D[m, j] = D[m, j − 1] + ∆hm,j .
car on sait que D[m, 0] = m et alors
27 janvier 2003
43
0
1
1
A
C
G
0
0
T
0
0
0
0
0
0
A A T
0
0
0
0
A G
0
0
0
C
...
...
...
0
∗
...
0
∗
...
0
∗
...
0
∗
0
Connaı̂tre les différences horizontales nous permet de
résoudre le problème...
T
1
1
3
A 2
T
1
A 4
Université du Québec à Montréal
D[m, j] = D[m, j − 1] + ∆hm,j .
car on sait que D[m, 0] = m et alors
27 janvier 2003
44
Notre algorithme:
∆vj =↑0 ∆hj + ∆vj−1 − ∆hj
Calculer ∆hj avec un automate B.
Au départ, on a que ∆vo = 11 . . . 1.
Pour j de 1 à n faire
1.
2. Calculer ∆vj :
3. Calculer D[m, j]
D[m, j] = D[m, j − 1] + ∆hm,j
Université du Québec à Montréal
Finalement, si D[m, j] ≤ t alors on a une occurrence de P en
position j du texte.
27 janvier 2003
45




D[i,j]=min



D[i−1,j−1]+δ(pi ,tj )
D[i,j−1]+1
D[i−1,j]+1
=⇒
∆hi,j =min







δ(pi ,tj )−∆vi,j−1
∆hi−1,j −∆vi,j−1 +1
1
On peut donc définir un automate B qui calculera la colonne de
différences horizontales ∆hj = ∆h1,j . . . ∆hm,j étant donné la
séquence de couples suivante:
Université du Québec à Montréal
(∆vj−1 , δ(P, tj )) = ((∆v1,j−1 , δ(p1 , tj )), . . . , (∆vm,j−1 , δ(pm , tj )))
27 janvier 2003
46
−1
(0,1)
(0,0)
(1,0)
(−1,1)
(−1,0)
(0,0)
(1,1)
0
(1,0)
(−1,1)
(−1,0)
(0,1)
(1,1)
(0,0)
(0,1)
(−1,0)
(−1,1)
Université du Québec à Montréal
1
Exemple: L’automate B permettant de calculer les colonnes de
différences horizontales dans le cas où la distance utilisée est la
distance d’édition est le suivant:
(1,0)
(1,1)
27 janvier 2003
47
Bibliographie:
1. Hamel, S., Algorithmes vectoriels et bioinformatique, Thèse de
doctorat, 2002.
2. Bergeron, A. et Hamel, S., Vector Algorithms for Approximate
String Matching, International Journal of Foundations of
Computer Science, 13-1, pp.53–66, 2002.
3. Gusfield, D., Algorithms on Strings, Trees and Sequences,
Cambridge University Press, 1997.
Université du Québec à Montréal
4. Hopcroft, J.E. et Ullman, J.D., Introduction to Automata
Theory, Languages, and Computation, Addison-Wesley
Publishing Company, 1979.
27 janvier 2003
48
Théorème (Myers 99). L’automate à 3 états permettant de
résoudre le problème de la recherche approximative d’un
mot dans un texte, avec l’emploi de la distance d’édition,
est effeuillable.
Université du Québec à Montréal
Theorem 2. L’automate B à 2c + 2 états permettant de
résoudre le problème de la recherche approximative d’un
mot dans un texte, avec l’emploi de la distance d’édition
généralisée, est effeuillable.
27 janvier 2003
49
Téléchargement