Está en la página 1de 11

INTELIGENCIA ARTIFICIAL

UNIDAD III

ALGORITMO DE BM
PIERRE SERGEI ZUPPA AZÚA

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Algunos Algoritmo de procesamiento de caracteres

• Trivial
• Rabin-Karp
• Knuth-Morris_Pratt
• Boyer-Moore
• Búsqueda 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 ejecución del algoritmo


Boyer-Moore, aunque es lineal en el
tamaño de la cadena siendo buscada,
puede tener un factor
significativamente más bajo que
muchos otros algoritmos de
búsqueda: no necesita comprobar
cada carácter 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 patrón 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)
Patrón “OSTENTE”
O S T E N T E
Ejemplo de comprobación: 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: Patrón

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Paso 1
Patrón “OSTENTE”

Armar la tabla primera fila:

Se coloca cada ocurrencia de


E N O S T otros
cada carácter del patrón en una
D1
tabla en orden alfabético.

En el ejemplo la “E” y la “T” solo


se coloca una vez.

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Paso 2
Patrón “OSTENTE”

Posición de los caracteres del


patrón:

Poner la posición de la primera


aparición del carácter en el patrón 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
Patrón “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


tamaño del patrón.
E N O S T otros
D1 0 2 6 5 1 7

www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM

Comprovación
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


                       
patrón 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

Comprobación
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

Comprobación
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 demás 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

También podría gustarte