cs375: logic and theory of computingcheng/cs375/notes/cs375-automata-2.pdf · cs375: logic and...

69
2/12/2020 1 CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science University of Kentucky University of Kentucky

Upload: others

Post on 15-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 1

CS375:

Logic and Theory of Computing

Fuhua (Frank) Cheng

Department of Computer Science

University of Kentucky

University of Kentucky

Page 2: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 2

Table of Contents:

◼ Week 1: Preliminaries (set algebra, relations,

functions) (read Chapters 1-4)

◼ Weeks 2-5: Regular Languages, Finite

Automata (Chapter 11)

◼ Weeks 6-8: Context-Free Languages,

Pushdown Automata (Chapters 12)

◼ Weeks 9-11: Turing Machines (Chapter 13)

University of Kentucky

Page 3: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 3

Table of Contents (conti):

▪ Weeks 12-13: Propositional Logic (Chapter

6), Predicate Logic (Chapter 7),

Computational Logic (Chapter 9),

Algebraic Structures (Chapter 10)

University of Kentucky

Page 4: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 4

Can a machine recognize a regular language?

Deterministic Finite Automaton (DFA)

A finite digraph over an alphabet A (vertices are called

states).

Each state emits one labeled edge for each letter of A.

One state is defined as the start state and several

states may be final states.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata algorithm

indicated by double

circles

Yes

Page 5: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 5

Example.Either one is acceptable

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

A={a, b}

Page 6: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 6

The execution of DFA for input string w ∈ A* begins at

the start state and follows a path whose edges

concatenate to w.

The DFA accepts w if the path ends in a final state.

Otherwise the DFA rejects w.

The language of a DFA is the set of accepted strings.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

an empty string will

enter the start state

but the empty set

will not.Input string: abab

Page 7: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 7

Example. The example DFA accepts the strings

The language of the DFA is

University of Kentucky

6. Regular Lan|guages & Finite Automata

- Finite Automata

{ ab , bb | n ϵ N, m ϵ N } n m

Page 8: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 8

Example. The example DFA accepts the strings

The regular expression of the language of the DFA is

(a + b)b* Why?

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a+b (a+b)b (a+b)b2 (a+b)bn

Page 9: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 9

Theorem (Kleene) The class of regular languages is

exactly the same as the class of languages accepted

by DFAs.

Proof. Need three lemmas or by induction.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

accepts

}{ accepts

a}{ accepts a

Page 10: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 10

Specifically, say A = {a, b}, then

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

1 accepts

a, b

1 }{ accepts a, b 2

a, b

21a }{ accepts a

a, bb

3a, b

Page 11: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 11

Theorem (Kleene) The class of regular languages is

exactly the same as the class of languages accepted

by DFAs.

Proof. (conti.)

together with the basis step would prove the theorem.University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Page 12: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

For instance, if 𝐿1 = {a} and 𝐿2 = {b}

then

2/12/2020 12University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a

a, bb

a, b

accepts {b}

a

a, bb

a, baccepts {a}

a

a, bb

a, b

accepts {a, b}

a, b

Page 13: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

For instance, if 𝐿1 = {a} and 𝐿2 = {b}

then

2/12/2020 13University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a

a, bb

a, b

accepts {b}

a

a, bb

a, baccepts {a}

a

a, bb

a, baccepts {ab}

b

a

Page 14: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

For instance, if 𝐿1 = {a} and 𝐿2 = {b}

then

2/12/2020 14University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a

a, bb

a, b

accepts {b}

a

a, bb

a, baccepts {a}

a

a, bb

a, b

accepts {aa}

b

a

Page 15: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

For instance, if 𝐿1 = {a} and 𝐿2 = {b}

or

2/12/2020 15University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a

a, bb

a, b

accepts {b}

a

a, bb

a, baccepts {a}

a

a, b

b

a, b

accepts {aaa}

b

a a

b

Page 16: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 16

Example. Find a DFA for each language over the alphabet {a,b}.

(a) ∅. (b) {Λ}. (c) { (ab) | n ∈ N}, which has regular

expression (ab)*.

Solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

n

Page 17: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

Example. Find a DFA for the language of a + aa*b.

2/12/2020 17University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a, b

a, b

Page 18: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 18

Example. Find a DFA for the language of a + aa*b.

Solution:

Question:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Would this DFA work?

aa is accepted by this

DFA, but …

Page 19: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 19University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Loops are dangerous because if a path

contains a loop then the length of that

path is not unique!

You use an internal or external loop in a

DFA only if you want to recognize an

expression with variable length.

Page 20: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 20

A DFA that recognizes

bc* + ac

c c

start

a

b

c

A DFA that recognizes

bc* + abc* + ac

c c

start

a

b

c

b

Page 21: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 21

A DFA that recognizes

bc* + ac

c c

start

a

b

c

A DFA that recognizes

bc* + abc* + ac

c c

start

a

b

c

b

a,b

a,b

a,

b,

c

a, b, c

a,b

a

a,

b,

c

a, b, c

a, b, c a, b, c

Page 22: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 22

A DFA that recognizes

bc* + ac

c c

start

a

b

c

A DFA that recognizes

bc* + abc* + ac

c c

start

a

b

c

b

a, b

a,

b,

c

a, b

a,

b,

c

a, b

a,

b,

c

a

a,

b,

c

Page 23: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 23

To make each of these FA’s a DFA, you either

create a new state or use a non-final state as

the sink of all the remaining edges of the FA.

That state should not have outgoing edges.

Page 24: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 24

Would the following DFA recognize a*bc* + ac ?

c c

start

a

b

c

b

a

In addition to

a*bc* and ac,

does it recognize

anything else?

Yes, such as

aac, aaac, …

Page 25: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 25

A DFA that recognizes bc* + abc* + 𝑎2bc* + ac

c c c

start

a a

b

c

bb

Page 26: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 26

A DFA that recognizes a*bc* + ac

c c c

start

a a

b

c

bb

a

How to make

this FA a real

DFA?

bc* + abc* + 𝑎2bc* + 𝑎𝑛bc*

n ≥ 3

Page 27: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 27

A DFA that recognizes a*bc* + ac

c c c

start

a a

b

c

bb

a

a real DFA now

a,b,ca,b,c

a,b,c

a,b

Page 28: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 28

Table Representation of a DFA

DFA over A can be represented by a transition function

T : States × A → States,

where T(i, a) is the state reached from state i along the edge

labeled a, and we mark the start and final states.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Example:

Page 29: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 29

Note: T can be extended to T : States × A* → States

by T(i, Λ) = i , T(i, aw) = T(T(i, a), w) a ∈ A, w ∈ A*

Question: T(0, bba) =?

T(0, bba) = T(1, ba) = T(1, a) = T(2, Λ) = 2.University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

or

Page 30: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 30

Example. Find a DFA to recognize (a + ba)*bb(a + ab)*.

A solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

{bb}

}){( bbbaa +

aa

a,b

aa,b

any combination

of a* and (ba)*

After excuting (a+ba)*,

return to start point of bb

Page 31: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 31

Example (conti). Find a DFA to recognize (a + ba)*bb(a + ab)*.

A solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

})(){( ++ ababbbaab

a,b a

a

b

any combination

of a* and (ab)*

Page 32: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 32

Nondeterministic Finite Automata (NFA)

An NFA over an alphabet A is similar to a DFA except that

Λ-edges are allowed,

there is no requirement to emit edges from a state, and

multiple edges with the same letter can be emitted from a state.

Example. The following NFA recognizes the language of

a + aa*b + a*b.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a ?

aa*b: ab, aab ?

a*b: b, ab ?

Page 33: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 33

Intuitive examplesA = { d, g, m, o, r}

d o g

o

m r

NFA

Page 34: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 34

Intuitive examplesA = { d, g, m, o, r}

d o g

o

m r

DFA

g,m,o,r

d,g,m,r

d,m,r

d,g,o

d,g,m,o

d,g,m,o,r

d,g,m,o,r

Page 35: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 35

Intuitive examples

A = { d, g, m, o, r}

o

d o g

Actually, the NFA can also be defined as follow:

rm

o

Page 36: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 36

Example. NFA for the language of a + aa*b + a*b.

University of KentuckyStartb a, b

a, ba

a

b

DFA for the language of a + aa*b + a*b.a, b, ab,

aab, aaab,

Page 37: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 37

DFA and NFA are equivalent concept.

A DFA is also an NFA.

But actually for every NFA there's a

corresponding DFA that accepts the same

language, but if the NFA has n states, the

DFA could have O(2𝑛) states.

So we work with NFAs because they’re

usually a lot smaller than DFAs.

Page 38: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 38

A few points about NFA’s.

The existence of Ʌ-edges implicitly creates the

concept of an extended state (a multiple-node

state) of a given state.

10Ʌ

a c d

b d

e

f

Extended

state of 0

Page 39: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 39

Edges a, b, c, d, e, f, g are edges of the

extended state of 0.

Each edge of the extended state of 0 can be

used by state 0 through some Ʌ-edges.

So essentially state 0 has 7 edges to use

even though there are only 2 real edges

emitted from state 0.

Extended

state of 0b d g

a c e

f10

Ʌ2

Ʌ

Page 40: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 40

For an NFA, only edges really needed for its

function have to be designed.

NFA for the language of a + aa*b + a*b.

We don’t

need to

design any

edges for

state 2.

Page 41: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 University of Kentucky 41

Why do we need “multiple edges with the

same letter”?

NFA for the language of a + aa*b + a*b.

A letter can be used

as the lead symbol

for disjoint paths

Page 42: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 42

Table representation of NFA

An NFA over A can be represented by a function

T : States × A ∪ {Λ} → power(States),

where T(i, a) is the set of states reached from state i along the

Edge(s) labeled a, and we mark the start and final states.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Example:0

Page 43: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 43

Theorem (Rabin and Scott): The class of regular languages is

exactly the same as the class of languages accepted by NFAs.

Questions. Find an NFA for each of the languages over {a, b}.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automatathe proof is similar to Kleene’s theorem

=

?

a,b

})(,,{ abba

Page 44: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 44

Example. Find an NFA to recognize (a + ba)*bb(a + ab)*.

A solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

{bb}

}){( bbbaa +

})(){( ++ ababbbaa

any combination

of a* and (ba)*

any combination

of a* and (ab)*

Page 45: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 45

Example (conti). Find an NFA to recognize (a + ba)*bb(a + ab)*.

A solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

a

But not

})( ){( *baabbbaa +

Page 46: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 46

Algorithm: Transform a Regular Expression (RE) into a Finite

Automaton

(1) Placing the RE on the edge between a start and final state:

(2) Apply the following rules to obtain a finite automaton after

erasing any ∅-edges.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata(DFA or NFA)

Page 47: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 47

Example. Use the algorithm to construct a finite automaton for

(ab)* + ba.

Solution:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Page 48: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 48

Algorithm: Transform a Finite Automaton to a Regular

Expression

Connect a new start state s to the start state of the FA

and connect each final state of the FA to a new final state ƒ

as shown in the figure.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Given

FAs

Connect to start

state of FA

Ʌf

Connect from each

final state of FA

Ʌ

Page 49: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 49

If needed, combine all multiple edges between the same

two nodes into one edge with label the sum of the

labels on the multiple edges.

If there is no edge between two states, assume there is

an ∅-edge.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Φ

Page 50: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 50

Now eliminate each state k of the FA by constructing a

new edge (i, j) for each pair of edges (i, k) and (k, j)

where i ≠ k and j ≠ k.

New label new(i, j) is defined as follows:

new(i, j) = old(i, j) + old(i, k) old(k, k)* old(k, j)

Example:

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

AA+ BC*D

Page 51: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 51University of Kentucky

Think of the process of eliminating state k as a

two-step procedure:

ji

A

B k D

ji

A

BC*D

ji

A + BC*D

Put Φ here if

there was not

a direct edge

between i and

j originally

Page 52: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 52

Example. Transform the following NFA into a regular expression.

Solution I (eliminate state 1 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

State 1 is also considered a

state between state 0 and

state 0

0

a0 a

1b

State 1 is considered a state

between state 0 and state f

Page 53: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 53

Example. Transform the following NFA into a regular expression.

Solution I (eliminate state 1 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

aaf =+= ),0new(

ababaa +=+= )0,0(new

0

a0 a

1b

Page 54: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 54

Example. Transform the following NFA into a regular expression.

Solution I (eliminate state 1 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

aabaaabafs +=++= )()(),(new

Page 55: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 55University of Kentucky

You can think of the given

NFA as an NFA of the

following form

Or, eliminate state 1 first, the

following way:

1

ab

0

a

sɅ a

1 fɅ

Page 56: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 56University of Kentucky

1

ab

0

a

sɅ a

1 fɅ

Or, eliminate state 1 first, the

following way:

af0

a

ab

aɅ*Ʌ

aɅ*b

Page 57: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 57University of Kentucky

Or, eliminate state 1 first, the

following way:

af0

a

ab

af0

a + ab

a

0 0ab

0 0a+ab

Why?

Page 58: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 58University of Kentucky

Or, eliminate state 1 first, the

following way:

af0

a + ab

fsɅ(a+ab)*a

fs(a+ab)*a

Page 59: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 59

Example. Transform the following NFA into a regular expression.

Solution II (eliminate state 0 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

State 0 is considered a state

between state s and state 1

State 0 is also considered a

state between state 1 and

state 1

1

1

0b

a

Page 60: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 60

Example. Transform the following NFA into a regular expression.

Solution II (eliminate state 0 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

aaaas =+=)1,(new

abaaba =+=)1,1(new

Page 61: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 61

Example. Transform the following NFA into a regular expression.

Solution II (eliminate state 0 first):

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

=+= )()(),(new abaaaabaaafs

Page 62: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 62University of Kentucky

You can think of the given

NFA as an NFA of the

following form

Or, eliminate state 0 first, the

following way:

0

a

0

ba

a1 f

Ʌ

a

Page 63: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 63University of Kentucky

Or, eliminate state 0 first, the

following way:

Ʌf1s

a*a

ba*a

0

a

0

ba

a1 f

Ʌ

a

Ʌa*a

ba*a

Page 64: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 64University of Kentucky

Or, eliminate state 0 first, the

following way:

fsa*a(ba*a)*Ʌ

fsa*a(ba*a)*

Ʌf1s

a*a

ba*a

Page 65: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 65University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Note. The two regular expressions obtained in the previous

example are equal, i.e., a*a( ba* a)* = (a + ab)*a.

Proof I.

( a + ab )* a ( R + S )* = R* (S R* )*

= [ a* ( (ab) a* )* ] a · is associative

= a* [ ( ( a b ) a* )* a ] · is associative

= a* [ ( a ( b a* ) )* a ] (R S )* R = R (S R )*

= a* [ a (( ba* ) a )* ] · is associative

= a* a (ba* a)*

Page 66: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 66

Note. The two regular expressions obtained in the previous

example are equal, i.e., a*a(ba*a)* = (a + ab)*a.

Proof II.

a* a ( ba*a )* = a*[a(( ba* ) a)*] · is associative

= a*[( a (ba*) )*a ] R(SR)* = (RS)*R

= a*[ ( (ab)a* )* a] · is associative

= [a* ((ab) a*)* ] a · is associative

= (a + ab)*a R*(SR*)* = (R + S)*

QED.

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Page 67: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 67

Note. The two regular expressions obtained in the previous

example are equal, i.e., a*a(ba*a)* = (a + ab)*a.

Intuitive Proof.

LHS = a* a ( ba*a )* = a*a(ba*a)(ba*a)(ba*a) ⋯ (ba*a)

RHS = (a + ab)*a = a*(ab)*a*(ab)* ⋯ a*(ab)*a

LHS ⊆ RHS Why?

a*a(ba*a)(ba*a)(ba*a) ϵ LHS

= a*(ab)a*(ab)a*(ab)a*a

= a*(ab)a*(ab)a*(ab)a*(𝑎𝑏)0a ϵ RHS

Hence, LHS ⊆ RHS

University of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

any combinations of

a* and (ab)*

Page 68: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 68

Note. The two regular expressions obtained in the previous

example are equal, i.e., a*a(ba*a)* = (a + ab)*a.

Intuitive Proof (conti).

LHS = a* a ( ba*a )* = a*a(ba*a)(ba*a)(ba*a) ⋯ (ba*a)

RHS = (a + ab)*a = a*(ab)*a*(ab)* ⋯ a*(ab)*a

RHS ⊆ 𝐿HS Why?

a*(𝑎𝑏)2a*(𝑎𝑏)2a*(𝑎𝑏)2a ϵ RHS

= a*(ab)(ab)a*(ab)(ab)a*(ab)(ab)a

= a*a(ba)(ba*a)(ba)(ba*a)(ba)(ba)

= a*a(b𝑎0a)(ba*a)(b𝑎0a)(ba*a)(b𝑎0a)(b𝑎0a) ϵ LHS

Hence, RHS ⊆ LHSUniversity of Kentucky

6. Regular Languages & Finite Automata

- Finite Automata

Page 69: CS375: Logic and Theory of Computingcheng/cs375/Notes/CS375-Automata-2.pdf · CS375: Logic and Theory of Computing Fuhua (Frank) Cheng Department of Computer Science ... Weeks 2-5:

2/12/2020 71

End of Regular

Language and Finite

Automata II

University of Kentucky