You are on page 1of 25

26/09/2011

Chng 1 T ng quan

Automat l g?
Automat theory is the study of abstract computing devices, or machines L thuyt automat l l thuyt lm nn tng cho vic hiu cc m hnh t ng m in hnh nht l cc my tnh s ngy nay S lin quan gia l thuyt automat v ngn ng hnh thc

L thuy t automat v

ng d ng

(AUTOMATA THEORY AND ITS APPLICATIONS)

Ging vin: TS. V c Lung Email: lungvd@uit.edu.vn

Khoa KTMT

V c Lung

T i sao h c automat?
Thm d kin ti mt s trng H danh ting nh trng Stanford vi nhng sinh vin sau tt nghip 5 nm: Kin thc mn hc no c s dng nhiu nht trong cng vic? Ngoi cc mn c bn th mn ny c nh gi cao trong cc mn hc t chn

Cc

ng d ng ch y u

Xy dng ngn ng lp trnh v cc trnh dch


B phn tch t vng v c php trong cc trnh bin dch X l chui trong ngn ng lp trnh v ngn ng t nhin Dch t ngn ng ny sang ngn ng khc: t ngn ng cp cao sang cp thp, t ting Anh qua ting Php,

Thit k cc h thng s
Mch tun t Mch m My trng thi

Phn mm khai ph d liu web, doc, chng o vn Cc giao thc truyn thng, truyn tin mt

Cc ki n th c yu c u
t nn tng trn l thuyt tp hp L thuyt th K thut chng minh qui np,chng minh phn chng

Yu c u v tnh i m
Bi tp kim tra trn lp: 20%
Bi kim tra 1: 10% Bi kim tra 2: 10%

Thi gia k: 20% Bo co seminar: 30%


Thnh lp cc nhm 2-3 sinh vin Bui hc 2-4 ng k ti Bo co vo 2 tun cui ca HK im: Bo co + trnh by

Thi cui k: 30%

26/09/2011

Ti li u tham kh o
H Vn Qun. L thuyt automat v ngn ng hnh thc. c thm:
Hopcroft, Motwani, Ullman. Automata Theory, Languages, and Computation 2nd Edition. Bakhadyr Khoussainov. Automata theory and its application. Free reading: http://books.google.com (Ai tm c phin bn y share + bonus)

N I DUNG
B tc ton Ngn ng v biu din ngn ng Automat hu hn v biu thc chnh qui Vn phm chnh qui v cc tnh cht Vn phm phi ng cnh Auomat y xung My turing ng dng thit k s

Ti liu hc tp:
https://sites.google.com/site/vdlung/automat

Khoa KTMT

V c Lung

B tc ton

T p h p (Set)

N i dung: T ph p Quan h Php ch ng minh quy n p th v cy

V d :

Ph n t

D = {Mon, Tue, Wed, Thu, Fri, Sat, Sun}


T p cc i t ng r i r c Khng trng l p

nh ngha: T p h p l t p cc i t ng khng c s l p l i
9 10

K hi u t p h p

M t s d ng t p h p c bi t

T p r ng: Li t k ph n t : D = {1, 2, 3} c t tnh ch t c trng: D = { x | x l m t ngy trong tu n }


K hi u: ho c { }

T p h p con:
K hi u: A B (Ng c l i: A B )

{ 1, 2, 4 } { 1, 2, 3, 4, 5 } { 2, 4, 6 } { 1, 2, 3, 4, 5 }

11

12

26/09/2011

M t s d ng t p h p c bi t

Cc php ton trn t p h p

T p h p b ng nhau:
K hi u: A = B (Ng c l i: A B ) { 1, 2 } = { 2, 1 } nhng { 1, 2, 3 } { 2, 1 }

Ph n b (complement):
A = { x | x A }

Php h p (Union):
A B = { x | x A ho c x B }

T p ly th a:
K hi u: 2A A = { 1, 2, 3 } th = {, {1}, {2}, {3}, {1, 2}, {2, 3}, {3, 1}, {1, 2, 3} } 2A

Php giao (intersection):


A B = { x | x A v x B }

13

14

Cc php ton trn t p h p

Cc php ton trn t p h p

Php tr (difference):
A \ B = { x | x A nhng x B }

V d : cho A = {1, 2} v B = {2, 3}


A B = { 1, 2, 3 } AB = { 2 } A\ B = {1 } A x B = { (1,2 ), (1, 3), (2, 2), (2, 3) } 2A = { , {1}, {2}, {1, 2} }

Tch cc:
A x B = { (a,b) | a A v b B }

15

16

Quan h

Quan h

V d : cho S = {0, 1, 2, 3}
S Quan h th t nh hn L = { (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3) } Quan h b ng
mi n xc nh (domain) mi n gi tr (range)

R ( A B ) = aRb

E = { (0, 0), (1, 1), (2, 2), (3, 3) } Quan h ch n l


P = { (0, 0), (1, 1), (2, 2), (3, 3), (0, 2), (2, 0), (1, 3), (3, 1)}

17

18

26/09/2011

Cc tnh ch t c a quan h

Quan h tng ng Quan h tng ng = Quan h ph n x , i x ng v b c c u

Ph n x (reflexive): n u aRa l ng v i aS i x ng (symmetric): n u aRb th bRa B c c u (transitive): n u aRb v bRc th aRc V d : v d trn
L khng l quan h ph n x trn S v (0,0)L hay i x ng trn S v (0,1)L nhng (1,0) L E v P mang tnh ph n x , i x ng v b c c u
19

V d :
E v P l quan h tng ng L khng l quan h tng ng

20

L p tng ng N u R l quan h tng ng trn S th R phn ho ch S thnh cc l p tng ng khng r ng v r i nhau: S = S1 S2

Bao ng c a quan h P-closure = quan h nh nh t th a cc tnh ch t trong P Bao ng b c c u R+: N u (a,b) R th (a,b) R+ N u (a,b) R+ v (b,c) R th (a,c) R+ Khng cn g thm trong R+ Bao ng ph n x v b c c u R*: R* = R+ { (a, a) a S }
21 22

Tnh ch t:
Si Sj = N u a, b cng thu c Si th aRb ng N u a Si v b Sj th aRb sai V d : P c 2 l p tng ng {0, 2} v {1, 3}

Bao ng c a quan h

Nguyn l quy n p B c 1 (c s quy n p): ch ng minh P(0) B c 2 (gi thi t quy n p): gi s P(n-1) B c 3 (quy n p): P(n - 1) P(n), n 1.

V d : R = { (1, 2), (2, 2), (2, 3) } trn S = {1, 2, 3}


R+ = { (1, 2), (2, 2), (2, 3), (1, 3) } R* = { (1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3) }

V d : ch ng minh

i
i =0

n ( n + 1)(2n + 1) 6

23

24

26/09/2011

th c h ng (Directed graph)
th G = (V, E) V : tp cc nh (nt) E : tp cc cung c hng v w

Cy (Trees) Cy: l th c h ng 1 nt g c Nt trung gian (nt trong) Nt l: khng d n ra nt con Th t duy t trn cy: tri ph i

V d : th G = (V, E) V = { 1, 2, 3, 4 } E={iji<j}

25

26

Cy minh h a m t cu n

CU H I V BI T P CHNG I

Khoa KTMT

V c Lung

27

Khoa KTMT

V c Lung

28

26/09/2011

N i dung:

Chng 02 Ngn ng di n ngn ng

v bi u

Khi ni m ngn ng Cch bi u di n ngn ng Vn ph m

Ging vin: TS. V c Lung Email: lungvd@uit.edu.vn

S phn l p vn ph m

Khoa KTMT

V c Lung

K hi u, b ch

ci, chu i
|abca| = 4

Chu i
di chu i: l s cc k hi u t o thnh chu i Chu i r ng: k hi u , l chu i khng c k hi u no
|| = 0

K hi u (symbol): l m t th c th tr u t ng m ta
khng nh ngha c m t cch hnh th c Cc ch ci a, b, c ho c cc s 1, 2, 3

B ch

ci (alphabet):
, a, b, c, , z}

L m t t p (khng r ng) cc k hi u no B ch ci Latin {A, B, C, ch ci L m t dy h u h n cc k hi u c a M t k hi u c th xu t hi n nhi u l n


3

Chu i con: chu i v l chu i con c a w n u v c t o


b i cc k hi u li n k nhau trong chu i w. Chu i 10 l chu i con c a chu i 010001

Chu i (string): m t chu i (hay m t t - word) trn b

Chu i ti n t : l chu i con b t k n m Chu i h u t : l chu i con b t k n m


Chu i abc c cc ti n t a, ab, abc

u chu i cu i chu i

Chu i 0246 c cc h u t 6, 46, 246, 0246

Chu i
Chu i n i k t (ghp): l chu i c t o thnh b ng
cch vi t chu i th nh t, sau vi t chu i th hai, ... N i ghp c a chu i Long v Int l LongInt N i k t c a chu i r ng: w = w = w (v i m i w) l n v c a php n i k t

Ngn ng

(Languages)

T ng quan v ngn ng :
Ngn ng t nhin: ti ng Vi t, ti ng Anh, Ngn ng l p trnh: Pascal, C/C++, L t p h p cc cu theo c u trc quy nh no Bi u th cc ngh, cc s ki n hay cc khi ni m Bao g m m t t p cc k hi u v cc quy t c v n d ng chng

Chu i o ng c: c a chu i w, k hi u wR, l chu i


w c vi t theo th t ng c l i. w = abcd wR = dcba R =

26/09/2011

Ngn ng

(Languages)

Cc php ton trn ngn ng


Php bao ng (closure): thnh l p m t ngn ng
b ng cch k t n i cc chu i (v i s l ng b t k) cc chu i c a m t ngn ng L cho tr c Bao ng Kleene: L* = L
i i

M t ngn ng (hnh th c) L l m t t p h p cc chu i c a cc k hi u t m t b ch ci no . * v

+ : * : t p h p t t c cc chu i con, k c chu i r ng , sinh ra t b ch ci . + : t p h p t t c cc chu i con, ngo i tr chu i r ng , sinh ra t b ch ci . + = * - {}

i= Bao ng dng (positive):0 L+ = L i=1

Ch : L+ = L*L = LL* V d : cho L = {a, ba}



7

L* = L+ {}

* = + + {}

= {0,1} th: * = {, 0, 1, 00, 01, 10, 11, 000, } + = {0, 1, 00, 01, 10, 11, 000, } Chu i 010210 * v c s 2

L2 = {aa, aba, baa, baba} L3 = {aaa, aaba, abaa, ababa, baaa,baaba, babaa, bababa} L* = {, a, ba, aa, aba, baa, baba, aaa, aaba, }
8

Bi u di n ngn ng
Li t k chu i: L = {aa, aba, baa, baba} M t c i m ch y u: L = {ai | i l s nguyn t } Bi u di n thng qua vn ph m v automata: Cho php bi u di n ngn ng m t cch t ng qut Vn ph m: c ch s n sinh ra m i chu i c a ngn ng Automata: c ch cho php on nh n m t chu i b t k c thu c m t ngn ng L hay khng

nh ngha vn ph m
Theo t i n, vn ph m l m t t p cc quy t c v c u t o t v cc quy t c v cch th c lin k t t l i thnh cu nh ngha: vn ph m c u trc G l m t h th ng g m 4 thnh ph n G(V, T, P, S) V (variables): t p cc bi n (VD: A, B, C, )

T (terminal): t p cc k hi u k t thc (V T = ) (VD: a, b, c, , w, x, y, ...) P (production): t p lu t sinh, d ng v i , (V T)* S (start): k hi u b t u (S V)


9 10

nh ngha vn ph m
D n xu t tr c ti p: n u l m t lu t sinh th D n xu t gin ti p: n u cc chu i 1, 2, ...., m * v 1 2, 2 3, ..., m-1 m th m c th c d n xu t t 1 1 * m Ngn ng L sinh b i vn ph m G: L (G) = {w | w T * v S * w} Vn ph m tng ng: l 2 vn ph m sinh ra cng m t ngn ng (G1 tng ng G2 L(G1)=L(G2) )
11

Phn c p Chomsky trn vn ph m


B ng cch p t m t s quy t c h n ch trn cc lu t sinh, Noam Chomsky ngh m t h th ng phn lo i cc vn ph m d a vo tnh ch t c a cc lu t sinh. Lo i 0 Vn ph m khng h n ch (Unrestricted Grammar): khng c n th a i u ki n rng bu c no trn t p cc lu t sinh Lo i 1 Vn ph m c m ng c nh (CSG Context Sensitive Grammar): n u vn ph m G c cc lu t sinh d ng v || || Lo i 2 Vn ph m phi ng c nh (CFG Context-Free Grammar): c lu t sinh d ng A v i A l m t bi n n v l chu i cc k hi u thu c (V T)*
12

26/09/2011

Phn c p Chomsky trn vn ph m


Lo i 3 Vn ph m chnh quy (RG Regular Grammar): c m i lu t sinh d ng tuy n tnh ph i ho c tuy n tnh tri. Tuy n tnh ph i: A wB ho c A w Tuy n tnh tri: A Bw ho c A w V i A, B l cc bi n n, w l chu i k hi u k t thc (c th l r ng) N u k hi u L0, L1, L2, L3 l cc ngn ng c sinh ra b i vn ph m lo i 0, 1, 2, 3, ta c: L3 L2 L1 L0
13 Khoa KTMT

CU H I V BI T P CHNG 02

V c Lung

14

26/09/2011

Chng 3:

Automata h u h n & Bi u th c chnh quy

Khi ni m Automat h u h n (Finite Automata)


FA l tp cc trng thi hu hn vi cc qui tc chuyn i t mt trng thi ny sang trng thi khc. ng dng nguyn thy ca FA l mch chuyn trng thi tun t (mch tun t), trong trng thi l ci t mt tp cc bits trong cc flip-flop. Ngy nay c ng dng rng ri. Biu din n gin nht l th chuyn trng thi hay s dch

N i dung:
Khi ni m DFA & NFA S tng ng gi a DFA & NFA Bi u th c chnh quy Cc tnh ch t c a t p chnh quy

VD 1: Nh n bi t chu i k t thc ing


Bi u di n FA b ng s d ch
Not i or g Not i Not i or n i

Chuy n Automata thnh Code


In C/C++, to on code cho tng trng thi. Code s c dng:
1. 2. 3. c k t nhp. Tnh ton ra quyt nh trng thi k. Nhy n on code ca trng thi k .

nothing

Saw i

Saw in

Saw ing

Start

2: /* State Saw i */ c = getNextInput(); if (c == n) goto 3; else if (c == i) goto 2; else goto 1; 3: /* State Saw in */ . . .
3 4

Bi u di n FA b ng b ng truy n
Th d: Cho NFA: Tp trng thi S = {0, 1, 2, 3}; = {a, b}; Trng thi bt u So = 0; Tp trng thi kt thc F = {3}.

Phn lo i FA
DFA
Deterministic Finite Automata

FA
B ng truy n
NFA nh n d ng (a|b)*abb

(Finite Automata)

NFA
Nondeterministic Finite Automata

Bi u th c chnh quy
Khoa KTMT - UIT TS. V c Lung 5 6

26/09/2011

Automata h u h n n nh (DFA)
V d 2:
1 Start c

M r ng hm chuy n tr ng thi
1. (q, ) = q 2. (q, wa) = ( (q,w), a) v i w, a Ngn ng c ch p nh n: L(M) = { x | ( q0, x ) F } V d : chu i nh p w=110101
Ngn ng chnh quy (q0, 1) = q1 (q0, 11) = (q1, 1) = q0 (q0, 110) = (q1, 10) = (q0, 0) = q2 (q0, 1101) = (q1, 101) = (q0, 01) = (q2, 1) = q3 (q0, 11010) = = (q3, 0) = q1 (q0, 110101) = = (q1, 1) = q0 F
8

Input
1 q1 0 b 0 q3

0 1 1 0 0 1 0 1
B i u khi n

q0
0

Tr ng thi b t u Tr ng thi k t thc x Php chuy n trn nhn x

0 q2

1 d

M=(Q, , , q0, F)

Q : t p h u h n cc tr ng thi (p, q ) : b ch ci nh p (a, b ; w, x, y ) : hm chuy n, nh x : Q x Q q0 Q : tr ng thi b t u. F Q : t p cc tr ng thi k t thc. 7

Gi i thu t hnh th c
M c ch: ki m tra m t chu i nh p x c thu c ngn ng L(M) c ch p nh n b i automata M. Input: chu i nh p x$ Output: cu tr l i YES ho c NO Gi i thu t:
q := q0 ; c := nextchar ; {c l k hi u nh p c c ti p theo} While c <> $ do begin q := (q, c); c := nextchar ; end If (q in F) then write("YES") else write("NO");
9

Automata h u h n khng n nh (NFA)


V d : cho automata M (hnh v ) v xt chu i nh p 01001
1 0 Start q0 1 q1 1 0 q3 0 1 0 q4

q0

0 0

q0

1 1

q0

0 0

q0

0 0

q0

1 1

q0

q3
q2 0 1

q1

q3
0

q3

q1

q4

q4

Nh n xt: ng v i m t tr ng thi v m t k t nh p, c th c khng, m t ho c nhi u php chuy n tr ng thi. DFA l m t tr ng h p c bi t c a NFA

10

nh ngha NFA
Q : t p h u h n cc tr ng thi. : b ch ci nh p. M=(Q, , , q0, F) : hm chuy n nh x Q x 2Q q0 Q : tr ng thi b t u. F Q : t p cc tr ng thi k t thc. Ch : khi ni m (q, a) l t p h p t t c cc tr ng thi p sao cho c php chuy n t tr ng thi q trn nhn a. Hm chuy n tr ng thi m r ng: (q, ) = {q} (q, wa) = { p | c m t tr ng thi r trong (q, w) m p(r, a) } = ( (q,w), a) (P, w) = qP (q, w) v i P Q
11

V d v NFA
V d : xt chu i nh p w=01001 v NFA cho
M( {q0, q1, q2, q3, q4}, {0, 1}, , q0, {q2, q4} )

trn

Tr ng thi q0 q1 q2 q3 q4 0 {q0,q3} {q2} {q4} {q4}

Input 1 {q0,q1} {q2} {q2} {q4}

(q0, 0) = {q0,q3} (q0, 01) = ( (q0, 0), 1) = ({q0, q3},1) = (q0, 1) (q3, 1) = {q0, q1} (q0, 010) = {q0, q3} (q0, 0100) = {q0, q3, q4} (q0, 01001) = {q0, q1, q4}

Do q4 F nn w=01001 L(M)
12

26/09/2011

NFA v i - d ch chuy n (NFA)


V d : xy d ng NFA ch p nh n chu i 0*1*2*
0 Start q0 0, 1 1 q1 0, 1, 2 1, 2 2 q2

S tng ng gi a DFA & NFA


nh l 1: N u L l t p c ch p nh n b i m t NFA th t n t i m t DFA ch p nh n L. Gi s NFA M={Q, , , q0, F} ch p nh n L Ta xy d ng DFA M={Q, , , q0, F} ch p nh n L

0 Start q0

1 q1

2 q2

nh ngha: NFA M(Q, , , q0, F)


Q = 2Q . M t ph n t trong Q c k hi u l [q0, q1, , qi] v i q0, q1, , qi Q q0 = [q0] F l t p h p cc tr ng thi c a Q c ch a t nh t m t tr ng thi k t thc trong t p F c a M Hm chuy n ([q1, q2,..., qi], a) = [p1, p2,..., pj] n u v ch n u ({q1, q2,..., qi }, a) = {p1, p2,..., pj}

: hm chuy n nh x Q x ( {}) 2Q Khi ni m (q, a) l t p h p cc tr ng thi p sao cho c php chuy n nhn a t q t i p, v i a ( {})
13 14

V d v s tng ng gi a DFA & NFA


V d : NFA M ({q0, q1}, {0, 1}, , q0, {q1}) v i hm chuy n (q0,0) = {q0, q1}, (q0,1) = {q1}, (q1,0) = , (q1,1) = {q0, q1} Ta s xy d ng DFA tng ng M (Q, {0, 1}, , [q0], F)
Q = {, [q0], [q1], [q0, q1]} F = {[q1], [q0, q1]} Hm chuy n (, 0) = (, 1) = ([q0], 0) = [q0, q1] ([q0], 1) = [q1] ([q1], 0) = ([q1], 1) = [q0, q1] ([q0, q1], 0) = [q0, q1] ([q0, q1], 1) = [q0, q1]

Chuy n NFA thnh DFA


Xy dng DFA tng ng cho NFA sau (NFA nhn dng (a|b)*abb).

Xem VD 2.12, 2.13 trong [1]


15 16

Tm cc tr ng thi cho DFA


Cc bc thc hin:
Tnh -closure(0)={0,1,2,4,7} = A //Nhng trng thi trn NFA c t 0 i m c s truyn rng Tnh -closure(Move(A,a)) = -closure(3,8) = {1,2,3,4,6,7,8}=B Trong : Move(A,a) = (3,8) Tnh -closure(Move(A,b)) = -closure(5) = {1,2,4,5,6,7}=C Lp li cc bc ny cho tt c cc tp B,C, cho n khi khng cn tp no

Xy d ng DFA t
B ng hm chuy n
Tr ng thi A B C D E K hi u nh p a B B B B B b C D C E C Start A

NFA()

b C b a a a B b a a b D E

Kt qu:
A = {0,1,2,4,7} B = {1,2,3,4,6,7,8} C = {1,2,4,5,6,7} D = {1,2,4,5,6,7,9} E = {1,2,4,5,6,7,10}
17

K hi u b t u: q0 = A ( -CLOSURE(q0) ) T p tr ng thi k t thc: F = {E} (v trong E c ch a tr ng thi 10 F)


18

26/09/2011

S tng ng gi a NFA v NFA


nh l 2: n u L c ch p nh n b i m t NFA c -d ch chuy n th L cng c ch p nh n b i m t NFA khng c -d ch chuy n. Gi s : NFA M(Q, , , q0, F) ch p nh n L Ta xy d ng: NFA M={Q, , , q0, F} V i:
F = F q0 n u -CLOSURE(q0) ch a m t tr ng thi thu c F. Ng c l i, F = F (q, a) = *(q, a)

S tng ng gi a NFA v NFA


0 1 q1 2 q2

V d :

Start

q0

Xy d ng NFA tng ng M={Q, , , q0, F}


Q = {q0, q1, q2} = {0, 1, 2} Tr ng thi b t u: q0 F = {q0, q2} Hm chuy n

Tr ng thi 0
2

Inputs 1 2 {q0, q1, q2} {q1, q2} {q2} {q1, q2} {q2} {q2}

0 Start q0 0, 1

1 q1 0, 1, 2 1, 2

q0 q1 q2

q2

19

20

Bi u th c chnh quy (RE)


Vi v d :
00 : l bi u th c chnh quy bi u di n t p {00} (0+1)* : t p h p t t c cc chu i s 0 v s 1, k c chu i r ng = {, 0, 1, 00, 01, 10, 11, 010, 011, 0010 ... } (0+1)*011 : k hi u cho t t c cc chu i 0, 1 t n cng b i 011 = {011, 0011, 1011, 00011, 11011, ... } (0+1)*00(0+1)* : t p h p t t c cc chu i 0,1 c t nh t hai s 0 lin ti p = {00, 000, 100, 0000, 0001, 1000, 1001, 011001, ... } (0+ )(1+10)* : t t c cc chu i khng c hai s 0 lin ti p = {, 0, 01, 010, 1, 10, 01010, 0111, ... } 0*1*2* : {, 0, 1, 2, 01, 02, 12, 012, 0012, 0112, ... } 00*11*22* : t t c cc chu i trong t p 0*1*2* v i t nh t m t k hi u 0, 1 v 2 vi t g n thnh 0+1+2+

Bi u th c chnh quy (RE)


nh ngha: cho l m t b ch ci. BTCQ trn l cc t p h p m chng m t c nh ngha quy nh sau:

l BTCQ k hi u cho t p r ng l BTCQ k hi u cho t p {} a , a l BTCQ k hi u cho t p {a} N u r v s l cc BTCQ k hi u cho cc t p h p R v S th (r + s), (rs) v ( r*) l cc BTCQ k hi u cho cc t p h p R S, RS v R* tng ng

Th t u tin: Php bao ng > Php n i k t > Php h p V d :


Bi u th c ((0(1*)) + 1) c th vi t l 01*+1

21

22

Tnh ch t i s c a BTCQ
Php h p:
r+=+r=r r+r=r r+s=s+r (r + s) + t = r + (s + t) = r + s + t

S tng ng gi a NFA v BTCQ


nh l 3: n u r l BTCQ th t n t i m t NFA v i -d ch chuy n ch p nh n L(r) nh l 4: N u L c ch p nh n b i m t DFA, th L c k hi u b i m t BTCQ
nh l 1

Php n i k t:
r = r = r r = r = (r + s) t = rt + st r (s + t) = rs + rt

Php bao ng:


* = * = r*r* = r* (r*)* = r* r* = + r + r2 + + rk + r* = + r+ + = ( + r)* = r* ( + r) r*r = r r* = r+

T ng h p:
(r* + s*)* = (r*s*)* = (r + s)* (rs)*r = r(sr)* (r*s)* r* = (r + s)* DFA nh l 4 RE

NFA nh l 2 NFA

nh l 3

23

24

26/09/2011

T bi u th c chnh quy n NFA


Xy dng NFA t biu thc chnh quy Gii thut : Xy dng NFA t biu thc chnh quy (Cu trcThompson) Nhp: Biu thc chnh quy r trn . Xut: NFA nhn dng ngn ng L(r). Symbol a: : :

T RE n -NFA
a

Khoa KTMT - UIT

TS. V c Lung

25

26

T RE n -NFA

T RE n -NFA

For E1

For E1

For E2

For E2

E1E2

E1

27

28

T RE n -NFA

Phng php
Quy tc:

For E

E*

29

Khoa KTMT - UIT

TS. V c Lung

30

26/09/2011

Phng php
Gi s N(s) v N(t) l NFA cho biu thc chnh quy s v t. Vi s|t xy dng NFA hn hp N(s|t)

Phng php

Khoa KTMT - UIT

TS. V c Lung

31

Khoa KTMT - UIT

TS. V c Lung

32

Phng php

Automat h u h n
Automat hu hn khng tt nh (NFA) Cch v NFA c bn

Khoa KTMT - UIT

TS. V c Lung

33

Khoa KTMT - UIT

TS. V c Lung

34

Automat h u h n
Automat hu hn khng tt nh (NFA) Cch v NFA c b n

V d
Dng gii thut xy dng NFA cho biu thc chnh quy r = (a|b)*abb

35

36

26/09/2011

M ph ng NFA Nhp: NFA gi l N, chui nhp x. x c kt thc bng eof, N c trng thi bt u s0 v tp trng thi kt thc F. Xut: Gii thut tr li ng nu N chp nhn x, ngc li tr li sai.

Gi i thu t
S= -closure({So}) a = nextchar While a <> eof then Begin S = -closure(move(s,a)) a = nextchar End if S F <> then write(ng) Else write(sai)

37

38

Xy d ng DFA tr c ti p t quy

bi u th c chnh

Tr ng thi quan tr ng c a NFA Trng thi quan trng l t n c s truyn khc rng. Nh vy nu hai tp trng thi c cng s trng thi quan trng th chng c ng nht. NFA c xy dng theo cu trc Thompson c trng thi kt thc khng c s truyn ra, nh vy n khng phi l trng thi quan trng ( nhng thc s n li rt quan trng). trnh tnh trng ny ngi ta thm k hiu # vo sau biu thc chnh quy, v trng thi kt thc c s truyn trn k hiu #. Khi xy dng tp con hon tt th trng thi no c s truyn trn # l trng thi chp nhn.

Tm hiu 2 gii thut ti u vic so trng mu c xy dng t biu thc chnh quy: Xy dng DFA trc tip t biu thc chnh quy. Ti thiu trng thi ca DFA.

39

40

Bi u th c chnh quy gia t Biu thc r# c gi l biu thc chnh quy gia t. K hiu # khng thuc tp cc k hiu c bn ca biu thc chnh quy r. Biu din biu thc chnh qui gia t bng cy phn tch, sao cho tn cc l l cc k hiu c bn. Cc nt trung gian l cc ton t dng: cat, or hoc star.

Xy d ng DFA tr c ti p t quy

bi u th c chnh

Xy dng DFA trc tip t biu thc chnh quy:


V cy phn tch Tnh cc gi tr Nullable, First Post (FP), Last Post (LP). Lp bng Follow Post (FLP) Tm tp cc trng thi, bng truyn V DFA

Ti thiu trng thi ca DFA.

41

42

26/09/2011

Cy phn tch
L cy c nt l l cc k hiu c bn ca r#. Cc nt l cc ton t. Cc ton t trn cy phn tch nh: Ton t kt ni Ton t tuyn. Ton t bao ng truyn.

Cy phn tch
Cch v cy phn tch r = (a|ba)(a|b)*ba#

43

Khoa KTMT - UIT

44

Cy phn tch
Cy phn tch r = (a|ba)(a|b)*ba#

Cc quy t c tnh ba hm nullable, firstpos, lastpos

45

46

Cc quy t c tnh ba hm nullable, firstpos, lastpos


NULLABLE: Quy tc: - Nt l l False (F) - Nt (*) l True (T) - Nt (|) l True (T) nu 1 trong 2 nt con l True (T) - Nt (.) l True (T) nu c 2 nt con u True (T) FIRST POST (FP), LAST POST (LP): Quy tc: - Bt u nh s cho cc nt l theo th t t 1 ln dn (t nh) - FP v LP ca nt l bng chnh s ca n - Nt (|): FP ca n bng tng hp FP ca 2 nt con. LP cng th - Nt (*): FP = FP nt con. LP cng th - Nt (.): o FP: Nu (Nullable nt con bn tri) = F th (FP ca n) = (FP nt con bn tri). Nu (Nullable nt con bn tri) = T th (FP ca n) = tng hp (FP c 2 nt con) o LP: Nu (Nullable nt con bn phi) = F th (LP ca n) = (LP nt con bn phi). Nu (Nullable nt con bn phi) = T th (LP ca n) = tng hp (LP c 2 nt con)
47

NULLABLE
r = (a|ba)(a|b)*ba#

48

26/09/2011

FIRST POST (FP), LAST POST (LP)

Cc quy t c tnh hm followpos(n)


Quy tc: - Lp bng FLP bng cch lit k cc nt l theo hng dc (S th t nh trc) - Ch xt cc nt (.) v (*), khng xt nt (|) - Cch xt: o i vi (.): a (tp FP nt con bn phi) vo (tng gi tr LP ca nt con tri) trong bng FLP o i vi (*): a (tp FP ca chnh n) vo (tng gi tr LP ca chnh n) trong bn FLP - C xt ht cc nt cn xt v in gi tr vo cc dng tng ng trong bng FLP

49

50

B ng FLP

Tm t p cc tr ng thi
t [A] l trng thi bt u. [A] s cha FP ca ROOT => [A] = {1,2} Xt [A] = {1,2}: y ta nhn hnh ch s cc nt l v bng FLP o 1 tng ng a => Ua =FLP(1) = {4,5,6} (Ra 1 tp khc ta t l {B}) o 2 tng ng b => Ub =FLP(2) = {3} (t l [C]) Xt {B} = {4,5,6}: o 4 tng ng a => Ua =FLP(4) = {4,5,6} (l {B}) o 5,6 tng ng b => Ub =FLP(5) U FLP(6) = {4,5,6,7} (t l [D])

51

52

B ng truy n

V DFA
V DFA theo cc trng thi ta c c (A, B, C, D, E): - A l trng thi bt u - Trng thi no cha 8 s l trng thi kt thc - ng i da vo d liu ta xt trn kia cho tng trng thi (c a, c b)

53

54

26/09/2011

Xy d ng DFA tr c ti p t quy

bi u th c chnh

T i thi u s tr ng thi c a DFA


Khi nim DFA y , trng thi cht d Chui w phn bit trng thi s vi trng thi t Gii thut 3.6: Ti thiu trng thi ca DFA
Nhp: DFA, gi l M c S, , s0, F. M l DFA y . Xut: DFA, gi l M chp nhn ngn ng nh M, vi s trng thi nh nht.

Xy dng DFA trc tip t biu thc chnh quy:


V cy phn tch Tnh cc gi tr Nullable, First Post (FP), Last Post (LP). Lp bng Follow Post (FLP) Tm tp cc trng thi, bng truyn V DFA

1. 2. 3. 4. 5.

Ti thiu trng thi ca DFA.

Phng php: To phn khi u c 2 nhm: cc trng thi kt thc F, v cc trng thi khng kt thc S F. p dng th tc (m phng 3.6) to new Nu new = th final = tip tc bc 4, ngc li lp li bc 2, vi = new Chn mi nhm 1 trng thi i din v l trng thi ca M. Nu M c trng thi cht d th loi n ra khi M. Tt c cc s truyn n trng thi d u khng xc nh.

55

56

T i thi u s tr ng thi c a DFA


M phng 3.6: Gii thut to new
for vi mi nhm G ca do begin - Chia G thnh cc nhm nh hn sao cho hai trng thi s v t ca G s cng mt nhm nh hn nu v ch nu cc s truyn trn tt c cc k hiu nhp a t s v t u i n cc trng thi k tip trong cng mt nhm ca - Ta thay G bng cc nhm nh hn va c to nn, cho chng vo new end

V d n gi n DFA

57

58

T i thi u s tr ng thi c a DFA


={(E),(ABCD)} Xt (ABCD) trn s truyn a
A B : thuc (ABCD) BB: CB: D E : khng thuc (ABCD) tch D ring

CU H I V BI T P CHNG 03

Tng t trn b new = {(E), (ABC), (D)}

Thng th ng nh ng tr ng thi rt g n c l c s truy n n cng m t tr ng thi trn m t k hi u nh p v n chnh mnh trn k hi u nh p khc.
Khoa KTMT - UIT TS. V c Lung 59 Khoa KTMT V c Lung 60

10

26/09/2011

Chng 04:

NH N XT
CFG l nhng k hiu cho vic m t ngn ng CFG mnh hn FA hay RE, nhng vn khng th m t mi ngn ng Thng c dng m t nhng cu trc lng vo nhau tng c bn l dng nhng bin thay th cho tp cc chui( hay ngn ng) Cc bin ny c nh ngha hi qui vi cc bin khc v cc nh ngha ny gi l cc qui tc sinh, hay lut sinh

Vn ph m phi ng c nh (Context Free Grammar)


N i dung:
Vn ph m phi ng c nh (CFG) Gi n l c vn ph m phi ng c nh Chu n ha vn ph m phi ng c nh Cc tnh ch t c a vn ph m phi ng c nh

V d : CFG for { 0n1n | n > 1}


Lut sinh (Productions) c dng:
S -> 01 S -> 0S1

Vn ph m phi ng

c nh

Chui 01 l mt ngn ng Phng php quy np (Induction): Nu w thuc ngn ng th 0w1 cng thuc ngn ng.

nh ngha: l h th ng g m 4 thnh ph n G(V, T, P, S) V (Variables = nonterminals) : t p h u h n cc bi n (k t cha k t thc) T (Terminals) : t p h u h n cc k t k t thc (V T = ) P (Productions) : t p h u h n cc lu t sinh d ng A ( (VT)*) S (Start symbol) : k hi u b t u c a vn ph m

Quy c: V: ch in hoa (A, B, C, ..); T: ch in th ng (a, b, c, .., w, x, y..) , , , .. bi u di n chu i k hi u k t thc v bi n

V d : Formal CFG
A formal CFG for { 0n1n | n > 1}.
Terminals = {0, 1}. Variables = {S}. Start symbol = S. Productions = S -> 01 S -> 0S1

V d s nguyn khng d u (Unsigned Integers)

K hiu bt u K hiu khng kt thc K hiu kt thc Lut


<unsigned_integer> <unsigned_integer>

<unsigned_integer> <unsigned_integer>, <digit> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

G=({S, A, B}, {a, b}, P, S) vi P gm cc lut sinh:


S AB A aA Aa B bB Bb hay S AB A aAa B bBb

<digit> <digit> <unsigned_integer>

26/09/2011

BNF (Backus-Naur Form) (Backus1959, John Backus gi i thi u ALGOL 58 thu c nhm ACM-GAMM 1960 Peter Naur cho ra phin b n m i ALGOL 60 BNF l m t k hi u t nhin m t c php, l m t siu ngn ng m t ngn ng khc Cc Grammar cho ngn ng l p trnh th ng c vi t d i d ng BNF
Terminals Start symbol Non-terminals

V v m t bi u th c
<expression> <expression>, <term>, <factor>, <unsigned_integer>, <term_op>, <factor_op> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /

Productions:
<expression> <term> | <expression> <term_op> <term> <term> <factor> | <term> <factor_op> <factor> <factor> <unsigned_integer> | (<expression>) <term_op> + | <factor_op> | /

VD: <unsigned_integer> ::= <digit> | <digit> <unsigned_integer>


7

BNF m

r ng (Extended BNF)
BNF:

BNF vs EBNF

Khng lm tng kh nng c t ca BNF, ch l cch biu din gn hn 1. Phn la chn c t vo trong du []
<selection> -> if (<expression>) <statement>[else <statement>)]

2. t nhng phn tng t trong RHS vo trong () v ngn cch bi |


<term> -> <term> (+ | -) const

<expr> -> <expr> + <term> | <expr> - <term> | <term> <term> -> <term> * <factor> | <term> / <factor> | <factor>

3. t nhng phn lp li trong {}


<ident> -> letter {letter | digit}

EBNF:
<expr> -> <term> {(+ | -) <term>} <term> -> <factor> {(* | /) <factor>}

10

S c php (Syntax Diagrams)


S c php c a bi u th c exp term

D n xu t v ngn ng (Derivation and Language)


D n xu t: N u A l lu t sinh trong vn ph m G v , l 2 chu i b t k, th khi p d ng lu t sinh A vo chu i A ta s thu c chu i : A G Gi s : 1 G 2, 2 G 3, ..., m-1 G m, ta c: 1 *G m Ta c: *G v i m i chu i Thng th ng, ta s dng v * thay cho G v *G Ngn ng sinh b i CFG: cho CFG G(V, T, P, S) L(G) = { ww T* v S *G w } (chu i w g m ton k hi u k t thc v c d n ra t S)

exp

term_op

term

11

12

26/09/2011

Cy d n xu t
nh ngha: cy d n xu t (hay cy phn tch c php) c a m t vn ph m G(V, T, P, S) c c i m (1) M i nt c m t nhn, l m t k hi u (V T {} ) (2) Nt g c c nhn l S (k hi u b t u) (3) N u nt trung gian c nhn A th A V (4) N u nt n c nhn A v cc nh n1, n2, ..., nk l con c a n theo th t t tri sang ph i c nhn l n l t l X1, X2, ..., Xk th A X1X2...Xk l m t lu t sinh trong P (5) N u nt n c nhn l th n ph i l nt l v l nt con duy nh t c a nt cha c a n
NH L 1 : N u G (V, T, P, S) l m t vn ph m phi ng c nh th S * n u v ch n u c cy d n xu t trong vn ph m sinh ra .

D n xu t tri nh t - D n xu t ph i nh t
D n xu t tri nh t (ph i nh t): n u t i m i b c d n xu t, lu t sinh c p d ng vo bi n bn tri nh t (ph i nh t) V d : xt vn ph m G v i lu t sinh: S AB A aAa B bBb

Cc d n xu t khc nhau cho t aaabb: (a) S AB aAB aaAB aaaB aaabB aaabb (b) S AB AbB Abb aAbb aaAbb aaabb (c) S AB aAB aAbB aAbb aaAbb aaabb (d) S AB aAB aaAB aaAbB aaabB aaabb D n xu t (a) l d n xu t tri nh t, (b) l d n xu t ph i nh t Cc d n xu t tuy khc nhau, nhng c cng m t cy d n xu t
14

13

Chu i d n xu t (Derivations)
Chu i d n xu t c a bi u th c: 32*5 + 8
<expression> <expression> <term_op> <term> <term> + <factor> <term> <factor_op> <factor> + <unsigned_integer> <factor> * <unsigned_integer> + 4 <unsigned_integer> * 5 + 8 32 * 5 + 8

Cy phn tch c php (Parse Trees)


<expression> <expression> <term> <term> <factor> <factor_op> * <unsigned_integer> 5 <unsigned_integer> 8 <term_op> + <factor> <term> <factor>

<unsigned_integer> 32

15

16

Cy c php (Parse Trees)


<expression> <expression> <term> <term> <factor> <factor_op> * <unsigned_integer> 3 <unsigned_integer> 4 <term_op> + <factor> <term> Cy c php <factor>

S nh p nh ng (Ambiguity)
Vn phm cho cu lnh gn n gin
<assign> <id> = <expr> <id> A|B|C <expr> <id> + <expr> | <id>*<expr> | (<expr>) | <id>

VD biu thc gn: A = B * (A + C) c chui dn xut cc t:

<unsigned_integer> 12

17

18

26/09/2011

S nh p nh ng (Ambiguity)
Vn phm cho cu lnh gn n gin (m rng VD trc)
<assign> <id> = <expr> <id> A|B|C <expr> <expr> + <expr> | <expr>*<expr> | (<expr>) | <id> L mt vn phm nhp nhng v A = B + C * A c 2 cy c php

S nh p nh ng (Ambiguity)

19

20

S nh p nh ng (Ambiguity)
Kh c ph c vn ph m nh p nh ng: Quy nh r ng cc php c ng v nhn lun c th c hi n theo th t t tri sang ph i (tr khi g p ngo c n) EE+TE*TT T (E) a Quy nh r ng khi khng c d u ngo c n ngn cch th php nhn lun c th c hi n u tin hn php c ng EE+TT TT*FF F (E) a

Gi n l c vn ph m phi ng

c nh

Trong CFG c th ch a cc y u t th a: Cc k hi u khng tham gia vo qu trnh d n xu t ra chu i k hi u k t thc Lu t sinh d ng A B (lm ko di chu i d n xu t) gi n l c vn ph m nh m lo i b nh ng y u t v ch, nhng khng c lm thay i kh nng s n sinh ngn ng c a vn ph m

M i bi n v m i k hi u k t thc c a vn ph m u xu t hi n trong d n xu t c a m t s chu i trong ngn ng Khng c lu t sinh A B (v i A, B u l bi n)


N u ngn ng khng ch p nh n chu i r ng th khng c n lu t sinh A .

21

22

Cc k hi u v ch
Khi ni m: m t k hi u X c g i l c ch n u c m t d n xu t S * X w * v i , l cc chu i b t k v w T*. c 2 c i m cho k hi u c ch

Cc k hi u v ch
B 1: (lo i b cc bi n khng d n ra chu i k hi u k t thc) Cho CFG G(V, T, P, S) v i L(G) , c m t CFG G'(V', T', P', S) tng ng sao cho m i A V' t n t i w T* A * w Gi i thu t tm V':
Begin (1) (2) (3) (4) (5) (6) End;
23

X ph i d n ra chu i k hi u k t thc X ph i n m trong d n xu t t S

OldV' := ; NewV' := { A A w v i w T* }; While OldV' NewV' do begin OldV' := NewV'; NewV' := OldV' {A A v i (T OldV')* } end; V' := NewV';
24

26/09/2011

Cc k hi u v ch
B 2: (lo i b cc bi n khng c d n ra t k hi u b t u) Cho CFG G(V, T, P, S), ta c th tm c CFG G'(V', T', P', S) tng ng sao cho m i X (V' T') t n t i , (V' T')* S * X Cch tm: t V' = {S} N u A V' v A 1 2...n l cc lu t sinh trong P th Thm cc bi n c a , , ..., vo V' 1 2 n L p l i cho n khi khng cn bi n no c thm vo n a

Cc k hi u v ch
nh l 2: m i ngn ng phi ng c nh (CFL) khng r ng c sinh ra t m t vn ph m phi ng c nh (CFG) khng c k hi u v ch V d : xt vn ph m S AB | a A a

p d ng b 1: lo i b S AB ta cn G: Sa A a p d ng b 2: lo i b lu t sinh th hai G tng ng = ({S}, {a}, {S a}, S)

25

26

Lu t sinh
nh l 3: (lo i b lu t sinh A )
Cho CFG G(V, T, P, S) v L l ngn ng sinh ra b i G. Khi L {} l ngn ng sinh ra b i CFG G'(V, T, P', S) khng c k hi u v ch v khng c lu t sinh .

VD lo i b lu t sinh
S -> ABC, A -> aA | , B -> bB | , C -> A, B, C, and S are all nullable. New grammar: S -> ABC | AB | AC | BC | A | B | C A -> aA | a B -> bB | b
Note: C is now useless. Eliminate its productions.

Cch tm: B c 1: xc nh t p bi n r ng Nullable i. A A Nullable ii.B X1X2...Xn, Xi Nullable B Nullable B c 2: xy d ng t p lu t sinh P' V i m i lu t sinh A X1X2...Xn trong P, ta xy d ng lu t sinh A 12...n v i i u ki n: i. N u Xi Nullable th i = Xi ii. N u Xi Nullable th i = Xi iii. Khng ph i t t c i u b ng
27

28

Lu t sinh
V d : lo i b lu t sinh trong vn ph m sau: S AB A aA B bB

Lu t sinh n v
M t lu t sinh c d ng A B v i A, B u l bi n g i l lu t sinh n v .

nh l 4: (lo i b lu t sinh A B) M i CFL khng ch a c sinh ra b i CFG khng c k hi u v ch, khng c lu t sinh ho c lu t sinh n v . Cch tm: t L=L(G) l CFL khng ch a v c sinh ra b i vn ph m G(V, T, P, S). Theo nh l 3, ta c th lo i b t t c lu t sinh trong G.
lo i b lu t sinh n v , ta xy d ng t p P' m i theo gi i thu t: For (m i bi n A V) do Begin Tnh A = { B B V v A * B } ; For (m i bi n B A) do For (m i lu t sinh B thu c P) do If (B khng l lu t sinh n v ) then Thm lu t sinh A vo P' End ;
29 30

B c 1: xc nh t p bi n r ng Nullable i. A A Nullable ii. B B Nullable iii.S AB S Nullable B c 2: xy d ng t p lu t sinh P' S AB A B A aA a B bB b

Ch : vn ph m G' khng ch p nh n chu i r ng nh vn ph m G. G' tng ng G, ta c n thm lu t sinh S vo G'.

26/09/2011

Lu t sinh n v
V d : lo i b lu t sinh n v trong vn ph m EE+TT TT*FF F (E) a Ta c: E = {E, T, F} thm vo P' cc lu t sinh E E + T T * F (E) a Tng t : T = {T, F} thm vo P' : T T * F (E) a F = {F} thm vo P' : F (E) a

D ng chu n Chomsky (CNF) Chomsky Normal Form


Mt CFG c gi l Chomsky Normal Form nu mi lut sinh c mt trong hai dng sau:
1. 2. A -> BC (right side is two variables). A -> a (right side is a single terminal).

NH L 5 : (Dng

chun Chomsky, hay CNF ) Mt ngn ng phi ng cnh bt k khng cha u c sinh ra bng mt vn phm no m cc lut sinh c dng A BC hoc A a, vi A, B, C l bin cn a l k hiu kt thc.

31

32

D ng chu n Chomsky (CNF)


V d : tm vn ph m c d ng CNF tng ng vn ph m sau: S A ABA A aA a B B bB b B c 1: s = {S, A, B} , A = {A, B} , B = {B} S aA a bB b ABA A aA a bB b B bB b B c 2: thay a b ng Ca v b b ng Cb trong cc lu t sinh c di v ph i > 1: S CaA a CbB b ABA A CaA a CbB b B CbB b Ca a Cb b
33

D ng chu n Chomsky (CNF)


B c 3: thay th cc lu t sinh c di v ph i > 2: S CaA a CbB b AD1 A CaA a CbB b B CbB b Ca a Cb b D1 BA

34

D ng chu n Greibach (GNF)


nh l 6: m i CFL b t k khng ch a c sinh ra b i m t CFG m m i lu t sinh c d ng A a v i A l bi n, a l k hi u k t thc v l m t chu i cc bi n (c th r ng) t G l CFG sinh ra CFL khng ch a B c 1: xy d ng G' c d ng CNF tng ng G B c 2: i tn cc bi n trong G' thnh A1, A2, ..., Am (m 1 ) v i A1 l k hi u b t u. t V = {A1, A2, ..., Am} B c 3: thay th lu t sinh sao cho n u Ai Aj th j > i N u j<i : p d ng b 3. N u i=j : p d ng b 4 (gi i thu t) Trong P ch ch a cc lu t sinh d ng: Ai Aj (j > i), Ai a ho c Bk v i (V {B1,B2, ...,Bi-1})* B c 4: thay th cc Ai lu t sinh v ng d ng (p d ng b 3) B c 5: thay th cc Bk lu t sinh v ng d ng (b 3)
35

D ng chu n Greibach (GNF)


Gi i thu t : (thay th sao cho Ai Ai th j > i) Begin (1) for k := 1 to m do begin (2) for j := 1 to k-1 do (3) for Mi lut sinh dng Ak Aj do begin (4) for Tt c lut sinh Aj do (5) Thm lut sinh Ak ; (6) Loi b lut sinh Ak Aj end; (7) for Mi lut sinh dng Ak Ak do begin (8) Thm cc lut sinh Bk v Bk Bk; (9) Loi b lut sinh Ak Ak end; (10) for Mi lut sinh Ak trong khng bt u bng Ak do (11) Thm lut sinh Ak Bk end; end;

36

26/09/2011

D ng chu n Greibach (GNF)


V d : tm vn ph m c d ng GNF cho vn ph m G sau:
A1 A2A1 A2A3 A2 A3A1 a A3 A2A2 b

D ng chu n Greibach (GNF)


B c 4: A3 c d ng chu n. Thay th A3 vo A2 :
B A1A2 A1A2B A3 aA2 b aA2B bB A2 aA2A1 bA1 aA2BA1 bBA1 a A1 aA2A1A1 bA1A1 aA2BA1A1 bBA1A1 aA1 aA2A1A3 bA1A3 aA2BA1A3 bBA1A3 aA3

B c 1: G th a CNF B c 2: ta c V = {A1, A2, A3} B c 3: ta c n s a i lu t sinh A3 A2A2 p d ng b 3: A3 A3A1A2 aA2


A1 A2A1 A2A3 A2 A3A1 a A3 aA2 b aA2B bB B A1A2 A1A2B

B c 5: thay th cc Bk lu t sinh

A3 A3A1A2 aA2 b

p d ng b 4, ta thu c t p lu t sinh:

B aA2A1A1A2 bA1A1A2 aA2BA1A1A2 bBA1A1A2 aA1A2 aA2A1A3A2 bA1A3A2 aA2BA1A3A2 bBA1A3A2 aA3A2 aA2A1A1A2B bA1A1A2B aA2BA1A1A2B bBA1A1A2B aA1A2B aA2A1A3A2B bA1A3A2B aA2BA1A3A2B bBA1A3A2B aA3A2B

37

38

B bm cho CFL
B bm: cho L l m t CFL b t k, t n t i m t s n ch ph thu c vo L sao cho n u z L v |z| n th ta c th vi t z=uvwxy sao cho: |vx| 1, |vwx| n v i 0 ta c uviwxiy L V d : ch ng minh L = {aibici | i 1} khng l CFL Gi s L l CFL, khi t n t i s n theo b bm Xt chu i z = anbncn, |z| n, ta c th vi t z=uvwxy th a b Ta c: vwx anbncn, |vwx| n nn vwx khng th ng th i ch a c k hi u a v c (v gi a a v c c n k hi u b) vx cng khng th ch a c k hi u a v c. Do |vx| 1 v trong uvwxy ch a s k hi u a, b, c b ng nhau: N u vx c ch a k hi u a (nn khng th ch a k hi u c) th khi bm chu i vx, s k hi u c s khng i (lun l n), nhng s k hi u a s thay i. V d : chu i uv0wx0y L v c s k hi u a (t hn n) s k hi u c (lun l n) khng b ng nhau. N u vx khng ch a k hi u a th khi bm chu i vx, s k39 hi u a khng i, nhng s k hi u b (ho c c) s thay i.

Tnh ch t ng c a CFL
nh l 5.7: CFL ng v i php h p, php k t n i v php bao ng Kleen. nh l 5.8: CFL khng ng v i php giao H qu : CFL khng ng v i php l y ph n b

40

CU H I V BI T P CHNG 04

41

You might also like