Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Similar documents
Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2017

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata and Regular Languages

Automata and Formal Languages - CM0081 Non-Deterministic Finite Automata

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata and Formal Languages TMV026/DIT321 LP4 2012

Lecture 1: Finite State Automaton

Extended transition function of a DFA

Finite Automata and Formal Languages TMV026/DIT321 LP Testing Equivalence of Regular Languages

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Finite Automata and Formal Languages

T (s, xa) = T (T (s, x), a). The language recognized by M, denoted L(M), is the set of strings accepted by M. That is,

Finite Automata Theory and Formal Languages TMV027/DIT321 LP Recap: Logic, Sets, Relations, Functions

CS 154. Finite Automata, Nondeterminism, Regular Expressions

CS 154, Lecture 2: Finite Automata, Closure Properties Nondeterminism,

Clarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.

Nondeterministic Finite Automata

CSC236 Week 11. Larry Zhang

Chapter Five: Nondeterministic Finite Automata

CS 208: Automata Theory and Logic

Formal Models in NLP

Introduction to Formal Languages, Automata and Computability p.1/51

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Nondeterministic Finite Automata

E.g. The set RE of regular expressions is given by the following rules:

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism

CS 455/555: Finite automata

CMSC 330: Organization of Programming Languages. Theory of Regular Expressions Finite Automata

Deterministic Finite Automata. Non deterministic finite automata. Non-Deterministic Finite Automata (NFA) Non-Deterministic Finite Automata (NFA)

Finite Automata Theory and Formal Languages TMV026/TMV027/DIT321 Responsible: Ana Bove

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

More on Finite Automata and Regular Languages. (NTU EE) Regular Languages Fall / 41

Finite Automata. Theorems - Unit I SUSAN ELIAS. Professor Department of Computer Science & Engineering Sri Venkateswara College of Engineering

Computational Models - Lecture 1 1

Subset construction. We have defined for a DFA L(A) = {x Σ ˆδ(q 0, x) F } and for A NFA. For any NFA A we can build a DFA A D such that L(A) = L(A D )

Computational Models #1

Nondeterministic finite automata

Equivalence of DFAs and NFAs

Fooling Sets and. Lecture 5

Languages. Non deterministic finite automata with ε transitions. First there was the DFA. Finite Automata. Non-Deterministic Finite Automata (NFA)

CMSC 330: Organization of Programming Languages

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

Computational Models - Lecture 5 1

Finite Automata. BİL405 - Automata Theory and Formal Languages 1

Finite Automata and Languages

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont )

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 35

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

Deterministic Finite Automata (DFAs)

Deterministic Finite Automata (DFAs)

COM364 Automata Theory Lecture Note 2 - Nondeterminism

September 7, Formal Definition of a Nondeterministic Finite Automaton

Theory of Computation

Outline. Nondetermistic Finite Automata. Transition diagrams. A finite automaton is a 5-tuple (Q, Σ,δ,q 0,F)

Recitation 2 - Non Deterministic Finite Automata (NFA) and Regular OctoberExpressions

CS 154 Introduction to Automata and Complexity Theory

CSE 105 Theory of Computation Professor Jeanne Ferrante

Nondeterministic Finite Automata

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Theory of computation: initial remarks (Chapter 11)

HKN CS/ECE 374 Midterm 1 Review. Nathan Bleier and Mahir Morshed

Intro to Theory of Computation

CSE 105 THEORY OF COMPUTATION

Theory of Computation (I) Yijia Chen Fudan University

CS21 Decidability and Tractability

CSC173 Workshop: 13 Sept. Notes

Takeaway Notes: Finite State Automata

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Advanced Automata Theory 2 Finite Automata

Regular Language Equivalence and DFA Minimization. Equivalence of Two Regular Languages DFA Minimization

Pushdown automata. Twan van Laarhoven. Institute for Computing and Information Sciences Intelligent Systems Radboud University Nijmegen

Lecture 3: Nondeterministic Finite Automata

Lecture Notes On THEORY OF COMPUTATION MODULE -1 UNIT - 2

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

Notes on Pumping Lemma

CSC236 Week 10. Larry Zhang

Automata Theory. Lecture on Discussion Course of CS120. Runzhe SJTU ACM CLASS

What we have done so far

CS5371 Theory of Computation. Lecture 7: Automata Theory V (CFG, CFL, CNF)

Parsing Regular Expressions and Regular Grammars

Theory of computation: initial remarks (Chapter 11)

Great Theoretical Ideas in Computer Science. Lecture 4: Deterministic Finite Automaton (DFA), Part 2

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 43

Inf2A: Converting from NFAs to DFAs and Closure Properties

Course 4 Finite Automata/Finite State Machines

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

Computational Models Lecture 2 1

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Finite Automata and Regular languages

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata.

Notes on Inductive Sets and Induction

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

(Refer Slide Time: 0:21)

Automata and Formal Languages - CM0081 Determinist Finite Automata

Deterministic Finite Automata (DFAs)

CSE 135: Introduction to Theory of Computation Equivalence of DFA and NFA

CSE 105 THEORY OF COMPUTATION

Solutions. CS 2800 Fall 2017 Final exam Friday, December 8. NetID: 1. Modular arithmetic [9 pts]

Transcription:

Finite Automata Theory and Formal Languages TMV27/DIT32 LP4 28 Lecture 5 Ana Bove March 26th 28 Recap: Inductive sets, (terminating) recursive functions, structural induction To define an inductive set S we state its basic elements and construct new elements in terms of already existing ones; To define a recursive function f over an inductively defined set S we define f on the basic elements and define f on the recursive elements in terms of the result of f for the structurally smaller ones; To prove a property P over an inductively defined set S we prove that P holds for the basic elements and assuming that P holds of certain elements in the set, prove that P holds for all ways of constructing new elements from existing ones; Using structural induction we prove properties over all (finite) elements in an inductive set; Mathematical/simple and course-of-values/strong induction, or mutual induction are special cases of structural induction. March 26th 28, Lecture 5 TMV27/DIT32 /29

Overview of Today s Lecture DFA: deterministic finite automata. Contributes to the following learning outcome: Explain and manipulate the different concepts in automata theory and formal languages; Understand the power and the limitations of regular languages and context-free languages; Design automata, regular expressions and context-free grammars accepting or generating a certain language; Describe the language accepted by an automata or generated by a regular expression or a context-free grammar; Determine if a certain word belongs to a language; Differentiate and manipulate formal descriptions of languages, automata and grammars. March 26th 28, Lecture 5 TMV27/DIT32 2/29 Deterministic Finite Automata We have already seen examples of DFA: kr p 5 kr q 5 kr r tea coffee tea What if we ask for coffee in q? tea coffee 5 kr, kr kr coffee X 5 kr, kr, tea, coffee Formally all non-drawn actions go to a dead state X in a DFA! We will usually not draw them. March 26th 28, Lecture 5 TMV27/DIT32 3/29

Deterministic Finite Automata: Formal Definition Definition: A deterministic finite automaton (DFA) is a 5-tuple (Q, Σ, δ, q, F ) consisting of: A finite set Q of states; 2 A finite set Σ of symbols (alphabet); 3 A total transition function δ : Q Σ Q; 4 A start state q Q; 5 A set F Q of final or accepting states. March 26th 28, Lecture 5 TMV27/DIT32 4/29 Example: DFA Let the DFA (Q, Σ, δ, q, F ) be given by: Q = {q, q, q 2 } Σ = {, } F = {q 2 } δ : Q Σ Q δ(q, ) = q δ(q, ) = q 2 δ(q 2, ) = q δ(q, ) = q δ(q, ) = q δ(q 2, ) = q 2 What does it do? March 26th 28, Lecture 5 TMV27/DIT32 5/29

How to Represent a DFA? Transition Diagram: Helps to understand how it works. q q q 2 Transition Table: The start state is indicated with. The final states are indicated with a double circle. δ q q q The start state is indicated with. q q 2 q q 2 q q 2 The final states are indicated with a. March 26th 28, Lecture 5 TMV27/DIT32 6/29 When Does a DFA Accept a Word? When reading the word the automaton moves according to δ. Definition: One starts reading the word from the start state of the automaton. If when the whole word is read the automaton is on a final state, then the automaton accepts the word. Example: q t q h q e 2 q n 3 q 4 t h e n q Only the word then is accepted. We have a (non-accepting) dead state q. March 26th 28, Lecture 5 TMV27/DIT32 7/29

Example: DFA Given Σ = {, }, we want an automaton accepting the words that contain as a subword, that is, the language L = {xy x, y Σ }. Solution: ({q, q, q 2, q 3 }, {, }, δ, q, {q 3 }) given by q q q 2 q 3, δ q q q q q q 2 q 2 q 3 q q 3 q 3 q 3 March 26th 28, Lecture 5 TMV27/DIT32 8/29 Extending the Transition Function to Strings How can we compute what happens when we read a certain word? Definition: We extend δ to strings as ˆδ : Q Σ Q. We define ˆδ(q, x) by recursion on x. ˆδ(q, ǫ) = q ˆδ(q, ax) = ˆδ(δ(q, a), x) Note: ˆδ(q, a) = δ(q, a) since the string a = aǫ. ˆδ(q, a) = ˆδ(q, aǫ) = ˆδ(δ(q, a), ǫ) = δ(q, a) Example: In the example of slide 8, what are ˆδ(q, ) and ˆδ(q, )? March 26th 28, Lecture 5 TMV27/DIT32 9/29

Reading the Concatenation of Two Words Proposition: For any words x and y, and for any state q we have that ˆδ(q, xy) = ˆδ(ˆδ(q, x), y). Proof: We prove P(x) = q. y. ˆδ(q, xy) = ˆδ(ˆδ(q, x), y) by (structural) induction on x. Base case: q. y. ˆδ(q, ǫy) = ˆδ(q, y) = ˆδ(ˆδ(q, ǫ), y). Inductive step: Our IH is that q. y. ˆδ(q, xy) = ˆδ(ˆδ(q, x), y) for a given word x. We should prove that q. y. ˆδ(q, (ax)y) = ˆδ(ˆδ(q, ax), y), for. For a given q and y we have that ˆδ(q, (ax)y) = ˆδ(q, a(xy)) by def of concat = ˆδ(δ(q, a), xy) by def of ˆδ = ˆδ(ˆδ(δ(q, a), x), y) by IH with state δ(q, a) = ˆδ(ˆδ(q, ax), y) by def of ˆδ March 26th 28, Lecture 5 TMV27/DIT32 /29 Another Definition of ˆδ Recall that we have 2 descriptions of words: a(b(c(dǫ))) = (((ǫa)b)c)d. We can define ˆδ as: ˆδ (q, ǫ) = q ˆδ (q, xa) = δ(ˆδ (q, x), a) Proposition: x. q. ˆδ(q, x) = ˆδ (q, x). Proof: We prove P(x) = q. ˆδ(q, x) = ˆδ (q, x) by (structural) induction on x. Observe that xa is a special case of xy where y = a. Base case is trivial. Inductive step: The IH is q. ˆδ(q, x) = ˆδ (q, x) for a given x. Then for ˆδ(q, xa) = ˆδ(ˆδ(q, x), a) by previous prop = δ(ˆδ(q, x), a) by def of ˆδ = δ(ˆδ (q, x), a) by IH = ˆδ (q, xa) by def of ˆδ March 26th 28, Lecture 5 TMV27/DIT32 /29

Language Accepted by a DFA Definition: The language accepted by the DFA (Q, Σ, δ, q, F ) is the set L = {x x Σ, ˆδ(q, x) F }. Example: In the example on slide 8, is accepted but is not. Note: We could write a program that simulates a DFA and let the program tell us whether a certain string is accepted or not! March 26th 28, Lecture 5 TMV27/DIT32 2/29 Functional Representation of a DFA Accepting xy data Q = Q Q Q2 Q3 data S = O I final :: Q -> Bool final Q3 = True final _ = False delta :: Q -> S -> Q delta Q O = Q delta Q I = Q delta Q O = Q delta Q I = Q2 delta Q2 O = Q3 delta Q2 I = Q delta Q3 _ = Q3 March 26th 28, Lecture 5 TMV27/DIT32 3/29

Functional Representation of a DFA Accepting xy delta_hat :: Q -> [S] -> Q delta_hat q [] = q delta_hat q (a:xs) = delta_hat (delta q a) xs accepts :: [S] -> Bool accepts xs = final (delta_hat Q xs) Alternatively, (just for those knowing Haskell :-) run :: Q -> [S] -> Q run = foldl delta accepts :: [S] -> Bool accepts = final. run Q March 26th 28, Lecture 5 TMV27/DIT32 4/29 Accepting by End of String We could use an automaton to identify properties of a certain string. What is important then is the state the automaton is in when we finish reading the input. The set of final states is actually of no interest here and can be omitted. Example: The following automaton determines whether a binary number is even or odd. even odd March 26th 28, Lecture 5 TMV27/DIT32 5/29

Product of Automata Given this automaton over {, } accepting strings with an even number of s: A B State A: even number of s State B: odd number of s and this automaton accepting strings with an odd number of s: C D State C: even number of s State D: odd number of s How can we use them to accept the strings with an even nr. of s and an odd nr. of s? We can run them in parallel! March 26th 28, Lecture 5 TMV27/DIT32 6/29 Example: Product of Automata AC BC AD BD State AC: even nr. of s and s State BC: odd nr. of s and even nr. of s State AD: even nr. of s and odd nr. of s State BD: odd nr. of s and s Which is(are) the final state(s)? AD! March 26th 28, Lecture 5 TMV27/DIT32 7/29

Product Construction Definition: Given two DFA D = (Q, Σ, δ, q, F ) and D 2 = (Q 2, Σ, δ 2, q 2, F 2 ) with the same alphabet Σ, we can define the product D = D D 2 = (Q, Σ, δ, q, F ) as follows: Q = Q Q 2 ; δ((r, r 2 ), a) = (δ (r, a), δ 2 (r 2, a)); q = (q, q 2 ); F = F F 2. Proposition: x Σ. r Q. r 2 Q 2. ˆδ((r, r 2 ), x) = (ˆδ (r, x), ˆδ 2 (r 2, x)). Proof: By (structural) induction on x. March 26th 28, Lecture 5 TMV27/DIT32 8/29 Example: Product of Automata Consider a system where users have three states: idle, requesting and using. Each user k is represented by a simple automaton: r k i k u k If we have only 2 users, how does the whole system look like? March 26th 28, Lecture 5 TMV27/DIT32 9/29

Example: Product of Automata (cont.) The complete system is represented by the product of these 2 automata and it has 3 * 3 = 9 states. i i 2 r i 2 u i 2 i r 2 r r 2 u r 2 i u 2 r u 2 u u 2 How will it look like with n users? March 26th 28, Lecture 5 TMV27/DIT32 2/29 Language Accepted by a Product Automaton Proposition: Given two DFA D and D 2, then L(D D 2 ) = L(D ) L(D 2 ). Proof: ˆδ(q, x) = ˆδ((q, q 2 ), x) = (ˆδ (q, x), ˆδ 2 (q 2, x)) F iff ˆδ (q, x) F and ˆδ 2 (q 2, x) F 2. That is, x L(D ) and x L(D 2 ) iff x L(D ) L(D 2 ). Note: It can be quite difficult to directly build an automaton accepting the intersection of two languages. Exercise: Build a DFA for the language that contains the subword abb twice and an even number of a s. March 26th 28, Lecture 5 TMV27/DIT32 2/29

Variation of the Product Definition: We define D D 2 similarly to D D 2 but with a different notion of accepting state: a state (r, r 2 ) is accepting iff r F or r 2 F 2 Proposition: Given two DFA D and D 2, then L(D D 2 ) = L(D ) L(D 2 ). Example: In the automaton in slide 7, which is(are) the final state(s) if we want the strings with an even number of s or an odd number of s? AC, AD and BD! March 26th 28, Lecture 5 TMV27/DIT32 22/29 Example: Variation of the Product Let us define an automaton accepting strings with lengths multiple of 2 or of 3. p p q q q 2 p q p q p q p q p q 2 p q 2 March 26th 28, Lecture 5 TMV27/DIT32 23/29

Complement Definition: Given the automaton D = (Q, Σ, δ, q, F ) we define the complement D of D as the automaton D = (Q, Σ, δ, q, Q F ). Proposition: Given a DFA D we have that L(D) = Σ L(D) = L(D). Example: We transform an automaton accepting strings containing into an automaton accepting strings NOT containing.,, q q q 2 = q q q 2 March 26th 28, Lecture 5 TMV27/DIT32 24/29 Accessible Part of a DFA Consider the DFA D = ({q,..., q 3 }, {, }, δ, q, {q }) given by q q q 2 q 3 Intuitively, this is equivalent to the DFA q q which is the accessible part of the D. q 2 and q 3 are not accessible from the start state and can be removed. March 26th 28, Lecture 5 TMV27/DIT32 25/29

Accessible States Definition: The set Acc = {ˆδ(q, x) x Σ } is the set of accessible states (from the state q ). Proposition: If D = (Q, Σ, δ, q, F ) is a DFA, then D = (Q Acc, Σ, δ Q Acc, q, F Acc) is a DFA such that L(D) = L(D ). Proof: Notice that D is well defined and that L(D ) L(D). If x L(D) then ˆδ(q, x) F. By definition ˆδ(q, x) Acc. Hence ˆδ(q, x) F Acc and then x L(D ). March 26th 28, Lecture 5 TMV27/DIT32 26/29 Regular Languages Recall: Given an alphabet Σ, a language L is a subset of Σ, that is, L Σ. Definition: A language L Σ is regular iff there exists a DFA D on the alphabet Σ such that L = L(D). Recall: Recall that a DFA can only remember a finite amount of things! Proposition: If L and L 2 are regular languages then so are L L 2, L L 2 and Σ L. Proof:... March 26th 28, Lecture 5 TMV27/DIT32 27/29

Overview of Next Lecture Sections 2.3 2.3.5, brief on 2.4: NFA: Non-deterministic finite automata; Equivalence between DFA and NFA. March 26th 28, Lecture 5 TMV27/DIT32 28/29 Overview of next Week Mon 9 Tue Wed Thu 2 Fri 2 Lec 3-5 HB3 NFA, FA NFA. Ex 5-7 EA DFA, NFA. Ex -2 EA DFA, NFA. 5-7 EL4 Consultation -2 EL4 Individual help Lec 3-5 HB3 NFA, ǫ-nfa. Assignment 2: DFA, NFA. Deadline: Sunday 5th April 23:59. March 26th 28, Lecture 5 TMV27/DIT32 29/29