2015-12-03 6 views
0

J'ai une question qui dit:Je me demandais si la solution pushdown automata est correcte

Construire un PDA qui accepte le langage {a^i b^j | 0 < = i < = j}

et c'est la solution donnée:

δ (q0, a, z) = (q0, az) read a, push a 
    δ (q0, a, a) = (q0, aa) 
    δ (q0, b, a) = (q1, λ) read b, pop a 
    δ (q1, b, a) = (q1, λ) 
    δ (q1, λ, z) = (qf, z) end of string, stack empty 
    δ (q1, b, z) = (q1, z) check the additional b’s 

mais à ma compréhension d'une chaîne d'entrée possible commencerait par b, car je pourrais être 0 et^i pourrait être 1, alors que j pourrait être 1 et b^j pourrait être b, cela ne signifierait-il pas qu'il devrait y avoir une ligne qui indique:

δ (q0, b, z) = (q1, z)?

ou est-ce que je ne comprends pas quelque chose?

Répondre

0

Oui, vous avez raison.

En fait, le PDA ci-dessus accepte {a^i b^j | 1 < = i < = j}