Subido por ivan alejandro diaz lara

Algoritmo de BM Inteligencia artificial U.3

Anuncio
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)
www.utel.edu.mx
Robert S. Boyer
Inteligencia Artificial
Algoritmo BM
Calculo de la tabla D1
(Prefijo malo)
Patrón “OSTENTE”
Ejemplo de comprobación:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
O
S
T
E
N
T
E
6
5
4
3
2
1
0
E
N
O
S
T
otros
0
2
6
5
1
7
D1
S: Cadena madre
P: Patrón
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
1
2
3
4
5
O
S
T
E
N
T
E
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Paso 1
Patrón “OSTENTE”
Armar la tabla primera fila:
Se coloca cada ocurrencia de
cada carácter del patrón en una
tabla en orden alfabético.
E
D1
En el ejemplo la “E” y la “T” solo
se coloca una vez.
www.utel.edu.mx
N
O
S
T
otros
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
contando desde la derecha y
comenzando en 0.
O
S
T
E
N
T
E
6
5
4
3
2
1
0
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Paso 3
Patrón “OSTENTE”
Rellenar la segunda fila
Se coloca la primera ocurrencia de
derecha a izquierda.
O
S
T
E
N
T
E
6
5
4
3
2
1
0
E
N
O
S
T
otros
0
2
6
5
1
7
Otros es el total de caracteres o
tamaño del patrón.
D1
www.utel.edu.mx
Inteligencia Artificial
Algoritmo BM
Comprovación
Ejemplo:
S: FADFAEVASEGSOSTENTE
P: OSTENTE
Se compara la última letra del
patrón 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
F
A
D
F
A
E
V
O
S
T
E
N
T
E
A
S
E
G
S
O
S
T
E
N
T
E
E
N
O
S
T
otros
0
2
6
5
1
7
Inteligencia Artificial
Algoritmo BM
Comprobación
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
F
A
D
F
A
E
V
A
S
E
G
S
O
S
1
2
3
4
5
6
7
O
S
T
E
N
T
E
T
E
N
T
E
E
N
O
S
T
otros
0
2
6
5
1
7
Inteligencia Artificial
Algoritmo BM
Comprobación
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 demás caracteres hasta
encontrar un fallo pero como hay termina
el algoritmo.
D1
Nota: Si se encuentra un fallo volver a
comparar con la tabla.
www.utel.edu.mx
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
1
2
3
4
5
O
S
T
E
N
T
E
E
N
O
S
T
otros
0
2
6
5
1
7
Descargar