Una operación que transforma un NFA en otro NFA pero no lo hace para un DFA es la inversión (apunte todas las flechas al revés e intercambie los estados iniciales con los estados de aceptación). El lenguaje reconocido por el autómata transformado es el lenguaje inverso .LR= { un - 1... u0 0| T0 0... un - 1∈ L }
Por lo tanto, una idea es buscar un lenguaje que tenga una construcción asimétrica. En adelante, este lenguaje debe reconocerse inspeccionando los primeros símbolos, que requieren solo estados. Yendo hacia atrás, debería ser necesario mantener una memoria de los últimos estados, lo que requiere estados donde es el tamaño del alfabeto.n + O ( 1 ) n A n + O ( 1 ) Anorten + O ( 1 )norteUNnorte+ O ( 1 )UN
Estamos buscando un lenguaje de la forma donde consiste en palabras de longitud , es un subconjunto no trivial del alfabeto y no proporciona ninguna restricción adicional. También podríamos elegir el alfabeto más simple (un alfabeto singleton no servirá, no obtienes NFA más pequeños allí) y . Una no trivial significa . En cuanto a , requerimos que no se correlacione con (por lo que el DFA para el lenguaje invertido necesitará mantener la memoria de ): tomeM n n S M ′ A = { a , b } M ′ = A ∗ S S = { a } M n S S M n = A nMETROnorteSMETRO′METROnortenorteSMETRO′UN= { a , b }METRO′= A∗SS= { a }METROnorteSSMETROnorte= Anorte .
Por lo tanto, sea . Se reconoce por un simple DFA con estados. n + 2Lnorte= ( a | b )nortea ( a | b )∗n + 2
Invertirlo produce un NFA que reconoce .LRnorte= ( a | b )∗a ( a | b )norte
El DFA mínimo que reconoce
tiene al menos estados. Esto se debe a que todas las palabras de longitud deben alcanzar estados distintos en el DFA. (En otras palabras, pertenecen a distintas clases de equivalencia de Myhill-Nerode ). Para probar esto, tome dos palabras distintas y deje que sea una posición en la que difieren ( ). Sin pérdida de generalidad, supongamos que y . Entonces y ( es una extensión distintiva para 2 n + 1 2 n + 1 u , v ∈ A n + 1 k u k ≠ v k u k = a v k = b u b k ∈ L R n v b k ∉ L R n b k u v u v L R n u b k v bLRnorte2n + 12n + 1u , v ∈ An + 1ktuk≠ vktuk= avk= bu bk∈ LRnortev bk∉ LRnortesiktu y ). Si y conducen al mismo estado en un DFA que reconoce entonces lo harían y , lo cual es imposible ya que uno conduce a un estado de aceptación y el otro no.vtuvLRnorteu bkv bk
Reconocimiento: este ejemplo fue citado en Wikipedia sin explicaciones. El artículo hace referencia a un artículo que no he leído y que ofrece un límite más estricto:
Leiss, Ernst (1981), "Representación sucinta de los lenguajes regulares por autómatas booleanos", Ciencia teórica 13 (3): 323–330, doi: 10.1016 / S0304-3975 (81) 80005-9 .