Vous êtes sur la page 1sur 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.
J Strother Moore

www.utel.edu.mx
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
O S T E N T E
Ejemplo de comprobacin: 6 5 4 3 2 1 0
S: FADFAEVASEGSOSTENTE
P: OSTENTE E N O S T otros
D1 0 2 6 5 1 7

F A D F A E V A S E G S O S T E N T E

S: Cadena madre
1 2 3 4 5 6 7 1 2 3 4 5 O S T E N T E

P: Patrn

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Paso 1
Patrn OSTENTE

Armar la tabla primera fila:

Se coloca cada ocurrencia de


E N O S T otros
cada carcter del patrn en una
D1
tabla en orden alfabtico.

En el ejemplo la E y la T solo
se coloca una vez.

www.utel.edu.mx
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 O S T E N T E
contando desde la derecha y 6 5 4 3 2 1 0
comenzando en 0.

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Paso 3
Patrn OSTENTE

Rellenar la segunda fila

O S T E N T E
Se coloca la primera ocurrencia de
derecha a izquierda. 6 5 4 3 2 1 0

Otros es el total de caracteres o


tamao del patrn.
E N O S T otros
D1 0 2 6 5 1 7

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Comprovacin
Ejemplo:

S: FADFAEVASEGSOSTENTE
P: OSTENTE
F A D F A E V A S E G S O S T E N T E

Se compara la ltima letra del O S T E N T E

patrn con la primera fila que en


este caso es V y como no es la
misma la comparamos con la tabla E N O S T otros
y como no tenemos V se D1 0 2 6 5 1 7
desplaza 7 caracteres que
pertenece a otros.

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Comprobacin
Ejemplo:

S: FADFAEVASEGSOSTENTE
P: OSTENTE F A D F A E V A S E G S O S T E N T E

1 2 3 4 5 6 7 O S T E N T E

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 E N O S T otros
con la tabla y la encontramos con D1 0 2 6 5 1 7
5 por lo que recorreremos 5
caracteres.

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Comprobacin
Ejemplo:

S: FADFAEVASEGSOSTENTE
P: OSTENTE
F A D F A E V A S E G S O S T E N T E

Al recorrer 5 caracteres volvemos a 1 2 3 4 5 6 7 1 2 3 4 5 O S T E N T E


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. E N O S T otros
D1 0 2 6 5 1 7
Nota: Si se encuentra un fallo volver a
comparar con la tabla.

www.utel.edu.mx

Vous aimerez peut-être aussi