theoretical computer science (bridging course) regular...

106
Theoretical Computer Science (Bridging Course) Gian Diego Tipaldi Regular Languages

Upload: others

Post on 20-Oct-2019

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Theoretical Computer Science (Bridging Course)

Gian Diego Tipaldi

Regular Languages

Page 2: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Topics Covered

Regular languages

Deterministic finite automata

Nondeterministic finite automata

Closure

Regular expressions

Non-regular languages

The pumping lemma

Page 3: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Page 4: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Front Pad

Rear Pad

Page 5: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Open Closed

Rear Both

Neither

Rear Both Front

Front

Neither

Page 6: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Neither Front Rear Both

Closed Closed Open Closed Closed

Open Closed Open Open Open

Page 7: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Probabilistic counterparts exists

Markov chains

Bayesian networks

Neither Front Rear Both

Closed Closed Open Closed Closed

Open Closed Open Open Open

Page 8: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Supermarket door control

Probabilistic counterparts exists

Markov chains

Bayesian networks

Neither Front Rear Both

Closed Closed Open Closed Closed

Open Closed Open Open Open

Page 9: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Page 10: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

States:

Alphabet:

Transition function: See edges

Start state:

Final states:

Page 11: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Which kind of input is accepted?

“aaaabbbbaaaa” ?

“000000” ?

An empty string?

“1000111” ?

Page 12: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Which language is accepted?

“aaaabbbbaaaa” ?

“000000” ?

An empty string?

“1000111” ?

Page 13: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata

Which language is accepted?

“M recognizes A”

“A is the language L(M)”

Page 14: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata – Example

Which language recognizes M?

q2 q1

0 1 1

0

Page 15: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata – Example

And in this case?

q2 q1

0 1 1

0

Page 16: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata – Example

What about this one?

Page 17: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata – Example

Page 18: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Finite Automata – Example

Sums all numerical symbols that reads, modulo 3.

Resets the count, every time it receives <RESET>.

Accepts, if the sum is a multiple of 3.

Page 19: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Definition of Computation

Page 20: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings with an odd number of 1s

Page 21: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings with an odd number of 1s

1. Design states

q2 q1

Page 22: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings with an odd number of 1s

1. Design states

2. Design transitions

q2 q1

0 0 1

1

Page 23: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings with an odd number of 1s

1. Design states

2. Design transitions

3. Design start state and accept states

q2 q1

0 0 1

1

Page 24: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings containing 001 as substring

Page 25: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings containing 001 as substring

1. No symbols of the string

q

1 0

Page 26: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings containing 001 as substring

1. No symbols of the string

2. We have a 0

q0 q

1 0

1

0

Page 27: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings containing 001 as substring

1. No symbols of the string

2. We have a 0

3. We have a 00

q0 q

1 0

1

q00

0

1 0

Page 28: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Designing Finite Automata

We want to accept binary strings containing 001 as substring

1. No symbols of the string

2. We have a 0

3. We have a 00

4. We have a 001

q0 q

1 0

1

q00

0 0,1

1 0 q001

Page 29: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Regular Operations

Let A and B be languages, we have:

Union:

Concatenation:

Star:

Example

Page 30: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Languages

Page 31: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof by Construction

Page 32: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof by Construction

Page 33: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

L(M1) = {w|w contains a 1}

L(M2) = {w|w contains at least two 0s}

q1 q2

0 0,1

1 p2 p1 p3

1 0,1

0 0

1

Page 34: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

L(M1) = {w|w contains a 1}

L(M2) = {w|w contains at least two 0s}

q1 q2

0 0,1

1 p2 p1 p3

1 0,1

0 0

1

q1p1

q1p2

q1p3

q2p1

q2p2

q2p3

Page 35: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

L(M1) = {w|w contains a 1}

L(M2) = {w|w contains at least two 0s}

q1 q2

0 0,1

1 p2 p1 p3

1 0,1

0 0

1

0 q1p1

q1p2

q1p3

q2p1

q2p2

q2p3

0

1 1 1

0

0,1 0 0

1 1

Page 36: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

L(M1) = {w|w contains a 1}

L(M2) = {w|w contains at least two 0s}

q1 q2

0 0,1

1 p2 p1 p3

1 0,1

0 0

1

0 q1p1

q1p2

q1p3

q2p1

q2p2

0

1 1 1

0

0,1 0 0

1 1

q2p3

Page 37: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Languages

Page 38: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Languages

Non deterministic finite automata

Page 39: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nondeterministic Automata

Deterministic (DFA)

One successor state

𝜀 transitions not allowed

Nondeterministic (NFA)

Several successor states possible

𝜀 transitions possible

q2 q1 q3 q4

0,1 0,1

1 0,ε 1

Page 40: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nondeterministic Computation

Page 41: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example Run

q1

q1

q3 q2 q1

q3 q1

q2 q1 q3 q4

q4

q4

q2 q1 q3

q3 q1

q4

q4

0

0

1

1

0

1

q2 q1 q3 q4

0,1 0,1

1 0,ε 1

Input: w = 010110

NFA 𝑁1

Page 42: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Which language is accepted?

Page 43: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nondeterministic Automata

Page 44: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nondeterministic Automata

Page 45: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Definition of computation

Page 46: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

A NFA has an equivalent DFA

NFA recognizing language 𝐴

DFA recognizing language 𝐴

Page 47: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence NFA and DFA

Theorem 1.39:

Every nondeterministic finite automaton has an equivalent deterministic finite automaton.

Corollary 1.40:

A language is regular if and only if some nondeterministic finite automaton recognizes it.

Page 48: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof: Theorem 1.39

Page 49: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof: Theorem 1.39

Page 50: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof: Theorem 1.39

Page 51: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof: Theorem 1.39 (ctd.)

Page 52: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

Consider the following NFA

What is the corresponding DFA?

Page 53: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

Resulting DFA for the example before

Page 54: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

Simplified DFA for the example before

Page 55: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Operations

Page 56: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Operations

Regular languages are closed under the union operation

Page 57: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof

Page 58: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Operations

Regular languages are closed under the concatenation operation

Page 59: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof

Page 60: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Closure of Regular Operations

Regular languages are closed under the star operation

Page 61: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof

Page 62: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Regular Expressions

Page 63: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Regular Expressions – Examples

Page 64: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Regular Expressions – Examples

Page 65: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Applications of Regular Expressions

Design of compilers

Search for strings (awk, grep, …)

Programming languages

Bioinformatics (repetitive patterns)

Page 66: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence of RE and NFA

Theorem 1.54 (page 66):

A language is regular if and only if some regular expression describes it.

Page 67: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence of RE and NFA

Theorem 1.54 (page 66):

A language is regular if and only if some regular expression describes it.

Two directions to consider

RE <-> NFA

Page 68: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence of RE and NFA

Lemma 1.55 (page 67):

If a language is described by some regular expression, then it is regular.

Lemma 1.60 (page 69):

If a language is regular, then it can be described by some regular expression.

Page 69: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof RE -> NFA

Page 70: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof RE -> NFA: Case 1

a

Page 71: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof RE -> NFA: Cases 2 & 3

Page 72: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof RE -> NFA: Case 4, 5 & 6

Page 73: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example

Let consider the expression (ab U a)*

Convert the expression into a NFA

Start from the smallest subexpression

Include the other subexpressions

Note: The states might be redundant!

Page 74: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example: (ab U a)*

a

b

ab

ab U a

(ab U a)*

a

b

a b ε

a b ε

a

ε

ε

a b ε

a

ε

ε

ε

ε

ε

Page 75: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Exercise: (ab U a)*

Let’s do it together!

Page 76: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Exercise: (a U b)*aba

a

b

ε

ε

ε

a b ε a ε a b ε a ε ε

ε

ε

Page 77: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof NFA -> RE

Lemma 1.60 (page 69):

If a language is regular, then it can be described by a regular expression.

Two steps:

Convert DFA into GNFA

Convert GNFA into regular expression

Page 78: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Generalized NFA

Labels are regular expressions

States connected in both directions

Start state only exit transitions

Accept state only incoming transitions

Only one accept state

Page 79: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Generalized NFA

qstart

qaccept

b

ab

Ø

b*

ab*

ab∪ba a*

(aa)*

aa

Page 80: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Generalized NFA

Page 81: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Generalized NFA

Page 82: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof DFA -> GNFA

Add a new start state

Connect it with 𝜀 transitions

Add a new accept state

Connect it with 𝜀 transitions

Replace multiple labels with unions

Add transitions with ∅ when not present in the original DFA

Page 83: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof DFA -> GNFA

DFA GNFA

Page 84: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Convert GNFA into RE

3 state DFA 5 state GNFA 4 state GNFA

2 state GNFA 3 state GNFA Regular

Expression

Page 85: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Convert GNFA into RE

Page 86: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Ripping of States

Replace one state with the corresponding regular expression

q2 q1

q2

qrip

q1

R4

R1

R2

R3

(R1)(R2)* (R3) ∪ R4

Page 87: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example: From DFA to GNFA

Page 88: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example: Rip State 2

Page 89: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example: Rip State 1

Page 90: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Another Example

1 2 a

a

3

b

b a

b

s

1 2 a

a

3

b

b a

b

ε

a

ε

ε

s

2

3

a

ε

ε

a

aa ∪b

ab

b

ba ∪a

bb

Rip 1: Rip 2:

GNFA: DFA:

s

3

a a(aa ∪b)*

a(aa ∪b)*ab ∪b (ba ∪a) (aa ∪b)* ∪ε

(ba ∪a) (aa ∪b)*ab ∪ bb

s a

Rip 3: (a(aa ∪b)*ab ∪b)((ba ∪a) (aa ∪b)*ab ∪ bb)*((ba ∪a) (aa ∪b)* ∪ε) ∪a(aa ∪b)*

Page 91: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence Proof

Page 92: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence Proof

Page 93: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Equivalence Proof

q2 q1

q2

qrip

q1

R4

R1

R2

R3

(R1)(R2)* (R3) ∪ R4

Page 94: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nonregular Languages

Finite automata have finite memory

Are the following language regular?

How can we prove it mathematically?

{0 1 | 0}

{ | h a s a n e q u a l n u m b e r o f 0 s a n d 1 s }

{ | h a s a n e q u a l n u m b e r o f o c c u re n c e s o f 0 1 a n d 1 0 }

n nB n

C w w

D w w

Page 95: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

The Pumping Lemma

Page 96: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof Idea

Let M be a DFA recognizing A

Let p be the numbers of states in M

Show that s can be broken into xyz

Prove the conditions holds

Page 97: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof Idea

Let M be a DFA recognizing A

Let p be the numbers of states in M

Show that s can be broken into xyz

Prove the conditions holds

Page 98: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof Idea

Let M be a DFA recognizing A

Let p be the numbers of states in M

Show that s can be broken into xyz

Prove the conditions holds

Page 99: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Proof of the Pumping Lemma

Page 100: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Use of the Pumping Lemma

Page 101: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nonregular Languages

Page 102: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nonregular Languages

Page 103: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nonregular Languages

Page 104: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Nonregular Languages

Page 105: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Example Exam Question

Page 106: Theoretical Computer Science (Bridging Course) Regular ...ais.informatik.uni-freiburg.de/teaching/ss15/bridging/pdf/03-Regular... · Theoretical Computer Science (Bridging Course)

Summary

Deterministic finite automata

Regular languages

Nondeterministic finite automata

Closure operations

Regular expressions

Nonregular languages

The pumping lemma