¿Puede la ambigüedad constante reducir la complejidad del estado de un lenguaje regular?


16

Decimos que NFA M es constantemente ambiguo si existe kN tal que cualquier palabra wΣ sea ​​aceptada por 0 o (exactamente) caminos.k

Si el autómata es constantemente ambiguo para , entonces se llama FA inequívoca (UFA).k = 1 MMk=1M

Deje que sea ​​un lenguaje regular.L

¿Puede un autómata para L constantemente ambiguo ser más pequeño que el UFA más pequeño que acepta L ? ¿Cuánto más pequeño podría ser?McLL

¿Puede un autómata finito ambiguo ser exponencialmente más pequeño que el CFA más pequeño para el mismo idioma?

Se sabe que hay autómatas finitamente ambiguos (existe , de modo que cada palabra es aceptada por hasta kk k rutas) que son exponencialmente más pequeños que el UFA más pequeño para el mismo idioma, pero no he visto algo sobre la ambigüedad constante.

Además, aquí hay una pregunta relacionada que publiqué aquí hace unos meses.

EDITAR:

La respuesta de Domotorp muestra que es polinomialmente reducible a U F A , pero no aborda la cuestión de si podemos obtener esa reducción de espacio polinomial por C F A s.CFAUFACFA

Entonces, la nueva pregunta es: ¿Cuánto más pequeño (linealmente / cuadráticamente / etc.) se puede comparar un con el mínimo U F A ? por el mismo idioma?CFAUFA


¿están permitidas las transiciones ? ϵ
Denis

Quizás esto pueda ser útil: en Kupke, Al separar constante de ambigüedad polinómica de autómatas finitos , se presenta la siguiente jerarquía: No revisé el documento relacionado porque está detrás de Paywall. dfa2nunfa2ncafa2n???2npafa2nnfa
Marzio De Biasi

Gracias @MarzioDeBiasi, pero desafortunadamente esto no ayuda (también tuve esperanzas cuando vi la presentación). Usan una notación diferente a la que yo uso (y he visto en diferentes documentos). Su "ambigüedad constante" es lo que llamé ambigüedad finita, por lo que la relación entre su Cafa y UFA ya la conocía. Dado que mi aplicación cuenta soluciones para problemas de NPC, mi lenguaje siempre es finito y, como tal, cada palabra es aceptada por rutas, que llamaron "constante". O(1)
RB

Me pregunto si mi definición ayuda a reducir la complejidad del estado, ya que tengo un CFA que es exponencialmente más pequeño que el UFA más pequeño que sé construir, y me preguntaba si es posible que no haya un UFA pequeño para el lenguaje.
RB

1
@Denis, sí, pero ¿te ayudaría a reducir la complejidad del estado? Asumiría que solo podría reducir el número de bordes mediante tales movimientos.
RB

Respuestas:


4

Afirmo que si para algún idioma hay un CFA con estados y 0 o cs0c aceptan rutas para cada palabra, entonces hay un UFA con estados. La idea básica es que los estados de la UFA son las tuplas c (ordenadas) de los estados del CFA y acepta si y solo si todos los estados c aceptan. Por supuesto, también tenemos que asegurarnos de que se trata de cálculos diferentes y que no contamos todos los c ! permutaciones, por lo que para estos necesitamos algunos C s adicionalesCsscc!Cs bits de almacenamiento.

Una descripción un poco más detallada de la idea básica: si es un estado de la UFA, entonces tiene una transición de la misma (leyendo alguna letra a ) al estado ( s 1 , ... , s c ) si y solo si el CFA tiene una transición (leyendo la letra a ) de s i a s i para cada i . Un estado ( s 1 , ... , s c(s1,,sc)a(s1,,sc)asisii(s1,,sc) está aceptando si y solo si está aceptando para cada i . Por supuesto, el estado inicial de la UFA essii donde s 0 es el estado inicial de la CFA.(s0,,s0)s0

El problema con lo anterior es que las corridas simuladas del CFA podrían ser las mismas. Entonces, agregamos información adicional, codificada, por ejemplo, en un gráfico en c vértices que tiene un borde entre el vértice i y el vértice j si durante la ejecución hasta ahora al menos una vez que tuvimos ese c ic j .ccijcicj

Ahora todavía tenemos un problema, que hemos contado todo veces debido a las posibles permutaciones. Podemos remediar esto exigiendo que si los estados i -ésimo y j -ésimo hayan sido los mismos hasta ahora y en el siguiente paso serían diferentes, entonces en el siguiente paso el estado i -ésimo debería tener un índice más grande.c!iji


Gracias por contestar @domotorp. Lamentablemente, no puedo decir que lo entiendo. ¿Puede dar más detalles (p. Ej., ¿Cómo se codificaría la prueba de primalidad?). Gracias !
RB

De todos modos, me di cuenta de que también hay un UFA para ese idioma, así que olvídalo. ¿Qué pasa con la parte restante de mi respuesta?
domotorp

No estoy seguro de seguirlo. Si es CFA con k = c , entonces no significa que solo podría haber caminos c para cada palabra w , solo que c de ellos terminará en un estado de aceptación. ¿Cuáles serían los estados de la UFA? ¿Puedes intentar formalizarlo? Mk=ccwc
RB

Ahí tienes, espero que ahora esté claro.
domotorp
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.