Tải bản đầy đủ (.pptx) (36 trang)

bài 2: Văn phạm 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 (382.89 KB, 36 trang )

G I N G 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
Automat
a
2
Bài 2. Văn 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
5/13/14
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
5/13/14
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
5/13/14
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ệ .

∑ = {a, b, c, … , x, y, z} b ng ch cái ti ng Anh;ả ữ ế

Δ = {α, β, γ, δ, ε, η, , κ, μ, χ, ν, π, θ, ρ, σ, τ, ω,ξ, ψ};ϕ

Г = {0, 1} 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};ừ ả ữ

ε, beautiful, happy… là các t trên Σ = {a, b, c, …, z}.ừ
a
∈Σ
{ }
1 2
, , ,
m
a a a
Σ =
1 2

i i it
a a a
α
=

ij
a
∈Σ
2.1.1. Các khái ni m c b nệ ơ ả
6
5/13/14
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 0ỗ ỗ ủ ỗ 10001

ĐN 2.6. Chu i ti n t : ỗ ề ố là chu i con b t kỳ n m đ u chu iỗ ấ ằ ở ầ ỗ

ĐN 2.7. Chu i h u t : ỗ ậ ố là chu i con b t kỳ 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
5/13/14
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
5/13/14
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ì:

Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, …}

Σ+ = {0, 1, 00, 01, 10, 11, 000, …}


Chu i 010ỗ 210 ∉ Σ* vì có s 2 ố ∉ Σ
2.1.1. Các khái ni m c b nệ ơ ả
9
5/13/14
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 = {ai | 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 đoán nh n m t chu i b t kỳ 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
5/13/14
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
5/13/14
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 = wε = 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 wR, là ủ ỗ ệ
chu i w đ c vi t theo th t ng c l i.ỗ ượ ế ứ ự ượ ạ
o
w = abcd wR = 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
5/13/14
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
5/13/14
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):
L1L2 = {w1w2 | w1 ∈ L1 và w2 ∈ L2} trên b ch cái ộ ữ Σ1 ∪ Σ2
o
LLL…LL = Li (k t n i i l n trên cùng ngôn ng L)ế ố ầ ữ
o
L0 = {ε}
{ }
*
1 2 1 2
|L L L or L
ω ω ω
∪ = ∈Σ ∈ ∈
{ }
*
1 2 1 2
|L L L and L
ω ω ω
∩ = ∈Σ ∈ ∈
( )
C L
Σ
2.1.3. Các phép toán trên ngôn ngữ
14
5/13/14
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 đóng kleene, ho c *-closure):ặ


ĐN 2.11. Ngôn ng ữ l p c tặ ắ (bao đóng 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:ữ
{ }
*
|
R R
L L
ω ω
= ∈Σ ∈
{ }
* 2
0

i n
i
L L L L L
ε

=
= = ∪ ∪ ∪ ∪ ∪
U
2

1

i n
i
L L L L L

+
=
= = ∪ ∪ ∪ ∪
U
{ }
*
\ | ,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

5/13/14
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
5/13/14
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University

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:ụ ơ ả ề ạ
<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é.→ừ ơ ở ữ
2.2.1. Văn ph m và các khái ni m liên quanạ ệ
17
5/13/14
Automata và ngôn ng hình th c - ©copyright by PhD. C.T.Ha, Le Quy Don Technical ữ ứ
University

ĐN 2.15: 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).ọ ắ ặ ậ ế ạ
2.2.1. Văn ph m và các khái ni m liên quanạ ệ
18
5/13/14
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
5/13/14
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 văn ph m sinh ra ạ
cùng m t ngôn ng (G1 t ng đ ng G2 ộ ữ ươ ươ ⇔ L(G1)=L(G2))
2.2.1. Văn ph m và các khái ni m liên quanạ ệ
20
5/13/14
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= a1a2 an là dãy qui t c d ng:ả ử ẫ ấ ủ ừ ắ ạ
S → A11A12 A1n → A21A22 A2m → a1a2 an

Khi đó, ta có th bi u di n nó d i d ng cây nh sau:ể ể ễ ướ ạ ư

S
A1n
A2m
A12

A23

a4
an
A22
a3
a2
a1
A21
A11
2.2.1. Văn ph m và các khái ni m liên quanạ ệ
5/13/14
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ạ ệ
5/13/14
22

Ví d 4: ụ Cho văn ph m:ạ
S→aAS; A→SbA ; A→SS; S→a; A→ba


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
5/13/14
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
5/13/14

24

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.ạ ự ấ ủ ậ

ĐN 2.20. 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;ậ ậ

ĐN 2.21. Văn ph m lo i 1 ạ ạ – Văn ph m c m ng c nh ạ ả ữ ả (CSG –
Context Sensitive Grammar): n u văn ph m G có các lu t sinh ế ạ ậ
d ng α β và :→ạ
,|β| ≥ |α|;

ĐN 2.22. Văn ph m lo i 2 ạ ạ – Văn 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 (Σ ế ơ ỗ ệ ộ ∪ Δ)*;
( )
, , , ,A A
α α α α α β

′ ′′ ′ ′′
= ∈ ∆ ∈ Σ ∪ ∆
2.2.2. Chomsky hierarchy -1956
5/13/14
25

ĐN 2.23. Văn ph m lo i 3 ạ ạ – Văn 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, L1, L2, L3 là l p các ngôn ng đ c sinh ra b i văn ớ ữ ượ ở
ph m lo i 0, 1, 2, 3 t ng ng, ta có:ạ ạ ươ ứ
L3 ⊂ L2 ⊂ L1 ⊂ L0.

×