¿Encontrar la expresión regular mínima es un problema de NP completo?


43

Estoy pensando en el siguiente problema: quiero encontrar una expresión regular que coincida con un conjunto particular de cadenas (por ejemplo, direcciones de correo electrónico válidas) y que no coincida con otras (direcciones de correo electrónico no válidas).

Supongamos que por expresión regular nos referimos a una máquina de estados finitos bien definida, no estoy familiarizado con la terminología exacta, pero estemos de acuerdo en alguna clase de expresiones permitidas.

En lugar de crear manualmente la expresión, quiero darle un conjunto de ejemplos positivos y un conjunto de ejemplos negativos.

Luego debería aparecer una expresión que coincida con los +, rechace los - y sea mínima en un sentido bien definido (¿número de estados en los autómatas?).

Mis preguntas son:

  • ¿Se ha considerado este problema, cómo se puede definir de una manera más concreta y se puede resolver de manera eficiente? ¿Podemos resolverlo en tiempo polinómico? ¿Está NP completo, podemos aproximarlo de alguna manera? ¿Para qué clases de expresiones funcionaría? Agradecería cualquier puntero a los libros de texto, artículos o tal que discutan este tema.
  • ¿Está relacionado de alguna manera con la complejidad de Kolmogorov?
  • ¿Está relacionado de alguna manera con el aprendizaje? Si la expresión regular es consistente con mis ejemplos, en virtud de que es mínima, ¿podemos decir algo sobre su poder de generalización en ejemplos aún no vistos? ¿Qué criterio de minimidad sería más adecuado para esto? ¿Cuál sería más eficiente? ¿Tiene esto alguna conexión con el aprendizaje automático? Una vez más, cualquier puntero sería útil ...

Perdón por la pregunta desordenada ... Apúntame en la dirección correcta para resolver esto. Gracias !


2
La siguiente página parece muy relevante para el aspecto de aprendizaje de la pregunta: people.dsv.su.se/~henke/ML/MERLIN.html
Tsuyoshi Ito

1
… o tal vez no. Parece que hay muchos trabajos sobre el aprendizaje de DFA de todos modos.
Tsuyoshi Ito

2
Esta pregunta fue discutida recientemente en el blog de la comunidad .
Aaron Sterling el

Respuestas:


39

Sí, es NP-Hard. Pitt y Warmuth mostraron que encontrar el DFA más pequeño consistente con una muestra dada no puede aproximarse dentro de para cualquier constante , a menos que .OPTkkP=NP

Con respecto a la pregunta de aprendizaje: Kearns y Valiant demostraron que puede codificar RSA en un DFA. Por lo tanto, incluso si los ejemplos etiquetados provienen de la distribución uniforme, ser capaz de generalizar a ejemplos futuros (incluso viniendo de la distribución uniforme) rompería el RSA. Por lo tanto, creemos que en el peor de los casos, tener ejemplos etiquetados no ayuda a aprender un DFA (en el modelo PAC). Este es uno de los resultados clásicos de dureza criptográfica para el aprendizaje.

Ambos problemas están entrelazados debido a lo que llamamos el Teorema de la Navaja de Occam . Básicamente establece que si tenemos un procedimiento para encontrar la hipótesis más pequeña de una clase dada que sea consistente con una muestra etiquetada por una hipótesis de la misma clase, entonces podemos PAC aprender esa clase. Entonces, dado el resultado de la dureza RSA, ¡esperaríamos que encontrar el DFA más pequeño y consistente sea difícil en general!

Para agregar un resultado de aprendizaje positivo, Angluin demostró que puedes aprender un DFA si puedes inventar tus propios ejemplos, pero requiere el poder adicional de poder preguntar "¿es correcta mi hipótesis actual?" Este también fue un trabajo fundamental en el aprendizaje.

Para responder a su otra pregunta, todo esto está relacionado con la complejidad de Kolmogorov, ya que el problema de aprendizaje se vuelve más fácil cuando la representación canónica del DFA objetivo tiene poca complejidad.


3
¡Me ganaste con un resultado más reciente y más fuerte! ¡Deberías publicar una respuesta mejor más tarde !
Tsuyoshi Ito

¡Ups, lo siento! Pasé suficiente tiempo aprendiendo DFA que tuve que saltar a esto :)
Lev Reyzin

1
Por si acaso, estaba bromeando en mi comentario anterior. ¡Por supuesto que estoy feliz de ver una mejor respuesta!
Tsuyoshi Ito

1
en otras palabras, la diferencia clave entre este problema y la minimización regular de los DFA es la presencia de ejemplos negativos, ¿sí?
Suresh Venkat

1
No entiendo. sin ejemplos negativos, el dfa consistente más pequeño tiene solo 1 estado: el estado de aceptación que apunta a sí mismo ...
Lev Reyzin

13

Respondo los aspectos relacionados con el aprendizaje de la pregunta.

Este problema parece llamarse "aprendizaje de DFA" en la literatura.

Gold [Gol78] mostró que es NP-completo decidir, dados k ∈ℕ y dos conjuntos finitos P y N de cadenas, si existe un autómata determinista de estado finito (DFA) con a lo sumo k estados que acepten cada cadena en P y ninguna de las cadenas en N . El documento [PH01] parece discutir problemas relacionados con esta motivación (puede haber muchos más; esto surgió cuando intenté encontrar documentos relevantes con Google).

Referencias

[Gol78] E Mark Gold. Complejidad de la identificación del autómata a partir de datos dados. Información y control , 37 (3): 302–320, junio de 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Rajesh Parekh y Vasant Honavar. Aprendizaje de DFA a partir de ejemplos simples. Machine Learning , 44 (1–2): 9–35, julio de 2001. http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


1
Gracias por la respuesta, estoy mirando las referencias. ¿Puedo votar más de una de las mejores respuestas en este sitio? :) Nuevamente, me da vergüenza haber perdido todo el subcampo "Aprendizaje de DFA", a pesar de que estudié el aprendizaje automático durante años.
László Kozma

@steve: puede aceptar solo una respuesta, pero puede votar tantas respuestas como desee.
Jukka Suomela

2
Tenga en cuenta que [Gold78] también establece que DFA se puede aprender en tiempo polinómico (dentro del marco de identificación de aprendizaje en el límite). Consulte también el libro reciente sobre Inferencia gramatical ( pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html ) para obtener una descripción general.
mgalle

@mgalle: Gracias por la información adicional.
Tsuyoshi Ito

8

A lo largo de esta discusión, se ha asumido que encontrar una expresión regular mínima equivale a encontrar un FSM mínimo que reconozca el lenguaje, pero estas son dos cosas diferentes. Si no recuerdo mal, un DFA se puede minimizar en el tiempo polinómico, mientras que encontrar una expresión regular mínima que represente un lenguaje regular determinado es muy difícil para PSPACE. Este último es uno de esos resultados que pertenecen al folklore de Automata Theory, pero cuya prueba no se puede encontrar en ninguna parte. Creo que se afirma como un ejercicio en el libro de Papadimitrou.


1
Es correcto que la longitud de la expresión regular y el número de estados en DFA sean diferentes funciones objetivas. Respondí sobre la minimización de DFA porque tiene una propiedad más agradable (por ejemplo, hay un DFA único con el número mínimo de estados) y, por la forma en que se planteó la pregunta, tuve la impresión de que la función objetivo exacta era flexible.
Tsuyoshi Ito

Comentario aleatorio: dado que una expresión regular de tamaño f (n) puede ser simulada por un NFA de tamaño O (f (n)), minimizar las expresiones regulares es más como minimizar los NFA, lo que obviamente es más difícil.
Hsien-Chih Chang 張顯 之

parte de esto se aborda en los comentarios a la respuesta de @ keith
Lev Reyzin

2

Vea también esta publicación de desbordamiento de pila. El libro que está buscando parece ser Introducción a la teoría de la computación de Michael Sipser.

Estás haciendo un par de preguntas diferentes, por lo que debes responderlas una a la vez:

Is finding a minimal Finite State Machine for a language L NP-complete?

No, no lo es. La publicación Stack Overflow analiza un ingenuo algoritmo n ^ 2 para reducir un FSM a su tamaño mínimo. (Trabajando hacia atrás desde los estados de detención, combine estados que sean "idénticos" en un sentido preciso).

Aparentemente (no seguí el enlace), hay un algoritmo n log n para hacer esto.

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

A medida que lo redacta, su conjunto de entrenamiento describe un lenguaje finito . Los idiomas finitos se asignan trivialmente a un FSM: cree un conjunto lineal de estados que terminen en un estado de detención para cada cadena en su idioma, sin necesidad de bucles. Luego, ejecute el algoritmo de minimización FSM en la máquina resultante.

Is this a good way to build a classifier?

Yo no diría eso. Minimizar el FSM no cambia su poder discriminativo, ese es el punto. El FSM mínimo acepta exactamente el conjunto de cadenas como cualquier FSM no mínimo equivalente.

En general, las expresiones regulares no son adecuadas para clasificar datos nuevos. Para cualquier conjunto de entrenamiento finito, obtendrá un RE / FSM que coincide solo con los ejemplos positivos en ese conjunto, sin capacidad de generalizar a nuevos datos. Nunca he visto un enfoque que intente encontrar un lenguaje regular infinito que coincida con algún corpus de entrenamiento.

Para el aprendizaje automático, estaría buscando algo como un ingenuo clasificador de Bayes, un árbol de decisión, una red neuronal o algo más exótico. Inteligencia artificial de Russell y Norvig : un enfoque moderno es un lugar tan bueno como cualquier otro para encontrar una visión general de las técnicas de aprendizaje automático (y mucho, mucho más).


2
No estoy de acuerdo con esta respuesta. Si simplemente toma todos los ejemplos positivos y construye un FSM que acepta solo esos ejemplos y nada más, su FSM puede ser enorme. Por otro lado, el FSM más pequeño que acepta todos los ejemplos positivos y no hay ejemplos negativos podría ser mucho más pequeño.
Jukka Suomela

3
Creo que la pregunta original lo dejó bastante claro: "una expresión que coincide con los +, rechaza los - y es mínima en un sentido bien definido".
Jukka Suomela 01 de

55
@keith la distinción entre tu respuesta y la mía es bastante sutil. cuando construye su dfa, al crear nuevos estados para cada cadena de la muestra, se compromete a un lenguaje posiblemente diferente al representado por el dfa mínimo que separa los ejemplos positivos y negativos. ¡así que el algoritmo para generar un dfa y luego minimizarlo desafortunadamente no lo hace!
Lev Reyzin

1
No estoy seguro de entender esta distinción. Si tenemos un conjunto de ejemplos positivos y negativos, tenemos una familia de idiomas que satisfacen estas limitaciones. para cada uno hay un (conjunto de) dfas mínimos. Siempre que devuelva un DFA de tamaño mínimo, ¿cómo importa cuál de estos idiomas elija?
Suresh Venkat

1
Para aprender, desea elegir el DFA más pequeño porque tiene la mejor capacidad de generalización. El procedimiento de @ kieth no elegirá el DFA mínimo en todos estos idiomas, solo el más pequeño para el idioma que se ha comprometido a usar su procedimiento.
Lev Reyzin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.