You are on page 1of 11

INTELIGENCIA ARTIFICIAL

UNIDAD III

ALGORITMO DE BM
PIERRE SERGEI ZUPPA AZA

www.utel.edu.mx

Inteligencia Artificial
Algoritmo BM

Algunos Algoritmo de procesamiento de caracteres

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

Armar la tabla primera fila:


Se coloca cada ocurrencia de
cada carcter del patrn en una
tabla en orden alfabtico.

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

Posicin de los caracteres del


patrn:
Poner la posicin de la primera
aparicin del carcter en el patrn
contando desde la derecha y
comenzando en 0.

www.utel.edu.mx

Inteligencia Artificial
Algoritmo BM

Paso 3
Patrn OSTENTE

Rellenar la segunda fila


Se coloca la primera ocurrencia de
derecha a izquierda.

otro
s

Otros es el total de caracteres o


tamao del patrn.
D1

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