Determinización y minimización de autómatas para palabras anidadas revisado
Autores: Niehren, Joachim; Sakho, Momar
Idioma: Inglés
Editor: MDPI
Año: 2021
Acceso abierto
Artículo científico
2021
Determinización y minimización de autómatas para palabras anidadas revisado
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Problema
Autómata
Determinización
Palabras anidadas
Minimización
Expresiones regulares
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 38
Citaciones: Sin citaciones
Consideramos el problema de determinizar y minimizar autómatas para palabras anidadas en la práctica. Para esto compilamos las expresiones regulares anidadas () del benchmark usual de XPath a autómatas de palabras anidadas (). Sin embargo, la determinización de estos , falla en producir autómatas razonablemente pequeños. En el mejor de los casos, se producen enormes determinísticos después de unas pocas horas, incluso para relativamente pequeños del benchmark. Proponemos un enfoque diferente para la determinización de autómatas para palabras anidadas. Para esto, introducimos (s) que se generalizan naturalmente tanto en autómatas de árboles (paso a paso) como en autómatas de palabras finitas. Luego mostramos cómo determinizar s, produciendo autómatas determinísticos razonablemente pequeños para el del benchmark de XPath. El tamaño de los autómatas determinísticos s puede reducirse aún más mediante un novedoso algoritmo de minimización para una subclase de s. Para entender por qué el nuevo enfoque de determinización y minimización funciona tan bien, investigamos la relación entre y s más a fondo. Claramente, los s determinísticos pueden compilarse a determinísticos en tiempo lineal, y a la inversa pueden compilarse a s no determinísticos en tiempo polinómico. Por lo tanto, podemos utilizar s como intermediarios para determinizar , evitando el enorme aumento de tamaño con el algoritmo de determinización habitual para . Notablemente, los obtenidos de los s realizan cálculos de abajo hacia arriba y de izquierda a derecha solamente, pero no cálculos de arriba hacia abajo. Este comportamiento puede distinguirse sintácticamente por la propiedad de una sola entrada (débil), lo que sugiere una estrecha relación entre s y . En particular, resulta que el algoritmo de determinización habitual para se comporta bien para una sola entrada , mientras que explota rápidamente sin la propiedad de una sola entrada. Además, se sabe que la clase de s determinísticos multi-módulo de una sola entrada disfruta de una minimización única. Sin embargo, la subclase de s determinísticos a la que se aplica nuestro novedoso algoritmo de minimización es diferente, en el sentido de que no imponemos múltiples módulos. Como optimizaciones adicionales para reducir los tamaños de los s construidos, proponemos limpieza basada en esquemas y representaciones simbólicas basadas en reglas de aplicar-sino que pueden ser mantenidas por la determinización. Implementamos las optimizaciones y reportamos los resultados experimentales para los autómatas construidos para el benchmark de XPathMark.
Descripción
Consideramos el problema de determinizar y minimizar autómatas para palabras anidadas en la práctica. Para esto compilamos las expresiones regulares anidadas () del benchmark usual de XPath a autómatas de palabras anidadas (). Sin embargo, la determinización de estos , falla en producir autómatas razonablemente pequeños. En el mejor de los casos, se producen enormes determinísticos después de unas pocas horas, incluso para relativamente pequeños del benchmark. Proponemos un enfoque diferente para la determinización de autómatas para palabras anidadas. Para esto, introducimos (s) que se generalizan naturalmente tanto en autómatas de árboles (paso a paso) como en autómatas de palabras finitas. Luego mostramos cómo determinizar s, produciendo autómatas determinísticos razonablemente pequeños para el del benchmark de XPath. El tamaño de los autómatas determinísticos s puede reducirse aún más mediante un novedoso algoritmo de minimización para una subclase de s. Para entender por qué el nuevo enfoque de determinización y minimización funciona tan bien, investigamos la relación entre y s más a fondo. Claramente, los s determinísticos pueden compilarse a determinísticos en tiempo lineal, y a la inversa pueden compilarse a s no determinísticos en tiempo polinómico. Por lo tanto, podemos utilizar s como intermediarios para determinizar , evitando el enorme aumento de tamaño con el algoritmo de determinización habitual para . Notablemente, los obtenidos de los s realizan cálculos de abajo hacia arriba y de izquierda a derecha solamente, pero no cálculos de arriba hacia abajo. Este comportamiento puede distinguirse sintácticamente por la propiedad de una sola entrada (débil), lo que sugiere una estrecha relación entre s y . En particular, resulta que el algoritmo de determinización habitual para se comporta bien para una sola entrada , mientras que explota rápidamente sin la propiedad de una sola entrada. Además, se sabe que la clase de s determinísticos multi-módulo de una sola entrada disfruta de una minimización única. Sin embargo, la subclase de s determinísticos a la que se aplica nuestro novedoso algoritmo de minimización es diferente, en el sentido de que no imponemos múltiples módulos. Como optimizaciones adicionales para reducir los tamaños de los s construidos, proponemos limpieza basada en esquemas y representaciones simbólicas basadas en reglas de aplicar-sino que pueden ser mantenidas por la determinización. Implementamos las optimizaciones y reportamos los resultados experimentales para los autómatas construidos para el benchmark de XPathMark.