ıllı Internet y Tecnologías de la Información (2018)

internet, Hosting, dominios, seo, antivirus, banco de imágenes, páginas web, tiendas online

[Enciclopedia Online Gratuita] Diccionario de Internet y Tecnologías de la Información y la Comunicación (TIC):

ıllı Algoritmo de búsqueda de cadenas Boyer-Moore : que es, definición y significado, descargar videos y fotos.

videos internet

salud  ıllı Algoritmo de búsqueda de cadenas Boyer-Moore : que es, definición y significado, descargar videos y fotos.  


-------X-------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMANLa X en la situación ocho excluye todas y cada una la ocho posibles situaciones de inicio mostradas.

A la gente habitualmente le sorprende el algoritmo de Boyer-Moore, cuando lo conoce, pues en su verificación procura revisar si hay una coincidencia en una situación particular marchando cara atrás. Empieza una busca al comienzo de un texto para la palabra "ANPANMAN", por servirnos de un ejemplo, verifica que la situación octava del texto en proceso contenga una "N". Si halla la "N", se mueve a la séptima situación para poder ver si contiene la última "A" de la palabra, y de este modo consecutivamente hasta el momento en que verifica la primera situación del texto para una "A".


La razón por la que Boyer-Moore escoge este enfoque está más clara cuando estimamos que pasa si la verficación falla-por servirnos de un ejemplo, si en vez de una "N" en la octava situación, hallamos una "X". La "X" no aparece en "ANPANMAN", y esto quiere decir que no hay coincidencia para la cadena buscada en el comienzo del texto-o bien en las próximas 7 situaciones, pues todas y cada una fallarían asimismo con la "X". Tras revisar los 8 caracteres de la palabra "ANPANMAN" para tan solo un carácter "X", vamos a ser capaces de saltar cara delante y empezar buscando una coincidencia en el final en la dieciseis.ª situación del texto.


Esto explica por qué razón el desempeño del caso promedio del algoritmo, para un texto de longitud nundefined y patrón fijo de longitud mundefined, es n/mundefined: en el mejor de los casos, solo uno en mundefined caracteres precisa ser comprobado. Esto asimismo explica el resultado algo contra-intuitivo de que cuanto más largo es el patrón que buscamos, el algoritmo acostumbra a ser más veloz para hallarlo.


El algoritmo precalcula 2 tablas para procesar la información que consigue en todos y cada verficiación fallada: una tabla calcula cuantas situaciones hay por delante en la próxima busca basada en el valor del carácter que no coincide; la otra hace un cálculo afín basado en cuantos caracteres coincidieron satisfactoriamente ya antes del intento de coincidencia fallado. (Pues estas 2 tablas devuelven resultados señalando qué lejos "saltar" cara delante, son llamada a veces "tablas de salto", que no habrían de ser confundidas con el significado más frecuente de tabla de saltos en ciencia de la computación.) El algoritmo se desplazará con el valor más grande de los 2 valores de salto cuando no ocurra una coincidencia.


Tabla primera

----AMAN-------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN--------ANPANMAN-La "A" no coincidente en la situación cinco (tres atrás desde la última letra de la aguja) excluye las primeras seis de las posibles situaciones iniciales mostradas.

Rellénese la primera tabla como prosigue. Para cada i menor que la longitud de la cadena de busca, constrúyase el patrón consistente en los últimos i caracteres de la cadena antecedida por un carácter no-coincidente, alinéense a la derecha el patrón y la cadena, y anótese el menor número de caracteres a fin de que el patrón deba desplazarse a la izquierda para una coincidencia.


Por ejemplo, para la busca de la cadena ANPANMAN, la tabla sería como sigue:
(NMAN significa una subcadena en ANPANMAN consistente en un carácter que no es 'N' más los caracteres 'MAN'.)

iPatrónDesplazamiento a la izquierda0NEs cierto que la letra siguiente a la izquierda en 'ANPANMAN' no es N (es A), de acá que el patrón N debe desplazarse una situación a la izquierda para una coincidencia; por consiguiente = 11ANAN no es una cadena en ANPANMAN, por lo tanto : el desplazamiento izquierdo es el número de letras en 'ANPANMAN' = 82MANSubcadena MAN coincide con ANPANMAN 3 situaciones a la izquierda. Por ende desplazamiento a la izquierda = 33NMANVemos que 'NMAN' no es una subcadena de 'ANPANMAN' mas 'NMAN' es una posible subcadena seis situaciones más a la izquierda : ('NMANPANMAN'); en consecuencia = 64ANMAN65PANMAN66NPANMAN67ANPANMAN6

La cantidad de desplazamiento calculada por la primera tabla es en ocasiones llamada "desplazamiento de sufijo bueno"? o bien "regla de sufijo bueno (fuerte)". El algoritmo original Boyer-Moore publicado? utiliza una más simple, más enclenque, versión de la regla de sufijo bueno en que cada entrada en tabla de arriba no requiere una no-coincidencia para el carácter de más a la izquierda. Esto es en ocasiones llamado "regla del sufijo bueno enclenque" y no basta para lograr que Boyer-Moore funcione en tiempo lineal en el peor de los casos.


Tabla segunda

Algoritmo de Boyer-Moore-Horspool

La segunda tabla es simple de calcular: iniciése en el último carácter de la cadena vista y muévase cara el primer carácter. Toda vez que se mueve a la izquierda, si el carácter sobre el que está no está ya en la tabla, añádalo; su valor de desplazamiento es la distancia desde el carácter más a la derecha. Todos los demás caracteres reciben un valor igual a la longitud de la cadena de busca.


Ejemplo: Para la cadena ANPANMAN, la segunda tabla sería como se muestra (por claridad, las entradas son mostradas en el orden que serían añadidas a la tabla): (La N que se aparentemente sería cero está basada en la segunda N desde la derecha pues solo anotamos el cálculo para las primeras m-1undefined letras)

CarácterDesplazamientoA1M2N3P5caracteres restantes8

La cantidad de desplazamiento calculada por la segunda tabla es en ocasiones llamada "desplazamiento de carácter malo".?


El caso peor para localizar todas y cada una de las coincidencias en un texto precisa más o menos 3nundefined comparaciones, de acá que la dificultad sea O(n)undefined, pese a que el texto contenga una coincidencia o bien no.? Esta prueba llevó ciertos años para desarrollarse. En el año en que se inventó el algoritmo, mil novecientos setenta y siete, se mostró que el número máximo de comparaciones no era más de 6nundefined; en mil novecientos ochenta se probó que no era más de 4nundefined, hasta el resultado de Cole en Sep mil novecientos noventa y uno.


  ELIGE TU TEMA DE INTERÉS: 


autoayuda.es   Internet y Tecnologias 

Está aquí: Inicio > [ INTERNET ] > ıllı Algoritmo de búsqueda de cadenas Boyer-Moore : que es, definición y significado, descargar videos y fotos.

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Ver políticas