Articulo de referencia

Autómata de cociente

En informática , y en particular en la teoría de lenguajes formales , se puede obtener un autómata cociente a partir de un autómata finito no determinista dado , combinando algu...

En informática , y en particular en la teoría de lenguajes formales , se puede obtener un autómata cociente a partir de un autómata finito no determinista dado , combinando algunos de sus estados. El cociente reconoce un superconjunto del autómata original; en algunos casos, según el teorema de Myhill-Nerode , ambos lenguajes son iguales.

Definición formal

Un autómata finito (no determinista) es una quíntupla A = ⟨ Σ , S , s 0 , δ , S f ⟩, donde:

  • Σ es el alfabeto de entrada (un conjunto finito y no vacío de símbolos),
  • S es un conjunto finito y no vacío de estados,
  • s 0 es el estado inicial, un elemento de S ,
  • δ es la relación estado-transición : δS × Σ × S , y
  • S f es el conjunto de estados finales, un subconjunto (posiblemente vacío) de S . [ 1 ] [ nota 1 ]

Una cadena a 1 ... a nΣ * es reconocida por A si existen estados s 1 , ..., s nS tales que ⟨ s i -1 , a i , s i ⟩ ∈ δ para i =1,..., n , y s nS f . El conjunto de todas las cadenas reconocidas por A se llama el lenguaje reconocido por A ; se denota como L ( A ).

Para una relación de equivalencia ≈ en el conjunto S de estados de A , el autómata cociente A / = ⟨ Σ , S / , [ s 0 ], δ / , S f / ⟩ se define por [ 2 ] : 5

  • siendo el alfabeto de entrada Σ el mismo que el de A ,
  • el conjunto de estados S / siendo el conjunto de todas las clases de equivalencia de estados de S ,
  • el estado inicial [ s 0 ] es la clase de equivalencia del estado inicial de A ,
  • la relación de transición de estado δ / se define por δ / ([ s ], a ,[ t ]) si δ ( s , a , t ) para algún s ∈ [ s ] y t ∈ [ t ], y
  • el conjunto de estados finales S f / siendo el conjunto de todas las clases de equivalencia de estados finales de S f .

El proceso de calcular A / también se denomina factorizar A por ≈.

Ejemplo

Por ejemplo, el autómata A que se muestra en la primera fila de la tabla [ nota 2 ] se define formalmente por

  • Σ A = {0,1},
  • S A = {a,b,c,d},
  • s A 0 = a,
  • δ A = { ⟨a,1,b⟩, ⟨b,0,c⟩, ⟨c,0,d⟩ }, y
  • S A f = { b,c,d }.

Reconoce el conjunto finito de cadenas { 1, 10, 100 }; este conjunto también se puede denotar mediante la expresión regular "1+10+100".

La relación (≈) = { ⟨a,a⟩, ⟨a,b⟩, ⟨b,a⟩, ⟨b,b⟩, ⟨c,c⟩, ⟨c,d⟩, ⟨d,c⟩, ⟨d,d⟩ }, denotada más brevemente como a≈b,c≈d, es una relación de equivalencia en el conjunto {a,b,c,d} de estados del autómata A. Construir el cociente de A mediante esa relación da como resultado el autómata C en la tercera fila de la tabla; se define formalmente por

  • Σ C = {0,1},
  • S C = {a,c}, [ nota 3 ]
  • s C 0 = a,
  • δ C = { ⟨a,1,a⟩, ⟨a,0,c⟩, ⟨c,0,c⟩ }, y
  • S C f = { a,c }.

Reconoce el conjunto finito de todas las cadenas compuestas por un número arbitrario de 1s, seguidos de un número arbitrario de 0s, es decir { ε, 1, 10, 100, 1000, ..., 11, 110, 1100, 11000, ..., 111, ... }; este conjunto también puede denotarse mediante la expresión regular "1 * 0 * ". De manera informal, se puede pensar que C resulta de A al pegar el estado a sobre el estado b, y el estado c sobre el estado d.

La tabla muestra algunas relaciones de cociente más, como B = A / a≈b y D = C / a≈c .

Propiedades

  • Para cada autómata A y cada relación de equivalencia ≈ en su conjunto de estados, L ( A / ) es un superconjunto de (o igual a) L ( A ). [ 2 ] : 6
  • Dado un autómata finito A sobre algún alfabeto Σ , se puede definir una relación de equivalencia ≈ en Σ * mediante xy si ∀ z Σ * : xz L ( A )yzL ( A ). Por el teorema de Myhill-Nerode , A / es un autómata determinista que reconoce el mismo lenguaje que A. [ 1 ] : 65–66 Como consecuencia, el cociente de A por cada refinamiento de ≈ también reconoce el mismo lenguaje que A.

Véase también

Notas

  1. Hopcroft y Ullman (sección 2.3, pág .20) utilizan una definición ligeramente diferente de δ , a saber, como una función de S × Σ al conjunto potencia de S.
  2. En los diagramas de autómatas de la tabla, los símbolos del alfabeto de entrada y los nombres de los estados están coloreados en verde y rojo , respectivamente; los estados finales se dibujan como círculos dobles.
  3. Estrictamente formal, el conjunto es S C = { [a], [b], [c], [d] } = { [a], [c] }. Los corchetes de clase se omiten para mayor legibilidad.

Referencias

  1. 1 2 John E. Hopcroft ; Jeffrey D. Ullman (1979). Introducción a la teoría de autómatas, lenguajes y computación . Reading/MA: Addison-Wesley. ISBN 0-201-02988-X.
  2. ^ Tristan le Gall y Bertrand Jeannet (marzo de 2007) . Análisis de la comunicación de máquinas de estados infinitos utilizando autómatas de celosía (PDF) (Publicación interna). Institut de Recherche en Informatique et Systèmes Aléatoires (IRISA) Campus Universitaire de Beaulieu. ISSN 1166-8687 .