Sie sind auf Seite 1von 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

Das könnte Ihnen auch gefallen