Professional Documents
Culture Documents
UNIDAD III
ALGORITMO DE BM
PIERRE SERGEI ZUPPA AZA
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Trivial
Rabin-Karp
Knuth-Morris_Pratt
Boyer-Moore
Bsqueda de expresiones
regulares
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
algoritmo de Boyer-Moore
(1977)
Preprocesa la cadena objetivo
(clave) que est siendo buscada, pero
no en la cadena en que se busca.
El tiempo de ejecucin del algoritmo
Boyer-Moore, aunque es lineal en el
tamao de la cadena siendo buscada,
puede
tener
un
factor
significativamente ms bajo que
muchos
otros
algoritmos
de
bsqueda: no necesita comprobar
cada carcter de la cadena que es
buscada, puesto que salta algunos de
ellos.
www.utel.edu.mx
J Strother Moore
Inteligencia Artificial
Algoritmo BM
Algoritmo BM
Puede encontrar todas las apariciones
de un patrn P (de longitud m) en una
cadena madre S (de longitud n) en un
tiempo O(n) en el caso peor.
Es
sublineal:
no
examina
necesariamente todos los caracteres
de S y el n de comparaciones, a
menudo, inferior a n.
En el mejor caso encuentra todas las
apariciones de P en S en un tiempo
O(m+n/m)
Robert S. Boyer
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Calculo de la tabla D1
(Prefijo malo)
Patrn OSTENTE
Ejemplo de comprobacin:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
otro
s
D1
S: Cadena madre
P: Patrn
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Paso 1
Patrn OSTENTE
E
D1
En el ejemplo la E y la T solo
se coloca una vez.
www.utel.edu.mx
otro
s
Inteligencia Artificial
Algoritmo BM
Paso 2
Patrn OSTENTE
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Paso 3
Patrn OSTENTE
otro
s
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Comprovacin
Ejemplo:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
Se compara la ltima letra del
patrn con la primera fila que en
este caso es V y como no es la
misma la comparamos con la tabla
y como no tenemos V se
desplaza
7
caracteres
que
pertenece a otros.
www.utel.edu.mx
D1
otro
s
Inteligencia Artificial
Algoritmo BM
Comprobacin
Ejemplo:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
Al recorrer 7 caracteres volvemos
a comparar la ltima letra con la
primera fila en este caso es S
como no son iguales la buscamos
con la tabla y la encontramos con
5 por lo que recorreremos 5
caracteres.
www.utel.edu.mx
D1
otro
s
Inteligencia Artificial
Algoritmo BM
Comprobacin
Ejemplo:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
Al recorrer 5 caracteres volvemos a
comparar la ltima letra con la primera
fila en este caso son iguales pasamos a
comparar los dems caracteres hasta
encontrar un fallo pero como hay termina
el algoritmo.
Nota: Si se encuentra un fallo volver a
comparar con la tabla.
www.utel.edu.mx
D1
otro
s