πŸŽ“ Computer Science & Engineering Portal

Master Engineering Disciplines with Structured Notes

Comprehensive academic lecture notes, exam-oriented unit summaries, laboratory manuals, and previous year question papers designed strictly for university students.

πŸ“‘

University Syllabi

AKTU & AICTE aligned semester guidelines.

πŸ“

Exam Question Papers

Previous 5 years solved university papers.

πŸ’‘

Lab Manuals & Viva

Practical codes with outputs & interview Qs.

Core Subjects & Units Hub

Click on any specific unit to immediately view its lecture notes below

Viewing All Lectures

PDA Acceptance

PDA Acceptance

A language can be accepted by Pushdown automata using two approaches:

1. Acceptance by Final State: The PDA is said to accept its input by the final state if it enters any final state in zero or more moves after reading the entire input.

Let P =(Q, βˆ‘, Ξ“, Ξ΄, q0, Z, F) be a PDA. The language acceptable by the final state can be defined as:

L(PDA) = {w | (q0, w, Z) βŠ’* (p, Ξ΅, Ξ΅), q βˆˆ F} 

2. Acceptance by Empty Stack: On reading the input string from the initial configuration for some PDA, the stack of PDA gets empty.

Let P =(Q, βˆ‘, Ξ“, Ξ΄, q0, Z, F) be a PDA. The language acceptable by empty stack can be defined as:

N(PDA) = {w | (q0, w, Z) βŠ’* (p, Ξ΅, Ξ΅), q βˆˆ Q}  

Equivalence of Acceptance by Final State and Empty Stack

  • If L = N(P1) for some PDA P1, then there is a PDA P2 such that L = L(P2). That means the language accepted by empty stack PDA will also be accepted by final state PDA.
  • If there is a language L = L (P1) for some PDA P1 then there is a PDA P2 such that L = N(P2). That means language accepted by final state PDA is also acceptable by empty stack PDA.

Example:

Construct a PDA that accepts the language L over {0, 1} by empty stack which accepts all the string of 0's and 1's in which a number of 0's are twice of number of 1's.

Solution:

There are two parts for designing this PDA:

  • If 1 comes before any 0's
  • If 0 comes before any 1's.

We are going to design the first part i.e. 1 comes before 0's. The logic is that read single 1 and push two 1's onto the stack. Thereafter on reading two 0's, POP two 1's from the stack. The Ξ΄ can be

Ξ΄(q0, 1, Z) = (q0, 11, Z)        Here Z represents that stack is empty  

Ξ΄(q0, 0, 1) = (q0, Ξ΅)  

Now, consider the second part i.e. if 0 comes before 1's. The logic is that read first 0, push it onto the stack and change state from q0 to q1. [Note that state q1 indicates that first 0 is read and still second 0 has yet to read].

Being in q1, if 1 is encountered then POP 0. Being in q1, if 0 is read then simply read that second 0 and move ahead. The Ξ΄ will be:

Ξ΄(q0, 0, Z) = (q1, 0Z)  

 Ξ΄(q1, 0, 0) = (q1, 0)  

Ξ΄(q1, 0, Z) = (q0, Ξ΅)        (indicate that one 0 and one 1 is already read, so simply read the second 0)  

Ξ΄(q1, 1, 0) =     (q1, Ξ΅)  

Now, summarize the complete PDA for given L is:

Ξ΄(q0, 1, Z) = (q0, 11Z)  

Ξ΄(q0, 0, 1) = (q1, Ξ΅)  

Ξ΄(q0, 0, Z) = (q1, 0Z)  

Ξ΄(q1, 0, 0) = (q1, 0)  

Ξ΄(q1, 0, Z) = (q0, Ξ΅)  

Ξ΄(q0, Ξ΅, Z) = (q0, Ξ΅)      ACCEPT state  


Labels: ,

Discussion & Queries (<$I18NNumComments$>):

<$CommentPager$>
<$I18NAtCommentTimeWithPermalink$>, <$I18NCommentAuthorSaid$>

<$BlogCommentBody$>

<$BlogCommentDeleteIcon$>
<$CommentPager$>