chapter 6 languages: finite state machines yen-liang chen dept of information management national...

29
Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Managem ent National Central University

Upload: oscar-pynes

Post on 14-Dec-2015

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Chapter 6 Languages: finite state machines

Yen-Liang Chen

Dept of Information Management

National Central University

Page 2: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

6.1 Language: the set theory of strings We use to denote a nonempty finite

set of symbols, collectively called an alphabet.

Definition 6.1. If is an alphabet and nZ+, we define the power of as follows: (1) 1=; and (2) n+1={xy x, yn}, where xy denotes the juxtaposition of x and y.

Ex 6.1

Page 3: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Empty string and sentences

Definition 6.2. 0={}, where denotes the empty string.

(1)Although , ; (2) {} since ; (3) {} because {}=1.

We refer to the elements of + or * as strings, words, sentences

Ex 6.2

Page 4: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Equal and concatenation

Definition 6.4. Two strings w1=x1x2 …xn+ and w2=y1y2

…ym+ are equal, written as w1=w2, if n=m and xi=yi for 1in.

Definition 6.5. Let w=x1x2 …xn +. The length of w, denoted as w, is n.

Definition 6.6. Let x=x1x2 …xn+ and y=y1y2…ym+ The concatenation of x and y, xy, is x1x2…xny1y2…ym.

The concatenation of x and is x=x. The concatenation of and x is x=x. Finally, the concatenation of and is . Since x=x=x, the element is the identity for the operation of concatenation.

Page 5: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Power, prefix and postfix

Definition 6.7. The power of x is defined as: x0=, x1=x, and xn+1=x xn.Ex 6.3

Definition 6.8. If x, y* and w=xy, then x is a prefix of w, and if y, then x is a proper prefix of w. Similarly, y is a suffix of w; it is a proper suffix when x.

Page 6: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Examples

Ex 6.4: Consider the string w=abbcc. What are the prefixes, proper prefixes, suffixes and proper suffixes of w?

Ex 6.6, If w=w1w2=w3w4, then (1) w1 is a prefix of w3, or w3 is a prefix of w1; and (2) w2 is a suffix of w4, or w4 is a suffix of w2.Let w=(abb)(cc)=(a)(bbcc)

Page 7: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Substring and language

Definition 6.9. If x, y, z* and w=xyz, then y is called as a substring of w. When at least one of x and z is different from , we call y a proper substring. Ex 6.7

Definition 6.10. For a given , any subset of * is called a language over . This includes , the empty language. Ex 6.8, Ex 6.9.

Page 8: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

the concatenation of languages Definition 6.11. For languages A , B in * , t

he concatenation of A and B, denoted AB, is {abaA, bB}.

Note that ABBA and ABBA. Ex 6.10

Theorem 6.1. For A, B, C *, we have (a) A{}={}A=A; (b) (AB)C=A(BC); (c) A(BC)=ABAC; (d) (BC)A=BCCA; (e) A(BC)ABAC; (f) (BC)A BACA. x, xy in A; yz in B; z in C xyz in ABAC But xyz not in A(BC)

Page 9: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Closure

Ex 6.11. A={x}, then (1) A0={}; (2) An={xn}; (3) A+={xn n1}; (4)A*={xn n0}

Ex 6.13. A={, x, x3, x4,…} and B={xn n0}. Then A2=B2 but AB.

Page 10: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Examples

Ex 6.12 A={xx, xy, yx, yy}. A* is the language of all str

ings w in * where the length of w is even. A={xx, xy, yx, yy} and B={x, y}. What is BA*? What is {x}{x, y}*? What is {x}{x, y}+? What is {x, y}*{yy}? What is {x}*{y}*? Why {x}*{y}* {x, y}*?

Page 11: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Properties

Lemma 6.1. Let A, B*. If AB, then for all nZ+, AnBn.

Theorem 6.2. For A, B *, we have (a) AAB*, (b) AB*A; (c) AB A*B*, (d) AB A+B+, (e) AA*=A*A=A+, (f) A*A*=A*=(A*)*=(A*)+=(A+)*; (g) (AB)*=(A*B*)*=(A*B*)*.

Page 12: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Examples

Ex 6.14. Let ={0, 1} and A*, where each word in A contains exactly one occurrence of the symbol 0. Then the language can be defined as: (a) 0A, (b) 1x and x1 is in A, if x is in A.

Ex 6.15. Let ={(, )} and A*, where A contains those nonempty strings of parentheses that are grammatically correct for algebraic expressions. Then the language can be defined as: (a) ( ) is in A; (b) For all x, y in A, we have

• (1) xyA, and • (2) (x)A.

Page 13: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

The reverse of string

Ex 6.16 The reverse of x= x1x2 …xn is xR= xn xn-1

…x1. We can define it recursively: (a) R=;

and (2) if x=zyn+1, where z in and y in n, then xR=(zy)R=(yR)z.

Based on this definition, we can show that for x1, x2*, we have (x1x2)R=x2

Rx1R.

Page 14: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

6.2 Finite state machine: a first course

The machine can be in only one of finitely many sates at a given time.

The machine will accept as input only a finite number of symbols, referred to as the input alphabet.

An output and a next state are determined by each combination of inputs and internal states.

The machine operates in a deterministic manner.

Page 15: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University
Page 16: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Finite state machine

A finite state machine is a five-tuple M=(S, IA, OA, v, w), where S = the set of internal states fro M; IA is the input alphabet for M; OA is the output alphabet; v: SIAS; w: SIA OA

Page 17: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6. 17

Page 18: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.18

Page 19: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.19

Page 20: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

6.3 Finite state machine: a second encounter

Ex 6.20. We want to construct a machine that recognizes each occurrence of the sequence 111 as it is encountered in an input string x*. This machine is a recognizer of the language A= {0, 1}*{111}. For example, if x=1110101111, then the output is 0010000011.

Page 21: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.21.

We want to recognize the occurrence of 111 that ends in a position that is a multiple of 3.

Page 22: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.22.

We want to recognize the occurrence of 0101 in an input string. Figure 6.12(a). We want to recognize the occurrence of 0101 in an input string but its start position is a multiple of four. Figure 6.12(b).

Page 23: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.23.

It is impossible to have a finite state machine to represent A={0i1iiZ+}. Suppose we can and let S=n1. Table 6.8 shows the state transition for string 0n+11n+1. Since S=n, there must have two states si and sj , where i< j, such that si=sj. Removing the loop from si+1 to sj, we have the table shown in Figure 6.10. This new sequence means the machine can accept the string x=0(n+1)-(j-i)1n+1. This is a contradiction.

Page 24: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University
Page 25: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.24

One-unit delay machine. If x= x1x2…xn-1xn, then the output will be 0 x1x2…xn-1.

Page 26: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Ex 6.25.

Two-unit delay machine. If x= x1x2…xn-1xn, then the output will be 0 0x1x2…xn-2.

Page 27: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Definition 6.14.

For si, sjS, sj is reachable from si if si=sj or if there is an input string x such v(si, x)=sj.

A state s is transient if v(s, x)=s for xIA* implies x=. Once leaving, never go back to itself.

A state s is sink if v(s, x)=s for xIA*. A submachine of M. Let S1S and IA1IA. If v

1=vS1IA1:S1IA1S has its range within S1. A machine is strongly connected if for any stat

es si, sjS, sj is reachable from si.

Page 28: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University
Page 29: Chapter 6 Languages: finite state machines Yen-Liang Chen Dept of Information Management National Central University

Transfer sequence

For a machine M, let si, sjS. An input string x is called a transfer sequence from si to sj if (a) v(si, x)=sj, (b) for any y with v(si, y)=sjyx.