Arregle un entero alfabeto . Defina como la colección de todos los autómatas de estado finito en estados con estado inicial 1. Estamos considerando todos los DFA (no solo los conectados, mínimos o no degenerados); por lo tanto .
Ahora considere dos cadenas y defina como el número de elementos de que aceptan tanto como .
Pregunta: ¿Cuál es la complejidad de calcular ?
Esta pregunta tiene implicaciones para el aprendizaje automático .
Editar: Ahora que hay una recompensa por esta pregunta, supongo que se necesita un poco más de precisión en la formulación. Para , deje que sea la colección de autómatas, como se definió anteriormente. Para , defina como el número de autómatas en que aceptan ambos e . Pregunta: ¿sepuede calcular en el tiempo ?
Respuestas:
Entonces la pregunta es bastante breve pero muy interesante. Supongo que la entrada es en unario, y x e y en binario (o tenemos problemas, como lo señala la respuesta de Kai).n x y
En primer lugar, si está interesado en conocer aproximadamente, puede generar algunos DFA aleatorios y esto le dará (whp) una buena aproximación. (Me pregunto si esta clase de complejidad tiene un nombre).K(x,y)
Entonces saber precisamente parece un problema difícil. Como a cabo en punta en los comentarios por a3_nm y Kaveh, la pregunta es equivalente a determinar el número de autómatas para la que x e y vaya al mismo estado. Denotaré la probabilidad de que vayan al mismo estado por p .K(x,y) x y p
Actualización: Algunas de las cosas que escribí aquí no eran ciertas, ahora las arreglé.
Es fácil ver que . Tenemos igualdad, si x es todo 0 e y es todo cero excepto por su último bit, que es un 1. ¿Hay otros casos? No lo sé. Si, por ejemplo, x es la cadena vacía e y = 00 , entonces p = n + 1p≥1/n x y x y=00 .p=n+1(n−1)n
Para simplificar el problema, incluso me puse a pensar en lo que sucede si e Y son unario. Si ambos son al menos n y su diferencia es divisible por n ! , entonces p = 1 . ¿Existe una fórmula simple para la versión unaria?x y n n! p=1
fuente
Es muy posible que me esté perdiendo el punto, pero usted declaró que es fijo, por lo que todos los DFA de ese tamaño podrían considerarse precalculados y almacenados en un formato fácilmente simulable. Calcule K de la siguiente manera:n K
En la entrada , y donde x , y ∈ Σ ∗x y x,y∈Σ∗
a. simúlelo en ambas palabras (este paso es )O(|xy|)
si. incremente si ambas ejecuciones de simulación aceptanc
En total, el cálculo tiene una complejidad lineal. La respuesta es bastante diferente para .K(n,x,y)
fuente