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 n ∈ S tales que ⟨ s i -1 , a i , s i ⟩ ∈ δ para i =1,..., n , y s n ∈ S 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 x ≈ y si ∀ z ∈ Σ * : xz ∈ L ( A ) ↔ yz ∈ L ( 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
- ↑ 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.
- ↑ 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.
- ↑ Estrictamente formal, el conjunto es S C = { [a], [b], [c], [d] } = { [a], [c] }. Los corchetes de clase se omiten para mayor legibilidad.
Referencias
- 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.
- ^ 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 .
- Máquinas de estados finitos