Presentation is loading. Please wait.

Presentation is loading. Please wait.

Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein.

Similar presentations


Presentation on theme: "Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein."— Presentation transcript:

1 Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein

2 Rina Zviel-Girshin @ASC2 Overview Models and limitations Examples Nondeterministic PDA Examples Equivalence of PDA’s models

3 Rina Zviel-Girshin @ASC3 Finite automata A finite automaton has a huge limitation. It can count only by changing states. So the highest number FA can remember is not more than number of it's states. This limitation confined the class of languages that FA can recognize to a rather small category - that of regular languages.

4 Rina Zviel-Girshin @ASC4 Turing machine Infinite memory can allow us recognition of larger class of languages. If we put no constrains on the use of this memory, i.e. the automaton can read and write in any location in the memory, then we have the most potent automaton - Turing machine.

5 Rina Zviel-Girshin @ASC5 Power of TM We claim that Turing machine (TM) can perform any computation the most powerful computer can.

6 Rina Zviel-Girshin @ASC6 The stack model If we add to FA an unlimited memory but limit the use of it we get a machine which is stronger than FA but less powerful than TM. Our limitation - the memory will be a stack. We can read/write only at the top of the stack, obliterating the previous content.

7 Rina Zviel-Girshin @ASC7 The stack model (cont.) We still have states to remember the previous contents (if we wish to do so). But as the number of states is finite we can remember only finite contents while our stack is infinite.

8 Rina Zviel-Girshin @ASC8 Pushdown automata Informally a pushdown automata (PDA) is a FA+stack. To remember or to count we write to the stack and read afterwards when we need the information.

9 Rina Zviel-Girshin @ASC9 Example For example the following language can be recognized by PDA but not FA. L = {a i b i | i>0} The basic idea of recognition: remembering a's by pushing it to the stack comparing the number of b's to the number of a's by popping one a for each b.

10 Rina Zviel-Girshin @ASC10 Example (cont.) If the stack was emptied before the end of input - we had more b's than a's. If the stack was not emptied at the end of input - we had more a's than b's. The automaton will accept a word if at exactly the end of input the stack is emptied for the first time.

11 Rina Zviel-Girshin @ASC11 Example (cont.) It gets stuck and rejects the word if the two events - –end of input and –the first time stack becomes empty - are not simultaneous.

12 Rina Zviel-Girshin @ASC12 Acceptance by PDA There are several models of PDA with different acceptance policies. All are equivalent. –acceptance by an empty stack –acceptance using accepting states –acceptance by an empty stack and accepting states

13 Rina Zviel-Girshin @ASC13 Acceptance by an empty stack The automaton will accept a word if exactly at the end of input the stack is emptied for the first time. All states are the same, there are no accepting states.

14 Rina Zviel-Girshin @ASC14 Acceptance using accepting states The automaton will accept a word if at exactly the end of input the automaton is in accepting state. Whether the stack is empty or not at that time has no relevance.

15 Rina Zviel-Girshin @ASC15 Acceptance by an empty stack and accepting states The automaton will accept a word if three events happen simultaneously: –the end of input –the stack is emptied for the first time –automaton is in accepting state.

16 Rina Zviel-Girshin @ASC16 Transition function in PDA There are two differences between the transition functions of PDA and FA. In PDA we move using –A state, –A letter of input and –A letter of stack The transition function output is a state and a letter or string to be written into the stack.

17 Rina Zviel-Girshin @ASC17 Formal definition of PDA A pushdown automaton is a 6-tuple (Q, , , , q0, F) where: Q – a finite set of states  - a finite input alphabet  - a finite stack alphabet  : Q  (  U  )    P(Q   *) q0  Q the start state F – a finite set of accepting states.

18 Rina Zviel-Girshin @ASC18 The possible stack transformations Consider different possibilities of transition function:  (q, ,X) = (q', Y) where  (q - current state,  - input letter, X - top of the stack) = (q' - next state, Y - string to write into the stack)

19 Rina Zviel-Girshin @ASC19 Popping the stack Popping the stack:  (q, ,X) = (q',  ) write an empty word to the stack, i.e. deleting the X at the top of the stack and moving the top pointer one cell down.

20 Rina Zviel-Girshin @ASC20 No change No change:  (q, ,X) = (q', X) write the same letter to the stack, i.e. not changing the X at the top of the stack and not moving the top pointer

21 Rina Zviel-Girshin @ASC21 Add to the stack Add to the stack:  (q, ,X) = (q', W 1..W n X) write the same letter to the stack and above it write a string, i.e. not changing the X at the top of the stack, but adding any number of letters above in the same one transition and moving the top pointer as needed

22 Rina Zviel-Girshin @ASC22 Change the stack Change the stack:  (q, ,X) = (q', W 1..W n ) delete the letter X in the stack and instead write a string, i.e. changing the X at the top of the stack into any number of letters above in the same one transition and moving the top pointer as needed

23 Rina Zviel-Girshin @ASC23 Bottom of the stack symbol The acceptance model we will use will be by emptying the stack. In this model of acceptance the PDA is stuck immediately if the stack is empty. Therefore the PDA can't start with an empty stack.

24 Rina Zviel-Girshin @ASC24 Bottom of the stack symbol Therefore we will assume that at the commencement of the computation, the stack already includes one symbol - a special "bottom of the stack symbol". There are many possible notations for the symbol, such as $, ┤. We will use the letter Z for the "bottom of the stack symbol".

25 Rina Zviel-Girshin @ASC25 Example Construct a PDA to recognize: L = {a i b i | i>0} We will use the empty stack model.

26 Rina Zviel-Girshin @ASC26 Example Construct a PDA to recognize: L = {wcw R |w  {a,b}*} We will use the empty stack model.

27 Rina Zviel-Girshin @ASC27 Example L = {a i b j | i >0 and j=i+5} Construct a PDA to recognize: We will use the empty stack model.

28 Rina Zviel-Girshin @ASC28 Deterministic PDA A PDA is called deterministic if”f it holds the following two conditions: for each q  Q, a  {  } and X  –|  (q,a,X)|  1 for each q  Q and X  –if  (q, ,X)  –then for each   (q, ,X)= 

29 Rina Zviel-Girshin @ASC29 Deterministic PDA Informally A PDA is called non-deterministic if there exist at least two transitions from the current state q and stack top X: –one with  (  -transition) and –another with .

30 Rina Zviel-Girshin @ASC30 Example of ND PDA Construct a PDA to recognize: L = {ww R |w  {a,b}*} We will use the empty stack model

31 Rina Zviel-Girshin @ASC31 Example of ND PDA Construct a PDA to recognize: L = {a i b j c i+j | i,j  0} We will use the empty stack model. The basic idea: push a’s and b’s to the stack and than pop the stack top symbol for each c letter.

32 Rina Zviel-Girshin @ASC32 L = {a i b j c i+j | i,j  0}

33 Rina Zviel-Girshin @ASC33 Example Construct a PDA to recognize: L = {a i b j | i,j>0} We will use a finite state model.

34 Rina Zviel-Girshin @ASC34 Equivalent form of acceptance The empty stack PDA equivalent to the final state PDA The basic idea: We will use the empty stack PDA model during the computation and on the last stage we will produce  -transition to the final state.

35 Rina Zviel-Girshin @ASC35 Algorithm Given PDA=(Q, , , , q0, ∅ ) Convert it to FS PDA=(QU{s,f}, ,  U{Y}, , s, F={f}) 1.Create a new start state s and a new final state f. 2.Create a new bottom of the stack symbol: Y.

36 Rina Zviel-Girshin @ASC36 Algorithm(cont.) 3.Connect a new start state s to the old start state q0 by an edge labeled ,Y; ZY that means  (s, ,Y)=(q0,ZY) 4.Connect each state of the PDA to the new final state f and label the edges with the expression ,Y; Y.

37 Rina Zviel-Girshin @ASC37 L={a} Given an empty stack automaton: Construct an equivalent final-state automaton.

38 Rina Zviel-Girshin @ASC38 L={a} The resulting finite-state automaton:

39 Rina Zviel-Girshin @ASC39 Equivalent form of acceptance The final-state PDA is equivalent to the empty stack PDA The basic idea: We will use a finite state PDA model during the computation and on the last stage we will produce  -transition to empty the stack state - by popping everything from the stack.

40 Rina Zviel-Girshin @ASC40 Algorithm Given PDA=(Q, , , , q0, F) Convert it to ESPDA=(QU{s,f}, ,  U{Y}, , s, ∅ ) 1. Create a new start state s and a new “empty state” f. 2. Create a new bottom of the stack symbol: Y.

41 Rina Zviel-Girshin @ASC41 Algorithm(cont.) 3. Connect a new start state s to the old start state q0 by an edge labeled ,Y; ZY that means  (s, ,Y)=(q0,ZY) 4. Connect each final state of the PDA to the new empty state f and label the edges with the expression ,A;  where A means any symbol of the stack, including Z and Y. 5. Add new edges from f to f labeled as in step 4:  (f, ,A)=(f,  ) for every A in .

42 Rina Zviel-Girshin @ASC42 L={a} Given a finite-state automaton: Construct an equivalent empty stack automaton.

43 Rina Zviel-Girshin @ASC43 L={a} The resulting automaton:

44 Rina Zviel-Girshin @ASC44 Any Questions?


Download ppt "Complexity and Computability Theory I Lecture #11 Instructor: Rina Zviel-Girshin Lea Epstein."

Similar presentations


Ads by Google