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

Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và OTOMAT

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 (410.97 KB, 69 trang )

Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

Chương1. Văn Phạm và ngôn ngữ
$1. Các khái niệm cơ bản.
1.1. Các khái niệm chung.
a. Bảng chữ cái. Bảng chữ cái là một tập hợp hữu hạn các phần tử, các phần tử của
nó ta gọi là các chữ cái hoặc các ký tự.
b. Ví dụ. - Tập các ký tự La tinh {a,b,…,z, A,B,…,Z}
- Tập các số{0,1}
- Tập các các ký tự La tinh {α,β,ϒ,…}.
- Tập các số {0,1,2,3,4,5,6,7,8,9}.
Chú ý răng bảng chữ cái là một tập hợp nên ta ta vẫn dùng các ký hiệu thuộc nh trong
lý thuyết tập hợp.
1.2. Xâu sinh ra trên bảng chữ cái.
a. Xâu. Xâu hay từ được sinh ra trên bảng chữ cái là một dãy bất kỳ các phần tử
thuộc dãy đó. Gọi xâu là x , độ dài xâu được ký hiệu là x. Nh vậy khái niệm
xâu cũng đồng nghĩa với khái niệm chuỗi ký tự. Xâu rỗng là xâu không chứa phần
tử nào thường ký hiệu e.
b. Tập Các xâu. Cho V là một bảng chữ cái, gọi V
+
là tập tất cả các xâu sinh ra từ V
trị xâu rỗng, V* là tập tất cả các xâu sinh ra từ V kể cả xâu rỗng. V*= V
+
∪{e}.
c. Ví dụ: V={a,b,c} X
+
={abc,cab,…}
V={0,1} V*={e,00,1,0,100,…}
Ta quy ước rằng a
n
:=aa…a, n lần ký tự a.


1.3. Các phép toán trên xâu.
a. Ghép 2 xâu. Cho xâu x=abc…k, y=rp q phép ghép 2 xâu là xâu nối 2 xâu với
nhau xy:= abc…krp q.
b. Đảo ngược 2 xâu. Cho x=x
1
x
2
…x
k
gọi xâu x’:= x
k
x
k-1
…x
1
là xâu đảo của x.
1.4. Khái niệm ngôn ngữ.
a. Ngôn ngữ trên bảng chữ cái. Cho V là tập chữ cái gọi tập con bất kỳ của V* là
ngôn ngữ trên bảng V.
Bộ môn khoa học máy tính - HVKTQS
1
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

Như vây ngôn ngữ là một tập hợp ký hiệu là L .Số phần tư của L là lực lượng của nó,
nếu hữu hạn thì ta nói L là ngôn ngữ hữu hạn và vì nó là tập hợp nên mọi phép toán
trên L cũng giống như trên tập hợp
L
1
∪L
2

:={x: x thuộc L
1
hoặc x thuộc L
2
}
L
1
∩L
2
:={x: x thuộc L
1
và x thuộc L
2
}
L
1
L
2
:={x=uv: u thuộc L
1


v thuộc L
2
}
L
0:=
{e}; L
n
:=L

n-1
L; L
+
:=L
1
L
2
L
n
n>=1 gọi là tập các xâu có độ dài nhỏ hơn hoặc
bằng n. L*:=L
+

{e}.
1.3. Văn phạm và ngôn ngữ sinh bởi văn phạm.
a. Định nghĩa. Văn phạm G là một bộ gồm các thành phần G:=(N,T,S,P) trong đó:
-
N là một tập hữu hạn các ký tự không kết thúc.
-
T là một tập hữu hạn các ký tự kết thúc và N∩T=∅.
-
P là tập các luật sinh(luật sản xuất, quy tắc dẫn xuất) , nói cách khác P là các ánh
xạ từ (N∪T)* vào (N∪T)*. Nếu q∈(N∪T)* là ảnh của p qua luật sản xuất P ta ký
hiệu p→q và gọi là một quy tắc dẫn xuất của P.
-
Nếu có một dãy dẫn xuất trong P có dạng p
1
→p
2,
p

2
→p
3
, …,p
n-1
→p
n
ta ký hiệu p
1
*
→p
n
-
S là ký tự đặc biệt của N gọi là trạng thái đầu hoặc ký tự bắt đầu.
-
Ta chú ý rằng từ nay các ký tự không kết thúc ta ký hiệu bằng các chữ cái hoa ví
nh A, B, C,…còn các ký tự kết thúc ta ký hiệu là các chữ cái thường ví nh a, b, c,

-
Các xâu thuộc (N∪T)* thông thường ký hiệu là α, β, γ, χ, δ…
b. Ngôn ngữ sinh bởi văn phạm. Cho văn phạm G=(N,T,S,P), ta gọi L(G):={w:
w∈T* và S *→w} là ngôn ngữ được sinh ra bởi văn phạm G
c. Nhận xét. Từ định nghĩa trên ta suy ra rằng ngôn ngữ sinh ra bởi văn phạm G là
tập tất cả các xâu gồm các ký tự kết thúc sau một số lần được tác động bởi các luật
sản xuất bắt đầu từ ký tự xuất phát.
Bộ môn khoa học máy tính - HVKTQS
2
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

Ví dụ. - Cho G=(N,T,S,P) trong đó N={S}, T={a}, P={1. S → aaa, 2. S →aaaS}, Khi

đó L(G)={a
3n
,n dương}.
- Cho G=(N,T,S,P) trong đó N={S}, T={0, 1}, P={1. S → 0S1, 2. S →01},
Khi đó
S→ 0S1→00S11→000S111→…→0
i
S1
i
, vậy nên L(G)={ 0
n
1
n
, n>=1}.
- Cho G=(N,T,S,P) trong đó N={S,B,C}, T={a,b,c}, P={1. S → aSBC, 2. S
→aBC, 3. cB →Bc, 4. aB →ab, 5. bB →bb, 6. bC →bc, 7. cC →cc }, Khi đó:
- Với w=a
n
b
n
c
n
, áp dụng quy tắc 1 n-1 lần được:
S*→a
n-1
S(BC)
n-1
(1)
- áp dụng tiếp quy tắc 2 một lần nữa ta được:
S*→a

n
(BC)
n
=

S*→a
n
BC(BC)
n-1
(2)
-
áp dụng tiếp quy tắc 4 :
S*→a
n
bC(BC)
n-1
(3)
-
áp dụng quy tắc 6 :
S*→a
n
bc(BC)
n-1
= S*→a
n
bcBC(BC)
n-2
(4)
-
áp dung quy tắc 3:

S*→a
n
bBcC(BC)
n-2
(5)
-
áp dung quy tắc 5,7:
S*→a
n
b
2
ccBC(BC)
n-3
(6)
-
áp dung quy tắc 3 :
S*→a
n
b
2
cBcC(BC)
n-3
(7)
-
áp dung quy tắc 3 :
S*→a
n
b
2
BccC(BC)

n-3
(8)
-
áp dung quy tắc 5,7 :
S*→a
n
b
3
c
3
(BC)
n-3
= S*→a
n
b
3
c
3
BC(BC)
n-4
(9)
-
áp dung quy tắc 3 lần 3 và quy tắc 7 ta được:
S*→a
n
b
3
Bc
2
cC(BC)

n-4
và S*→a
n
b
4
c
4
(BC)
n-4
(10)
-
áp dung quy tắc 3 lần 3 và quy tắc 7 ta được:
S*→a
n
b
3
Bc
2
cC(BC)
n-4
và S*→a
n
b
4
c
4
(BC)
n-4
(11)
Bộ môn khoa học máy tính - HVKTQS

3
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

-
Lặp lại các bước từ công thức (4) đến (11) ta được:
S*→a
n
b
n
c
n
=w. Vậy w∈L(G).
Ngược lại ta chứng minh nếu w∈L(G) thì w phải có dạng a
n
b
n
c
n
Thật vậy, để tạo ra một chuỗi chỉ gồm các ký tự kết thúc thì:
1. Luật 1 có thể tác động n lần, mỗi lần lại sinh ra ký tự xuất phát.
2. Sau nlÇn tác động lên luật thứ nhất thì xâu sinh ra có dạng a
n
S(BC)
n
.
3. Để ký tự xuất phát mất đi ta phải tác động xâu vừa nhận được lên luÊt thứ 2 và
luật này chỉ tác động lên chuối duy nhất 1 lần và do đó ta được xâu mới là
a
n+1
(BC)

n+1
.
4. Để ký tự không kết thúc B,C biến khái xâu thì phải sử dụng luật 4,3,5,7 để hạ bậc
của B,C và khô dần B,C theo thứ tự được mô tả từ (4) đến (11) và chỉ có cách đó
ta mới có thể nhận được xâu gồm các ký tự két thúc a
n+1
b
n+1
c
n+1
. Vậy nên
L(G)={ a
n+1
b
n+1
c
n+1
, n>=0}.
d. Văn phạm tương đương. Hai văn phạm G
1
= G=(N
1
,T
1
,S
1
,P
1
) và G
2

=(N
2
,T
2
,S
2
,P
2
)
gọi là tương đương, ký hiệu G
1


G
2
nếu L(G
1
) = L(

G
2
)
$2. Các loại văn phạm
Và ngôn ngữ sinh ra bởi văn phạm.
2.1. Phân loại văn phạm.
a. Văn phạm loại 0. Văn phạm G mà các quy tắc dẫn xuất của nó không có bất kỳ
điều kiện ràng buộc nào gọi là văn phạm loại 0
b. Văn phạm loại 1. Văn phạm G mà các quy tắc dẫn xuất của nó có dạng α→β∈P
thoả điều kiện α, β∈(N∪T)
+

và α<= β.
c. Văn phạm loại 2. Văn phạm G mà các quy tắc dẫn xuất của nó có dạng α→β∈P
thoả điều kiện α∈N và β∈(N∪T)
+
. Văn phạm loại 2 có tên gọi là văn phạm phi
ngữ cảnh.
d. Văn phạm loại 3. Văn phạm G mà các quy tắc dẫn xuất của nó có dạng A→aB
hoặc A→a với A, B ∈N và a∈T. Văn phạm loại 3 có tên là văn phạm chính quy.
e. Nhận xét. Văn phạm các loại thoả điều kiện sau: 3⇒2⇒1⇒0.
Bộ môn khoa học máy tính - HVKTQS
4
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

f. Các ví dụ.
g.
Ví dụ 1. G=(N,T,S,P); N={S,A,B}; V={a,b}; P gồm 1. S →aB, 2. S →bA, 3. A →a,
4. A →aS, 5. A →bAA, 6. B →b, 7. B →bS, 8. B →aB. Rõ ràng đây là văn phạm phi
ngữ cảnh.
Ví dụ 2. G=(N,T,S,P); N={S,A,B}; V={0,1}; P gồm 1. S →0A, 2. S →1B, 3. A
→0A, 4. A →0S, 5. A →1B, 6. B →1B, 7. B →1, 8. B →0, 9. S→0. Rõ ràng đây là
văn phạm chính quy.
2.2. Phân loại ngôn ngữ.
a. Ngôn ngữ loại 0. Ngôn ngữ sinh bởi văn phạm loại 0 gọi là ngôn ngữ loại 0.
b. Ngôn ngữ loại 1. Ngôn ngữ được sinh ra bởi văn phạm loại 1 gọi là ngôn ngữ loại
1.
c. Ngôn ngữ loại 2. Ngôn ngữ được sinh ra bởi văn phạm loại 2 gọi là ngôn ngữ loại
2.
d. Ngôn ngữ loại 3. Ngôn ngữ được sinh ra bởi văn phạm loại 3 gọi là ngôn ngữ loại
3 hay là ngôn ngữ chính quy.
e. Nhận xét. Văn phạm các loại thoả điều kiện sau: 3⇒2⇒1⇒0.

2.3. Cây dẫn xuất.
a. Cây. 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.
b. Cây dẫn xuất. Cho văn phạm phi ngữ cảnh G=(N,T,S,P). Giả sử w∈L(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:
S→A
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ộ môn khoa học máy tính - HVKTQS
5
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

- 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.
- Các nút lá đọc theo thứ tự từ trái sang phảI là xâu w
Hình sau mô tả cây dẫn xuất của w
S
A
11
A
12


A
1n
A
21
A
22
… A
2m
w
1
w
2
… w
n
Ví dụ: Cho G=(N,T,S,P); N={S,A}; T={a,b}; P gồm 1. S →aAS, 2. A →SbA, 3. A
→SS, 4. S→a, 5. A→ba. w=aabbaa, Với w ta có dẫn xuất sau:
S →aAS →aSbAS →aabAS →aabbaS→aabbaa. Cây dẫn xuất của w có dạng
sau:
S

a
A S
a
S A
a b b a
Bộ môn khoa học máy tính - HVKTQS
6
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

c. Định lý 1.1. Cho văn phạm phi ngữ cảnh G=(N,T,S,P), giả sử w là xâu khác rỗng,
khi đó S* →w khi và chỉ khi tồn tại cây dẫn xuất trong văn phạm G mà của các nút lá
tạo nên xâu w.
2.4. Một số tính chất của ngôn ngữ.
Ngôn ngữ nh ta đã thấy ở trên thực chất là tập hợp do đó nó có đầy dí các tính chất
của nó, tuy nhiên ở đây ta cần xem xét thêm những tính chất mang tính đặc thù của
ngôn ngữ do văn phạm sinh ra.
a. Tính chất 1. Ngôn ngữ sinh ra bởi văn phạm là đóng với phép hợp, phép giao và
nhân ngôn ngữ.(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

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
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ì S→S
1
hoặc S→S
2



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

là w ∈ L
1
∪ L
2
.
Chứng minh tính đóng của phép giao:
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:
Bộ môn khoa học máy tính - HVKTQS
7
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

1. T:=T
1
∩T
2

,
2. N:=N
1
∪N
2
∪Γ
1
∪Γ
2
∪{S},
Với Γ
1
={a’| a∈T
1
},Γ
2
={b’| b∈T
2
}, Γ
1


Γ
2
=∅
3. P:=P’
1
∪P’
2
∪{S → S

1
S
2
}∪P’’
1
∪P’’
2
-
P’’
1
là tập các quy tắc nhận được từ tập quy tắc P
1
bằng cách thay các ký hiệu cơ
bản trong T
1
mà chóng có mặt trong quy tắc của P
1
bởi ký hiệu mới đối ngẫu với
nó.
-
P’’
2
là tập các quy tắc nhận được từ tập quy tắc P
2
bằng cách thay các ký hiệu cơ
bản trong T
2
mà chóng có mặt trong quy tắc của P
2
bởi ký hiệu mới đối ngẫu với

nó.
-
Còn P’
1
, P’
2
được xác định như sau:
-
P’
1
={a’b’→b’a’ | a∈T
1
}, b∈T
2
}
-
P’
2
={a’a’→a | a∈T
1
∩ T
2
}
Kiểm tra lại ta thấy điều khẳng định là đúng.
Chứng minh tính đóng của phép nhân: 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 S→S
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}.
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
).
Bộ môn khoa học máy tính - HVKTQS

8
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

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:={N1∪N2∪{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ử w∈L(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 w∈L(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: S→S
1
*→w (ứng với
S→S
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 w∈L(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:={ S→S
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
S→S
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.
G=(N,T,S,P)
c. Tính chất 2. Loại của ngôn ngữ đóng với phép lặp. Nghĩa là L
n
cùng loại với L.
d. Tính chất 3. Cho G=(N,T,S,P) không phải là văn phạm loại 0 với ký tự xuất phát
S có ở vỊ phải của quy tắc dẫn xuất, khi đó tồn tại văn phạm G’=(N’,T’,S,P’) cùng
loại và tương đương với G nhưng không có ký tự xuất phát ở vỊ phải của quy tắc dẫn
xuất.

Bộ môn khoa học máy tính - HVKTQS
9
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

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 chưa có trong N và T
P’:=P∪{ S’→α/S→α∈P, α∈(N∪T)
+
}, 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ử w∈L(G) khi đó tồn tại dãy dẫn xu©t S*→ w và tồn tại α∈(N∪T)* 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 w∈L(G) do đó L(G)
⊆L(G’).
Ngược lại nếu w∈L(G’) nghĩa là S’*→w tồn tại α∈(N∪T)* S’→α*→ w mà S’→α*
có tương ứng S→α trong G vậy nên S→α*→w là dẫn xuất trong G cho nên L(G’)
⊆L(G).
d. Nhận xét. Tính chất 3 cho phép 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 e∈L(G) nên trong luật
sinh phải có S→e.
e. Tính chất 4. Cho G không phải văn phạm loại 0, khi đó hoặc L(G)\{e} hoặc L(G)
∪{e} là ngôn ngữ cùng loại với L(G).
Chứng minh. Theo nhận xét của tính chất 3 nếu văn phạm khác 0 sinh ra từ rỗng thì
phải có dẫn xuất S→e vì vậy L(G) ∪{e} và L(G)\{ e} đồng nghĩa với việc loại bỏ
hay bổ sung quy tắc S→e của tập P do đó loại của ngôn ngữ không thay đổi.
f. Tính chất 5.(Tính chất đệ quy của ngôn ngữ) Nếu G=(N,T,S,P) là văn phạm loại
1(cảm ngữ cảnh) khi đó G là đệ quy.

Ta nói một văn phạm có tính đệ quy nếu tồn tại thuật toán xác định một xâu w cho
trước có thuộc L(G) hay không.
Trước tiên ta có các nhận xét sau:
- Nhắc lại rằng: Chỉnh hợp p từ n phần tư là một bộ gồm p phần tư có phân biệt thứ
tự từ n phần tư đã. Số lượng các chỉnh hợp là n
p
.
Bộ môn khoa học máy tính - HVKTQS
10
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

- G=(N,T,S,P) là cảm ngữ cảnh xâu rỗng e ∈L(G) khi và chỉ khi có tập luật sinh P
có S→e do vậy có thể loại bỏ luật này để được văn phạm cảm ngữ cảnh mới không
chứa từ rỗng G’:=(N,T,S,P’) với ngôn ngữ tương ứng L(G’)=L(G)\{e}.
- Trong mọi quy tắc dẫn xuất của G’ độ dài vỊ phải phải lớn hơn độ dài vỊ trái, giả sử
rằng V= N ∪T và V= n và e ≠w ∈L(G’) nghĩa là tồn tại
S*→w hay cụ thể hơn ta có dãy dẫn xuất: S→α
1
→α
2
→…α
m
=w, và theo định nghĩa
ngôn ngữ suy ra
α
1
<=α
2
<=…<=α
m

.
- Giả sử rằng tồn tại chỉ số i sao cho α
i
,

α
i+1,
…α
i+j
có độ dài như nhau và bằng p , khi
đó nếu j>=n
p
thì trong dãy dẫn xuất trên có ít nhất 2 xâu giống nhau.
- Theo nhận xét về chỉnh hợp suy ra V* có tối đa là n
p
xâu có độ dài p, do đó trong
trêng hợp giống nhau ta có thể lược bỏ ít nhất là 1 bước
trong dãy dẫn xuất tức là nếu α
r
= α
s
(r<s) thì dẫn xuất có thể mô tả lại ngắn hơn như
sau:
S→α
1
→…α
r
→α
s+1
…→α

m
=w
Từ đây ta rót ra nhận xét sau:
-
NỊu có một dẫn xuất của w thì dẫn xuất đó không quá dài, có nghĩa là độ dài của
w là hữu hạn.
Từ các nhận xét trên ta chứng minh tính chất đặt ra theo các bước sau:
-
Ta luôn coi L(G) không chứa từ rỗng và điều này đồng nghĩa với việc trong P
không có quy tắc S→e.
- Giả sử w∈L(G) suy ra w∈V
+
, w=n( vì xâu không quá dài), ta chỉ thuật toán bằng
cách xây dựng tập T
m
như sau:
1. T
m
:={ αα ∈V
+
, α<=n; S*→α có không quá m bước}
2. T
0
:={S}
3. Ta có công thức truy hồi sau: T
m
= T
m-1
∪{αβ→α∈P ; β∈ T
m-1

; α<=n }
Thật vậy, giả sử α∈ T
m
; α<=n } khi đó tồn tại dẫn xuất s*→α, không quá m bước
vàα<=n , suy ra s→α
1
→α
2
…→β→α. Điều nhận được
cuối cùng nghĩa là s*→β không quá m-1 bước và β<=n , suy ra
Bộ môn khoa học máy tính - HVKTQS
11
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

β ∈ T
m-1
,do đó
α∈T
m-1
∪{αβ→α; β∈ T
m-1
; α<=n }
Ngược lại nếu α∈T
m-1
∪{αβ→α; β∈ T
m-1
; α<=n }, khi đó vì β→α và s*→β nên
ta nhận được:
+ s*→β→α
+ Do s*→β không quá m-1 bước nên s*→α không quá m bước, do đó α∈T

m
. Từ
trên ta rót ra các nhận xét sau:
1. Nếu S*→α và α<=n thì với cách xây dựng trên α phải nằm trong T
m
nào đó,
ng¬c lại nếu S không dẫn được ra α thì hoặc α>n hoặc ∉T
m
nào.
3. T
m
không giảm, nghĩa là T
m-1
⊆T
m
với mọi m>=1 và dãy bị chặn do nhận xét trên,
vậy tồn tại T’:= ∪ T
m
=T
M0
và khi đó nếu w ∉T
m
thì w∉ L(G) dĩ nhiên nếu w ∈T
m
thì

S*→w.
4. Cuối cùng giả sử rằng V=q khi đó trong V
+
số xâu có độ dài nhỏ

5. hơn hoặc bằng n là s=1+q+…+q
n
<(1+q)
n+1
và là hữu hạn trong T’, điều này có
nghĩa là tồn tại thuật toán để xác định xem w có thuộc L(G) hay không.
g. Các ví dụ minh hoạ
Ví dụ 1. Cho G=(N,T,S,P) trong đó N:={S,B,C}, T:={a,b,c}
P: 1. S→aSBC, 2. S→aBC, 3. cB→Bc, 4. aB→ab, 5. bB→bb, 6. bC→bc, 7.
cC→các. Xét từ w=abac ta xác định w thuộc L(G) hay không. Xây dựng
T
0:
={S}, T
1
:={S, aSBC, aBC}, T
2
:={ S, aSBC, aBC,abC}, T
3
:={ S, aSBC,
aBC,abC,abc}, T
4
:={ S, aSBC, aBC,aBC,abc}:=T’ vì abac không thuộc T’ nên w∉
L(G)
Ví dụ 2. Cho văn phạm G=(N,T,S,P) trong đó N={ S, a
1
, a
2
, a
3
…,a

n
},T={ a
1
,
a
2
,a
3
…,a
n
}, tập quy tắc có dạng: P={1. S→a
1
A
1
, 2. A
1
→a
2
A
2
, 3. A
2
→a
3
A
3
,…, A
n-
2
→a

n-1
A
n-1
, A
n-1
→a
n
Đây là văn phạm chính quy và ngôn ngữ được sinh ra có dạng L(G)= {w= a
1
a
2
a
3

a
n
}
Bộ môn khoa học máy tính - HVKTQS
12
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

Ví dụ 3. Cho văn phạm G= G=(N,T,S,P) trong đó N={S},T={ a
1
, a
2
,a
3
…,a
n
}, tập quy

tắc có dạng: P={1. S→aS, 2. S→a, a∈ T}. Đây là văn phạm chính quy và
L(G)={w∈T
+
}=T
+
.
Ví dụ 4. Cho văn phạm G= G=(N, T, S, P) trong đó N={S},T={ a}, tập quy tắc có
dạng: P={1. S→aS}. Đây là văn phạm chính quy song L(G)=φ vì không bao giờ
nhận được xâu kết thúc.
Ví dụ 5. Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1. S→aSb, 2. S→ab}. Đây là văn phạm chính quy và L(G)={a
n
b
n
; n>=1}.
Ví dụ 6. Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1. S→aS, 2. S→aA, 3. A→bA, 4. A →b}. Đây là văn phạm chính quy và
L(G)={a
n
b
m
; m,n>=1}.
Ví dụ 7. Cho văn phạm G= G=(N,T,S,P) trong đó N={S, A},T={ a,b}, tập quy tắc có
dạng: P={1. S→Sa, 2. A→aAb, 3. A→ab, 4.S →Aa}. Đây là văn phạm phi ngữ cảnh
và L(G)={a
n
b
n
a
m

; m,n>=1}.
Ví dụ 8. Cho văn phạm G= G=(N,T,S,P) trong đó N={S, a
1
, a
2
,…,a
k
}
T={ a
1
, a
2
,a
3
…,a
k
,b}, tập quy tắc có dạng: P={1. S→Sa
i
A
i
, 2. S→b,
a
i
A
j
→A
j
a
i
, bA

i
→a
i
b }.Ngôn ngữ L(G)={wbw∈T*}. Ta minh hoạ cho trường hợp này
nh sau:
Với k=2, N={S, a
1
, a
2
},T={ a
1
, a
2
, b}, tập quy tắc có dạng: P={1. S→SA
1
a
1
, 2.
S→SA
2
a
2

3. S→b, 4. a
1
A
1
→A
1
a

1
, 5. a
2
A
2
→A
2
a
2
, 6. a
1
A
2
→A
2
a
1
, 7. a
2
A
1
→A
1
a
2
, 8.
bA
1
→a
1

b, 9. bA
2
→a
2
b}.
Chương 2. Automat và ngôn ngữ chính quy.
$1.Automat
5.1. Các khái niệm cơ bản.
a. Cơ chế hoạt động của Automat. Ta có thể mô tả automat như một hệ thống xử lý
thông tin gồm các bộ phận:
1.X – kênh nhận thông tin vào
2.Y – kênh phát tín hiệu ra
Bộ môn khoa học máy tính - HVKTQS
13
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

3.S – bộ chế biến xử lý thông tin và biến đổi trạng thái
x y
Đồng thời ta quy ước cơ chế hoạt động của hệ thống là rời rạc nghĩa là thông tin vào -
ra thực hiện liên tiếp tại những thời điểm khác nhau.
b. Các loại Automat.
1. 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ừ XxS→S gọi là hàm chuyển trạng thái.
λ - ánh xạ từ XxS→Y 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.

2. Automat Moore. 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ừ XxS→S gọi là hàm chuyển trạng thái.
λ - ánh xạ từ S→Y 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.
3. Automat trạng thái. Automat trạng thái là bộ M=( X,S,δ) trong đó
X -Tập hữu hạn các ký hiệu vào
S - Tập hữu hạn gọi là tập các trạng thái
δ - ánh xạ từ XxS→S gọi là hàm chuyển trạng thái.
Bộ môn khoa học máy tính - HVKTQS
14
Bộ chế biến thông tin và
biến đổi trạng thái S
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

Với định nghĩa trên ta hiểu Automat trạng thái hoạt động theo cơ chế không có kênh
ra, nó chỉ nhận tín hiệu phát ra và đổi trạng thái . Rõ ràng Automat trạng thái là
trường hợp riêng của Automat Moore khi Y trùng với S.
4. Automat không trí nhớ. 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 - Trạng thái,
λ - ánh xạ từ X→Y gọi là hàm đưa thông tin ra.
Gọi là Automat không trí nhớ.
Automat không trí nhớ hoạt động chỉ có một trạng thái. ở mọi thời điểm tín hiệu phát
ra chỉ phụ thuộc tín hiệu vào.

Ví dụ: Automat mô tả phép cộng của 2 số nhị phân mà từ vào là các phần tử của tập
X={00,01,10,11} đầu ra y là các phần tử Y={0,1}. Kênh vào x có 2 mạch x
1
, x
2
tương ứng các số nhị phân 0,1.
Bảng hàm chuyển trạng và hàm ra được cho dưới dạng sau:
5.2. Cá
c
phương pháp biểu diễn Automat.
a. Phương pháp đồ thị. Biểu diễn Automat dưới dạng đồ thị có hướng trong đó:
Bộ môn khoa học máy tính - HVKTQS
X
S
00 01 10 11 00 01 10 11
S
0
S
0
S
0
S
0
S
1
λ
0 1 1 0
S
1
S

0
S
1
S
1
S
1
1 0 0 1
15
X
1
y
X
2
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

6. Mỗi trạng thái S ứng với một nút M=( X,Y, S,δ,λ)
7. Cung có hướng đi từ nút s
1
đến s
2
nếu δ(s
1
,a)=s
2
.
8. Trên cung (s
1
,s
2

) ta ghi giá trị đầu vào a.
Ví dụ: Với Automat hữu hạn M=( X, S,δ,s
0,
F) trong đó
X - Tập hữu hạn các ký hiệu vào
S - Tập trạng thái
s
0
- Trạng thái đầu
F - Trạng thái kết thúc
Ta xét automat sau: M=( X, S,δ,s
0,
{ s
0
}) trong đó X={0,1}, S={s
0
, s
1,
s
2
, s
3
} δ( s
0
, 0)=
s
2
, δ( s
0
, 1)= s

1
, δ( s
1
, 0)= s
3
, δ( s
1
, 1)= s
0
, δ( s
2
, 0)=

s
0
, δ( s
2
, 1)= s
3
, δ( s
3
, 0)= s
1
, δ( s
3
,
1)= s
2
và đồ thị được mô tả như sau:


1
1
0 0 0 0
1
1
Ví dụ 2. Ta xét automat sau: M=( {X, S, δ, s
0,
{s
3
}) trong đó X={0,1}, S={s
0
, s
1,
s
2
, s
3
},
δ( s
0
, 0)=

s
2
, δ( s
0
, 1)= s
1
, δ( s
1

, 0)= s
2
δ( s
1
, 1)= s
3
, δ( s
2
, 0)=

s
3
, δ( s
2
, 1)= s
1
, δ( s
3
, 0)=
s
3
, δ( s
3
, 1)= s
3
và đồ đồ thị có dạng sau:
1 1

0 1 1,0
0 0

b. Dùng hàm chuyển.
Nếu dùng phương pháp bảng ta có bảng sau:
Bộ môn khoa học máy tính - HVKTQS
16
s
0
s
2
s
3
s
1
s
3
s
0
1
s
1
s
2
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

0 1
S
0
S
2
S
1

S
1
S
3
S
0
S
2
S
0
S
3
S
3
S
1
S
2
$2. Automat hữu hạn đoán nhận ngôn ngữ chính quy.
2.1. Automat hữu hạn
a. Định nghĩa. Với Automat hữu hạn M=( X, S,δ,s
0,
F) trong đó:
X - Tập hữu hạn các ký hiệu vào
S - Tập trạng thái
s
0
- Trạng thái đầu
F - Tập trạng thái kết thúc
δ - ánh xạ từ XxS→S gọi là hàm chuyển trạng thái, trong trường hợp này Automat

gọi là automat đơn định. Nếu δ : XxS→2
S
khi đó M gọi là automat đa định.
b. Mô tả hoạt động của Automat. Ta có thể mô tả các bước làm việc của
Automat hữu hạn như sau: Khi cho xâu x
1
x
2
… x
n
=w∈X
*
, đầu tiên máy ở trạng thái
s
0
và đầu đọc nhìn vào « có ký hiệu x
1
. Tiếp theo máy từ trạng
thái s
0
sang s
1
=δ(s
0
,x
1
) và đầu đọc dịch sang x
2
, sau đó tiếp tục dịch chuyển từ trạng
thái s

1
sang trạng thái mới s
2
= δ(s
1
,x
2
)=δ(δ(s
0
,x
1
),x
2
),… , cho đến khi đạt đến trạng
thái
s
n
=δ(s
n-1
,x
n
)= δ(δ(s
n-2
x
n -1
),x
n
) == δ(δ(δ(s
n-3
,x

n -2
),x
n-1
),x
n
)=…
δ (δ(…(δ(s
0
,x
1
),x
2
),x
3
)…,x
n
):= δ(s
0
,x
1
,x
1
,…, x
n
):= δ(s
0
,w). Quá trình đó được mô tả
như sau:
Xâu vào w= x
1

x
2
x
3
… x
n-1
x
n
s
0
s
1
s
2
…… s
n-1
s
n
c. Automat đoán nhận xâu. Ta nói automat đoán nhận được xâu w nếu s
n
∈F, trường
hợp ngược lại ta nói automat không đoán nhận được xâu w.
d. Ngôn ngữ đoán nhận bởi automat.
Tập T(M):={w ∈X*: δ(s
0
,w) ∈F}
Bộ môn khoa học máy tính - HVKTQS
17
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat


gọi là ngôn ngữ được đoán nhận bởi Automat M.
Tập trạng thái S trong quá trình tính toán là hữu hạn nên M được gọi là automat hữu
hạn.
2.2 Các phương pháp biểu diễn Automat
a. Phương pháp cho bảng chuyển. Ta xây dựng bảng như sau:
1. Một cột liệt kê các trạng thái của tập S.
2. Cột liền kÌ liệt kê giá trị của hàm chuyển tương ứng với trạng thái và ký tự vào.
Trạng thái Ký tự vào
x
1
x
2
x
3
… x
j
…… x
n
s
0
δ(s
0
,x
1
) δ(s
0
,x
2
) δ(s
0

,x
3
) δ(s
0
,x
j
) δ(s
0
,x
n
)
s
1
δ(s
1
,x
1
) δ(s
1
,x
2
) δ(s
1
,x
3
) δ(s
1
,x
j
) δ(s

1
,x
n
)
. . . .
s
k
δ(s
k
,x
1
) δ(sk,x
2
) δ(s
k
,x
3
) δ(s
k
,x
j
) δ(s
k
,x
n
)
Ví dụ1. 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
0
}. Hàm chuyển có dạng sau:
Trạng thái Ký tự vào
0 1
s
0
s
2
s
1
s
1
s
3
s
0
s
2
s
0
s
3

s
3
s
1
s
2
Cho xâu vào w=110101. Khi đó
δ(s
0
,1)=s
1
, δ(s
1
,1)=s
0
, δ(s
0
,0)=s
2
, δ(s
2
,1)=s
3
, δ(s
3
,0)=s
1
, δ(s
1
,1)=s

0
.
Điều này chứng tỏ Automat M đoán nhận xâu w=110101.
Dãy trạng thái của M khi cho xâu vào w= 110101 được biểu diễn như sau:
w= 1 1 0 1 0 1

s
0
s
1
s
0
s
2
s
3
s
1
s
0
Có thể biểu diễn quá trình trên tương đương với diễn đạt sau:
Bộ môn khoa học máy tính - HVKTQS
18
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

δ(s
0
,110101)= δ(δ(s
0
,1),10101)= δ(s

1
,10101)= δ(δ(s
1
,1),0101))= δ(δ(s
0
,0101))=
δ(δ(s
0
,0),101)= δ(s
2
,101)= δ(δ(s
2
,1),01)= δ(s
3
,01)=
δ(δ(s
3
,0),1)= δ(s
1
,1)=s
0
∈F.
Ví dụ2. 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
3
}. Hàm chuyển có dạng sau:
Trạng thái Ký tự vào
0 1
s
0
s
1
s
2
s
1
s
3
s
0
s
2
s
0
s
3
s
3
s
3

s
3
Cho xâu vào w=10110. Khi đó
δ(s
0
,1)=s
2
, δ(s
2
,0)=s
0
, δ(s
0
,1)=s
2
, δ(s
2
,1)=s
3
, δ(s
3
,0)=s
3
.
Dãy trạng thái của M khi cho xâu vào w= 10110 được biểu diễn nh sau:
w= 1 0 1 1 0
s
0
s
2

s
0
s
2
s
3
s
3
b. Phương pháp cho Automat bằng đồ thị chuyển. Dùng đồ thị có hướng
để mô tả hàm chuyển theo nguyên tắc sau:
- Mỗi trạng thái s là một đỉnh của đồ thị
- Nếu a ∈X và từ trạng thái s
i
chuyển sang trạng thái s
j
=δ(s
i
,a) thì sẽ có một cung có
hướng từ s
i
sang đỉnh s
j
và trên cung đó được gán nhãn a.
- Nếu δ(s
i
,a)={s
j1
, s
j2
, s

j3
,…, s
jk
} đối với automat không đơn định từ s
i
sang

{s
j1
, s
j2
,
s
j3
,…, s
jk
} có k cung gán cùng một nhãn a.
- Đỉnh vào của đồ thị chuyển là đỉnh ứng với trạng thái ban đầu s
0
. Các đỉnh có trạng
thái kết thúc được khoanh tròn 2 lần hoặc khoanh đậm.
Ví dụ 4. Cho M=(X,S,δ,s
0
,F) trong đó X={0,1}, S={ s
0
, s
1
, s
2
, s

3
}, F={s
0
}
Hàm chuyển được mô tả dưới biểu đồ sau
1
1
Bộ môn khoa học máy tính - HVKTQS
19
s
0
s
2
s
3
s
1
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

0 0 0 0
1
1
Ví dụ 3. Cho 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 mô tả dưới biểu đồ sau:

0,1 0,1

0 1 0 0
1

1

0,1
2.3. Thuật toán mô phỏng đoán nhận xâu vào.
a. Thuật toàn mô phỏng automat hữu hạn đoán nhận xâu vào.
Thông tin vào:
- Xâu w, kết thúc bởi ký hiệu hết file là eof.
- Một automat hữu hạn với trạng thái đầu là s
0
và tập trạng thái kết thúc là F.
Thông tin ra:
- Đúng nếu M đoán nhận xâu w
- Sai nếu M không đoán nhận xâu w
Thuật toán:
Begin
u:=s

0
;
c:= ký hiệu tiếp theo;
while c<>eof do
begin
Bộ môn khoa học máy tính - HVKTQS
20
S
0
s
1
s
4
s
3
s
2
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

u:= δ(u,c);
c:= ký tự tiếp theo;
end;
if u in F return (true)

else return (false);
end;

Ví dụ 4. 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:
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.

Cây có dạng sau:
Bộ môn khoa học máy tính - HVKTQS
21
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

0 0
1 1
0 0
0 0 0
1 1 1
2.4. Sự tương đương giữa Automat đơn định và đa định.
a. Định lý 2.1. Lớp ngôn ngữ đoán nhận bởi autom¸t đơn định trùng với lớp ngôn
ngữ đoán nhận được bởi automat không đơn định.
Chứng minh.
1. Theo định nghĩa automat đơn định và không đơn định thì lớp ngôn ngữ đoán nhận
đoán nhận được bởi đơn định nằm trong lớp ngôn ngữ đoán nhận được bởi automat
không đơn định.
2. Ta chứng minh bao hàm thức ngược lại.
Giả sử M=(X,S,s
0
, δ, F) là automat đa định, ta xây dựng automat đơn định
N=(X’,S’,q
0
, δ’, F’) nh sau:
- X’: = X
- S’ : = 2
S
={U: ∀U ⊆S}
- q
0

= {s
0
}
- F’:={U ⊆S : U∩F≠∅}
Bộ môn khoa học máy tính - HVKTQS
22
s
0
S
31
s
0
s
1
s
0
s
3
S
0
S
31
s
4
s
0
s
1
s
0

s
4
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

- δ’: S’xX’ S’ nh sau: ∀U⊆S ∀x∈X δ’(U,x):=∪
s

U
δ(s,x).
Với cách xây dựng trên thì rõ ràng N là automat đơn định.
Ta phải chứng minh L(M) ⊆L(N)
Thật vậy, giả sử w ∈L(M)
Theo định nghĩa xâu đoán nhận được thì:
Xâu vào w= x
1
x
2
x
3
… x
n-1
x
n
s
0
s
1
s
2
…… s

n-1
s
n
∈F
Rõ ràng s
1
∈δ(s
0
,x
1
); s
2
∈δ(δ(s
0
,x
1
),x
2
); s
i
∈δ(δ(…δ (s
0
,x
1
),x
2
),x
3
) ),x
i

);
Đặt chọn U
0
={ s
0
}=q
0
, U
i
= δ(δ(…δ (s
0
,x
1
),x
2
),x
3
) ),x
i
).
Khi đó ta có:
U
1
=δ(δ (s
0
,x
1
)= ∪
s


u0
δ(s,x
1
)= δ’(U
0
,x
1
),
U
2
= ∪
s

u1
δ(s,x
2
)= δ’(U
1
,x
2
)
U
i
= ∪
s

ui-1
δ(s,x
i
)= δ’(U

i-1
,x
i
)
s
i
∈ U
i
và s
n
∈F (i=1 n)
Vì s
n
∈U
n
và s
n
∈F nên U
n
∩F≠∅ nên theo định nghĩa F’ suy ra U
n
∈F’
Theo những kết luận trên định nghĩa hàm δ’ ta sẽ có:
w= x
1
x
2
x
3
… x

n-1
x
n
{s
0
} U
1
U
2
…… U
n-1
U
n
∈F’
Điều này có nghĩa là w ∈ L(M). Định lý được chứng minh.
Ví dụ 1. Cho automat không đơn định N=(X, S, s
0
, δ, F) với X={a,b}, S={s
0
, s
1
},
F={s
1
} hàm chuyển δ S xX 2
S
cho nh sau:
Trạng
thái
Ký tự vào

a b
Bộ môn khoa học máy tính - HVKTQS
23
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat

s
0
{s
0
, s
1
}

s
1
s
1


{s
0
, s
1
}
Khi đó automat tương đương với automat trên có dạng sau:
M=(X’, S’, q
2
, δ’, F’) với X’=X={a,b}, S’={ q
1
, q

2
, q
3
, q
4
} ở đây q
1
=∅, q
2
={s
0
},
q
3
={s
1
}, q
4
={ s
0
, s
1
}, còn F’={q
3
, q
4
}
Trạng
thái
Ký tự vào

a b
q
1
∅ ∅
q
2
q
4
q
3
q
3
∅ q
4
Q
4
q
4
q
4
Ta có L(N)=L(M).
Ví dụ 2. Xét automat không đơn định sau:

0 1
0 1
Hàm chuyển có dạng sau:
Trạng
thái
Ký tự vào
0 1

s
0
{s
0
, s
1
} ∅
s
1


s
2
S
2
∅ s
2
Hàm chuyển của quá trình đơn định hoá được xác định như sau:
Trạng thái Ký tự vào
0 1
Bộ môn khoa học máy tính - HVKTQS
24
s
0
s
1
s
2
Võ Minh Phổ – Các bài giảng ngôn ngữ hình thức và ¤t«mat


{s
0
}
{s
0
, s
1
} ∅
{s
1
}


{s
2
}
{s
2
}
∅ {s
2
}
{s
0
,s
1
} {s
0
,s
1

} {s
2
}
{s
0
,s
2
} {s
0
,s
1
} {s
2
}
{s
1
,s
2
}
∅ {s
2
}
{s
0
,s
1
,s
2
} {s
0

,s
1
} {s
2
}
Nh vậy Automat đơn định có dạng:
{s
1
}
0 1 1
{s
0
}
0
{s
0
,s
1
}
1
{s
2
}
0

1 1
{s
0
,s
1

,s
2
} {s
1
,s
2
}
Ngôn ngữ đoán nhận được của 2 Automat trên đều là
L(G)={0
k
1
m
,m,k>=1,m }.
$3. Sự liên hệ Automat-Ngôn ngữ chính quy, Quan hệ tương đương-
Automat hữu hạn.
3.1. Automat hữu hạn và ngôn ngữ chính quy.
a. Định lý 2.2. Nếu G=(N,T,s
0
,P) là văn phạm loại 3 thì tồn tại Automat hữu hạn M
sao cho L(G)=L(M)
Chứng minh: Không giảm tính tổng quát ta coi G là văn phạm tuyến tính trái tức là
văn phạm có luật sinh dạng A aB, A a, ta xây dựng M =(X, S, q
0
, δ, F) nh
sau:
- Lấy X:=T; q
0
:=s
0
; S:=N∪{A}, A là trạng thái bổ sung chưa có trong N

- F:={s
0
, A} nếu s
0
e là quy tắc trong P,
- F:={ A} nếu s
0
e không có trong P.
- Ngoài ra nếu s
0
e là quy tắc của P thì không ảnh hưởng đến kết quả, ta giả thiết s
0
không xuất hiện trong các luật sinh khác của P.
Xây dựng hàm chuyển nh sau
-δ(B,a) chứa C ⇔B aC∈P
Bộ môn khoa học máy tính - HVKTQS
25

×