NPDA por aceptar el lenguaje L = {anbm | n,m ≥ 1 y n ≠ m}

Requisito previo: autómatas pushdown , aceptación de autómatas pushdown por estado final

Problema: diseñe un PDA no determinista para aceptar el lenguaje L = \{a^nb^m |  n, m \geq 1 \text{y n!=m}\}, es decir,

L = {aab, abb, aaab, abbb, aaaab, aaabb, aabbb, abbbb ......} 

En cada una de las strings, el número de a es seguido por un número desigual de b.

Explicación –
Aquí, necesitamos mantener el orden de a y b. Es decir, todas las a vienen primero y luego todas las b. Por lo tanto, necesitamos una pila junto con el diagrama de estado. La pila mantiene el recuento de a y b. Tomaremos 2 alfabetos de pila:

\Gamma = { a, z }

Dónde,

\Gamma = set of all the stack alphabet
z = stack start symbol

Enfoque utilizado en la construcción de PDA:
como queremos diseñar un NPDA, cada vez que ‘a’ viene antes de ‘b’. Cuando aparezca ‘a’, empújelo en la pila y si vuelve a aparecer ‘a’, también empújelo. Después de eso, cuando aparezca la ‘b’, saque una ‘a’ de la pila cada vez. Entonces, al final, si la pila se vacía y b está llegando o la string finaliza y la pila no está vacía, entonces podemos decir que la PDA acepta la string.

Funciones de transición de pila –

\delta(q0, a, z) \vdash (q0, az)
\delta(q0, a, a) \vdash (q0, aa)
\delta(q0, b, a) \vdash (q1, \epsilon )
\delta(q1, b, a) \vdash (q1, \epsilon )
\delta(q1, \epsilon, a) \vdash (qf, a)   
\delta(q1, b, z) \vdash (qf, z)   

Donde, q0 = Estado inicial
qf = Estado final
\epsilon= indica operación pop

Diagrama de transición de estado –

Entonces, este es nuestro PDA no determinista requerido para aceptar el lenguaje L = \{a^nb^m |  n, m \geq 1 \text{y n!=m}\}.

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *