1 / 44

Complexity and Computability Theory I

Explore finite automata, Turing machines, pushdown automata, and their limitations in recognizing various languages. Discover acceptance criteria and transition functions in computational models. Join Rina Zviel-Girshin for an in-depth lecture on complexity and computability theory.

Download Presentation

Complexity and Computability Theory I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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. Rina Zviel-Girshin @ASC

  4. 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. Rina Zviel-Girshin @ASC

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

  6. 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. Rina Zviel-Girshin @ASC

  7. 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. Rina Zviel-Girshin @ASC

  8. 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. Rina Zviel-Girshin @ASC

  9. Example • For example the following language can be recognized by PDA but not FA. L = {aibi | 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. Rina Zviel-Girshin @ASC

  10. 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. Rina Zviel-Girshin @ASC

  11. 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. Rina Zviel-Girshin @ASC

  12. 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 Rina Zviel-Girshin @ASC

  13. 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. Rina Zviel-Girshin @ASC

  14. 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. Rina Zviel-Girshin @ASC

  15. 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. Rina Zviel-Girshin @ASC

  16. 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. Rina Zviel-Girshin @ASC

  17. 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. Rina Zviel-Girshin @ASC

  18. 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) Rina Zviel-Girshin @ASC

  19. 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. Rina Zviel-Girshin @ASC

  20. 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 Rina Zviel-Girshin @ASC

  21. Add to the stack • Add to the stack: • (q,,X) = (q', W1..WnX) • 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 Rina Zviel-Girshin @ASC

  22. Change the stack • Change the stack: • (q,,X) = (q', W1..Wn) • 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 Rina Zviel-Girshin @ASC

  23. 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. Rina Zviel-Girshin @ASC

  24. 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". Rina Zviel-Girshin @ASC

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

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

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

  28. 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)= Rina Zviel-Girshin @ASC

  29. 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 . Rina Zviel-Girshin @ASC

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

  31. Example of ND PDA • Construct a PDA to recognize: L = {aibjci+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. Rina Zviel-Girshin @ASC

  32. L = {aibjci+j | i,j0} Rina Zviel-Girshin @ASC

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

  34. 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. Rina Zviel-Girshin @ASC

  35. 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. Rina Zviel-Girshin @ASC

  36. 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. Rina Zviel-Girshin @ASC

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

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

  39. 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. Rina Zviel-Girshin @ASC

  40. 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. Rina Zviel-Girshin @ASC

  41. 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 . Rina Zviel-Girshin @ASC

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

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

  44. Any Questions? Rina Zviel-Girshin @ASC

More Related