Tải bản đầy đủ (.doc) (37 trang)

Đề Cương automata và ngôn ngữ hình thức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (423.72 KB, 37 trang )

20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
ĐỀ CƯƠNG AUTOMAT
Câu 1 : Khái niệm về ngôn ngữ,từ(chuỗi,xâu) 1 số phép toán cơ bản trên từ và
trên ngôn ngữ.Các hình thức biểu diễn ngôn ngữ?Cho ví dụ minh họa?
Ngôn ngữ : theo từ điển, là một hệ thống thích hợp cho việc biểu thị các ý nghĩ,
các sự kiện, hay các khái niệm, bao gồm tập các ký hiệu, các qui tắc để vận dụng
chúng.
Một ngôn ngữ (hình thức) L trên bộ chữ cái ∑ là một tập hợp các chuỗi từ các ký
hiệu của bộ chữ cái ∑
∑* : tập hợp tất cả các chuỗi con, kể cả chuỗi rỗng ε, sinh ra từ bộ chữ cái ∑

+
: tập hợp tất cả các chuỗi con, ngoại trừ chuỗi rỗng ε, sinh ra từ bộ chữ cái ∑
∑* = ∑
+
+ {ε} ∑+ = ∑* - {ε}
Từ : Cho ∑={a1,a2….am} ,1 dãy α=ai1ai2……ait (aij € ∑) được gọi là 1 từ hay
1 xâu(chuỗi ) trên bảng ∑
Note: ∑ khác rỗng gồm hữu hạn hay vô hạn các ký hiệu được gọi là bảng chữ
cái.Mỗi 1 phần tử thuộc ∑ được gọi là 1 chữ cái hay 1 ký hiệu
1 số phép toán cơ bản trên từ:
Chuỗi nối kết : chuỗi được tạo thành bằng cách viết chuỗi thứ nhất sau đó viết
chuỗi thứ 2…… ε là đơn vị của phép nối kết
• Chuỗi đảo ngược : chuỗi đảo ngược của W là W
R
,là chuỗi được viết theo thứ
tự ngược lại
• Phép cắt trái : của từ α cho từ β - là phần còn lại của từ α sau khi cắt bỏ
phần đầu β trong từ α.


• Phép cắt phải : của từ α cho từ β - là phần còn lại của từ α sau khi cắt bỏ
phần đuôi β trong từ α.
1 số phép toán cơ bản trên ngôn ngữ :
Vì ngôn ngữ là 1 tập hợp nên ta có các phép toán đại số tập hợp trên ngôn ngữ.
• Phép hợp :
• Phép giao :
• Phép phần bù :
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
• Phép nhân ghép : L
1
L
2
= {w
1
w
2
| w
1
thuộc L
1
và w
2
thuộc L
2
} trên bộ chữ cái
Σ
1
Σ

2
LLL…LL = L
i
(kết nối i lần trên cùng ngôn ngữ L) L
0
= {ε}
• Ngôn ngữ lặp (bao đóng Kleenr hoặc Closure)

• Ngôn ngữ lặp cắt (bao đóng dương – positive closure)
• Ngôn ngữ ngược.
• Ngôn ngữ cắt trái của ngôn ngữ X cho ngôn ngữ Y
• Ngôn ngữ cắt phải của ngôn ngữ X cho ngôn ngữ Y

Các hình thức biểu diễn ngôn ngữ :
• Liệt kê các phần tử (chuỗi) : L={aa,ab,bb}
• Mô tả các đặc điểm chủ yếu : L={a
i
| I là số nguyên tố}
• Biễu diễn ngôn ngữ 1 cách tổng quát thông qua văn phạm (grammar) và
automata.
Văn phạm : là cơ chế sinh ra mọi chuỗi của ngôn ngữ
Automata : là 1 máy trừu tượng hay 1 cơ chế cho đoán nhận 1 chuỗi bất kỳ
có thuộc 1 ngôn ngữ L hay không
(các ví dụ xem trong bài giảng)
Câu 2 : Định nghĩa văn phạm,dẫn xuất và ngôn ngữ sinh bởi văn
phạm.Cho ví dụ minh họa
 Theo từ điển, văn phạm là một tập các quy tắc về cấu tạo từ và các quy tắc về
cách thức liên kết từ lại thành câu.
 Ví dụ đơn giản về văn phạm:
{ }

* 2
0

i n
i
L L L L L
ε

=
= = ∪ ∪ ∪ ∪ ∪
U
2
1

i n
i
L L L L L

+
=
= = ∪ ∪∪ ∪
U
{ }
*
|
R R
L L
ω ω
= ∈Σ ∈
{ }

*
\ | ,Z Y X z x X y Y mà x yz= = ∈Σ ∈ ∈ =
{ }
/ | ,Z X Y z x X y Y mà x zy

= = ∈Σ ∈ ∈ =
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
<câu>→<chủngữ><vịngữ>
<chủngữ>→tôi | anh | chị
<vịngữ>→<độngtừ><danhtừ>
<độngtừ>→ăn | uống
<danhtừ>→cơm | phở | sữa | café.
Văn phạm G là một bộ sắp thứ tự gồm 4 thành phần G = < Σ, Δ, S, P >, trong đó:
• Σ - bảng chữ cái, gọi là bảng chữ cái cơ bản (bảng chữ cái kết thúc –
terminal symbol);
• Δ , Δ ∩ Σ =Ø, gọi là bảng ký hiệu phụ (báng chữ cái không kết thúc –
nonterminal symbol);
• S ∈ Δ - ký hiệu xuất phát hay tiên đề (start variable);
• P - tập các luật sinh (production rules) dạng α→β, α, β ∈ (Σ ∪ Δ)*, trong α
chứa ít nhất một ký hiệu không kết thúc (đôi khi, ta gọi chúng là các qui tắc
hoặc luật viết lại).
Dẫn xuất :
 Nếu A → b là luật sinh trong văn phạm G và γ, � là 2 chuỗi bất kỳ, thì
khi áp dụng luật sinh A → b vào chuỗi γA� ta sẽ thu được chuỗi γb�
 Dẫn xuất trực tiếp: nếu α→β là một luật sinh thì
 Dẫn xuất gián tiếp: nếu các chuỗi a
1
, a

2
, , a
m
và a
1
→ a
2
, a
2

a
3
, , a
m-1
→ a
m
thì a
m
có thể được dẫn xuất gián tiếp từ a
1

a
1
→ * a
m
Ngôn ngữ sinh bởi văn phạm :
(tự xác định ví dụ minh họa )
Câu 3 : Định nghĩa văn phạm ? Phân loại theo Chomsky.Sự khác biệt giữa các
loại văn phạm.Cho ví dụ minh họa
Avram Noam Chomsky đưa ra một hệ thống phân loại các văn phạm dựa vào tính

chất của các luật sinh.
 Văn phạm loại 0 (văn phạm không hạn chế-

UG – Unrestricted Grammar) :
không cần thỏa điều kiện ràng buộc nào trên tập các luật sinh;
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
Vn phm loi 1 (vn phm ng cnh CSG-Context Sensitive Grammar) :
nu vn phm G cú cỏc lut sinh dng v :
,||||
Vn phm loi 2 (vn phm phi ng cnh - CFG Context-Free Grammar) :
cú lut sinh dng A vi A l mt bin n v l chui cỏc ký hiu
thuc ( )
*
Vớ d : G=({a, b}, {S, A, B}, P, S) vi P gm cỏc lut sinh:
S -> AB
A -> aA|a
B -> bB|b
Vn phm loi 3 (Vn phm chớnh quy -

RG Regular Grammar) : cú mi
lut sinh dng tuyn tớnh trỏi hoc tuyn tớnh phi
Tuyn tớnh phi: A wB hoc A w;
Tuyn tớnh trỏi: A Bw hoc A w;
Vi A, B l cỏc bin n, w l chui ký hiu kt thỳc (cú th l rng).
(vớ d xem trong bi ging)
Cõu 4 : Cho vn phm phi ng cnh G = < , , S, P > hóy ch ra rng xõu w
khỏc rng nm trong L(G) khi tn ti cõy dn xut trong vn phm G m cỏc
nỳt lỏ ca nú to nờn xõu w

Cõu 5 :Chng minh ngụn ng sinh ra bi vn phm l l úng vi phộp hp
(Tính đóng có nghĩa là nếu 2 văn phạm cùng loại thì ngôn ngữ sinh ra cùng loại và
hợp giao và nhân của các ngôn ngữ trên cùng loại)
- Chứng minh tính đóng của phép hợp:
Thật vậy,giả sử G
1
=(N
1
,T,S
1
,P
1
), G
2
=(N
2
,T,S
2
,P
2
) là 2 văn phạm cùng loại và L
1,
L
2
là các ngôn ngữ tơng ứng. Gọi L= L
1
L
2
ta chứng minh tồn tại văn phạm G cùng
loại với G

1
, G
2
sinh ra L.
Ta xây dung Văn phạm G nh sau:
1. N:= N
1


N
2
{S},
2. S không thuộc N
1
,

N
2
3. T:=T
( )
, , , ,A A



=
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
4. Tập luật sinh P đợc xác định:
P:= P

1
P
2
{S S
1
, S S
2
}
Khi đó:
- Văn phạm vừa nhận đợc cùng loại với với 2 loại văn phạm trên do 2 luật sinh vừa
thêm.
- Ta chứng minh L(G)= L
1
L
2
.
Giả sử w L, khi đó S*w trong G, theo cách xây dựng P thì SS
1
hoặc SS
2

vậy hoặc S
1
*w hoặc S
2
*w nghĩa là wL
1
hoặc wL
2
túc


là w L
1
L
2
.
Cõu 6 : Chng minh ngụn ng sinh ra bi vn phm l úng vi phộp ghộp
(ni kt)
Từ các văn phạm trên ta xây dựng G sao cho L(G)=L
1
.L
2
nh sau: G=(N,T,S,P) trong
đó T:=T
1
T
2
, N:=N
1
N
2
{S}, P:=P
1
P
2
{S S
1
S
2
}.

Ta chứng minh L(G)L
1
L
2
, thật vậy giả sử w L(G) khi đó tồn tại dãy dẫn xuất S
*w
Muốn vậy đầu tiên phải áp dụng quy tắc SS
1
S
2
sau đó để khử đợc S
1
ta phải áp
dụng các luật P
1
, sau hữu hạn bớc ta sẽ đợc dãy có dạng w
1
S
2
, áp dụng tiếp các luật
của P
2
ta sẽ khử đợc S
2
và nhận đợc xâu w
1
w
2
=w Ta nhận đợc điều cần chứng
minh. Ngợc lại tơng tự.

- Ta mô tả các tính chất trên thông qua ví dụ sau: Cho văn phạm G
1
=(N
1
,T,S
1
,P
1
),
G
2
=(N
2
,T,S
2
,P
2
) là 2 văn phạm cùng loại trong đó N
1
={S
1
}, T
1
={a,

b}, P
1
={ S
1
ab, S

1
aS
1
b}; N
2
={S
2
}, T
2
={c}, P
2
={ S
2
cS
2
, S
2
c}.
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
Xây dựng văn phạm G
3
=(N, T, S, P) sao cho: L(G
3
)= L(G
1
)L(G
2
); L(G

3
)= L(G
1
)
L(G
2
);
L(G
3
)= L(G
1
). L(G
2
).
1.
2. Ta đã biết L(G
1
)={a
n
b
n
, n>=1}, L(G
2
)={c
m
, m>=1}

. Ta chứng minh L(G
3
)=

L(G
1
)L(G
2
)={ a
n
b
n
,c
m
, n, m>=1}.Văn phạm G
3
đợc xây dựng nh sau:
N:={N1N2{S N
1
N
2
}; T:={a,b,c} và các luật sinh nh sau:P:={S S
1
, S
S
2
, S
1
ab, S
1
aS
1
b}, S
2

cS
2
, S
2
c}.
- Giả sử wL(G
3
) khi đó tồn tại dãy dẫn xuất S*w (ứng với S*w
1
w
2
w
3
w
k
=w). Để có thể nhận đợc w thì w
1
chỉ có thể là S
1
hoặc S
2
. Nếu w
1
là S
1
w
2
=a
2
S

1
b
2
w
k-1
=a
k
S
1
b
k
,w
k
=a
k+1
b
k+1
vậy suy ra wL(G
3
) L(G
1
)

L(G
2
)
- Ngợc lại giả sử w L(G
1
)


L(G
2
) ta có thể coi w L(G
1
) khi đó tồn tại dãy dẫn
xuất trong G
1
có dạng S
1
*w (ứng với S
1
*w
1
=aS
1
b w
2
= a
2
S
1
b
2
w
3

w
k
=a
n

b
n
=w). Xây dựng dãy dẫn xuất sau: SS
1
*w (ứng với
SS
1
*w
1
=aS
1
b w
2
= a
2
S
1
b
2
w
3
w
k
=a
n
b
n
=w). Vậy wL(G
3
).

2. Ta xây dựng G
3
sao cho L(G
3
)= L(G
1
). L(G
2
)={a
n
b
n
c
m}
}.
N:={S, S
1
,S
2
}, T:={a,b,c}, P:={ SS
1
S
2
, S
1
ab, S
1
aS
1
b, S

2
cS
2
, S
2
c}.
Ta chứng minh bao hàm thức
G=(N,T,S,P). L(G
3
) L(G
1
). L(G
2
). Giả sử w L(G
3
) khi đó tồn tại dãy dẫn xuất
trong G
1
có dạng S*w (ứng với S*S
1
S
2
w1=aS
1
bS
2
w
2
= a
2

S
1
b
2
S
2
w
3

w
k
=a
n
b
n
S
2
a
n
b
n
c S
2
a
n
b
n
c
m-1
S

2
a
n
b
n
c
m
=w) mà a
n
b
n
L(G
1
) và c
m
L(G
2
) vây
nên w L(G
1
).L(G
2
). Ta chứng minh điều ngợc lại, giả sử w L(G
1
).L(G
2
) hay
w=w
1
w

2
trong đó w
1
L(G
1
) ,w
2
L(G
2
) vì vậy tồn tại dẫn xuất S
1
*w
1

S
2
*w
2
. Lập dẫn xuất mới
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
SS
1
S
2
aS
1
bS
2

a
n
b
n
S
2
=w
1
S
2
a
n
b
n
c S
2
a
n
b
n
c
m-1
S
2
a
n
b
n
c
m

=w , đây là dẫn
xuất trong L(G
3
), từ đây suy ra điều phải chứng minh.
Cõu 7 : Cho G=< , , S, P > khụng phi l vn phm loi 0 vi ký t xut
phỏt S cú v phi ca quy tc dn xut.Ch ra rng tn ti vn phm
G=< , , S, P >cựng loi v tng ng vi G khụng cú ký t xut phỏt
v phi ca quy tc dn xut
Chứng minh. Xây dựng G=(N,T,S,P) nh sau:
- N:=N{S}, ở đây S là ký hiệu mới cha có trong N và T
P:=P{ S/SP, (NT)
+
}, nghĩa là P gồm các quy tắc của G bổ sung
thêm các quy tắc dạng S nếu trong P có quy tắc S. Với quy ớc trên ta thấy
- Không có quy tắc nào mà ký tự xuất phát xuất hiện ở vế phải của dẫn xuất.
Giả sử wL(G) khi đó tồn tại dãy dẫn xuât S* w và tồn tại (NT)* sao cho
S* w. Theo cách xây dựng dẫn xuất vì trong G có S nên trong G có
S vì vậy dẫn xuất S* w là dẫn xuất trong G vậy nên wL(G) do đó
L(G) L(G).
Ngợc lại nếu wL(G) nghĩa là S*w tồn tại (NT)* S* w mà S*
có tơng ứng S2fg trong G vậy nên S*w là dẫn xuất trong G cho nên
L(G) L(G).
Nhn xột : chúng ta coi các văn phạm loại 1,2,3 không có các ký tự xuất phát nằm
ở vế phải của các dẫn xuất và do eL(G) nên trong luật sinh phải có Se.
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
Cõu 8 : Khỏi nim vn phm phi ng cnh?Khỏi nim v dn xut v cõy dn
xut?S nhp nhng ca vn phm?
Vn phm phi ng cnh : cú lut sinh dng A vi A l mt bin n v l

chui cỏc ký hiu thuc ( )
*
Cõy dn xut :
Cây :là tập hợp hữu hạn các nút và các cung trong đó:
Có duy nhất 1 nút gọi là nút gốc.
Mỗi một nút trong cây trừ nút gốc đợc nối với một nút khác bằng một cung đi
vào duy nhất.
Mỗi một nút trong cây trừ nút gốc nếu bỏ cung đi vào thì nó trở thành gốc của
một cây , gọi là cây con của cây đã cho.
Cây dẫn xuất. Cho văn phạm phi ngữ cảnh G=(N,T,S,P). Giả sử wL(G),
w=w
1
w
2
w
n
, w
i
T và S*w, giả sử rằng dẫn xuất của w
là dãy các quy tắc có dạng:
SA
11
A
12
A
1n
A
21
A
22

A
2m
w
1
w
2
w
l
, xây dựng cây thoả điều kiện
sau:
- Bơc 0: Xây dựng gốc có nhãn S
- Bớc 1: Các đỉnh con của S là các ký tự đợc sinh ra do áp dụng luật sinh thứ 1.
(Đó là A
11
A
12


A
1n
-
Bớc 2. Các đỉnh con của A
1j
j =1 n
.
: Là những ký tự đợc sinh ra do áp dụng luật
sinh thứ 2
- Bớc i: Giả sử đã xác định đợc các đỉnh ở bớc i-1, các đỉnh con đợc sinh ra ở bớc
thứ i là các đỉnh sinh ra từ các đỉnh ở bớc thứ i-1 khi áp dụng luật sinh thứ i.
20

Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
- Các nút lá đọc theo thứ tự từ trái sang phảI là xâu w
* s nhp nhng ca vn phm :
mt vn phm phi ng cnh G cú yu t nhp nhng (ambiguity) nu tn ti nhiu
hn mt cõy dn xut cho cựng mt chui w.
Vớ d :
Xột vn phm G cú dng :
E E+E | E*E | (E) | a; v vi chui a+a*a s cú 2 cõy dn xut khỏc nhau:
(a+a)*a hay a+(a*a)???????????????????????
Khc phc s nhp nhng trong vn phm :
Quy nh rng cỏc phộp cng v nhõn luụn c thc hin theo th t
t trỏi sang phi (tr khi gp ngoc n)
a
E
E
*
E
+
EE
a a
E
E + E
E
*
E
a
a
a
20

Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
 Quy định rằng khi không có dấu ngoặc đơn ngăn cách thì phép nhân
luôn được thực hiện ưu tiên hơn phép cộng
Câu 9 : Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P > không chứa xâu
rỗng.Trình bày giải thuật loại bỏ các ký hiệu thừa ,loại bỏ luật sinh 𝞮,luật
sinh đơn vị
Các yếu tố thừa :
 Các ký hiệu không tham gia vào quá trình dẫn xuất ra chuỗi ký hiệu kết
thúc;
 Luật sinh dạng A → B (làm kéo dài chuỗi dẫn xuất).
Khái niệm văn phạm rút gọn :
vẫn giữ khả năng sản sinh ngôn ngữ đó mà không chứa những yếu tố vô ích không
sinh ra chuỗi, làm phức tạp hay kéo dài dẫn xuất sinh chuỗi.
 Loại bỏ các ký hiệu thừa :
Định nghĩa :
1 ký hiệu X được gọi là có ích nếu có 1 dẫn xuất dạng S → *αXβ → *w với α,β
là các chuỗi bất kỳ và w⋲ ∑*
Bổ đề 1:
Cho CFG G=< Σ, Δ, S, P > với L(G)≠ ⌀ có 1 CFG G=< Σ’, Δ’, S, P’ > tương
đương sao cho mỗi A thuộc Δ’ tồn tại w thuộc ∑* để A→ *w
 Có thể loại bỏ các biến không dẫn ra chuỗi ký hiệu kết thúc
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
Giải thuật tìm ký hiệu phụ :
1.Old Δ’ :=⌀ ;
2. new Δ’ :={A|A → w với w thuộc T*}
3.while (Old Δ’ ≠ New Δ’)
do{

Old Δ’ = New Δ’;
New ∆’= Old Δ’ ⋃ {A|A → α;α ⋲ (∑ ⋃ Old Δ’)}
}; Δ’= New Δ’;
Bổ đề 2:
Cho CFG G=< Σ, Δ, S, P > ta có thể tìm được 1 CFG G=< Σ’, Δ’, S, P’ >
tương đương sao cho mỗi X ⋲ (Δ’⋃ Σ’) tồn tại α,β ⋲ (Δ’⋃ Σ’)* để
S →*αXβ
 Có thể loại các biến không dẫn ra từ S
Thuật toán :
Đặt Δ’:={S};
If(A ⋲ Δ’ và A → α1|α2…|αn là các luật sinh trong P)
if(X là 1 ký hiệu phụ trong α1,α2…,αn và X không có trong Δ’)
thêm X vào trong Δ’;
Lặp lại bước trên cho đến khi không biến nào được thêm nữa.
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
Định lý : Mỗi một ngôn ngữ phi ngữ cảnh (CFL) không rỗng được sinh ra từ
một văn phạm phi ngữ cảnh (CFG) không có ký hiệu vô ích
 Loại bỏ luật sinh ε
Định lý : Cho CFG G(Σ, Δ, S, P) và L là ngôn ngữ sinh ra bởi G. Khi đó L –
{ε} là ngôn ngữ sinh ra bởi CFG G(Σ’, Δ’, S, P’) không có ký hiệu vô ích và
không có luật sinh ε.
 Loại bỏ luật sinh dạng A → ε
Giải thuật :
 B1 : Ω := ⌀;
Nếu luật sinh A → ε thì them A vào Ω.
Nếu B→X
1
X

2………
X
n
với mọi X
i
⋲ Ω thì thêm B vào Ω;
 B2 : xây dựng P’ với mỗi A→X
1
X
2………
X
n
trong P ta xây dựng luật sinh A→
α1,α2…,αn với điều kiện :
Nếu X
i
⋶ Ω thì αi = X
i
Nếu X
i
⋲ Ω thì αi = X
i
|�
Không phải thì tất cả αi đều bằng �;
 Luật sinh đơn vị :
Mỗi CFL không chứa ε được sinh ra bởi CFG không có ký hiệu vô ích, không
có luật sinh ε hoặc luật sinh đơn vị.
 Loại bỏ được các luật sinh đơn vị
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn

Lương - ĐTH
Cho G=(Σ, Δ, S, P), đặt L(G) là CFL sinh ra bởi G và không chứa ε.Ta có thể loại
bỏ các ký hiệu thừa và các luật sinh ε trong G
Giải thuật xây dựng P’ không chứa luật sinh đơn vị :
for(mỗi biến A ⋲ Δ)
{ tính Δ
A
={B|B⋲ Δ và A →*B};
for( mỗi biến B⋲ Δ
A
)
{ for( mỗi luật sinh B→α thuộc P)
{ if(B→α không là luật sinh đơn vị)
{ thêm luật sinh A→α vào P’ }}}}
Câu 10 : định nghĩa luật sinh 𝞮. Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P >
không chứa xâu,không chứa các ký hiệu thừa.Trình bày giải thuật loại bỏ luật
sinh 𝞮
 Loại bỏ luật sinh ε
Định lý : Cho CFG G(Σ, Δ, S, P) và L là ngôn ngữ sinh ra bởi G. Khi đó L –
{ε} là ngôn ngữ sinh ra bởi CFG G(Σ’, Δ’, S, P’) không có ký hiệu vô ích và
không có luật sinh ε.
 Loại bỏ luật sinh dạng A → ε
Giải thuật :
 B1 : Ω := ⌀;
Nếu luật sinh A → ε thì them A vào Ω.
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
Nếu B→X
1

X
2………
X
n
với mọi X
i
⋲ Ω thì thêm B vào Ω;
 B2 : xây dựng P’ với mỗi A→X
1
X
2………
X
n
trong P ta xây dựng luật sinh A→
α1,α2…,αn với điều kiện :
Nếu X
i
⋶ Ω thì αi = X
i
Nếu X
i
⋲ Ω thì αi = X
i
|�
Không phải thì tất cả αi đều bằng �;
Câu 11 : định nghĩa luật sinh 𝞮. Cho văn phạm phi ngữ cảnh G=< Σ, Δ, S, P >
không chứa xâu,không chứa các ký hiệu thừa.Trình bày giải thuật loại bỏ luật
sinh đơn vị ?
 Luật sinh đơn vị :
Mỗi CFL không chứa ε được sinh ra bởi CFG không có ký hiệu vô ích, không

có luật sinh ε hoặc luật sinh đơn vị.
 Loại bỏ được các luật sinh đơn vị
Cho G=(Σ, Δ, S, P), đặt L(G) là CFL sinh ra bởi G và không chứa ε.Ta có thể loại
bỏ các ký hiệu thừa và các luật sinh ε trong G
Giải thuật xây dựng P’ không chứa luật sinh đơn vị :
for(mỗi biến A ⋲ Δ)
{ tính Δ
A
={B|B⋲ Δ và A →*B};
for( mỗi biến B⋲ Δ
A
)
{ for( mỗi luật sinh B→α thuộc P)
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
{ if(B→α không là luật sinh đơn vị)
{ thêm luật sinh A→α vào P’ }}}}
Câu 12 : Trình bày các bước chuẩn hóa văn phạm phi ngữ cảnh về dạng
chuẩn Chomsky tương đương.
Văn phạm CFG G=(Σ, Δ, S, P) có dạng chuẩn Chomsky nếu:
• G không chứa các ký hiệu thừa;
• G không chứa các luật sinh đơn vị.
• Tất cả các luật sinh của nó có dạng A→BC hoặc A→a (nếu ε không thuộc L
ngược lại chỉ cần 1 luật sinh S→ ε)
Định lý : một ngôn ngữ phi ngữ cảnh bất kỳ không chứa ε đều được sinh ra
bằng một văn phạm nào đó mà các luật sinh có dạng A → BC hoặc A→a, với
A, B, C là biến và a là ký hiệu kết thúc.
Giải thuật đưa về dạng chuẩn Chomsky :
Giả sử CFL L=L(G) với G=( Σ, Δ, S, P).

B1. Thay thế tất cả các luật sinh có độ dài vế phải là 1 (loại bỏ các luật sinh đơn
vị và ε)
B2.Thay thế tất cả các luật sinh có độ dài vế phải lớn hơn 1 và có chứa ký hiệu
kết thúc
A→ X
1
X
2…
X
i……
X
n
; a→X
i
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
A→ X
1
X
2…
C
a……
X
n
; C
a
→a
B3.Thay thế các luật sinh mà vế phải có nhiều hơn 2 ký tự chưa kết thúc


Câu 13 : Cho ví dụ minh họa chuyển 1 văn phạm phi ngữ cảnh về dạng chuẩn
Chomsky tương đương.
 tìm văn phạm có dạng CNF tương đương CFG:
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 C
a
và b bằng C
b
trong các luật sinh có độ dài vế phải > 1:
S → C
a
A | a | C
b
B | b | ABA
A → C
a
A | a | C
b
B | b; B → C
b

B | b
C
a
→ a; C
b
→ b
Bước 3 : thay thế các luật sinh có độ dài vế phải > 2:
A → B
1
B
2
B
m
(m>2)
A → B
1
D
1
D
1
→ B
2
D
2

D
m-2
→ B
m-1
B

m
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
S → C
a
A | a | C
b
B | b | AD
1
A → C
a
A | a | C
b
B | b
B → C
b
B | b
C
a
→ a
C
b
→ b
D
1
→ BA
Câu 14 : Trình bày các bước chuẩn hóa văn phạm phi ngữ cảnh về dạng
chuẩn Greibach(không cần ví dụ)
Văn phạm CFG G(Σ, Δ, S, P) có dạng chuẩn Greibach nếu:

 G không chứa các ký hiệu thừa;
 G không chứa các luật sinh đơn vị.
 Các luật sinh của nó có dạng A → aα (α là chuỗi các biến hoặc ε nếu ε ∉ L,
ngược lại thêm vào luật sinh S → ε).
Bổ đề 1:
Cho G(Σ, Δ, S, P) là một CFG, đặt A → α
1

2
là luật sinh trong P và B → β
1

2
| |
β
r
là các B - luật sinh;
Văn phạm G
1
(Σ, Δ
1
, S, P
1
) thu được từ G bằng cách loại bỏ luật sinh A → α
1

2

thêm vào các luật sinh A→ α
1

β1α
2
| α
1
β2α
2
|…….| α
1
βrα
2
tương đương G.
 Áp dụng thay thế các luật sinh trực tiếp

20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
Bổ đề 2 :
 Đặt G(Σ, Δ, S, P) là CFG; A → Aα
1
|Aα
2
| |Aα
r
là tập các A – luật sinh có A
là ký hiệu trái nhất của vế phải (luật sinh đệ quy trái). Đặt A → β
1

2
| |β
s


các A - luật sinh còn lại; G
1
(Σ, Δ ⋃ {B}, S, P
1
) là CFG được tạo thành bằng
cách thêm biến mới B và thay các A - luật sinh bằng các luật dạng
A → β
i
; A → β
i
B; (1 ≤ i ≤ s)
B → α
i
; B → α
i
B; (1≤i≤r)
thì ta có G
1
tương đương G, hay L(G) = L(G
1
).(loại bỏ VP đệ quy trái)
Các bước chuyển văn phạm phi ngữ cảnh về dạng chuẩn Greibach
Đặt G là CFG sinh ra CFL không chứa ε
Bước 1: xây dựng G' có dạng GNF tương đương G
Bước 2: đổi tên các biến trong G' thành A
1
, A
2
, , A

m
(m ≥1 ) với A
1
là ký hiệu bắt
đầu. Đặt V = {A
1
, A
2
, , A
m
}
Bước 3: thay thế luật sinh sao cho nếu A
i
→ A
j
γ thì j > i
 Nếu j<i : áp dụng bổ đề 1. Nếu i=j: áp dụng bổ đề 2
 Trong P chỉ chứa các luật sinh dạng : A
i
→ A
j
γ ( j > i), A
i
→ aγ , B
k

γ (γ thuộc (V⋃ { B
1
,B
2

, ,B
i-1
}))*
Bước 4 : thay thế các A
i
– luật sinh về đúng dạng(áp dụng bổ đề 1)
Bước 5 : thay thế các B
k
– luật sinh về đúng dạng (áp dụng bổ đề 1)
Câu 15.Trình bày về Automat hữu hạn.Phân biệt các dạng Automat hữu hạn?
Ngôn ngữ đoán nhận bởi Automat hữu hạn.VD minh họa
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
 Automata là một mô hình toán học hay máy trừu tượng có cơ cấu và hoạt
động đơn giản nhưng có khả năng đoán nhận ngôn ngữ.
 Một finite automata (FA) là một mô hình tính toán hữu hạn: mọi cái liên
quan đến nó đều có kích thước hữu hạn cố định và không thể mở rộng trong
suốt quá trình tính toán;
 Một FA làm việc theo thời gian rời rạc (time steps);
 Nói chung, thông tin ra sản sinh bởi một FA phụ thuộc vào cả thông tin vào
hiện tại lẫn các thông tin vào trước đó. Nếu sử dụng bộ nhớ (memory), giả
sử rằng nó có ít nhất một bộ nhớ vô hạn về tiềm năng;
 Sự phân biệt giữa các loại automata khác nhau chủ yếu dựa trên việc thông
tin có thể được đưa vào memory hay không;
Các dạng Automat hữu hạn : Đơn định và đa định
Phân biệt :
 DFA (hữu hạn đơn định) tại một thời điểm với một trạng thái và một ký tự
nhập vào thì máy chỉ có thể chuyển đến không nhiều hơn một trạng thái.
 NFA (hữu hạn đa định) là automata mà ứng với một trạng thái và một ký tự

nhập, có thể có không, một hoặc nhiều phép chuyển trạng thái.
Ngôn ngữ đoán nhận bởi AutoMat hữu hạn :
 Đoán nhận ngôn ngữ: đoán nhận các chuỗi của nó.
 Hoạt động của automata bắt đầu từ một trạng thái đặc biệt, trang thái đầu
tiên (start state);
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
Gi s rng ti mi thi im (step, time step), automata ang mt trng
thỏi no ú (current state), u vo ca automata ún nhn mt ký t ca
chui cn x lý, di tỏc ng ca ký t ú automata chuyn sang mt trng
thỏi k tip (next state);
Nh vy s bc x lý mt chui tng ng vi di chui.
Chui c oỏn nhn nu trng thỏi cui cựng ca automata ri vo mt
trong cỏc trng thỏi kt thỳc (finish states).
Vớ d minh ha (xem trong bi ging)
Cõu 16 : Khỏi nim v Automat Mealy v Automat Moore.Phõn bit chỳng
vi Automat hu hn?Vớ d ?
Automat Mealy.
Bộ M=( X,Y, S,,) trong đó
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
- ánh xạ từ XxSS gọi là hàm chuyển trạng thái.
- ánh xạ từ XxSY gọi là hàm đa thông tin ra.
Đợc gọi là Automat Mealy
Với định nghĩa trên ta hiểu Automat Mealy hoạt động theo cơ chế tín hiệu phát ra
phụ thuộc vào tín hiệu vào và trạng thái nhận tín hiệu.
Automat Moore
Bộ M=( X,Y, S,,) trong đó

20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
X -Tập hữu hạn các ký hiệu vào
Y - Tập hữu hạn các ký hiệu ra
S - Tập hữu hạn gọi là tập các trạng thái
- ánh xạ từ XxSS gọi là hàm chuyển trạng thái.
- ánh xạ từ SY gọi là hàm đa thông tin ra.
Đợc gọi là Automat Moore
Với định nghĩa trên ta hiểu Automat Moore hoạt động theo cơ chế tín hiệu phát ra
phụ thuộc trạng thái nhận tín hiệu.
Cõu 17 : Trỡnh by cỏc phng phỏp biu din Automat hu hn?Cho vớ d
Cho mt automata thc cht l cho hm chuyn trng thỏi ca nú, cú th cho di
dng bng chuyn trng thỏi hoc cho di dng th chuyn.
Cú 2 cỏch biu din Automat l qua bng chuyn v th di chuyn
th chuyn l mt a th cú hng (cú th cú khuyờn) G: Tp nh ca G
c gỏn nhón bi cỏc phn t thuc Q, cỏc cung c gỏn nhón bi cỏc phn t
thuc , nu a , p,q Q v (q, a) = p thỡ s cú mt cung t nh q ti nh
p c gỏn nhón a. nh vo ca th chuyn ng vi trng thỏi ban u q
0
.
Bng chuyn bng cú kớch c |Q| ì ||, trong ú dũng i ct j ca bng l
hoc b trng.
Vớ d :
( )
,
i j
q a

20

Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH

Câu 18 : Trình bày thuật toán đoán nhận chuỗi bởi 1 Automat hữu hạn cho
trước.Ví dụ minh họa
S:= q
0
;
C:= ký hiệu tiếp theo của chuỗi;
while (C < > ε) do {
S:= δ(S, C);
C:= ký hiệu tiếp theo của chuỗi;
};
if (S in F) return (true);
else return (false);
Ví dụ : Cho automat ®¬n ®Þnh sau:M=(X,S,s
0
, δ, F) trong ®ã
X={0,1}, S={s
0
, s
1
, s
2
, s
3
}, F={ s
2
, s
4

}. Hµm chuyÓn cã d¹ng sau:
20
Automat v ngụn ng hỡnh thc..Ngụ Vn
Lng - TH
Trạng thái Ký tự vào
0 1
s
0
{s
0
, s
3
}

{s
0
, s
1
}
s
1
e

s
2
s
2
s
2
s

2
s
3
s
4
e
s
4
s
4
s
3
Cho xâu vào w=w
1
w
2
w
k
. Đối với automat không đơn định trên thì hàm chuyển
trạng khi máy ở trang thái s và tín hiệu vào là a đợc (s,a) S
Vì vậy xuất hiện tình trạng rẽ nhánh, ta xây dựng cây đoán nhận xâu nh sau:
- Gốc là s
0
.
- Các đỉnh con của gốc s
0
là các trạng thái trong (s
0
,w
1

) trong đó w
1
là ký tự đầu
tiên của xâu w.
- Đối với đỉnh s* (s
0
,w
1
) ta xây dựng các đỉnh con của nó là các đỉnh thuộc tập
(s*,w
2
) và cứ tiếp tục cho đến ký tự cuối cùng của xâu.
- Trong cây này nếu có một đờng đi từ s
0
đến một lá chứa trạng thái kết thúc thì ta
nói máy M đoán nhận đợc xâu vào đang xét, ngợc lại ta nói M không đoán nhận đ-
ợc xâu vào đó. Với xâu vào có dạng w=01001 máy M có cây đoán nhận đi từ s
0
đến s
4
F nên máy M đoán nhận xâu trên.
s
0
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
0 0
1 1
0 0
0 0 0


1 1 1

Câu 19 : Trình bày phương pháp biến đổi NFA về DFA
 Giải thuật tổng quát xây dựng DFA từ NFA:
Giả sử NFA A={Q, Σ, δ, q
0
, F} chấp nhận L, giải thuật xây dựng DFA A’={Q’, Σ,
δ’, q
0
’, F’} chấp nhận L như sau:
o Q’ = 2
Q
, phần tử trong Q’ được ký hiệu là [q
0
, q
1
, …, q
i
] với q
0
, q
1
, …,
q
i
⋲ Q;
o q
0
’ = [q

0
];
o F’ là tập hợp các trạng thái của Q’ có chứa ít nhất một trạng thái kết
thúc trong tập F của A;
o Hàm chuyển δ’([q
1
, q
2
, , q
i
], a) = [p
1
, p
2
, , p
j
] nếu và chỉ nếu δ({q
1
,
q
2
, , q
i
}, a) = {p
1
, p
2
, , p
j
}.

o Đổi tên các trạng thái [q
0
, q
1
, …, q
i
]
S
31
s
0
s
1
s
0
s
3
S
0
S
31
s
4
s
0
s
1
s
0
s

4
20
Automat và ngôn ngữ hình thức……………………………………………………………….……….Ngô Văn
Lương - ĐTH
Ví dụ : NFA A({q
0
, q
1
}, {0, 1}, δ, q
0
, {q
1
}).Xây dựng DFA tương đương
A’ (Q’, {0, 1}, δ’, [q
0
], F’); Q’ = {⌀, [q
0
], [q
1
], [q
0
, q
1
]} ; F’ = {[q
1
], [q
0
, q
1
]}

Hàm chuyển : δ’([q
0
], 0) = [q
0
, q
1
]
δ’([q
0
], 1) = [q
1
]
δ’([q
1
], 0) = ⌀
δ’([q
1
], 1) = [q
0
, q
1
]
δ’([q
0
, q
1
], 0) = [q
0
, q
1

]
δ’([q
0
, q
1
], 1) = [q
0
, q
1
]
Câu 20 : Trình bày phương pháp biến đổi từ NFA𝞮 về NFA.Ví dụ minh họa
nếu L được chấp nhận bởi một NFA𝞮 thì L cũng được chấp nhận bởi một NFA
không có 𝞮-dịch chuyển.
phương pháp biển đổi :
 Giả sử ta có NFA𝞮 A(Q, Σ, δ, q
0
, F) chấp nhận L,
 Ta xây dựng: NFA A’={Q, Σ, δ’, q
0
, F’}, với:
1. F’ = F q⋃
0
nếu 𝞮*( q
0
) chứa ít nhất một trạng thái thuộc F. Ngược
lại, F’ = F;
2. δ’(q, a) = δ*(q, a).
Giải thuật xây dựng hàm chuyển tương đương :
Tìm kiếm T = �* (q
0

) ; T chưa được đánh dấu;
Thêm T vào tập Q’ (of DFA);
q
0
q
1
0
NFA:
NFA:
q
0
q
1
1
1
q
2
0
0,1
DFA:
DFA:

×