cohen, chapter 61 introduction to computational theory chapter 6

30
Cohen, Chapter 6 1 Introduction to Computational Theory Chapter 6

Post on 20-Dec-2015

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 1

Introductionto

Computational Theory

Chapter 6

Page 2: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 2

Automatic Door/FA

Frontpad

Rearpad

closed open

Front

Neither

Front,Rear,Both

Rear,Both,Neither

Page 3: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 3

Nondeterministic

When the ultimate path through a machine is not determined by input alone the machine is nondeterministic.

Page 4: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 4

Preamble to Chapter 6

NFAs– Non-deterministic finite automata– Vs. DFAs (deterministic – the book calls FAs)

We allow multiple transitions per letter per state– Including “lambda-transitions”

Move on a whim (w/o consuming input)– Accept if a path exists to a final state

Transition relation: 2QQ

Page 5: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 5

a

-

+

+

a

a

a

- +a a

a,ba,b

a

- +b

a

b

a,b

a,b

Examples

Page 6: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 6

Why Non-determinism?

More expressive model Easier to find machines for a language

– E.g., unions of two languages/machines

Page 7: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 7

Examples

(ab + aba)* Language over {a b} where last symbol is

repeated

Page 8: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 8

NFA – DFA Equivalence

There is an algorithm to convert a NFA to a DFA

Just track all the possibilities– Collapse lambda moves

States are a subset of 2Q

“Rabin-Scott” Algorithm Example: a+c*b*

Page 9: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 9

Lambda Transitions

Handy for combining machines– E.g., union of two languages: create a new start

state with lambda moves to the start states of the two machines

Page 10: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 10

Examples

a

- +b

b

a

x1

x2

x4

x3

a,b

a,b

Page 11: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 11

Examples

b b-x1 x2 +x4x3b

b

Page 12: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 12

Examples

b b-x1 x2 +x3

a,b a,b

Page 13: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 13

Examples

b

b

-x1

x2 x3

a,b a,b

x5 x6

x7+b

a

aa

Page 14: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 14

Transition Graphs

Abandon the requirement that the edges eat just one letter at a time.

- +baa

a,bAll else

a,b

- +baa

All else

Page 15: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 15

Crashes (Formerly, Hell State or Jail)

When an input string that has not been completely read reaches a state (final or otherwise) that it cannot leave because there is no outgoing edge that it may follow, we say that the input (or the machine) crashes at that state.

Page 16: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 16

Rejected Input

Trace a path ending in a non-final state Crash while being processed

- +

a,b

a,baa, bb

baa

Page 17: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 17

Acceptance

A string is accepted by a TG if there is some way it could be processed as to arrive at a final state.

There may also be ways in which this string does not get to a final state, but we ignore all failures.

Page 18: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 18

Transition Graph

A collection of three things:

1. A finite set of states, at least one of which is designated as the start state (-) and some (maybe none) of which are designated as final states (+)

2. An alphabet of possible input letters from which input strings are formed.

3. A finite set of transitions (edge labels) that show how to go from some states to some others, based on reading specified substrings of input letters (possibly even the null string )

Page 19: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 19

Successful Path

A successful path through a transition graph is a series of edges forming a path beginning at some start state (there may be several) and ending at a final state.

1- 2 3 4+abb a

aa

b

Free Rideabbab…

abbaa…

abbababba

A Lambda transition occurs when you get a free transition that was not initiated by user or system action/interaction. Move on a whim (w/o consuming input). Slide modified by Seals

Page 20: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 20

Equivalent Language Acceptors

+- 2

3aba

a

b

1

2-

3-

+

aba

a

b

1-

Page 21: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 21

Examples

-

-

+

-

-baaabba

Page 22: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 22

Examples

- +

+ +a

bb

- +

a,b

Page 23: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 23

Examples

(a + b)*b- +

a,b

bTG

- +

ab b

a

FA

Page 24: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 24

Examples

+

a,b

b

+

a,b

a

-

b

a

Page 25: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 25

Examples(EVEN-EVEN; cf. p. 69)

aa,bbab.ba aa,bb

ab.ba

Page 26: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 26

Example(p. 84)

a,b

ab

bbbb

bbbb

bbb

a

a a a

a

b

b

- +

Page 27: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 27

Examples(p. 85)

aa

+

-

aa

+

-+

Page 28: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 28

Example(Problem 17, p. 91)

L = {a abb bbaab bbbaa} 1) given a FA that accepts L, construct a TG

that accepts transpose(L)– Invert start/final states; reverse arrows

2) given a TG that accepts L, construct a TG that accepts transpose(L)– Same as 1, but reverse transition strings

Page 29: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 29

Generalized Transition Graph (GTG)

A collection of three things:

1. A finite set of states, at least one of which is designated as the start state (-) and some (maybe none) of which are designated as final states (+)

2. An alphabet of possible input letters from which input strings are formed.

3. Directed edges connecting some pairs of states, each labeled with a regular expression.

Page 30: Cohen, Chapter 61 Introduction to Computational Theory Chapter 6

Cohen, Chapter 6 30

Examples

3+1-

2

L1

L2

L3

L4

L5

+

)b( (ab + a)* a

a