Compute1 dfa

51
Finite Automata Question: What is a computer? real computers too complex for any theory Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.1

Transcript of Compute1 dfa

Page 1: Compute1 dfa

Finite AutomataQuestion: What is a computer?

real computers too complex for any theory

need manageable mathematical abstraction

idealized models: accurate in some ways, but notin all details

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.1

Page 2: Compute1 dfa

Finite AutomataQuestion: What is a computer?

real computers too complex for any theory

need manageable mathematical abstraction

idealized models: accurate in some ways, but notin all details

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.1

Page 3: Compute1 dfa

Finite AutomataQuestion: What is a computer?

real computers too complex for any theory

need manageable mathematical abstraction

idealized models: accurate in some ways, but notin all details

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.1

Page 4: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 5: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 6: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 7: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 8: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 9: Compute1 dfa

Finite Automata – Important ideas

formal definition of finite automata

deterministic vs. non-deterministic finiteautomata

regular languages

operations on regular languages

regular expressions

pumping lemma

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.2

Page 10: Compute1 dfa

Example: An Automatic Door

frontpad

rearpad

door

open when person approaches

hold open until person clears

don’t open when someone standing behind door

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.3

Page 11: Compute1 dfa

Example: An Automatic Door

frontpad

rearpad

door

open when person approaches

hold open until person clears

don’t open when someone standing behind door

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.3

Page 12: Compute1 dfa

Example: An Automatic Door

frontpad

rearpad

door

open when person approaches

hold open until person clears

don’t open when someone standing behind door

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.3

Page 13: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:

OPENCLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 14: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPEN

CLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 15: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 16: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:

FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 17: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:FRONT: someone on rear pad

REAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 18: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear pad

BOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 19: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both pads

NEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 20: Compute1 dfa

The Automatic Door as DFA

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

States:OPENCLOSED

Sensor:FRONT: someone on rear padREAR: someone on rear padBOTH: someone on both padsNEITHER no one on either pad.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.4

Page 21: Compute1 dfa

The Automatic Door as DFA

DFA is Deterministic Finite Automata

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

neither front rear bothclosed closed open closed closedopen closed open open open

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.5

Page 22: Compute1 dfa

The Automatic Door as DFA

DFA is Deterministic Finite Automata

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

neither front rear bothclosed closed open closed closedopen closed open open open

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.5

Page 23: Compute1 dfa

The Automatic Door as DFA

DFA is Deterministic Finite Automata

closed open

FRONT

NEITHER

FRONTREARBOTH

REARBOTH

NEITHER

neither front rear bothclosed closed open closed closedopen closed open open open

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.5

Page 24: Compute1 dfa

DFA: Informal Definition

q1

0

q2 3q

11 0

0,1

The machine � :

states: � ���

��� , and ��� .

start state: (arrow from “outside”).

accept state: (double circle).

state transitions: arrows.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.6

Page 25: Compute1 dfa

DFA: Informal Definition

q1

0

q2 3q

11 0

0,1

The machine � :

states: � ���

��� , and ��� .

start state: � � (arrow from “outside”).

accept state: (double circle).

state transitions: arrows.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.6

Page 26: Compute1 dfa

DFA: Informal Definition

q1

0

q2 3q

11 0

0,1

The machine � :

states: � ���

��� , and ��� .

start state: � � (arrow from “outside”).

accept state: �� (double circle).

state transitions: arrows.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.6

Page 27: Compute1 dfa

DFA: Informal Definition

q1

0

q2 3q

11 0

0,1

The machine � :

states: � ���

��� , and ��� .

start state: � � (arrow from “outside”).

accept state: �� (double circle).

state transitions: arrows.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.6

Page 28: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input string

DFA begins in start stateafter reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:accept if DFA is an accepting state.reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 29: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input stringDFA begins in start state � �

after reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:accept if DFA is an accepting state.reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 30: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input stringDFA begins in start state � �

after reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:accept if DFA is an accepting state.reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 31: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input stringDFA begins in start state � �

after reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:

accept if DFA is an accepting state.reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 32: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input stringDFA begins in start state � �

after reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:accept if DFA is an accepting state.

reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 33: Compute1 dfa

DFA: Informal Definition (cont.)

q1

0

q2 3q

11 0

0,1

On an input stringDFA begins in start state � �

after reading each symbol, DFA makesstate transition with matching label.

After reading last symbol, DFA produces output:accept if DFA is an accepting state.reject otherwise.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.7

Page 34: Compute1 dfa

Informal Definition - Example

q1

0

q2 3q

11 0

0,1

What happens on input strings

� � � �

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.8

Page 35: Compute1 dfa

Informal Definition - Example

q1

0

q2 3q

11 0

0,1

What happens on input strings

� � � �

� � � �

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.8

Page 36: Compute1 dfa

Informal Definition - Example

q1

0

q2 3q

11 0

0,1

What happens on input strings

� � � �

� � � �

� � � � �

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.8

Page 37: Compute1 dfa

Informal Definition

q1

0

q2 3q

11 0

0,1

This DFA accepts

all input strings that end with a 1

all input strings that contain at least one 1, andend with an even number of 0’s

no other strings

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.9

Page 38: Compute1 dfa

Languages and Alphabets

An alphabet is a finite set of letters.

� ����

��

��� � � �

� �

– the English alphabet.

� ��� �

� � � � �

� �

– the Greek alphabet.

� � ��

� �

– the binary alphabet.

� � ��

��� � � �

� �

– the digital alphabet.

The collection of all strings over is denoted by .

For the binary alphabet, , , , ,

are all members of .

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.10

Page 39: Compute1 dfa

Languages and Alphabets

An alphabet is a finite set of letters.

� ����

��

��� � � �

� �

– the English alphabet.

� ��� �

� � � � �

� �

– the Greek alphabet.

� � ��

� �

– the binary alphabet.

� � ��

��� � � �

� �

– the digital alphabet.

The collection of all strings over is denoted by

.

For the binary alphabet, , , , ,

are all members of .

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.10

Page 40: Compute1 dfa

Languages and Alphabets

An alphabet is a finite set of letters.

� ����

��

��� � � �

� �

– the English alphabet.

� ��� �

� � � � �

� �

– the Greek alphabet.

� � ��

� �

– the binary alphabet.

� � ��

��� � � �

� �

– the digital alphabet.

The collection of all strings over is denoted by

.

For the binary alphabet, �,

,

,

� � � � � � � � �

,

� � � � � � � � � �

are all members of

.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.10

Page 41: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

has at most seventeen 0’s

has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 42: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

has at most seventeen 0’s

has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 43: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

has at most seventeen 0’s

has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 44: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

� � � � � has at most seventeen 0’s

has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 45: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

� � � � � has at most seventeen 0’s

� � � � � � �� � �

has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 46: Compute1 dfa

Languages and Examples

A language over is a subset

� �

. For example

Modern English.

Ancient Greek.

All prime numbers, writen using digits.

� � � � � has at most seventeen 0’s

� � � � � � �� � �

� � � � � has an equal number of 0’s and 1’s

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.11

Page 47: Compute1 dfa

Languages and DFA

Definition:

� � �

, the language of a DFA , is theset of strings

that accepts,

� � � � �.

Note that

may accept many strings, but

accepts only one language

What language does accept if it accepts no strings?

A language is called regular if some deterministic finite

automaton accepts it.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.12

Page 48: Compute1 dfa

Languages and DFA

Definition:

� � �

, the language of a DFA , is theset of strings

that accepts,

� � � � �.

Note that

may accept many strings, but

accepts only one language

What language does accept if it accepts no strings?

A language is called regular if some deterministic finite

automaton accepts it.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.12

Page 49: Compute1 dfa

Languages and DFA

Definition:

� � �

, the language of a DFA , is theset of strings

that accepts,

� � � � �.

Note that

may accept many strings, but

accepts only one language

What language does accept if it accepts no strings?

A language is called regular if some deterministic finite

automaton accepts it.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.12

Page 50: Compute1 dfa

Languages and DFA

Definition:

� � �

, the language of a DFA , is theset of strings

that accepts,

� � � � �.

Note that

may accept many strings, but

accepts only one language

What language does accept if it accepts no strings?

A language is called regular if some deterministic finite

automaton accepts it.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.12

Page 51: Compute1 dfa

Formal DefinitionsA deterministic finite automaton (DFA) is a 5-tuple

� �

��

��� �

, where

is a finite set called the states,

is a finite set called the alphabet,

��� � is the transition function,

�� � is the start state, and

is the set of accept states.

Slides modified by Benny Chor, based on original slides by Maurice Herlihy, Brown University. – p.13