Final Course Review. Reading: Chapters 1-9

Similar documents
Midterm I review. Reading: Chapters 1-4

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016

Ambiguous Grammars and Compactification

JNTUWORLD. Code No: R

Theory of Computation, Homework 3 Sample Solution

QUESTION BANK. Formal Languages and Automata Theory(10CS56)


Normal Forms for CFG s. Eliminating Useless Variables Removing Epsilon Removing Unit Productions Chomsky Normal Form

UNIT I PART A PART B

Closure Properties of CFLs; Introducing TMs. CS154 Chris Pollett Apr 9, 2007.

T.E. (Computer Engineering) (Semester I) Examination, 2013 THEORY OF COMPUTATION (2008 Course)

Multiple Choice Questions

CT32 COMPUTER NETWORKS DEC 2015

R10 SET a) Construct a DFA that accepts an identifier of a C programming language. b) Differentiate between NFA and DFA?

ECS 120 Lesson 16 Turing Machines, Pt. 2

Computer Sciences Department

Outline. Language Hierarchy

Theory of Programming Languages COMP360

(a) R=01[((10)*+111)*+0]*1 (b) ((01+10)*00)*. [8+8] 4. (a) Find the left most and right most derivations for the word abba in the grammar

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,,

Theory of Computation

DHANALAKSHMI SRINIVASAN INSTITUTE OF RESEARCH AND TECHNOLOGY SIRUVACHUR, PERAMBALUR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

CS5371 Theory of Computation. Lecture 8: Automata Theory VI (PDA, PDA = CFG)

Context-Free Languages & Grammars (CFLs & CFGs) Reading: Chapter 5

Theory of Computation Dr. Weiss Extra Practice Exam Solutions

MIT Specifying Languages with Regular Expressions and Context-Free Grammars. Martin Rinard Massachusetts Institute of Technology

Computation Engineering Applied Automata Theory and Logic. Ganesh Gopalakrishnan University of Utah. ^J Springer

Actually talking about Turing machines this time

MIT Specifying Languages with Regular Expressions and Context-Free Grammars

Skyup's Media. PART-B 2) Construct a Mealy machine which is equivalent to the Moore machine given in table.

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

1. [5 points each] True or False. If the question is currently open, write O or Open.

CS154 Midterm Examination. May 4, 2010, 2:15-3:30PM

(Refer Slide Time: 0:19)

CS402 - Theory of Automata Glossary By

Decision Properties for Context-free Languages

CS311 / MATH352 - AUTOMATA AND COMPLEXITY THEORY

QUESTION BANK. Unit 1. Introduction to Finite Automata

Midterm Exam II CIS 341: Foundations of Computer Science II Spring 2006, day section Prof. Marvin K. Nakayama

University of Nevada, Las Vegas Computer Science 456/656 Fall 2016

Theory of Computations Spring 2016 Practice Final Exam Solutions

CS21 Decidability and Tractability

Decidable Problems. We examine the problems for which there is an algorithm.

CS210 THEORY OF COMPUTATION QUESTION BANK PART -A UNIT- I

Theory of Computations Spring 2016 Practice Final

Theory Bridge Exam Example Questions Version of June 6, 2008

Name: CS 341 Practice Final Exam. 1 a 20 b 20 c 20 d 20 e 20 f 20 g Total 207

Last lecture CMSC330. This lecture. Finite Automata: States. Finite Automata. Implementing Regular Expressions. Languages. Regular expressions

CSE 105 THEORY OF COMPUTATION

Languages and Compilers

Derivations of a CFG. MACM 300 Formal Languages and Automata. Context-free Grammars. Derivations and parse trees

CS/B.Tech/CSE/IT/EVEN/SEM-4/CS-402/ ItIauIafIaAblll~AladUnrtel1ity

Languages and Automata

CSE 105 THEORY OF COMPUTATION

Context Free Grammars. CS154 Chris Pollett Mar 1, 2006.

1. (10 points) Draw the state diagram of the DFA that recognizes the language over Σ = {0, 1}

Introduction to Computers & Programming

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata. Dr. Nadeem Akhtar. Assistant Professor Department of Computer Science & IT The Islamia University of Bahawalpur

Regular Languages (14 points) Solution: Problem 1 (6 points) Minimize the following automaton M. Show that the resulting DFA is minimal.

A Characterization of the Chomsky Hierarchy by String Turing Machines

UNIT 1 SNS COLLEGE OF ENGINEERING

Learn Smart and Grow with world

3 rd Year - Computer Science and Engineering,

TAFL 1 (ECS-403) Unit- V. 5.1 Turing Machine. 5.2 TM as computer of Integer Function

CSC-461 Exam #2 April 16, 2014

CS Lecture 2. The Front End. Lecture 2 Lexical Analysis

Formal languages and computation models

HKN CS 374 Midterm 1 Review. Tim Klem Noah Mathes Mahir Morshed

Turing Machine Languages

I have read and understand all of the instructions below, and I will obey the Academic Honor Code.

CSE 105 THEORY OF COMPUTATION

Limits of Computation p.1/?? Limits of Computation p.2/??

From Theorem 8.5, page 223, we have that the intersection of a context-free language with a regular language is context-free. Therefore, the language

Models of Computation II: Grammars and Pushdown Automata

TOPIC PAGE NO. UNIT-I FINITE AUTOMATA

ONE-STACK AUTOMATA AS ACCEPTORS OF CONTEXT-FREE LANGUAGES *

Turing Machines. A transducer is a finite state machine (FST) whose output is a string and not just accept or reject.

Compilation 2012 Context-Free Languages Parsers and Scanners. Jan Midtgaard Michael I. Schwartzbach Aarhus University

Yet More CFLs; Turing Machines. CS154 Chris Pollett Mar 8, 2006.

Complexity Theory. Compiled By : Hari Prasad Pokhrel Page 1 of 20. ioenotes.edu.np

The Turing Machine. Unsolvable Problems. Undecidability. The Church-Turing Thesis (1936) Decision Problem. Decision Problems

Regular Languages and Regular Expressions

Problems, Languages, Machines, Computability, Complexity

CS 125 Section #10 Midterm 2 Review 11/5/14

CS 44 Exam #2 February 14, 2001

Reflection in the Chomsky Hierarchy

Specifying Syntax COMP360

CS143 Handout 20 Summer 2011 July 15 th, 2011 CS143 Practice Midterm and Solution

Definition 2.8: A CFG is in Chomsky normal form if every rule. only appear on the left-hand side, we allow the rule S ǫ.

AUTOMATA THEORY AND COMPUTABILITY

Answer All Questions. All Questions Carry Equal Marks. Time: 20 Min. Marks: 10.

Source of Slides: Introduction to Automata Theory, Languages, and Computation By John E. Hopcroft, Rajeev Motwani and Jeffrey D.

14.1 Encoding for different models of computation

Lecture 18: Turing Machines

CS402 - Theory of Automata FAQs By

DVA337 HT17 - LECTURE 4. Languages and regular expressions

Complementing Non-CFLs If A and B are context free languages then: AR is a context-free language TRUE

Enumerations and Turing Machines

Formal Languages and Compilers Lecture IV: Regular Languages and Finite. Finite Automata

Transcription:

Final Course Review Reading: Chapters 1-9 1

Objectives Introduce concepts in automata theory and theory of computation Identify different formal language classes and their relationships Design grammars and recognizers for different formal languages Prove or disprove theorems in automata theory using its properties Determine the decidability and intractability of computational problems 2

Main Topics Part 1) Regular Languages Part 2) Context-Free Languages Part 3) Turing Machines & Computability 3

The Chomsky hierarchy for formal languages Context sensitive Recursive Recursively Enumerable (RE) Non-RE Languages No TMs exist LBA TMs that always halt TMs that need not always halt Regular (DFA) Contextfree (PDA) Machines are what we allow them to be!! Undecidable problems 4

Implementer Low-level implementation Designer Rules & patterns User Specification Interplay between different computing components Problems Languages YOU Expressions, Grammars Machines (hardware, software) 5

Automata Theory & Modernday Applications Scientific Computing biological systems speech recognition modeling (CptS471) Algorithm Design & NP-Hardness (CptS350) Artificial Intelligence (CptS440) & Information Theory Automata Theory & Formal Languages Compiler Design & Programming Languages (CptS355) Computer Organization & Architecture (CptS260) Computation models serial vs. parallel (CptS411) DNA computing, Quantum computing 6

Final Exam May 3, 2017, Wednesday, 8:00am 10:00am In class Comprehensive: Everything covered in class until (& including) the closure properties for Recursive and Recursively Enumerable language classes. 7

Thank You & Good luck!! Course evaluations: (fill out from my.wsu) 8

Topic Reviews The following set of review slides are not meant to be comprehensive. So make sure you refer to them in conjunction with the midterm review slides, homeworks and most importantly, the original lecture slides! 9

Regular Languages Topics Simplest of all language classes Finite Automata NFA, DFA, -NFA Regular expressions Regular languages & properties Closure Minimization 10

Finite Automata Deterministic Finite Automata (DFA) The machine can exist in only one state at any given time Non-deterministic Finite Automata (NFA) The machine can exist in multiple states at the same time -NFA is an NFA that allows -transitions What are their differences? Conversion methods 11

Deterministic Finite Automata A DFA is defined by the 5-tuple: {Q,, q 0,F, δ } Two ways to represent: State-diagram State-transition table DFA construction checklist: States & their meanings Capture all possible combinations/input scenarios break into cases & subcases wherever possible) Are outgoing transitions defined for every symbol from every state? Are final/accepting states marked? Possibly, dead-states will have to be included 12

Non-deterministic Finite Automata A NFA is defined by the 5-tuple: {Q,, q 0,F, δ } Two ways to represent: State-diagram State-transition table NFA construction checklist: Introduce states only as needed Capture only valid combinations Ignore invalid input symbol transitions (allow that path to die) Outgoing transitions defined only for valid symbols from every state Are final/accepting states marked? 13

NFA to DFA conversion Checklist for NFA to DFA conversion Two approaches: Enumerate all possible subsets, or Use lazy construction strategy (to save time) Introduce subset states only as needed Any subset containing an accepting state is also accepting in the DFA Have you made a special entry for Φ, the empty subset? This will correspond to dead state 14

-NFA to DFA conversion Checklist for -NFA to DFA conversion First take ECLOSE(start state) New start state = ECLOSE(start state) Remember: ECLOSE(q) include q Same two approaches as NFA to DFA: Enumerate all possible subsets, or Use lazy construction strategy (to save time) Introduce subset states only as needed Only difference: take ECLOSE both before & after transitions The subset Φ corresponds to a dead state 15

Regular Expressions A way to express accepting patterns Operators for Reg. Exp. (E), L(E+F), L(EF), L(E * ).. Reg. Language Reg. Exp. (checklist): Capture all cases of valid input strings Express each case by a reg. exp. Combine all of them using the + operator Pay attention to operator precedence 16

Regular Expressions DFA to Regular expression Enumerate all paths from start to every final state Generate regular expression for each segment, and concatenate Combine the reg. exp. for all each path using the + operator Reg. Expression to -NFA conversion Inside-to-outside construction Start making states for every atomic unit of RE Combine using: concatenation, + and * operators as appropriate For connecting adjacent parts, use -jumps Remember to note down final states 17

Regular Expressions Algebraic laws Commutative Associative Distributive Identity Annihiliator Idempotent Involving Kleene closures (* operator) 18

English description of lang. For finite automata For Regular expressions When asked for English language descriptions : Always give the description of the underlying language that is accepted by that machine or expression (and not of the machine or expression) 19

Pumping Lemma Purpose: Regular or not? Verification technique Steps/Checklist for Pumping Lemma: Let n pumping lemma constant Then construct input w which has n or more characters Now w=xyz should satisfy P/L Check all three conditions Then use one of these 2 strategies to arrive at contradiction for some other string constructed from w: Pump up (k >= 2) Pump down (k=0) 20

Reg. Lang. Properties Closed under: Union Intersection Complementation Set difference Reversal Homomorphism & inverse homomorphism Look at all DFA/NFA constructions for the above 21

Other Reg. Lang. Properties Membership question Emptiness test Reachability test Finiteness test Remove states that are: Unreachable, or cannot lead to accepting Check for cycle in left-over graph Or the reg. expression approach 22

DFA minimization Steps: Remove unreachable states first Detect equivalent states Table-filing algorithm (checklist): First, mark X for accept vs. non-accepting Pass 1: Then mark X where you can distinguish by just using one symbol transition Also mark = whenever states are equivalent. Pass 2: Distinguish using already distinguished states (one symbol) Pass 3: Repeat for 2 symbols (on the state pairs left undistinguished) Terminate when all entries have been filled Finally modify the state diagram by keeping one representative state for every equivalent class 23

Other properties Are 2 DFAs equivalent? Application of table filling algo 24

CFL Topics CFGs PDAs CFLs & pumping lemma CFG simplification & normal forms CFL properties 25

CFGs G=(V,T,P,S) Derivation, recursive inference, parse trees Their equivalence Leftmost & rightmost derivation Their equivalence Generate from parse tree Regular languages vs. CFLs Right-linear grammars 26

CFGs Designing CFGs Techniques that can help: Making your own start symbol for combining grammars Eg., S => S 1 S 2 (or) S => S 1 S 2 Matching symbols: (e.g., S => a S a ) Replicating structures side by side: (e.g., S => a S b S ) Use variables for specific purposes (e.g., specific sub-cases) To go to an acceptance from a variable ==> end the recursive substitution by making it generate terminals directly A => w Conversely, to not go to acceptance from a variable, have productions that lead to other variables Proof of correctness Use induction on the string length 27

CFGs Ambiguity of CFGs One string <==> more than one parse tree Finding one example is sufficient Converting ambiguous CFGs to nonambiguous CFGs Not always possible If possible, uses ambiguity resolving techniques (e.g., precedence) Ambiguity of CFL It is not possible to build even a single unambiguous CFG 28

There can be only 1 stack top symbol There can be many symbols for the replacement PDAs PDA ==> -NFA + a stack P = ( Q,,, δ,q 0,Z 0,F ) δ(q,a,x) = {(p,y), } ID : (q, aw, XB ) --- (p,w,ab) State diagram way to show the design of PDAs Current state Next input symbol Current Stack top Stack Top Replacement (w/ string Y) q i a, X / Y q j Next state 29

Designing PDAs Techniques that can help: Two types of PDAs Acceptance by empty stack If no more input and stack becomes empty Acceptance by final state If no more input and end in final state Convert one form to another Assign state for specific purposes Pushing & popping stack symbols for matching Convert CFG to PDA Introducing new stack symbols may help Take advantage of non-determinism 30

CFG Simplification 1. Eliminate -productions: A => ==> substitute for A (with & without) Find nullable symbols first and substitute next 2. Eliminate unit productions: A=> B ==> substitute for B directly in A Find unit pairs and then go production by production 3. Eliminate useless symbols Retain only reachable and generating symbols Order is important : steps (1) => (2) => (3) 31

Chomsky Normal Form All productions of the form: A => BC or A=> a Grammar does not contain: Useless symbols, unit and -productions Converting CFG (without S=>* ) into CNF Introduce new variables that collectively represent a sequence of other variables & terminals New variables for each terminal CNF ==> Parse tree size If the length of the longest path in the parse tree is n, then w 2 n-1. 32

Pumping Lemma for CFLs Then there exists a constant N, s.t., if z is any string in L s.t. z N, then we can write z=uvwxy, subject to the following conditions: 1. vwx N 2. vx 3. For all k 0, uv k wx k y is in L 33

Using Pumping Lemmas for CFLs Steps: 1. Let N be the P/L constant 2. Pick a word z in the language s.t. z N (choice critical - an arbitrary choice may not work) 3. z=uvwxy 4. First, argue that because of conditions (1) & (2), the portions covered by vwx on the main string z will have to satisfy some properties 5. Next, argue that by pumping up or down you will get a new string from z that is not in L 34

Closure Properties for CFL CFLs are closed under: Union Concatenation Kleene closure operator Substitution Homomorphism, inverse homomorphism CFLs are not closed under: Intersection Difference Complementation 35

Closure Properties Watch out for custom-defined operators Eg.. Prefix(L), or L x M Custom-defined symbols Other than the standard 0,1,a,b,c.. E.g, #, c,.. 36

The Basic Turing Machine (TM) M = (Q,,,, q 0,B,F) Finite control Infinite tape with tape symbols Tape head B B B X 1 X 2 X 3 X i X n B B B: end tape symbol (special) Input & output tape symbols 37

Turing Machines & Variations Basic TM TM w/ storage Multi-track TM Multi-tape TM Non-deterministic TM 38

Unless otherwise stated, it is OK to give TM design in the pseudocode format TM design Use any variant feature that may simplify your design Storage - to remember last important symbol seen A new track - to mark (without disturbing the input) A new tape - to have flexibility in independent head motion in different directions Acceptance only by final state No need to show dead states Use -transitions if needed Invent your own tape symbols as needed 39

Recursive, RE, non-re Recursive Language TMs that always halt Recursively Enumerable TMs that always halt only on acceptance Non-RE No TMs exist that are guaranteed to halt even on accept Need to know the conceptual differences among the above language classes Expect objective and/or true/false questions 40

Recursive Closure Properties Closed under: Complementation, union, intersection, concatenation (discussed in class) Kleene Closure, Homomorphism (not discussed in class but think of extending) 41

Tips to show closure properties on Recursive & RE languages Build a new machine that wraps around the TM for the input language(s) For Recursive languages: The old TM is always going to halt (w/ accept or reject) => So will the new TM For Recursively Enumerable languages: The old TM is guaranteed to halt only on acceptance => So will the new TM You need to define the input and output transformations (f i and f o ) w w New TM f i w New TM w f i TM TM accept reject accept f o f o accept reject accept 42