formal languages, automata and models of computation · formal languages, automata and models of...

139
1 CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 1 - Intro Mälardalen University 2010

Upload: dinhdien

Post on 06-Sep-2018

293 views

Category:

Documents


3 download

TRANSCRIPT

1

CDT314

FABER

Formal Languages, Automata

and Models of Computation

Lecture 1 - Intro

Mälardalen University

2010

2

Content

Adminstrivia

Mathematical Preliminaries

Countable Sets (Uppräkneliga mängder)

Uncountable sets (Överuppräkneliga mängder)

3

Examiner

Gordana Dodig-Crnkovic

Lecturer

Stefan Bygde

4

http://www.idt.mdh.se/kurser/cd5560/11_10

visit home page regularly!

Course Home Page

5

How Much Work?

20 hours a week for this type of course

(norm)

4 hours lectures

2 hours exercises

14 hours own work a week!

6

Why Theory of Computation?

1. A real computer can be modelled by a

mathematical object: a theoretical computer.

2. A formal language is a set of strings, and

can represent a computational problem.

3. A formal language can be described in many

different ways that ultimately prove to be

identical.

4. Simulation: the relative power of computing

models can be based on the ease with

which one model can simulate another.

7

5. Robustness of a computational model.

6. The Church-Turing thesis: anything that can

be computed can be computed by a Turing

machine.

7. Nondeterminism: languages can be

described by the existence or nonexistence

of computational paths.

8. Unsolvability: for some computational

problems there is no corresponding

algorithm that will unerringly solve them.

8

Practical Applications

1. Efficient compilation of computer languages

2. String searching

3. Identifying the limits; Recognizing difficult problems

4. Applications to other areas:

– circuit verification

– economics and game theory (finite automata as

strategy models in decision-making);

– theoretical biology (L-systems as models of

organism growth)

– computer graphics (L-systems)

– linguistics (modeling by grammars)

9

History

• Euclid's attempt to axiomatize geometry

(Archimedes realized, during his own efforts to

define the area of a planar figure, that Euclid's

attempt had failed and that additional postulates

were needed. )

• Leibniz's dream of a symbolic logic

• de Morgan, Boole, Frege, Russell, Whitehead:

Mathematics as branch of symbolic logic!

10

1900 Hilberts program

1880 -1936 first programming languages

1931 Gödels incompleteness theorem

1936 Turing machine (showed to be equivalent with recursive functions). Commonly accepted: TM as ultimate computer

1950 automata

1956 language/automata hierarchy

11

Every mathematical truth expressed in a formal

language is consisting of

• a fixed alphabet of admissible symbols, and

• explicit rules of syntax for combining those symbols

into meaningful words and sentences

12

Turing used a Universal Turing machine (UTM) to prove an even more powerful incompleteness theorem because it destroyed not one but two of Hilbert's dreams:

1. Finding a finite list of axioms from which all

mathematical truths can be deduced

2. Solving the entscheidungsproblem, ("decision

problem“) by producing a "fully automatic procedure"

for deciding whether a given proposition (sentence) is

true or false.

Examination

• Three midterms

• Regular Languages

• Context Free Languages

• Restriction Free Languages

• OR:

• Final Exam in three parts

• If you have finished the midterm of one

time of language you don’t have to do

corresponding part of the final exam

13

Form and Resources

• Lectures

• Exercises

• Labs (optional)

• Midterms

• Webpage (many links, news etc)

• Literature:

• Swe: Lennart Salling. Formella språk,

automater och beräkningar

• Eng: Linz, An Introduction to Formal

Languages and Automata

14

15

Mathematical Preliminaries

16

• Sets

• Functions

• Relations

• Proof Techniques

• Languages, Alphabets and Strings

• Strings & String Operations

• Languages & Language Operations

17

}3,2,1{A

A set is a collection of elements

SETS

},,,{ airplanebicyclebustrainB

We write

A1

Bship

18

Set Representations

C = { a, b, c, d, e, f, g, h, i, j, k }

C = { a, b, …, k }

S = { 2, 4, 6, … }

S = { j : j > 0, and j = 2k for some k>0 }

S = { j : j is nonnegative and even }

finite set

infinite set

19

A = { 1, 2, 3, 4, 5 }

Universal Set: All possible elements

U = { 1 , … , 10 }

1 2 3

4 5

A

U

6

7

8

910

20

Set Operations

A = { 1, 2, 3 } B = { 2, 3, 4, 5}

• Union

A U B = { 1, 2, 3, 4, 5 }

• Intersection

A B = { 2, 3 }

• Difference

A - B = { 1 }

B - A = { 4, 5 }

U

A B

A-B

21

• Complement

Universal set = {1, …, 7}

A = { 1, 2, 3 } A = { 4, 5, 6, 7}

12

3

4

5

6

7

AA

A = A

22

{ even integers } = { odd integers }

02

4

6

1

3

5

7

even

odd

Integers

23

DeMorgan’s Laws

A U B = A BU

A B = A U B

U

24

Empty, Null Set:

= { }

S U = S

S =

S - = S

- S =

U = Universal Set

25

Subset

A = { 1, 2, 3} B = { 1, 2, 3, 4, 5 }

A B

U

Proper Subset: A B

U

A

B

26

Disjoint Sets

A = { 1, 2, 3 } B = { 5, 6}

A B = U

A B

27

Set Cardinality

For finite sets

A = { 2, 5, 7 }

|A| = 3

28

Powersets

A powerset is a set of sets

Powerset of S = the set of all the subsets of S

S = { a, b, c }

2S = { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }

Observation: | 2S | = 2|S| ( 8 = 23 )

29

Cartesian Product

A = { 2, 4 } B = { 2, 3, 5 }

A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 5) }

|A X B| = |A| |B|

Generalizes to more than two sets

A X B X … X Z

30

PROOF TECHNIQUES

• Proof by construction

• Proof by induction

• Proof by contradiction

31

Proof by Construction

We define a graph to be k-regular

if every node in the graph has degree k.

Theorem. For each even number n > 2 there exists

3-regular graph with n nodes.

1

2

4

3

0

5

1 2

0

3n = 4 n = 6

32

Construct a graph G = (V, E) with n > 2 nodes.

V= { 0, 1, …, n-1 }

E = { {i, i+1} for 0 i n-2} {{n-1,0}} (*)

{{i, i+n/2 for 0 i n/2 –1} (**)

The nodes of this graph can be written

consecutively around the circle.

(*) edges between adjacent pairs of nodes

(**) edges between nodes on opposite sides

Proof by Construction

END OF PROOF

33

Inductive Proof

We have statements P1, P2, P3, …

If we know

• for some k that P1, P2, …, Pk are true

• for any n k that

P1, P2, …, Pn imply Pn+1

Then

Every Pi is true

34

Proof by Induction

• Inductive basis

Find P1, P2, …, Pk which are true

• Inductive hypothesis

Let’s assume P1, P2, …, Pn are true,

for any n k

• Inductive step

Show that Pn+1 is true

35

Example

Theorem A binary tree of height n

has at most 2n leaves.

Proof

let L(i) be the number of leaves at level i

L(0) = 1

L(3) = 8

36

We want to show: L(i) 2i

• Inductive basis

L(0) = 1 (the root node)

• Inductive hypothesis

Let’s assume L(i) 2i for all i = 0, 1, …, n

• Induction step

we need to show that L(n + 1) 2n+1

37

Induction Step

hypothesis: L(n) 2n

Level

n

n+1

38

hypothesis: L(n) 2n

Level

n

n+1

L(n+1) 2 * L(n) 2 * 2n = 2n+1

Induction Step

END OF PROOF

39

Proof of induction: The cardinality of the powerset

Claim: A set of n elements

has 2n subsets

Check:

• The empty set {} has only one subset: {}.

• The set {a} (a set with exactly one element) has two

subsets: {} och {a}

40

Påstående: En mängd med n element

har 2n delmängder

Check (cont.)

• The set of two elements {a, b} has four subsets:

{}, {a}, {b} and {a,b}

• The set {a, b, c} has eight subsets:

{}, {a}, {b}, {c} och {a,b}, {a,c}, {b,c}, {a,b,c}

The claim holds for these basic cases.

41

Base Case

The simplest case is a set with no elements

(there is just one such set), which has 20 = 1

subsets.

42

Induction step

Suppose that the claim holds for all sets with k

elements, i.e., suppose that every set with k

elements has 2k subsets.

Show that the claim in this case holds also for all

sets with k+1 elements, i.e., show that every

set with k+1 elements has 2k+1 subsets.

43

Consider an arbitrary set with k+1 elements. The subsets

of this set can be divided into two groups:

Subsets which does not contain the k+1:th element: Such

a subset is a subset to the set of the k original elements,

and the cardinality of subsets to a set of k elements is

(according to the inductive hypothesis) 2k.

44

Subsets containing the k+1:th element: Such a subset can be

constructed by taking any set not containing the k+1th element and

add the k+1th element. Since there are 2k subsets without the

k+1th element (by hypothesis), it is also possible to create 2k

subsets including this element.

In total there are 2k + 2k = 2. 2k= 2k+1 subsets to the considered set.

END OF PROOF

(Exemple taken from the book: Diskret matematik och diskreta modeller,

K Eriksson, H. Gavel)

45

Proof by Contradiction

We want to prove that a statement P is true

• we assume that P is false

• then we arrive at a conclusion

that contradicts our assumptions

• therefore, statement P must be true

46

Example

Theorem is not rational

Proof

Assume by contradiction that it is rational

= n/m

n and m have no common factors

We will show that this is impossible

2

2

47

Therefore, n2 is evenn is even

n = 2 k

2 m2 = 4k2 m2 = 2k2m is even

m = 2 p

Thus, m and n have common factor 2

Contradiction!

= n/m 2 m2 = n22

END OF PROOF

48

Countable Sets

49

Infinite sets are either

Countable or Uncountable

50

Countable set

There is a one to one correspondence

between elements of the set

and natural numbers

51

We started with the natural numbers, then

• add infinitely many negative whole numbers to

get the integers,

• then add infinitely many rational fractions to get

the rationals,

• then added infinitely many irrational fractions to

get the reals.

Each infinite addition seem to increase

cardinality: |N| < |Z| < |Q| < |R|

But is this true? NO!

52

Example

Integers: ,2,2,1,1,0

The set of integers is countable

Correspondence:

Natural numbers: ,4,3,2,1,0

oddnnevennnnf 2/)1(;2/)( {

53

ExampleThe set of rational numbers

is countable

Positive

Rational numbers:,

8

7,

4

3,

2

1

54

Naive Idea

Rational numbers: ,3

1,

2

1,

1

1

Natural numbers:

Correspondence:

,3,2,1

Doesn’t work!

we will never count

numbers with nominator 2:,

3

2,

2

2,

1

2

55

Better Approach

1

1

2

1

3

1

4

1

1

2

2

2

3

2

1

3

2

3

1

4

...

...

...

...

Rows: constant numerator (täljare)

Columns: constant denominator

56

1

1

2

1

3

1

4

1

1

2

2

2

3

2

1

3

2

3

1

4

...

...

...

...

57

We proved:

the set of rational numbers is countable

by describing an enumeration procedure

58

Definition

An enumeration procedure for is an

algorithm that generates

all strings of one by one

Let be a set of strings S

S

S

59

A set is countable if there is an

enumeration procedure for it

Observation

60

Example

The set of all finite strings

is countable

},,{ cba

We will describe the enumeration procedure

Proof

61

Naive procedure:

Produce the strings in lexicographic order:

a

aaaaa

......

Doesn’t work!

Strings starting with will never be produced b

aaaa

62

Better procedure

1. Produce all strings of length 1

2. Produce all strings of length 2

3. Produce all strings of length 3

4. Produce all strings of length 4

..........

Proper Order

63

Produce strings in

Proper Order

aa

abacba

bb

bcca

cbcc

aaaaabaac......

length 2

length 3

length 1abc

64

Theorem

The set of all finite strings is countable

Proof

Find an enumeration procedure

for the set of finite strings

Any finite string can be encoded

with a binary string of 0’s and 1’s

65

Produce strings in Proper Order

length 2

length 3

length 10

1

00

01

10

11

000

001

….

0

1

2

3

4

5

6

7

….

String = program Natural number

66

PROGRAM = STRING (syntactic way)

PROGRAM = FUNCTION (semantic way)

PROGRAMstring string

PROGRAM

natural

number

n

natural

number

n

67

Uncountable Sets

68

A set is uncountable if it is not countable

Definition

69

Theorem

The set of all infinite strings is

uncountable

We assume we have

an enumeration procedure

for the set of infinite strings

Proof (by contradiction)

70

Infinite string Encoding

0w

1w

2w

...

...

...

...

00b

10b

20b

01b

11b

21b

02b

12b

22b

=

=

=

Cantor’s diagonal argument

... ... ... ...

71

Cantor’s diagonal argument

We can construct a new string

that is missing in our enumeration!w

The set of all infinite strings is

uncountable!

Conclusion

72

There are some integer functions that

that cannot be described by finite strings

(programs/algorithms).

Conclusion

An infinite string can be seen as FUNCTION (n:th

output is n:th bit in the string)

73

Theorem

Let be an infinite countable set

The powerset of is uncountableS2 S

S

Example of uncountable infinite sets

74

Proof

Since is countable, we can write S

},,,{ 321 sssS

75

Elements of the powerset have the form:

},{ 31 ss

},,,{ 10975 ssss

……

76

We encode each element of the power set

with a binary string of 0’s and 1’s

1s 2s 3s 4s

1 0 0 0}{ 1s

Powerset

element

Encoding

0 1 1 0},{ 32 ss

1 0 1 1},,{ 431 sss

...

...

...

...

77

Let’s assume (by contradiction)

that the powerset is countable.

we can enumerate

the elements of the powerset

Then:

78

1 0 0 0 0

1 1 0 0 0

1 1 0 1 0

1 1 0 0 1

Powerset

elementEncoding

1p

2p

3p

4p

...

...

...

...

...

79

Take the powerset element

whose bits are the complements

in the diagonal

80

1 0 0 0 0

1 1 0 0 0

1 1 0 1 0

1 1 0 0 1

New element: 0011

(binary complement of diagonal)

...

...

...

...

1p

2p

3p

4p

81

The new element must be some

of the powerset

ip

However, that’s impossible:

the i-th bit of must be

the complement of itself

from definition of

Contradiction!

ip

ip

82

Since we have a contradiction:

The powerset of is uncountable S2 S

END OF PROOF

83

Example Alphabet : },{ ba

The set of all finite strings:

},,,,,,,,,{},{ * aabaaabbbaabaababaS

infinite and countable

uncountable infinite

}},,,}{,{},{},{{2 aababaabaaS

1L 2L 3L 4L

The powerset of contains all languages:S

An Application: Languages

84

Finite strings (algorithms): countable

Languages (power set of strings): uncountable

There are infinitely many more languages

than finite strings.

85

There are some languages

that cannot be described by finite strings

(algorithms).

Conclusion

86

Cardinality - Kardinaltal

A Cardinal number is a measure of the size of a set. The cardinality for a finite set is simply the number of elements in the set.

Two sets has equal size if it is possible to pair the elements one by one in the two sets. That is, if there exists a bijection between the two sets.

This concept can be generalised to infinite sets. For instance, the set of positive integers and the set of integers have equal size.

On the contrary, it is not possible to pair the real numbers with the integers in this fashion. The set of real numbers is larger than the set of integers.

Cardinal numbers can be defined as in the following way: two sets have the same cardinal number if and only if they have the same size (i.e., can be paired together one and one). As an example, the cardinal number for the integers is 0 (alef-0, alef is the first letter in the hebrew alphabet).

These infinite cardinal numbers are called transfinite cardinal numbers.

87

Georg Cantor developed, in the end of the 19th century, the logical

foundation of mathematics: set theory.

Cantor introduced the notion transfinite cardinal numbers.

The simplest, ”smallest", infinity, he named 0.

This is the countable infinite sets’ (for instance, the integers) cardinal

number.

The cardinality of the set of points on a line, or the points in a plane or

field, Cantor named 1.

Are there ”larger” infinities?

More about Infinty

88

Yes! Cantor showed that the set of functions on a line

was ”even more infinite” than the points on the line,

and he called that cardinality 2.

Cantor discovered that it was possible to use

artithmetic on cardinal numbers just as with finite

numbers. But the arithmetic rules became quite

simplistic:

0 + 1= 0 0 + 0 = 0 0 · 0 = 0.

89

However, with powers something happened:

0 0 ( 0 to the power of 0) = 1.

In general:

2 n (2 to the power of n) = n+1

This implies that there are infinitly many infinities, in

strictly increasing order.

90

But is it really certain that there is no cardinality in between the countable infinity and the points on the line? Cantor tried to prove the so-called continuum hypothesis.

Cantor: two different infinities 0 and 1

http://www.ii.com/math/ch/#cardinals

Continuum Hypothesis: 0 < 1 = 2 0

See also:

http://www.nyteknik.se/pub/ipsart.asp?art_id=26484

CD5560CD5560

FABER

Formal Languages, Automata and Models of Computationand Models of Computation

Lecture 2

Mälardalen University2010

1

ContentLanguages, Alphabets and Stringsg g , p g

Strings & String OperationsLanguages & Language OperationsLanguages & Language Operations

Regular ExpressionsFinite Automata, FADeterministic Finite Automata, DFA

2

Languages,Languages, Alphabets and

Strings

3

Languages

A language is a set of strings

d fi d l h bA String is a sequence of letters

defined over an alphabet:

{ }{ }zcba ,,,, K=Σ

An alphabet is a set of symbols

4

Alphabets and Strings

We will use small alphabets: { }ba,=Σp

Strings

{ },

ba

Strings

bbbaaavabu =ab

abbawbbbaaav==

b babba

abbaw =

baaabbbaabababa

5baaabbbaaba

Operations on StringsOperations on Strings

6

String Operations

naaaw L21= x = abbam

nbbbv L21

21= y = bbbaaa

x abba

Concatenation (sammanfogning)

bbbaaawv =

Concatenation (sammanfogning)

mn bbbaaawv LL 2121=

bb bbbxy = abbabbbaaa

7

Reverse (reversering)Reverse (reversering)

naaaw L21= ababaaabbb

12aaaw nR L= bbbaaababa12n bbbaaababa

Example:Longest odd length palindrome in a natural language:g g p g g

saippuakauppias (Finnish: soap sailsman)

8

(Finnish: soap sailsman)

String LengthString Length

naaaw L21=nw =Length: nw =Length:

Examples:

4=abbaExamples:

2=aa1=a

9

Recursive Definition of LengthRecursive Definition of Length

F l tt 1For any letter: 1=a

For any string : 1+= wwawa

Example: 1+= abbabba

11111 +++=++= aab41111 =+++=

10

Length of Concatenation

vuuv +=

3== uaabuExample:

53,== vabaabv

uaabuExample:

5, vabaabv

8538== aababaabuv

853 =+=+= vuuv

11

Proof of Concatenation Length

Claim: vuuv +=Claim: vuuv +=

Proof: By induction on the length v

Induction basis: 1=vFrom definition of length:

vuuuv +=+= 1 vuuuv +=+= 1

12

I d i h h i +Inductive hypothesis:

vuuv +=

f nv ≤for

Inductive step: we will prove

vuuv +=

1+= nvfor

13

Inductive StepWrite , wherewav = 1, == anw

From definition of length: 1+== uwuwauv1+= wwa

From inductive hypothesis: wuuw +=

1Thus: vuwauwuuv +=+=++= 1

14END OF PROOF

Empty StringEmpty String

A string with no letters: (Also denoted as ε)

λ( )

Observations: 0λObservations: 0

λλ

λ

==

=

wwwλλ

∅== abbaabbaabba

}{{} λ≠=∅

15

Substring (delsträng)Substring of a string:

a subsequence of consecutive charactersa subsequence of consecutive characters

String SubstringString Substring

ababbab

babbaabbab

bbabb

bb babbab

16bbababbab

Prefix and Suffix

Suffixesabbab

Prefixes Suffixes

λ abbab uvw =Prefixes

bbabfi

ab babprefix

suffixabb ab

suffix

abbaλb

17abbab λ

Repetitionn www... w =

n (String repeated n times)w

Example: ( ) abbaabbaabba =2p

Definition:

( )

λ0Definition: λ=0w

( )0( ) λ=0abba

18

Th (Kl * t ) O tiThe (Kleene* star) Operation

the set of all possible strings from alphabet *Σ Σ

{ }bΣ { }{ }*

,aabaaabbbaabaaba

baλ=Σ

=Σ{ }K,,,,,,,,,* aabaaabbbaabaabaλ=Σ

[* Kleene is pronounced "clay-knee“]

19http://en.wikipedia.org/wiki/Kleene_star

The + (Kleene plus) Operation( p ) p

: the set of all possible strings from the+Σ galphabet except Σ λ

{ },ba=Σ{ }K,,,,,,,,,* aabaaabbbaabaabaλ=Σ

λ−Σ=Σ+ *

{ }K,,,,,,,, aabaaabbbaabaaba=Σ+

20

Example

{ }, fyoj=Σ , usch

{}

* λ, oj, fy, usch, ojoj, =Σ}Kfyfy,uschusch, ojfy, ojusch

λ−Σ=Σ+ *{

}oj, fy, usch, ojoj, fyfy,uschusch,

f h=Σ+

}Kojfy, ojusch

21

Operations on LanguagesOperations on Languages

22

LanguageA language is any subset of *Σ

Example: { },ba=Σ { }{ }K,,,,,,,,*

,aaabbbaabaabaλ=Σ

Languages:{ }λ{ }{ }aabaaaλ{ }

}{,,

aaaaaaabaababaabbaaabaaa

λ23

},,,,,{ aaaaaaabaababaabbaλ

Example

An infinite language }0:{ ≥= nbaL nnAn infinite language }0:{ ≥= nbaL

λ

Labb∉ab L∈

bbbbbaabbaaaaabbbbb

24

Operations on LanguagesThe usual set operations

{ } { }{ } { } bbbbb

aaaabbabaabbbaaaaaba}{

},,,{,,, =∪{ } { }{ } { } { }aaaaaabbbaaaaaba

ababbbaaaaaba,,,,

}{,,,=−=∩

{ } { } { },,,,

LL −Σ= *Complement:

{ }K,,,,,,,,,* aabaaabbbaabaabaλ=ΣLL Σp

{ } { }K,,,,,,, aaabbabaabbaa λ=25

Reverse

}:{ LwwL RR ∈=Definition:

}:{ LwwL ∈=

Examples:

{ } { }ababbaabababaaabab R ,,,, =Examples:

{ } { }

}0:{ ≥= nbaL nn

}0:{}{

≥= nabL nnR }0:{ ≥nabL

26

ConcatenationCo cate at o

Definition: { }2121 ,: LyLxxyLL ∈∈=

Example

{ }{ }aabbaaba ,,,Example

{ }{ }{ }baaabababaaabbaaaab

aabbaaba,,,,,

,,,= { },,,,,

27

RepeatDefinition: 321Ln LLLL =

n

{ } { }{ }{ }bbbb 3{ } { }{ }{ }{ }bbbbbababbaaabbabaaabaaa

babababa ,,,, 3 ==

Special case:

{ }bbbbbababbaaabbabaaabaaa ,,,,,,,Special case: { }λ=0L

{ } { }λ=0,, aaabbaa28

Example

nn }0:{ ≥= nbaL nn

}0{2 bb mmnn }0,:{2 ≥= mnbabaL mmnn

2Lbb bbb 2Laabbaaabbb∈

29

Star-Closure (Kleene *)

Definition:Definition:L210* LLLL ∪∪=

Example:Example:

⎪⎫

⎪⎧ ,λ

{ } ⎪⎪⎬

⎪⎪⎨=

,,*,

bbbbbbbbbba

bba{ }

⎪⎪⎭

⎪⎪⎩

⎨ ,,,,abbbbabbaaabbaaa

bbbbbbaabbaa

30

⎪⎭⎪⎩ K,,,, abbbbabbaaabbaaa

Positive ClosureDefinition

+ 21

{ }λ−= *LL=+ 21 LLL UU

{ }λ= *L

⎪⎫

⎪⎧ ,,bba

{ }⎪

⎪⎬

⎪⎨=

+ ,,,,, bbbbbbaabbaabba⎪⎭⎪⎩ K,,,, abbbbabbaaabbaaa

31

Regular ExpressionsRegular Expressions

32

Regular Expressions: R i D fi itiRecursive Definition

λ∅ αλ,,∅Primitive regular expressions:

2rGiven regular expressions and1r

21 rr +2rGiven regular expressions and 1r

21

21rrrr

⋅+

1

21*r

are Regular Expressions

( )1r33

Examples

( ) )(* ∅+⋅⋅+ ccbaA regular expression: ( ) )( ∅+⋅⋅+ ccbaA regular expression:

( )++ baNot a regular expression:

34

Building Regular Expressions

{ }cba=ΣBuilding Regular Expressions

Zero or more

{ }cba ,,=Σ

Zero or more. a* means "zero or more a's."

To say "zero or more ab's," that is, y , ,{, ab, abab, ababab, ...}, you need to say (ab)*.

ab* denotes {a, ab, abb, abbb, abbbb, ...}.

35

Building Regular Expressions{ }cba ,,=Σ

Building Regular Expressions

One or more

{ },,

One or more. Since a* means "zero or more a's", you can use aa* (or equivalently, a*a) to mean "one or more a's.“

Similarly, to describe "one or more ab's," that is, {ab abab ababab } you can use ab(ab)*{ab, abab, ababab, ...}, you can use ab(ab) .

36

Building Regular Expressions

{ }cba ,,=Σ

Any string at all. To describe any string at all (with = {a b c}) you canTo describe any string at all (with = {a, b, c}), you can use (a+b+c)*.

Any nonempty string.This can be written as any character from followed by any string at all: (a+b+c)(a+b+c)*.

37

Building Regular Expressions{ }cba ,,=Σ

g g p

Any string not containing....To describe any string at all that doesn't contain an aTo describe any string at all that doesn t contain an a (with = {a, b, c}), you can use (b+c)*.

Any string containing exactly one...To describe any string that contains exactly one a, put y g y , p"any string not containing an a," on either side of the a, like this: (b+c)*a(b+c)*. , ( ) ( )

38

Languages of Regular Expressions

( )( )rL rlanguage of regular expression

Example

( ) { },...,,,,,*)( bcaabcaabcacbaL λ=⋅+

39

DefinitionDefinition

For primitive regular expressions:

( )L ∅∅( )L ∅=∅

( ) { }L = λλ( ) { }

( ) { }aaL =

40

Definition (continued)e t o (co t ued)

For regular expressions and1r 2r

( ) ( ) ( )2121 rLrLrrL ∪=+

( ) ( ) ( )( ) ( ) ( )2121 rLrLrrL =⋅

( ) ( )( )( ) ( )( )** 11 rLrL =

( )( ) ( )( )( ) ( )11 rLrL =

41

Example( ) *b+( ) *aba ⋅+Regular expression:

( )( )*abaL ⋅+ ( )( ) ( )*aLbaL +=

( ) ( )( ) ( )*aLbaL +=

( ) ( )( ) ( )( )*LbLL( ) ( )( ) ( )( )*aLbLaL ∪=

{ } { }( ) { }( )*b∪{ } { }( ) { }( )*aba ∪=

{ }{ }aaaaaaba λ= { }{ },...,,,, aaaaaaba λ=

{ }baababaaaaaa=42

{ },...,,,...,,, baababaaaaaa=

Example

Regular expression

( ) ( )bbabar ++= *

( ) { }bbbbaabbaabbarL =( ) { },...,,,,, bbbbaabbaabbarL =

43

Example

Regular expressionRegular expression

( ) ( ) bbbaar **= ( ) ( ) bbbaar =

( ) }0,:{ 22 ≥= mnbbarL mn( ) },{

44

Examplep

{ }1,0=Σ { },

)(rL = { all strings with at leasttwo consecutive 0 }two consecutive 0 }

Regular expression

*)10(00*)10( *)10(00*)10( ++=r

45

Example

{ }1,0=Σ

)(rL = { all strings without

{ }1,0Σ

)(rL = { all strings withouttwo consecutive 0 }

Regular expression

)0(*)011(1 λ++=r(consists of repeating 1’s and 01’s).

46

ExampleL = { all strings without

t ti 0 }two consecutive 0 }

Equivalent solution:

)0(*1)0(**)011*1(2 λλ +++=r

Equivalent solution:

)0(1)0()0111(2 λλ +++=r

( d 00 i i f h 0 h b 1(In order not to get 00 in a string, after each 0 there must be an 1, which means that strings of the form 1....101....1are repeated That is the first parenthesis To take into accountare repeated. That is the first parenthesis. To take into account strings that end with 0, and those consisting of 1’s solely, the rest of the expression is added.)

47

p )

Equivalent Regular Expressions

Definition:

Regular expressions andr rRegular expressions and1r 2r

)()( 21 rLrL =are equivalent if

48

Example

L = { all strings withouttwo consecutive 0 }

)(*)(**)*( λλ)0(*)011(1 λ++=r

)0(*1)0(**)011*1(2 λλ +++=r

LrLrL == )()( 21 1r 2randLrLrL )()( 21 1 2are equivalentregular expressions

49regular expressions.