Nondeterministic Finite Automata

Similar documents
Chapter Five: Nondeterministic Finite Automata

Chapter 6: NFA Applications

Chapter Two: Finite Automata

Theory of Computation (I) Yijia Chen Fudan University

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

Lecture 3: Nondeterministic Finite Automata

COM364 Automata Theory Lecture Note 2 - Nondeterminism

Lecture 4 Nondeterministic Finite Accepters

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Closure under the Regular Operations

Automata and Languages

Nondeterministic Finite Automata. Nondeterminism Subset Construction

Inf2A: Converting from NFAs to DFAs and Closure Properties

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

CS 154. Finite Automata, Nondeterminism, Regular Expressions

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,

CS21 Decidability and Tractability

CS 455/555: Finite automata

Fooling Sets and. Lecture 5

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

September 11, Second Part of Regular Expressions Equivalence with Finite Aut

Theory of Computation (II) Yijia Chen Fudan University

Automata and Formal Languages - CM0081 Non-Deterministic Finite Automata

Theory of Languages and Automata

Chap. 1.2 NonDeterministic Finite Automata (NFA)

Intro to Theory of Computation

Nondeterministic Finite Automata

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

Nondeterministic finite automata

Lecture 1: Finite State Automaton

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

Finite Automata. Seungjin Choi

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

CS 154, Lecture 3: DFA NFA, Regular Expressions

UNIT-II. NONDETERMINISTIC FINITE AUTOMATA WITH ε TRANSITIONS: SIGNIFICANCE. Use of ε-transitions. s t a r t. ε r. e g u l a r

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

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

CSE 105 THEORY OF COMPUTATION

CPS 220 Theory of Computation REGULAR LANGUAGES

Nondeterminism and Epsilon Transitions

Theory of Computation p.1/?? Theory of Computation p.2/?? Unknown: Implicitly a Boolean variable: true if a word is

CS243, Logic and Computation Nondeterministic finite automata

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CMSC 330: Organization of Programming Languages

CSE 105 Theory of Computation Professor Jeanne Ferrante

Decision, Computation and Language

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

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

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

Nondeterminism. September 7, Nondeterminism

Finite Automata. Finite Automata

Computer Sciences Department

Finite Automata and Regular languages

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata

Chapter Five: Nondeterministic Finite Automata. Formal Language, chapter 5, slide 1

CS 530: Theory of Computation Based on Sipser (second edition): Notes on regular languages(version 1.1)

Equivalence of DFAs and NFAs

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

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

Closure under the Regular Operations

September 7, Formal Definition of a Nondeterministic Finite Automaton

Course 4 Finite Automata/Finite State Machines

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

Theory of Computation

Computational Models Lecture 2 1

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

Automata: a short introduction

Computational Models Lecture 2 1

Non-deterministic Finite Automata (NFAs)

CMPSCI 250: Introduction to Computation. Lecture #22: From λ-nfa s to NFA s to DFA s David Mix Barrington 22 April 2013

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

Uses of finite automata

Nondeterministic Finite Automata

UNIT-III REGULAR LANGUAGES

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Computational Models - Lecture 1 1

CS 154 Formal Languages and Computability Assignment #2 Solutions

Takeaway Notes: Finite State Automata

Nondeterministic Finite Automata

Finite Automata and Regular Languages (part III)

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

CSE 311: Foundations of Computing. Lecture 23: Finite State Machine Minimization & NFAs

CPSC 421: Tutorial #1

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

CSE 105 THEORY OF COMPUTATION

Sri vidya college of engineering and technology

FINITE STATE MACHINES (AUTOMATA)

CSC236 Week 10. Larry Zhang

Nondeterministic Finite Automata and Regular Expressions

CISC 4090 Theory of Computation

Computational Theory

DM17. Beregnelighed. Jacob Aae Mikkelsen

CSE 105 Homework 1 Due: Monday October 9, Instructions. should be on each page of the submission.

Critical CS Questions

Lecture 17: Language Recognition

Non-Deterministic Finite Automata

ECS 120: Theory of Computation UC Davis Phillip Rogaway February 16, Midterm Exam

INF Introduction and Regular Languages. Daniel Lupp. 18th January University of Oslo. Department of Informatics. Universitetet i Oslo

Finite Automata Part Two

Automata and Languages

Transcription:

Nondeterministic Finite Automata

Not A DFA Does not have exactly one transition from every state on every symbol: Two transitions from q 0 on a No transition from q 1 (on either a or b) Though not a DFA, this can be taken as defining a language, in a slightly different way

Possible Sequences of Moves We'll consider all possible sequences of moves the machine might make for a given string For example, on the string aa there are three: From q 0 to q 0 to q 0, rejecting From q 0 to q 0 to q 1, accepting From q 0 to q 1, getting stuck on the last a Our convention for this new kind of machine: a string is in L(M) if there is at least one accepting sequence

Nondeterministic Finite Automaton (NFA) L(M) = the set of strings that have at least one accepting sequence In the example above, L(M) = {xa x {a,b}*} A DFA is a special case of an NFA: An NFA that happens to be deterministic: there is exactly one transition from every state on every symbol So there is exactly one possible sequence for every string NFA is not necessarily deterministic

NFA Advantage An NFA for a language can be smaller and easier to construct than a DFA Strings whose next-to-last symbol is 1: DFA: NFA:

Spontaneous Transitions An NFA can make a state transition spontaneously, without consuming an input symbol Shown as an arrow labeled with ε For example, {a}* {b}*:

ε-transitions To Accepting States An ε-transition can be made at any time For example, there are three sequences on the empty string No moves, ending in q 0, rejecting From q 0 to q 1, accepting From q 0 to q 2, accepting Any state with an ε-transition to an accepting state ends up working like an accepting state too

ε-transitions For NFA Combining ε-transitions are useful for combining smaller automata into larger ones This machine is combines a machine for {a}* and a machine for {b}* It uses an ε-transition at the start to achieve the union of the two languages

Incorrect Union A = {a n n is odd} B = {b n n is odd} A B? No: this NFA accepts aab

Correct Union A = {a n n is odd} B = {b n n is odd} A B

Incorrect Concatenation A = {a n n is odd} B = {b n n is odd} {xy x A and y B}? No: this NFA accepts abbaab

Correct Concatenation A = {a n n is odd} B = {b n n is odd} {xy x A and y B}

DFAs and NFAs DFAs and NFAs both define languages DFAs do it by giving a simple computational procedure for deciding language membership: Start in the start state Make one transition on each symbol in the string See if the final state is accepting NFAs do it without such a clear-cut procedure: Search all legal sequences of transitions on the input string? How? In what order?

Nondeterminism The essence of nondeterminism: For a given input there can be more than one legal sequence of steps The input is in the language if at least one of the legal sequences says so We can achieve the same result by deterministically searching the legal sequences, but...this nondeterminism does not directly correspond to anything in physical computer systems In spite of that, NFAs have many practical applications

Powerset If S is a set, the powerset of S is the set of all subsets of S: P(S) = {R R S} This always includes the empty set and S itself For example, P({1,2,3}) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}

The 5-Tuple An NFA M is a 5-tuple M = (Q, Σ, δ, q 0, F), where: Q is the finite set of states Σ is the alphabet (that is, a finite set of symbols) δ (Q (Σ {ε}) P(Q)) is the transition function q 0 Q is the start state F Q is the set of accepting states The only change from a DFA is the transition function δ δ takes two inputs: A state from Q (the current state) A symbol from Σ {ε} (the next input, or ε for an ε-transition) δ produces one output: A subset of Q (the set of possible next states)

Example: Formally, M = (Q, Σ, δ, q 0, F), where Q = {q 0,q 1,q 2 } Σ = {a,b} (we assume: it must contain at least a and b) F = {q 2 } δ(q 0,a) = {q 0,q 1 }, δ(q 0,b) = {q 0 }, δ(q 0,ε) = {q 2 }, δ(q 1,a) = {}, δ(q 1,b) = {q 2 }, δ(q 1,ε) = {} δ(q 2,a) = {}, δ(q 2,b) = {}, δ(q 2,ε) = {} The language defined is {a,b}*

The δ* Function The δ function gives 1-symbol moves We'll define δ* so it gives whole-string results (by applying zero or more δ moves) For DFAs, we used this recursive definition δ*(q,ε) = q δ*(q,xa) = δ(δ*(q,x),a) The intuition is the similar for NFAs, but the ε-transitions add some technical hair

M Accepts x Now δ*(q,x) is the set of states M may end in, starting from state q and reading all of string x So δ*(q 0,x) tells us whether M accepts x: A string x Σ* is accepted by an NFA M = (Q, Σ, δ, q 0, F) if and only if δ*(q 0, x) contains at least one element of F.

The Language An NFA Defines For any NFA M = (Q, Σ, δ, q 0, F), L(M) denotes the language accepted by M, which is L(M) = {x Σ* δ*(q 0, x) F {}}.

Let s make some NFAs!