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

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

Mar 28, 2015

Download

Documents

Thalia Nix
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.