24
CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Embed Size (px)

Citation preview

Page 1: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

CS 3240: Languages and Computation

Introducing Regular Languages:

Deterministic Finite Automata

and Regular Expressions

Page 2: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Automata Finite Automata model many design and

analysis tasks, e.g. Lexical analyzer in a compiler Digital cicuit design Keywork searching in texts or on the web. Software for verifying finite state systems, such as communication protocols. Your ATM, vendig machine, Etc.

1950-59 McCulloch&Pitts, Rabin&Scott, Moore, Huffman

Page 3: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions
Page 4: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions
Page 5: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions
Page 6: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions
Page 7: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Finite State Machine and Finite Automata

Page 8: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Deterministic Finite Automata

A simplest model for computingDeterministic: Machine is in a state. Upon

receipt of a symbol will go to a unique state.Finite: Have a finite number of statesAutomata: (pl. of automaton) Self-operating

machine DFA: finite-state machine without ambiguity

Page 9: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA and Strings

DFA can recognize stringsString is input If DFA ends at accept state, string is recognized

A language is called a regular language if some finite automaton recognizes it

Let us look at a few example before giving formal mathematical definition

Page 10: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA Examples

1 2

0 11

0

Accept all stringsthat end in 1

Note: The alphabet for this example is {0, 1}. Each statehas a transition for every symbolin the alphabet

accept state

transition

start state

Page 11: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA Examples

Accept strings of 'a's and 'b's that begin and end with same symbol

5

3

4

2

1a

a

a

a

a

b

bb

b

b

Page 12: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA Examples

2

Keep running count of total of symbols readin mod 3. Accept on 0.

1

00 1

2

0

1

2

0

1

2

Start

Page 13: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA Examples

Strings with an oddnumber of ones.

Even Odd

0 0

1

1

Page 14: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA Examples

Strings containingthe substring 001

'001'

0 01

1

'0' '00'

0

10,1

Page 15: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Formal Definition of DFA A DFA consists of:

Alphabet A set of states Q A transition function δ : Q Q One start state q0

One or more accepting states F Q

Language accepted by a DFA is the set of strings such that DFA ends at an accepting state Each string is c1c2…cn with ci States are qi = δ(qi-1,ci ) for i=1…n

qn is an accepting state

Page 16: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Can DFA's be designed to accept any string?

No!

Page 17: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Examples

Design a DFA to recognize strings that start out with k zeros followed by k ones. Impossible

Design a DFA to recognize strings with an equal number of ones and zeros. Impossible

Design a DFA to recognize strings with an equal number of strings "01" and "10".Possible!

Page 18: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Actually the thirdone is regular!

DFA to recognize strings with an equal number of strings "01" and "10"

0

0

0

0

0

1

1

1

1

1

1

0

1

0

Page 19: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA More examples

Page 20: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

DFA More examples

A,B are the input into which themarble is dropped. The x-levers cause fall either to left or right, but lever reversesupon a marble passingAccept if marble exits through D

Page 21: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Non-Deterministic Finite Automata

Page 22: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

NFA and -NFA

Nondeterministic Finite AutomataSame input may produce multiple pathsAllows transition with an empty string or

transition from one state to different states given a character

q1 q2

empty string transition

q1

q21

q31

nondeterministic transition

Page 23: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions
Page 24: CS 3240: Languages and Computation Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions