Xj là một trạng thái trong Q, còn nếu nó là ôtômat không đơn định thì ôqr Xj là một tập các trạng thái trong Q.. Từ các ví dụ trên ta thấy quá trình đoán nhận một xâu nào đó đối vối ôtôm
Trang 1Chương 6
ÔTÔMAT HỮU HẠN ĐOÁN NHẬN BIỂU THỨC CHỈNH QUY
|1 ÔTÔMAT HỮU HẠN (FINITE AUTOMATA - FA)
Trang 22 Nếu h à m chuyển là ánh xạ ô: Q X ì -» 2Q, khi đó M được
gọi là ôtôtnat không đơn định (Nondeterministic Finite
Automata, viết t ắ t NDFA)
Ta có t h ể mô tả các bưốc làm việc của ôtômat hữu hạn
M = < I Q, ô q,„ F> khi cho xâu vào co = X! x2 x3 xn 6 E* như sau: Xâu vào 0) X, x2 xn_! xn
t
Q o - >
Khi bắt đầu l à m việc máy ở trạng thái đầu q0 và đầu đọc
đang nhìn vào ô có ký hiệu X, Tiếp theo máy chuyển từ trạng
thái q0 đuối tác động của ký hiệu vào X i về trạng thái mới
ô(q0.x,) = q, e Q và đầu đọc chuyển sang phải Ì ô, tức nhìn vào
ô có ký hiệu x2 Sau đó ôtômat M l ạ i tiếp tậc chuyển từ trạng thái q, nhờ h à m chuyển ô về trạng thái mói
không đoản nhận xâu co
Tập L(M) ={co/ co e ì* mà 5(q0, co) e F} được gọi là ngôn ngữ được đoán nhận bởi ôtômat M Tập trạng thái Q trong quá
trình tính toán được coi như là bộ nhớ của một ôtômat Vì Q là hữu hạn nên M được gọi là ôtômat hữu hạn
241
Trang 3Nếu M = < I Q 5 q0 F> là ôtômat đơn định thì ô(q, Xj) là
một trạng thái trong Q, còn nếu nó là ôtômat không đơn định thì ô(qr Xj) là một tập các trạng thái trong Q
Ví dụ 1: Cho ôtômat đơn định M = <z Q ô, q„ F> vối
ì ={0 1}, Q={q,, q, q2 q.j} F = {q,,} trạng thái ban đầu là q,„ còn
hàm chuyển cho đuối dạng bảng:
Trang 4Cho xâu vào (0= 110101
Quá trình hoạt động của ôtômat M diễn ra theo quá trình sau:
ô(q,;„ 1) = qi ô(q, 1) = q,j, ô(q,„ 0) = q2,
ỗ(q2 1) = q3 5(q, 0) = q, 5(q„ 1) = q„ e F
Diều đó chứng tỏ ôtômat M đoán nhận xâu 0) = 110101
Dãy trạng thái của M khi cho xâu vào co = 110101 được biểu diễn như sau:
Ví dụ 2: Cho ôtômat đơn định M = <s, Q 5, q,j F> vối
ì = {0.1' Q - {q,„ q, q2 q.í) q,, là trạng thái ban đầu còn
F = { q j là tập trạng thái kết thúc Hàm chuyển trạng thái được
Trạng thái Ký hiệu vào
Trang 5Giả sử xét các xâu co, = 10110 co2 = no, C03 = 10011 Hỏi
rằng ôtômat M có đoán nhận các xâu đó hav không ?
a Dãy trạng thái của ôtômat M khi cho CO] vào là:
q0 -» q2 -> q„ -> q2 -> q3 -> q3 e F
Do đó ôtômat M đoán nhận x â u CO) = 10110
b Với xâu vào K>2 = no k h i đó dãy trạng thái M đối vối
xâu vào co2 sẽ là:
© 2 = 1 Ì 0
q:, -» q2 -> q3 -> q3 e F
và ôtômat cĩing đoán nhận xâu C 0 2 = no
c Vối xâu vào Cù 3 = 10011 Ta lập dãy trạng thái của
ôtômat M đối vói co3 như sau:
q,,-> q2 -> q,, -> q, -> q0 -> q2 « F
nên máy M không đoán nhận xâu vào 0 ) 3 = 10011
Từ các ví dụ trên ta thấy quá trình đoán nhận một xâu nào đó đối vối ôtômat M đơn định là quá trình biên đoi trạng thái cuối cùng của ôtômat có phải là trạng thái k ế t thúc hay không
Ta có thể mô tả quá trình đoán nhận x â u vào của ôtômat đơn định M như sau:
Thuật toán mô phỏng ôtômat hữu hạn đoán nhận xâu vào:
Đầu vào:
Trang 6- M ộ t ô t ô m a t h ữ u h ạ n M với t r ạ n g t h á i ban đ ầ u q,i và t ậ p
C:= ký hiệu tiếp theo;
Trang 7Sau đ â y là q u á t r ì n h đ o á n n h ậ n một x â u v à o của m á y M
Vì đ ố i với ô t ô m a t k h ô n g đ ơ n định t h ì h à m c h u y ể n 5 k h i
m á y ở t r ạ n g t h á i q v à t í n h i ệ u a là ô(q,a) c Q n ê n sẽ x u ấ t h i ệ n
t ì n h t r ạ n g rẽ n h á n h Đ ể cho t i ệ n ta có t h ể l ậ p d ã y t r ạ n g t h á i của m á y ứ n g v ố i x â u v à o d ư ớ i d ạ n g cây m à gốc của n ó là t r ạ n g
CO^OIOOI là x â u đ o á n n h ậ n được bởi m á y M
b) Phương pháp cho ôtômat bằng đồ thi chuyển
Cho ô t ô m a t h ữ u h ạ n M = < £ , Q, 5, q 0 , F> H à m c h u y ể n ô
có t h ể cho b ữ n g đồ t h ị c h u y ể n có hướng theo n g u y ê n tắc sau:
M ỗ i t r ạ n g t h á i q 6 Q là m ộ t đ ỉ n h của đồ t h ị N ê u a 6 ì và t ừ
Trang 8trạng thái qi chuyển sang trạng thái qj do đẳng thức Ô(q;,a) = qj (đối vối DFA) thì sẽ có một cung có hướng t ừ đỉnh qi sang đỉnh
qj và trên cung đó được gán n h ã n a
Nêu ô(qj,a) = {qj , qj qj } đối vối ôtômat không đơn định thì từ q; sang qj q j2 qj có k cung g á n cùng một n h ã n a
Đỉnh vào của đồ thị chuyển là đỉnh ứng vói trạng thái ban đầu q,, Các đỉnh có các trạng thái k ế t thúc được khoanh vòng tròn hai lần Các đỉnh còn l ạ i khoanh bởi một vòng tròn
Ví dụ 4: Cho ôtômat đơn định M = < I , Q, 5, q0, F>,
ì = {0.1}, Q = {q0 q, q2 q3} F = {q0} h à m chuyển 5: Q X ì -> Q được cho dưới dạng đồ thì chuyển n h ư sau:
Ì
Ví dụ 5: Cho ôtômat không đơn định M = <s Q 5, q0 F>
ì ={0,1}, Q = {q,„ q,, q2 q3} F ={q2, q4 ỉ còn h à m chuyển 5: Q X E -> 2Q cho dưối dạng đồ t h ị
247
Trang 9Đôi v ố i ô t ô m a t M ta đ ư a v à o k h á i n i ệ m "chuyên dịch A"
được định nghĩa n h ư sau:
H à m A - Closure(T) cho tập t r ạ n g t h á i đ ạ t được t ừ các
t r ạ n g t h á i s 6 T qua p h é p chuyển dịch A duv n h ấ t L ớ p T có t h ể
lấy t là phần tử trên cùng của stack ra;
for mỗi trạng thải mà có đường đi từ t đến u có nhãn do
if u không thuộc A -Closure(T) do
Trang 101.3 Sự tương đ ư ơ n g giữa ôtômat đơn định và k h ô n g đơn định
Theo định nghĩa của ôtômat đơn định M và ôtômat không đơn định N thì M cũng là N nên lốp các ngôn ngữ đoán nhận được bởi M cũng là lớp ngôn ngữ đoán nhận bởi N Ký hiệu các lớp ngôn ngữ được đoán nhận bởi M và N tương ứng là L(M)
và UN)
Định lý 1: Lốp ngôn ngữ đoán nhận được bởi ôtômat đơn
định trùng với lớp ngôn ngữ đoán nhận được bởi ôtômat không đơn định
249
Trang 11Chứng minh:
Theo định nghĩa ôtômat đơn định và ôtômat không đớn định thì lớp ngôn ngữ đoán nhận được bởi ôtômat đơn định nằm trong lớp ngôn ngữ đoán nhận được bởi ôtômat không đơn định
Ta chứng minh bao hàm thức ngược l ạ i : Lớp ngôn ngữ đoán nhận được hỏi ôtômat không đơn định nằm trong lóp ngôn ngữ do ôtômat đơn định đoán nhận Thật vậy, giả sử p e ì" đoán nhận được bởi ôtômat không đơn định N = < I , Q ỗ, q0 F> hay p 6 L(N)
Ta xây dựng ôtômat đơn định M = <E\ Q\ ố', So, F'> đoán
nhận p như sau: r = I ; Q' = 2Q; s0={q0}; F'={U c Q / U n F * 0 Ị còn ố: Q ' x l -> Q' được xác định như sau:
Trang 12H à m chuyển ố cho dưới dạng bảng chuyển như sau:
Ta có L(N) = L(M) hay N tương ứng vối M
Ví d ụ 7: Cho ôtômat không đơn định N = <z, Q, s, q0, F> với E = {a,b}, Q = {q0, q„ q,0}, F' = {q1 0}
A
Trong đồ thị chuyển trên thì A là xâu rỗng Ta xây dựng
ôtômat đơn định M như sau:
Trang 13c - tai q2, q4, Qõ qe- q?}
D = {qi, q2 q4 Qs, Qo- q7 qg}
E = { q i , q2, Q4, qs, q«- q7, Qio} (có chứa trạng t h á i k ế t thúc
q ,0 của N) vối hàm chuyển cho đuối dạng bảng:
Trạng thái Ký hiệu vào
Thật vậy giả sử xét xâu vào là co = ababb
Ta chỉ ra rằng hai ôtômat N và M cùng đoán nhận xâu
co = ababb
ứng với xâu vào co là:
co = a b a b b
A - > B -> D -> B ^ D - > E e F
Trang 14Vậy M đoán nhận xâu co
Đối vối N ta xây dựng cây đoán nhận xâu co = ababb như sau:
q,0 £ F n ê n N đoán nhận co = ababb
253
Trang 15J2 NGÔN NGỮ CHÍNH QUY VÀ Biểu THỨC CHÍNH QUY
2.1 N g ô n ngữ c h í n h quy
G i ả sử X là b ả n g chữ h ữ u h ạ n k h ô n g rỗng L* là t ậ p t ấ t cả các x â u (kể cả x â u rỗng) được xây d ự n g t r ê n ì
a) Phép hợp: Cho h a i n g ô n n g ữ Eị, E2 t r ê u t ậ p ì , ta đ ị n h
nghĩa p h é p hợp E j <J E2 = {co I co e E j hoặc 05 e E2}
b) Phép nhăn: Cho h a i n g ô n n g ữ El, E2 t r ê n ì , p h é p n h â n
Trang 16c) Không có ngôn ngữ chính quy nào khác trên ì ngoài các ngôn ngữ chính quy được định nghĩa trong các bưốc a) và b) ở trên
Thông thường để diễn đạt các ngôn ngữ chính quy người
ta đưa vào biểu thức chính quy
2.2 B i ể u thức c h í n h quy
Trên bảng X ta định nghĩa biểu thức chính quy theo các bước đệ quy sau đây:
a 0 là biểu thức chính quy, nó biểu diễn ngôn ngữ rỗng
b Nếu a 6 X thì a là biểu thức chính quy, nó biểu diễn ngôn ngữ {a}
c Nếu r s là hai biểu thức chính quy trên ì biểu diễn hai ngôn ngữ R và s tương ứng Khi đó:
(r) VJ (s) là biểu thức chính quy biểu diễn ngôn ngữ R VJ s
(r) (s) là biểu thức chính quy biểu diễn ngôn ngữ R s (r)' là biểu thức chính quy biểu diễn ngôn ngữ R+
Từ định nghĩa vê ngôn ngữ chính quy và biểu thức chính quy trên ì ta có:
Định lý 2: M ọ i ngôn ngữ chính quy trên bảng ì đều nhộn
được từ các ngôn ngữ hữu hạn bằng cách áp dụng một số hữu hạn l ầ n các phép toán hợp, phép nhân, phép lặp
Định lý 3 : Một ngôn ngữ trên ì là chính quy khi và chỉ
khi nó biểu diễn được bởi một biển thức chính quy
Chú ý: a) M ộ t ngôn ngữ chính quy là vô hạn khi và chỉ khi
biểu thức chính quy biểu diễn nó có dấu + (phép lặp)
b) Lóp t ấ t cả các ngôn ngữ chính quy trên E là lốp bé nhất chứa các tộp hữu hạn và đóng đôi vói các phép toán hợp, n h â n
và lặp
255
Trang 18a) Đ ố i v ố i b i ể u thức c h í n h quy (s) u (r) ta x â y dựng
ô t ô m a t k h ô n g đ ơ n đ ị n h N đ o á n n h ậ n n g ô n n g ữ s U I R n h ư sau:
ỏ đ â y i là t r ạ n g t h á i b a n đ ầ u , f là t r ạ n g t h á i k ế t t h ú c của N v à
N n h ậ n được b ằ n g c á c h t ổ hợp h a i ô t ô m a t t h à n h p h ầ n N(s) v à N(r) theo sơ đồ b ả n g c h u y ể n t r ê n
b) Đôi v ễ i b i ể u t h ứ c c h í n h quy (s).(r) t h ì ô t ô m a t k h ô n g đơn
đ ị n h N đ o á n n h ậ n n g ô n n g ữ c h í n h quy S.R được cho d ư ễ i d ạ n g
b ả n g c h u y ể n sau đ â y :
S t a r t •0 N(s)<3 - N ( r ) — @
vói i là t r ạ n g t h á i b a n đ ầ u f là t r ạ n g t h á i k ế t t h ú c , N n h ậ n được t ừ N(s) v à N ( r ) b ằ n g cách l ấ y t r ạ n g t h á i ban đ ầ u của N(s)
l à m t r ạ n g t h á i b a n đ ầ u của N t r ạ n g t h á i k ế t t h ú c của N(r) l à m
t r ạ n g t h á i k ế t t h ú c của N v à đồng n h ấ t t r ạ n g t h á i k ế t t h ú c của N(s) vói t r ạ n g t h á i b a n đ ầ u của N(r)
c) Đ ố i v ố i b i ể n t h ứ c c h í n h quy ( r )+ b i ể u d i ễ n n g ô n n g ữ
c h í n h qtiy Rf t a x â y d ự n g ô t ô m a t k h ô n g đơn định N đ o á n n h ậ n R* theo b ả n g c h u y ể n đ u ố i đ â y :
257
Trang 20T h ậ t v ậ y , g i ả sử M = <E, Q, ô, q0, F> là ô t ô m a t đ o á n n h ậ n
R K h i đó ô t ô m a t M ' =_<z Q,_ỗ, q,„ F'> với F' = Q \ F là ô t ô m a t
đ o á n n h ậ n n g ô n ngữ R, hay R là n g ô n ngữ c h í n h quy t r ê n X c) P h é p t o á n giao giữa hai n g ô n ngữ c h í n h quy R[ v à R2
Định nghĩa 3: V ă n p h ạ m G = < £ , A, ì, R> được gọi là v ă n
p h ạ m c h í n h quy suy rộng n ế u m ọ i quy tệc trong R đ ề u có d ạ n g
A -» aB, A -> a hoặc A -> A, ở đ â y A, B e A, a e I , A là k ý h i ệ u
x â u rỗng
D ễ d à n g n h ậ n t h ấ y r ằ n g :
Định lý 5 : Đôi v ố i v ă n p h ạ m c h í n h quy suy rộng G
bao giò cũng x â v dựng được v ă n p h ạ m c h í n h quy G' sao cho L(G') = L(G) \ ri
Định nghĩa 4: V ă n p h ạ m c h í n h quy suy rộng là v ă n
p h ạ m c h í n h quy m ẫ u n ê u n ó k h ô n g có quy tệc A —> a
Định lý 6 : Đôi v ố i v ă n p h ạ m c h í n h quy suy rộng có t h ể
xây dựng được v ă n p h ạ m c h í n h quy m ẫ u t ư ơ n g đ ư ơ n g v ố i nó
Trang 22đ á n h d ấ u bởi k ý h i ệ u a, thì c h ú n g ta nói r ằ n g đường đã cho sinh
r a x â u a i a 2 a „
Đ ư ờ n g b ấ t k ỳ có độ d à i 0 theo đ ị n h nghĩa nó sinh ra
x â u A Rõ r à n g x â u X sinh ra bởi m ộ t đ ư ờ n g b ắ t đ ầ u t ừ đỉnh A
•và k ế t t h ú c ở đ ỉ n h B k h i và chỉ k h i A I = x B (ký h i ệ u I = nghĩa
là hoặc d ẫ n được t ừ A hoặc t r ù n g vói A )
C h ú n g ta gọi đ ư ờ n g Ao, À, A n là chu t r ì n h n ê u Ao = A n
v à là đ ư ờ n g đ ầ v đ ạ n ế u Ao = ì còn A„ là đ ỉ n h k ế t t h ú c (tức A„ —> A là m ộ t quy tắc t r o n g R cạa G)
T ừ các k h á i n i ệ m t r ê n t a suy ra: t ậ p d ẫ n x u ấ t đ ầ y đ ạ
t r o n g v ă n p h ạ m G v à t ậ p các đ ư ờ n g đ ầ y đ ạ t r o n g đ a đồ t h ị cạa
G có t ư ơ n g ứ n g 1-1 đồng t h ờ i x â u X e L(G) k h i v à chỉ k h i X
được s i n h ra bởi đ ư ờ n g đ ầ y đ ạ t r o n g đ a đồ t h ị cạa G
Chú ý: Đ ố i với v ă n p h ạ m c h í n h quv suv rộng k h ô n g p h ả i
là m ẫ u t h ì c ũ n g lý l u ậ n n h ư t r ê n ta x â y d ự n g được đồ h ì n h cạa
n ó
Ví dụ: Cho G = <z A ì, R> là v ă n p h ạ m c h í n h quy suy
rộng với R = {ì -> a i I -> aB B -> b B B - » b} Đồ h ì n h cạa G được x â y d ự n g n h ư san: đ ư a G v ề v ă n p h ạ m m ẫ u G' b ằ n g cách
t h a y quy tắc B —» b bởi 2 quy tắc B -> b K v à K -> A Đồ h ì n h cạa v ă n p h ạ m m ẫ u G' cũng là đồ h ì n h cạa G có d ạ n g dưới đây:
Trang 23N ế u trong ôtômat M = < I Q, s q0 F> mà ỗ(q,a) = q' vối
q 6 Q a 6 E t h ì trong đồ h ì n h t ừ đ ỉ n h q đ ế n đ ỉ n h q' có một cung
v à t r ê n cung đó được g á n m ã a q„ là đ ỉ n h ban đ ầ u
Đ ỉ n h q cũng được gọi là đỉnh ban đ ầ u n ê u ứ n g v ố i nó ta có ô(q„ #) = q Các đ ỉ n h đ á n h d ấ u b ằ n g các t r ạ n g t h á i k ế t t h ú c gọi
là các đ ỉ n h k ế t t h ú c (# là ký h i ệ u b i ê n b ê n t r á i )
K h á i n i ệ m m ộ t x â u sinh ra bởi m ộ t đ ư ờ n g , k h á i n i ệ m chu
t r ì n h , k h á i n i ệ m đường đ ầ y đ ậ V V cũng được đ ị n h nghĩa n h ư
t r o n g đồ t h ị cậa v ă n p h ạ m ô t ô m a t suy rộng
Chú ý: T ừ đ ị n h nghĩa đồ h ì n h cậa ô t ô m a t h ữ u h ạ n ta suy
ra: m ộ t x â u sinh ra bởi đường đ ầ y đ ậ t r o n g đồ h ì n h cậa ô t ô m a t
k h i v à chỉ k h i x â u đó được đ o á n n h ậ n bởi ô t ô m a t đó Ngoài ra
ô t ô m a t đ o á n n h ậ n x â u rỗng k h i v à chỉ k h i giao giữa tập các
đ ỉ n h ban đ ầ u v à t ậ p các đỉnh k é t t h ú c t r o n g đồ h ì n h là k h á c rỗng
Trang 24a) V i ế t đ ầ y đ ủ theo đ ị n h nghĩa của M
b) M là ô t ô m a t đ ơ n định hay k h ô n g đơn định ? Vì sao ? c) Đ ư a ô t ô m a t M vê d ạ n g đồ t h ị chuyển
d) K i ể m t r a l ạ i sự (toán n h ậ n của M đ ố i v ố i các x â u sau:
co, = 001110111000;
© 2 = 110111101111
Theo đ ị n h nghĩa L ( M ) = {co / ra e X * v à ơ(q0, 0) 6 F}
2 Ô t ô m a t M được cho dưới b ả n g chuyển n h ư sau:
T r ạ n g t h á i Ký h i ệ u v à o
a b {q.,q3} {qo.q.}
Trang 25V ố i t r ạ n g t h á i b a n đ ầ u l à q„ c ò n t r ạ n g t h á i k ế t t h ú c l à
q 2 v à q 3
a) V i ế t đ ầ y đ ủ M d ư ớ i d ạ n g đ ị n h n g h ĩ a
b) M l à ô t ô m a t đ ơ n đ ị n h h a y k h ô n g đ ơ n đ ị n h ? V ì sao ? c) V i ế t M d ư ớ i d ạ n g đ ồ t h ị c h u y ể n
Trang 266 Bài toán 1: Xây d ự n g ô t ô m a t đơn định t ư ơ n g đương v ố i
ô t ô m a t k h ô n g đơn đ ị n h cho triíớc : Cho ô t ô m a t k h ô n g đơn
Trang 27Bưốc 4 : F = {U / u c Q m à u r» F * 0 } ;
Bưốc 5 : ơ ' : Q' X ì * - ) Q' xác định theo công thức:
S'(U,x) = Uơ( q -X) v ớ i Ư e Q' và X e z
qeU
Với M ' xác định như trên ta có L(M') = L(M)
Áp dụng bài toán Ì hãy xây dựng các ôtômat đơn định tướng đương vối các ôtômat không đơn định được cho trong các trường hợp sau:
Trang 298 Thuật toán Thompson) xây dựng ôtôinat không đdn định từ một biểu thức chính quy
Trang 30c) Ôtômat đoán nhận ngôn ngữ chính quy
10 (0 + 1)* là biển thức chính quy, chỉ định mọi xâu 0 và 1
a) Hãv xây dựng văn phạm phi ngữ cảnh G sao cho
Lưu ý: Biểu thức chính quy (0 + 1)* 00 (0 + 1)* chỉ định tập
tất cả các xâu 0 và 1 trong đó có chứa 00
12 Biểu thức (0 + 1)*011 chỉ định tập các xâu 0 và Ì kết thúc
bởi 011
Xây dựng ôtômat M đoán nhận ngôn ngữ chính quy trên
269
Trang 32d) L ( M ) = LQAi) u L ( M2) u L ( M3) L ( M4) L ( M5) u L(M6)*
19 Cho c á c ô t ô m a t M1 ( M2, M2 t ư ơ n g ứ n g có đồ t h ị c h u y ể n là
a) T ì m L(Mi) (ì = Ì , 2, 3)
b) X â y d ự n g c á c v ă n p h ạ m Gi sao cho L(Gị) = L(Mị) (i - Ì , 2, 3)
Trang 3320 Cho ô t ô m a t M i v à M2 dưới đây:
Xây dựng ô t ô m a t M sao cho
L(M) = (L(M,) u L ( M , ) L ( M2) u L ( M ọ ) Ỵ
Trang 34và chường trình dịch
Trong quá trình dịch từ chương trình nguồn ra chương trình đích, người ta sử dậng cấu trúc cú pháp của văn phạm phi ngữ cảnh để phân tích các xâu vào Cấu trúc cú pháp của một xâu vào được xác định từ chuỗi các sản xuất suy từ xâu đó Dựa vào chuỗi các sản xuất đó, bộ phân tích cú pháp của chương trình dịch sẽ cho biết xâu vào đang xét có thuộc vào xâu do văn phạm phi ngữ cảnh sinh ra hay không Nói cách khác là vối xâu
vào 0) và một VPPNC G Hỏi rằng co e L(G) hay không? Nếu có thì hãy tìm cách biểu diễn Cừ bằng văn phạm, tức là tìm các quy
tắc sinh của VPPNC để sinh ra xâu co
273
Trang 35ì 6 A là k ý h i ệ u p h ụ v à được gọi là k ý h i ệ u b a n đ ầ u ,
R là t ậ p các quy tắc sinh ( gọi t ắ t là quy t ắ c ) có d ạ n g :
R = {A-> 8 / A e A , 8 e ( I u A)*}
Đ ể dỊ d à n g cho việc d i Ị n đ ạ t các p h ầ n t i ế p theo t a đ ư a
v à o m ộ t sô quy ưốc sau:
Trang 36n à o đ ó X â u X được gọi là k ế t q u ả của cây suy d ẫ n đ ầ y đ ủ , ta có
t h ể đ ị n h nghĩa c â y suy d ẫ n đ ầ y đ ủ n h ư sau:
s KJ { }) theo t h ứ t ự t ừ t r á i qua p h ả i ta sẽ n h ậ n được m ộ t x â u
n à o đó X â u đó là m ộ t p h ầ n t ử trong L(G) v à được gọi là k ế t
q u ả suy d ẫ n đ ầ y đ ủ của G
Ví dụ 1: Cho v ă n p h ạ m p h i n g ữ c ả n h G = <L, A, ì, R>,
I = { a , bi A = {ì, A} v à R={ I - > l a , I -> Aa, I -> aAb, ì -> ab}
275
Trang 37Cây suy d â n đây đủ của x â u a"b n a m là cây dưối đây:
Ví dụ 2: Cho v ă n phạm phi ngữ cảnh G = < I , A, ì , R>,
L—{ai, a 2 , &n},
A = {1} và R={ I-> ala, I -> aa}, a 6 z
Cho (ừ - 8^2 an , ta ký hiệu cô = a n a n _, a 2 a!
Trang 391.3 Sự n h ậ p n h ằ n g t r o n g n g ô n n g ữ p h i ngữ c ả n h
Cho văn phạm phi ngữ cảnh G = < I , A ì, R>, ta nói văn
phạm G là nhập nhằng nếu tồn t ạ i một x â u 0) là k ế t quả của
hai cây suy dẫn đầy đủ khác nhau trong G
Ngôn ngữ do văn phạm G sinh ra là ngôn ngữ nhập nhằng nếu G là văn phạm nhập nhằng
Ví dụ 4: Cho văn phạm phi ngữ cảnh G = < I , A, ì R>,
!={+ a, *}, A = {í}, R={ I-> I + I ì -> 1*1 , ì -> a},
ở đây ký hiệu + là phép cộng, * là phép nhân
Xâu a + a * a là kết quả của cây suy dẫn đầy đủ (thực hiện phép * trưốc)
Trang 40p h á p k h á c nhau M ỗ i một cây là một cách phân tích cú pháp Văn phạm trong ví dụ này là văn phạm phi ngữ cảnh nhập nhằng
12 GIẢN LƯỢC CÁC VĂN PHẠM PHI NGỮ CẢNH
Trong một v ă n phạm thì ngữ cảnh có thể có nhiều yêu t ố thừa, ví dụ có những ký hiệu không hê tham gia vào quá trình
279