GIẢ NG V I Ê N : T S . H À C H Í T R U N G
B Ộ M Ô N : K H M T
K H O A C N T T , H V K T Q S
Đ T : 0 1 6 8 . 5 5 8 . 2 1 . 0 2
E M A I L : H C T 2 0 0 9 @ Y A H O O . C O M
Lý thuyết automata và
ngôn ngữ hình thức
©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Languague
Grammar
Automata
2
Bài 2. phạm và ngôn ngữ hình thức
Grammars and formal languagues
MỤC ĐÍCH:
Trang bị những khái niệm cơ bản của môn học TA&FL;
YÊU CẦU:
Sinh viên nắm vững các khái niệm làm cơ sở cho các bài
học tiếp theo.
©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
3
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
4
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
2.1.1. Các khái niệm cơ bản
5
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.1. Tập 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 phần tử ược
gọi là một chữ cái hay một ký hiệu.
bảng chữ cái tiếng Anh;
ϕ
bảng chữ cái nhị phân;
ĐN 2.2. Cho , một dãy ,
ược gọi là một từ hay một xâu (chuỗi) trên bảng
, 0, 01, 101, 1010, 110011 là các từ trên bảng chữ cái
{0,1};
là các từ trên
a
12
, , ,
m
a a a
12
i i it
a a a
ij
a
2.1.1. Các khái niệm cơ bản
6
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.3. Độ dài chuỗi: là số các ký hiệu tạo thành chuỗi
• |abca| = 4
ĐN 2.4. Chuỗi rỗng: ký hiệu ε, chuỗi không có ký hiệu nào
• || = 0
ĐN 2.5. Chuỗi con: chuỗi v là chuỗi con của w nếu v ược
tạo bởi các ký hiệu liền kề nhau trong chuỗi w.
• Chuỗi 10 là chuỗi con của chuỗi 010001
ĐN 2.6. Chuỗi tiền tố: là chuỗi con bất nằm ở ầu chuỗi
ĐN 2.7. Chuỗi hậu tố: là chuỗi con bất nằm ở cuối chuỗi
• Chuỗi abc có các tiền tố a, ab, abc
• Chuỗi 0246 có các hậu tố 6, 46, 246, 0246
2.1.1. Các khái niệm cơ bản
7
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
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.
ĐN 2.8: 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 .
* =
+
+ = * -
2.1.1. Các khái niệm cơ bản
8
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Ví dụ 1: Cho = {0,1} thì:
* = {ε
+
Chuỗi 010210 * vì có số 2
2.1.1. Các khái niệm cơ bản
9
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Biểu diễn ngôn ngữ:
Liệt kê các phần tử (chuỗi): L = {aa, aba, baa, baba}
Mô tả đặc điểm chủ yếu: L = {a
i
| i là số nguyên tố}
Biểu diễn ngôn ngữ một cách tổng quát thông qua văn
phạm (grammar) và automata:
Văn phạm: cơ chế sản sinh ra mọi chuỗi của ngôn ngữ;
Automata: là một máy trừu tượng, hay một cơ chế cho
phép nhận một chuỗi bất có thuộc một ngôn ngữ
L hay không
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
10
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
2.1.2. Các phép toán trên từ
11
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.8. Chuỗi nối kết (concatenation): chuỗi ược tạo
thành bằng cách viết chuỗi thứ nhất, sau chuỗi thứ hai,
o Nối ghép của chuỗi Long và Int là LongInt
o Nối kết của chuỗi rỗng: = = w (với mọi w) → là
ơn vị của phép nối kết
ĐN 2.9. Chuỗi đảo ngược (reverse): của chuỗi w, ký hiệu
w
R
, là chuỗi w ược viết theo thứ tự ngược lại.
o w = abcd → w
R
= dcba
R
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ừ .
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
12
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
2.1.3. Các phép toán trên ngôn ngữ
13
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Vì mỗi ngôn ngữ là một tập hợp nên ta có các phép toán
đại số tập hợp như là phép hợp, phép giao, phép hiệu,
phép lấy bù trên các ngôn ngữ.
Phép hợp:
Phép giao:
Phép phần bù (complement): = * \ L
Phép nhân ghép (concatenation):
L
1
L
2
= {w
1
w
2
| w
1
L
1
và w
2
L
2
} trên bộ chữ cái
1
2
o
i
(kết nối i lần trên cùng ngôn ngữ L)
o L
0
=
*
1 2 1 2
|L L L or L
*
1 2 1 2
|L L L and L
CL
2.1.3. Các phép toán trên ngôn ngữ
14
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.10. Ngôn ngữ lặp (bao kleene, hoặc *-closure):
ĐN 2.11. Ngôn ngữ lặp cắt (bao dương positive
closure):
ĐN 2.12. Ngôn ngữ ngược:
ĐN 2.13. Ngôn ngữ cắt trái của ngôn ngữ X cho ngôn ngữ Y:
ĐN 2.14. Ngôn ngữ cắt phải của ngôn ngữ X cho ngôn ngữ Y:
*
|
RR
LL
*2
0
in
i
L L L L L
2
1
in
i
L L L L L
*
\ | ,Z Y X z x X y Y mà x yz
/ | ,Z X Y z x X y Y mà x zy
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
15
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
2.2.1. Văn phạm và các khái niệm liên quan
16
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Theo từ ể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ề phạm:
<câu>→<chủngữ><vịngữ>
<chủngữ>→tôi | anh | chị
<vịngữ>→<ộngtừ><danhtừ>
<ộngtừ>→ | uống
<danhtừ>→cơm | phở | sữa | café.
2.2.1. Văn phạm và các khái niệm liên quan
17
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.15: phạm G là một bộ sắp thứ tự gồm 4 thành
phần 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 ( khi, ta gọi chúng là các qui tắc hoặc luật viết lại).
2.2.1. Văn phạm và các khái niệm liên quan
18
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Qui ước: Trong môn học sử dụng:
Chữ cái in hoa A, B, C,ể biểu thị các biến, trong S là
ký hiệu xuất phát;
X, Y, Z,… ể biểu diễn các ký tự chưa biết hoặc các biến;
a, b, c, d, e,ể biểu diễn chữ cái;
u, v, w, x, y, z,ể biểu diễn chuỗi chữ cái;
α, β, ω,… biểu thị chuỗi các biến hoặc các ký hiệu kết thúc.
Ví dụ 2: G = ({a, b}, {S, A, B}, S, P), trong :
P: S → aAS|bBS|,
A → aaA|b,
B → aaB|a
2.2.1. Văn phạm và các khái niệm liên quan
19
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
ĐN 2.16. Dẫn xuất trực tiếp: nếu → là một luật sinh thì
→
ĐN 2.17. Dẫn xuất gián tiếp: nếu các chuỗi
1
,
2
, ,
m
* và
1
→
2
,
2
→
3
, ,
m-1
→
m
thì
m
có thể ược
dẫn xuất gián tiếp từ
1
1
→ *
m
ĐN 2.18. Ngôn ngữ L sinh bởi văn phạm G:
L (G) = {w w * và S → * w}
ĐN 2.19. Văn phạm tương đương: là 2 phạm sinh ra
cùng một ngôn ngữ (G
1
tương ương G
2
L(G
1
)=L(G
2
))
2.2.1. Văn phạm và các khái niệm liên quan
20
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
Cây dẫn xuất: Giả sử dẫn xuất của từ w= a
1
a
2
a
n
là dãy qui
tắc dạng:
S A
11
A
12
A
1n
A
21
A
22
A
2m
a
1
a
2
a
n
Khi , ta có thể biểu diễn nó dưới dạng cây như sau:
S
A
1n
A
2m
A
12
A
23
a
4
a
n
A
22
a
3
a
2
a
1
A
21
A
11
2.2.1. Văn phạm và các khái niệm liên quan
07/03/2012
21
Ví dụ 3: Xét văn phạm G ={{a, b}, {S, A}, S, P}, trong
đó
P = { S → aS, S → aA, A → bA, A → b }
Ngôn ngữ sinh bởi văn phạm G:
2.2.1. Văn phạm và các khái niệm liên quan
07/03/2012
22
Ví dụ 4: Cho văn phạm:
SaAS; ASbA ; ASS; Sa; Aba
Xét chuỗi:
S aAS aSbAS aabAS aabbaS aabbaa
S
a
A
S
a
b b
S
a
a
A
Bài 2. Văn phạm và ngôn ngữ hình thức
2.1. Ngôn ngữ
2.1.1. Các khái niệm cơ bản
2.1.2. Các phép toán trên từ
2.1.3. Các phép toán trên ngôn ngữ
2.2. Văn phạm
2.2.1. Văn phạm và các khái niệm liên quan
2.2.2. Phân loại văn phạm theo Chomsky
2.2.3. Tính chất của văn phạm và ngôn ngữ
2.2.4. Tính đóng của lớp ngôn ngữ sinh bởi văn phạm
2.3. Sơ lược về automata
23
07/03/2012
Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University
2.2.2. Chomsky hierarchy -1956
07/03/2012
24
Avram Noam Chomsky ưa ra một hệ thống phân loại
các phạm dựa vào tính chất của các luật sinh.
ĐN 2.20. Văn phạm loại 0 phạm không hạn chế (UG
– Unrestricted Grammar): không cần thỏa ều kiện
ràng buộc nào trên tập các luật sinh;
ĐN 2.21. Văn phạm loại 1 phạm cảm ngữ cảnh (CSG
– Context Sensitive Grammar): nếu phạm G có
các luật sinh dạng → và :
|;
ĐN 2.22. Văn phạm loại 2 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 các ký hiệu thuộc ( )*;
, , , ,AA
2.2.2. Chomsky hierarchy -1956
07/03/2012
25
ĐN 2.23. Văn phạm loại 3 phạm chính quy (RG –
Regular Grammar): có mọi luật sinh dạng tuyến tính
phải hoặc tuyến tính trái.
Tuyến tính phải: A → aB hoặc A → a;
Tuyến tính trái: A → Ba hoặc A → a;
Với A, B là các biến ơn, a là ký hiệu kết thúc (có thể là
rỗng).
Nếu ký hiệu L
0
, L
1
, L
2
, L
3
là lớp các ngôn ngữ ược sinh ra
bởi phạm loại 0, 1, 2, 3 tương ứng, ta có:
L
3
L
2
L
1
L
0
.