Requisito previo: autómatas pushdown , aceptación de autómatas pushdown por estado final
Problema: diseñar un PDA no determinista para aceptar el lenguaje L = {
| m + n = p + q : m, n, p, q>=1}, es decir,
L = {abcd, abbcdd, abbccd, abbbccdd, ......}
En cada string, el número total de ‘a’ y ‘b’ es igual al número total de ‘c’ y ‘d’.
Explicación –
Aquí, necesitamos mantener el orden de ‘a’, ‘b’, ‘c’ y ‘d’. Por lo tanto, necesitamos una pila junto con el diagrama de estado. La pila mantiene el recuento de ‘a’, ‘b’, ‘c’ y ‘d’. Tomaremos 2 alfabetos de pila:
= { 1, z }
Donde, = conjunto de todo el alfabeto de pila
z = símbolo de inicio de pila
Enfoque utilizado en la construcción de PDA:
como queremos diseñar un NPDA, cada vez que ‘a’, ‘b’, ‘c’ y ‘d’ aparecerán en el orden correcto. Cuando aparezcan ‘a’ y ‘b’, empujaremos ‘1’ a la pila. Después de eso, cuando aparezcan ‘c’ y ‘d’, saque ‘1’ de la pila cada vez. Entonces, al final, si la pila se vacía, podemos decir que la PDA acepta la string.
Funciones de transición de pila –
(q0, a, z)
(q0, 1z)
(q0, a, 1)
(q0, 11)
(q0, b, 1)
(q1, 11)
(q1, b, 1)
(q1, 11)
(q1, c, 1)
(q2,
)
(q2, c, 1)
(q2,
)
(q2, d, 1)
(q3,
)
(q3, d, 1)
(q3,
)
(q3,
, z)
(qf, z)
Donde, q0 = Estado inicial
qf = Estado final = indica operación emergente
Entonces, este es nuestro PDA no determinista requerido para aceptar el lenguaje L = {
| metro + norte = pag + q ; m, n, p, q>=1}.
Publicación traducida automáticamente
Artículo escrito por SUDIPTADANDAPAT y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA