Professional Documents
Culture Documents
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
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
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%
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)
V d :
Ph n t
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 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
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
13
14
Php tr (difference):
A \ B = { x | x A nhng x B }
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
17
18
26/09/2011
Cc tnh ch t c a quan h
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
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 : 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:
v bi u
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}
u chu i cu i chu i
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
26/09/2011
Ngn ng
(Languages)
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, )
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
26/09/2011
CU H I V BI T P CHNG 02
V c Lung
14
26/09/2011
Chng 3:
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
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
0 q2
1 d
M=(Q, , , q0, F)
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
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
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
(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
0 Start q0
1 q1
2 q2
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
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
26/09/2011
V d :
Start
q0
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
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
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
Php n i k t:
r = r = r r = r = (r + s) t = rt + st r (s + t) = rs + rt
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 RE n -NFA
a
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
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
TS. V c Lung
31
TS. V c Lung
32
Phng php
Automat h u h n
Automat hu hn khng tt nh (NFA) Cch v NFA c bn
TS. V c Lung
33
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
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
44
Cy phn tch
Cy phn tch r = (a|ba)(a|b)*ba#
45
46
NULLABLE
r = (a|ba)(a|b)*ba#
48
26/09/2011
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
1. 2. 3. 4. 5.
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
V d n gi n DFA
57
58
CU H I V BI T P CHNG 03
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
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
V d : Formal CFG
A formal CFG for { 0n1n | n > 1}.
Terminals = {0, 1}. Variables = {S}. Start symbol = S. Productions = S -> 01 S -> 0S1
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> | /
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>)]
<expr> -> <expr> + <term> | <expr> - <term> | <term> <term> -> <term> * <factor> | <term> / <factor> | <factor>
EBNF:
<expr> -> <term> {(+ | -) <term>} <term> -> <factor> {(* | /) <factor>}
10
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
<unsigned_integer> 32
15
16
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>
<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
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
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
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
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
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
34
36
26/09/2011
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