Tải bản đầy đủ (.pdf) (56 trang)

Bài giảng lý thuyết ngôn ngữ TS nguyễn thị uyên

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 (3.37 MB, 56 trang )

2/11/2014

TRƯỜNG ĐẠI HỌC VINH
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------

∽∽∽

BÀI GIẢNG
LÝ THUYẾT NGÔN NGỮ
Giảng viên: ThS
ThS.. Nguyễn Thị Uyên
Khoa Công nghệ thông tin

Chương 0

Bổ túc toán

Nội dung
I.

Tập hợp

II.

Quan hệ

III. Đồ thị và cây

2/11/2014


Lý thuyết ngôn ngữ - Chương 0

Trang 3/17

1


2/11/2014

I. Tập hợp (Set)
• Tập hợp là tập các đối tượng không có sự lặp lại.
• Mỗi đối tượng trong tập hợp được gọi là phần tử
(element) của tập hợp đó.

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 4/17

Biểu diễn tập hợp
Tập hữu hạn: liệt kê từng phần tử
Ví dụ: Tập hợp D xác định tập hợp các ngày trong
tuần
D = { Mon, Tues, Wed, Thurs, Fri, Sat, Sun }
Các phần tử được viết cách nhau bởi dấu phẩy và
đặt trong cặp dấu { và }.
Thứ tự liệt kê các phần tử là không quan trọng
Viết x ∈ A nghĩa là x thuộc A,
Viết x ∉ A nghĩa là x không thuộc A

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 5/17

Biểu diễn tập hợp
Tập vô hạn: Chỉ ra một số đặc trưng của nó.
Ví dụ:
P = { y | y là số nguyên tố }
X={xx>2}

Một trường hợp đặc biệt của tập hợp là tập hợp rỗng
(empty set). Tập hợp này không có chứa bất kỳ phần
tử nào, ký hiệu bởi ∅ hoặc { }.

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 6/17

2


2/11/2014

Tập con (subset)
Tập hợp A là tập hợp con () của tập hợp B khi mọi
phần tử của A đều thuộc B.

Ký hiệu: A ⊆ B
Ngược lại, A không là tập con của B (A ⊄ B ).
Ví dụ
{ 1, 2, 4 } ⊆ { 1, 2, 3, 4, 5 }
{ 2, 4, 6 } ⊄ { 1, 2, 3, 4, 5 }
Nhận xét: tập hợp ∅ ⊆ A, ∀A

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 7/17

Tập bằng nhau
Hai tập hợp A và B được gọi là bằng nhau (A = B) khi
A ⊆ B và B ⊆ A
Ví dụ :
{ 1, 2, 3, 4 } = { 2, 1, 4, 3 }
{1, 2, 3, 4 } ≠ { 2, 1, 3, 5 }

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 8/17

Tập lũy thừa
Tập hợp tất cả các tập con của tập A được gọi là tập
lũy thừa (power set) của A, ký hiệu: 2A.
Ví dụ :


Giả sử A = { 1, 2, 3 }

Thì 2A = { ∅, 1, 2, 3, (1,2), (2,3), (3,1), (1,2,3) }

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 9/17

3


2/11/2014

Phép toán
1. Phép hợp
A ∪ B = {x | x ∈A hoặc x ∈B}
2. Phép giao
A ∩ B = {x | x ∈A và x ∈B}
3. Phép trừ
A \ B = {x | x ∈A nhưng x ∉B}
4. Tích Đecac
A × B = {(a,b) | a ∈A và b∈B}
2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 10/17


Ví dụ
Cho tập A = {1, 2} và B = {2, 3}
1. A ∪ B = {1, 2, 3}
2.
3.
4.
5.

A ∩ B = {2}
A \ B = {1}
A × B = {(1, 2 ), (1, 3), (2, 2), (2, 3)}
2A = {∅, {1}, {2}, {1, 2}}

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 11/17

II. Quan hệ
Quan hệ 2 ngôi từ tập A đến tập B là một tập con của
tập tích đề các A × B.
Lưu ý: không nhất thiết tập A phải khác tập B
Ví dụ: Cho tập S = { 0, 1, 2, 3}
Quan hệ "thứ tự nhỏ hơn" trên S được xác định bởi
tập L = {(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)}
Quan hệ "bằng nhau" trên S được xác định bởi tập:
E = {(0, 0), (1, 1), (2, 2), (3, 3)}
2/11/2014


Lý thuyết ngôn ngữ - Chương 0

Trang 12/17

4


2/11/2014

Tính chất
1. Phản xạ
2. Đối xứng
3. Bắc cầu

2/11/2014

: nếu aRa là đúng ∀a ∈S
: nếu aRb thì bRa
: nếu aRb và bRc thì aRc

Lý thuyết ngôn ngữ - Chương 0

Trang 13/17

Quan hệ tương đương
Một quan hệ R trên tập S có đủ các tính chất phản
xạ, đối xứng và bắc cầu được gọi là quan hệ tương
đương.
Ví dụ: Cho tập S = { 0, 1, 2, 3}

Quan hệ "bằng nhau" trên S
E = {(0, 0), (1, 1), (2, 2), (3, 3)}

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 14/17

III. Đồ thị và cây
Đồ thị G = (V, E), bao gồm một tập hữu hạn các
đỉnh V (còn gọi là nút) và một tập các cạnh E nối
giữa 2 nút.
Ví dụ
V = {1, 2, 3, 4, 5}
E = {(n, m) | n + m = 4 hoặc
n + m = 7}

2/11/2014

2

1
3
4

Lý thuyết ngôn ngữ - Chương 0

5


Trang 15/17

5


2/11/2014

Đồ thị có hướng
Là đồ thị mà có sự phân biệt đỉnh nào là đỉnh đầu,
đỉnh nào là đỉnh cuối trong một cạnh(cung)
Ví dụ:
G = ( {1, 2, 3, 4 }, V ={ i → j | i < j } )

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 16/17

Cây
Cây là một đồ thị có hướng với các tính chất sau :
1. Có một nút đỉnh gọi là nút gốc
2. Mỗi nút còn lại đều được dẫn ra từ một nút cha ở
trên nó :
- Các nút có dẫn ra nút con sau nó được gọi là nút
trung gian hay nút trong.
- Các nút không dẫn ra nút con gọi là nút lá.
3. Thứ tự duyệt trên cây là từ trái sang phải.

2/11/2014


Lý thuyết ngôn ngữ - Chương 0

Trang 17/17

Ví dụ
Cây minh họa cấu trúc cú pháp của một câu đơn trong ngôn ngữ tiếng
Việt "An là sinh viên giỏi"

2/11/2014

Lý thuyết ngôn ngữ - Chương 0

Trang 18/17

6


2/11/2014

Chương I

Ngôn ngữ hình thức và
văn phạm

Nội dung

I.

Tổng quan về ngôn ngữ


II. Biểu diễn ngôn ngữ
III. Văn phạm và sự phân loại văn phạm

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 2/20

1.1. Các khái niệm cơ bản về ngôn ngữ
a. Bảng chữ cái(alphabet) là một tập hữu hạn hoặc vô hạn các
ký hiệu.
Ví dụ - Bộ chữ cái Latinh {A, B, C, ... , Z, a, b, c, ... , z}
- Bộ chữ số thập phân {0, 1, 2, ... , 9}
b. Từ | chuỗi(word) là một dãy các ký hiệu thuộc bảng chữ cái
Ví dụ : 0, 1011, 00010, ... là các từ trên bộ chữ cái Σ = {0, 1}
c. Độ dài của một từ w, ký hiệu |w| là số các ký hiệu tạo thành
từ w.
Ví dụ Từ abca có độ dài là 4 , ký hiệu : |abca| = 4
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 3/20

1


2/11/2014


1.1. Các khái niệm cơ bản về ngôn ngữ
d. Chuỗi rỗng (ký hiệu ε) là chuỗi không có ký hiệu nào, vì vậy
| ε | = 0.
e. Chuỗi con chuỗi v được gọi 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.
Ví dụ : Chuỗi 10 là chuỗi con của chuỗi 010001
f. Tiền tố của một chuỗi là một chuỗi con bất kỳ nằm ở đầu chuỗi
g. Hậu tố của một chuỗi là chuỗi con nằm ở cuối chuỗi.
Ví dụ: Chuỗi abc có các tiền tố là a, ab, abc và các hậu tố là c,
bc, abc
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 4/20

1.1. Các khái niệm cơ bản về ngôn ngữ
h. Chuỗi nối kết (ghép) từ hai chuỗi con là một chuỗi tạo
được bằng cách viết chuỗi thứ nhất sau đó là chuỗi thứ hai
(không có khoảng trống ở giữa).
Vd: Nối kết chuỗi Long và Int là chuỗi LongInt.
ta có εw = wε = w với mọi chuỗi w.
i. Chuỗi đảo ngược của chuỗi w, ký hiệu wR là chuỗi w được
viết theo thứ tự ngược lại.
w = a1 a2 ... an --> wR = an an-1 ... a1.
Hiển nhiên : εR = ε
Vd: w = abcd --> wR = dcba
2/11/2014


Lý thuyết ngôn ngữ - Chương I

Trang 5/20

1.2. Ngôn ngữ (Language)
a. Định nghĩa: một ngôn ngữ (hình thức) L là một tập hợp các
chuỗi của một bộ chữ cái Σ nào đó.
b. Tập hợp chứa chuỗi rỗng (ký hiệu {ε}) và tập hợp rỗng ∅
cũng được coi là ngôn ngữ.
c. Tập Σ* = Tập hợp tất cả các chuỗi (từ) kể cả chuỗi rỗng trên
bộ chữ cái cố định Σ.
d. Tập Σ+ = Σ* - {ε}
Vd : Σ = {0, 1}
thì
Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, ...}
Σ+ = {0, 1, 00, 01, 10, 11, 000, ...}
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 6/20

2


2/11/2014

• 1. Cho Σ = {a, c,}. Hãy mô tả tập Σ*
• 2. Cho Σ = {a, c,}. Hãy mô tả tập Σ+


2/11/2014

?
?

Lý thuyết ngôn ngữ - Chương I

Trang 7/20

1.3. Các phép toán trên ngôn ngữ

L1 = {ab, bc};

L2 = {12, 34, ab}

a. Phép hợp L1 ∪ L2 = {ab, bc, 12, 34}
b. Phép giao L1 ∩ L2 = {ab}
c. Phép phần bù của một ngôn ngữ L trên bộ chữ cái
Σ được định nghĩa như sau :

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 8/20

1.3. Các phép toán trên ngôn ngữ
d. Phép nối kết của hai ngôn ngữ L1 trên bộ chữ cái Σ1 và L2
trên bộ chữ cái Σ2 được định nghĩa bởi :
L1L2 = {w1w2 | w1∈ L1 và w2 ∈ L2 } trên bộ chữ cái Σ1 ∪ Σ2

Ví dụ: L1 = {a,b}; L2 = {c,d} thì L1 L2 = {ac,ad,bc,bd}
Ta viết L0 = {ε} ; L1 = L ; L2 = LL
hay tổng quát Li = LLi - 1 với i > 0. L0 ={ε}, với mọi ngôn ngữ L
e. Phép bao đóng của ngôn ngữ L ký hiệu L*
L* = L0 ∪ L1 ∪ L2 ∪ L3 ∪ L4 … .
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 9/20

3


2/11/2014

1.3. Các phép toán trên ngôn ngữ
f. Phép bao đóng dương: L+ = L1 ∪ L2 ∪ L3 ∪ L4 ….
Ví dụ
Cho ngôn ngữ L = { a, ba } thì
L2 = { aa, aba, baa, baba}
L3 = { aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa}
L* = { ε, a, ba, aa, aba, baa, baba, aaa, aaba, abaa, ababa, baaa,
baaba, babaa, bababa … }
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 10/20


• Cho ngôn ngữ L = {a, b, c}, tính L3??

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 11/20

II. Biểu diễn ngôn ngữ
Một ngôn ngữ L trên một bộ chữ cái Σ là một tập con của
tập Σ*.
Ngôn ngữ hữu hạn biểu diễn bằng cách liệt kê tất cả các
chuỗi thuộc vào chúng.
Ví dụ:
L1 = {ε}, L2 = { a, ba, aaba, bbbbb }
Ngôn ngữ vô hạn không thể liệt kê tất cả các chuỗi thuộc
ngôn ngữ được
Trong trường hợp đơn giản thì ngôn ngữ được biểu diễn
thông qua một phát biểu hay một tân từ.
Ví dụ:
L3 = { ai  i là một số nguyên tố }
L4 = { ai bj  i ≥ j ≥ 0 }
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 12/20

4



2/11/2014

Cách biểu diễn ngôn ngữ tổng quát

Văn phạm là cơ chế cho phép sản sinh ra mọi
chuỗi của ngôn ngữ.
Automata là cơ chế cho phép đoán nhận một chuỗi
bất kỳ có thuộc ngôn ngữ hay không.

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 13/20

III. Văn phạm và sự phân lớp văn phạm
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 các từ thành câu.
Định nghĩa toán học của văn phạm : Văn phạm G là một hệ
thống gồm bốn thành phần xác định như sau:
G = (Σ
Σ, ∆, P, S)
Σ : tập hợp các ký hiệu kết thúc (terminal)
∆ : tập hợp các biến (variables) hay các ký hiệu chưa kết thúc
(non terminal) (với Σ ∩ ∆ = ∅)
P :tập hữu hạn các quy tắc ngữ pháp được gọi là các luật sinh
(production), mỗi luật sinh được biểu diễn dưới dạng α → β,
với α, β là các chuỗi ∈ (Σ ∪ ∆)*.
S ⊂ ∆ : ký hiệu chưa kết thúc dùng làm ký hiệu bắt đầu (start)

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 14/20

Ví dụ
Văn phạm G = (Σ, ∆, P, S)
• ∆ = {S, B, C},
• Σ = {a, b, c}
• P = {S → aSBC, S → aBC, CB → BC, aB →ab, bB → bb,
bC → bc, cC → cc }
Quy ước
• Các chữ cái Latinh viết hoa (A, B, C, ...) thường dùng để
biểu diễn các ký hiệu chưa kết thúc trong tập biến ∆.
• Các chữ cái Latinh viết thường (a, b, c, ...) thường dùng để
biểu diễn các ký hiệu kết thúc thuộc tập Σ.
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 15/20

5


2/11/2014

• P:{S->abA, A->aA|a, B->bB|Bc, AB->abC}


2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 16/20

Dẫn xuất
Từ văn phạm, để sinh ra được các chuỗi (từ), ta định nghĩa
khái niệm “dẫn xuất” như sau :
Nếu α → β là một luật sinh thì γ α δ ⇒ γ β δ gọi là một dẫn
xuất trực tiếp, có nghĩa là áp dụng luật sinh α → β vào chuỗi γ α
δ để sinh ra chuỗi γ β δ.
Nếu các chuỗi α1, α2, ...., αm ∈ Σ* và α1 ⇒ α2, α2 ⇒ α3, ...,
αm-1 ⇒ αm thì ta nói αm có thể được dẫn ra từ α1 thông qua chuỗi
dẫn xuất α1 ⇒ α2, α2 ⇒ α3, ..., αm-1 ⇒ αm hay α1 dẫn xuất (gián
tiếp) ra αm, viết tắt là α1 ⇒* αm
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 17/20

• Bai 1: Cho văn phạm với tập luật sinh P được xác
định như sau:

P = {S → abA | aA | ab; A → bAS | b}
• 1. Xây dựng thành phần Σ và ∆ của văn phạm.
• 2. Đưa ra dẫn xuất của văn phạm để sinh chuỗi
abbbab.


2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 18/20

6


2/11/2014

Ví dụ
Xét văn phạm G = (Σ
Σ, ∆, P, S)
∆ = {S, A},
Σ = {a, b}
P = { S → aS, S → aA, A → bA, A → b }
Một dẫn xuất từ S có dạng :
S ⇒ aS ⇒ aaS ⇒ aaaA ⇒ aaabA ⇒ aaabbA ⇒ aaabbbA ⇒
aaabbbb = a3 b4
Văn phạm này sinh ra ngôn ngữ
L(G) = {a+b+} = {anbm n, m ≥ 1 }
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 19/20

Ngôn ngữ của văn phạm
Ngôn ngữ của văn phạm G = (Σ, ∆, P, S) là tập hợp các

chuỗi ký hiệu kết thúc w ∈ Σ* được sinh ra từ ký hiệu bắt đầu
S của văn phạm bởi các luật sinh thuộc tập P, ký hiệu là L(G) :
L (G) = {w w ∈ Σ* và S ⇒* w}
Hai văn phạm tương đương là hai văn phạm cùng sinh ra
một ngôn ngữ:
G1 tương đương G2 ⇔
L (G1) = L (G2)

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 20/20

Phân loại văn phạm theo Chomsky
1. Văn phạm loại 0 (Unrestricted Grammar)
Là văn phạm không cần thỏa mãn ràng buộc nào trên tập các
luật sinh
2. Văn phạm loại 1
Mọi luật sinh của văn phạm có dạng α → β và thỏa mãn
β≥α (văn phạm cảm ngữ cảnh CSG - ContextSensitive Grammar).
Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ
cảm ngữ cảnh (CSL).
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 21/20

7



2/11/2014

• Cho văn phạm với tập luật sinh: P = {S → a | aA; A
→ aS | bB | cC; C → cA}
• 1. Văn phạm trên là văn phạm gì?
• 2. Chuỗi abab có thuộc ngôn ngữ sinh ra bởi văn
phạm hay không? Vì sao?

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 22/20

Phân loại văn phạm theo Chomsky
3. Văn phạm loại 2
Là văn phạm mà mọi luật sinh có dạng A → α với A là một
biến đơn (A ∈ ∆) và α ∈ (Σ ∪ ∆)* - văn phạm phi ngữ cảnh
CFG (Context-Free Grammar).
Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ phi
ngữ cảnh (CFL)
4. Văn phạm loại 3
Là văn phạm mà mọi luật sinh dạng A → aB hoặc A → a
với A, B là các biến đơn thuộc ∆, a là ký hiệu kết thúc thuộc Σ văn phạm chính quy RG (Regular Grammar).
Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ
chính quy (RL).
2/11/2014


Lý thuyết ngôn ngữ - Chương I

Trang 23/20

Ví dụ
Xác định loại của các văn phạm sau?
a. Xét văn phạm G = {Σ
Σ, ∆, P, S}
∆ = {S, B, C}, Σ = {a, b, c}
và tập P = {S → aSBC, S → aBC, CB → BC, aB →ab, bB →
bb, bC → bc, cC → cc }
b. Xét văn phạm G = {Σ
Σ, ∆, P, S}
∆ = {S}, Σ = {a, b} và tập P = {S → aSb, S → ab }
c. Xét văn phạm G = {Σ
Σ, ∆, P, S}
∆ = {S, A}, Σ = {a, b} và tập P = { S → aS, S → aA, A → bA
A→b}
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 24/20

8


2/11/2014

Bài tập

Xem các ví dụ trong sách
Lý thuyết ngôn ngữ hình thức và otomat
Tác giả: Đặng Huy Ruận
Từ trang 30 đến trang 45
Chú ý:
1. Ký hiệu V trong sách tương ứng với ký hiệu ∆
2. Ký hiệu ^ trong sách tương ứng với ký hiệu ε
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 25/20

BÀI TẬP
Bài 1: Xét văn phạm G : ∆ = {S, A}, Σ = {a, b} và tập
P = { S -> aS| aA; A -> bA| b}.
- Xác định văn phạm loại mấy?
- Xây dựng dẫn xuất sinh ra chuỗi aaabb?
Bài 2: Xét văn phạm G : ∆ = {S}, Σ = {a, b} và tập
P = { S > aSb; S > ab }
- Xác định văn phạm loại mấy?
- Xây dựng dẫn xuất sinh ra chuỗi aaaabbbb ?
2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 26/20

Bài 3:
Xét văn phạm G : ∆ = {S, B, C}, Σ = {a, b, c} và tập

P = { S -> aSBC| aBC; CB -> BC; aB -> ab; bB -> bb;
bC -> bc; cC -> cc }
- Xây dựng dẫn xuất sinh ra chuỗi aabbcc ?
- Xác định L(G)?

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 27/20

9


2/11/2014

Bài 4
Cho văn phạm với tập luật sinh:
P = {S → a | aA; A → aS | b| cC; C → cA}
1. Xác định các thành phần của văn phạm?
2. Văn phạm trên là văn phạm loại gì?
3. Chuỗi accb có thuộc ngôn ngữ sinh ra bởi văn phạm
hay không? Vì sao?

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 28/20


Bài 5
1. Cho ngôn ngữ L = {a,b}, tính L3.
2. Tìm chuỗi đảo ngược của chuỗi dcab.

2/11/2014

Lý thuyết ngôn ngữ - Chương I

Trang 29/20

10


2/11/2014

Chương II

ÔTÔMÁT HỮU HẠN VÀ BIỂU THỨC
CHÍNH QUY

Nội dung
Ôtômát hữu hạn đơn định (DFA)
Ôtômát hữu hạn không đơn định (NFA)
Sự tương đương giữa DFA và NFA
NFA với ε-dịch chuyển (NFAε)
Sự tương đương giữa NFAε và NFA
Biểu thức chính qui
Sự tương đương giữa biểu thức chính qui và NFAε
2/11/2014


Lý thuyết ngôn ngữ - Chương II

Trang 2/44

GIỚI THIỆU
Automata là cơ chế cho phép đoán nhận ngôn ngữ. Với
một chuỗi bất kỳ, sau một số bước làm việc, ôtômát sẽ cho câu
trả lời chuỗi đó có thuộc ngôn ngữ hay không.
Mỗi bước làm việc của Automata là một sự thay thế ký
hiệu, nghĩa là một bước dẫn xuất như ở trong văn phạm.

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 3/44

1


2/11/2014

Mô hình cơ chế ôtômát

Chuỗi nhập cần xác định sẽ được lưu trữ trên băng input.

2/11/2014

Lý thuyết ngôn ngữ - Chương II


Trang 4/44

Phân loại các ôtômát
Phân loại dựa theo hoạt động của ôtômát
Ôtômát đơn định DA (Deterministic Automata) : tại
mỗi bước chuyển, nó chỉ có một khả năng duy nhất. Sự
duy nhất này thể hiện tính đơn định.
Ôtômát không đơn định NDA (Non - deterministic
Automata) tại mỗi bước di chuyển, nó có một vài khả
năng để chọn lựa. Sự chọn lựa này thể hiện tính không
đơn định.
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 5/44

Ôtômát hữu hạn (FA : Finite Automata)
Tại mỗi thời điểm, hệ thống có số trạng thái là hữu hạn
Mỗi trạng thái của hệ thống tại mỗi thời điểm sẽ thay đổi tùy
thuộc vào INPUT
Ôtômát hữu hạn (FA) được chia thành 2 loại: đơn định (DFA)
và không đơn định (NFA).

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 6/44


2


2/11/2014

I. Ôtômát hữu hạn đơn định - DFA
(Deterministic Finite Automata)
Ôtômát hữu hạn đơn định là bộ gồm năm thành phần (Q, Σ, δ, q0, F),
trong đó :
Q là tập hợp hữu hạn các trạng thái.
Σ là bộ chữ cái hữu hạn.
δ là hàm chuyển ánh xạ từ Q × Σ → Q, tức là δ(q, a) là một trạng
thái được cho bởi phép chuyển từ trạng thái q trên ký hiệu nhập a.
q0 ∈ Q là trạng thái khởi đầu
F ⊆ Q là tập các trạng thái kết thúc

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 7/44

Sơ đồ chuyển (transition diagram)
Một đồ thị có hướng, gọi là sơ đồ chuyển tương ứng với một DFA
như sau:
Các đỉnh của đồ thị là các trạng thái của DFA.
Nếu có một đường chuyển từ trạng thái q đến trạng thái p trên
input a thì có một cung nhãn a từ đỉnh q đến đỉnh p trong sơ đồ
chuyển.
Trạng thái khởi đầu q0 nhãn "Start".

Các trạng thái kết thúc trong F được chỉ ra bằng hai vòng tròn.

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 8/44

Ngôn ngữ được chấp nhận bởi DFA
Một chuỗi x được chấp nhận bởi ôtômát hữu hạn M (Q, Σ, δ, q0,
F) nếu δ(q0, x) = p với p ∈ F.
Ngôn ngữ được chấp nhận bởi M
L(M) = { x | δ (q0, x) ∈ F }

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 9/44

3


2/11/2014

Cơ chế hoạt động của DFA
Cho xâu vào ω = x1 x2 x3 ... xn ∈ ∑*.
Ta mô tả hoạt động của ôtômát như sau:
ω = x1 x2 ... xn-1 xn


qo → .........
Khi bắt đầu làm việc máy ở trạng thái đầu qo và đầu đọc đang nhìn vào ô có
ký hiệu x1.
Tiếp theo từ trạng thái qo dưới tác động của ký hiệu vào x1 máy chuyển sang
trạng thái mới
δ (qo, x1) = q1 ∈ Q
và đầu đọc chuyển sang phải một ô, tức nhìn vào ký hiệu x2
ω =
x1 x2 x3 .... xn-1 xn
↑ ↑
q0 →q1 →
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 10/44

Cơ chế hoạt động của DFA
Sau đó, ôtômát lại tiếp tục chuyển từ trạng thái q1 dưới tác động của x2 về trạng
thái mới
q2 = δ(q1, x2) = δ(δ(qo, x1), x2) = δ(qo, x1 x2) ∈ Q
Quá trình đó sẽ tiếp tục cho tới khi đầu đọc nhìn vào ký hiệu xn với trạng thái
của máy là qn-1 = δ (qn-2, xn-1) = δ (q0, x1x2 ... xn-1) ∈ Q.
x1
x2 ... xn-1
xn





qo → q1 .... qn-2 → qn-1 → qn
Hàm chuyển lại đưa máy từ trạng thái qn-1 dưới tác động của xn về trạng thái :
qn = δ(qn-1, xn) = δ(qo, x1 ... xn) ∈ Q. Khi đó ôtômát dừng lại. Nếu qn∈F thì ta nói
rằng
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 11/44

Ví dụ 1
VD. Cho DFA: với Q = {q0, q1, q2, q3}, Σ = {0, 1}, F = {q0} và
hàm chuyển δ như sau:
Vẽ sơ đồ chuyển
Kiểm tra chuỗi 1101?
Kiểm tra chuỗi 110101

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 12/44

4


2/11/2014

Ví dụ 2
Cho ôtô mát đơn định M = <∑, Q, δ,qo, F> với ∑={0,1},

Q={qo, q1, q2, q3}, qo là trạng thái ban đầu, còn F = {q3} là
tập hợp trạng thái kết thúc. Hàm chuyển trạng thái được cho
trong bảng sau
Trạng thái
qo
q1
q2
q3

Ký hiệu vào
0

1

q1
q3
q0
q3

q2
qo
q3
q3

Xét các xâu ω1 = 10110, ω2 = 110, ω3 = 10011.
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 13/44


Giải thuật mô phỏng hoạt động của một DFA

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 14/44

Nhận xét
Tập Q của DFA thể hiện các trạng thái lưu trữ của ôtômát trong
quá trình đoán nhận ngôn ngữ, và như vậy khả năng lưu trữ của
ôtômát là hữu hạn.
Hàm chuyển δ là hàm toàn phần và đơn trị, cho nên các bước
chuyển của ôtômát luôn luôn được xác định một cách duy nhất.
Chính vì hai đặc điểm này mà DFA mô tả như trên được gọi là
ôtômát hữu hạn đơn định.
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 15/44

5


2/11/2014

II.Ôtômát hữu hạn không đơn định - NFA
(Non-deterministic Finite Automata)

NFA tại mỗi thời điểm bộ điều khiển có thể chứa một số bất kỳ
các trạng thái để chuyển: 0, 1 hoặc nhiều hơn 1 trạng thái.
Vậy DFA là một trường hợp đặc biệt của NFA (với số trạng thái
để chuyển là 1)
Ôtômát hữu hạn không đơn định NFA là một bộ 5 thành phần
(Q, Σ, δ, q0, F) trong đó Q, Σ, q0 và F có ý nghĩa như trong DFA,
nhưng δ là hàm chuyển ánh xạ từ Q × Σ → 2Q.
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 16/44

Ví dụ

Chuyển NFA về dạng bảng

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 17/44

Ngôn ngữ được chấp nhận bởi NFA
L(M) = {w | δ(q0, w) có chứa ít nhất một trạng thái trong F }
VD. Xét NFA M
({q0, q1, q2, q3, q4},
{0, 1}, δ, q0, {q2, q4})
với hàm chuyển δ ở
bảng.

Vẽ sơ đồ chuyển
Kiểm tra chuỗi
01001
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 18/44

6


2/11/2014

Câu hỏi
1. Nêu sự khác biệt cơ bản giữa DFA và NFA
2. Để đoán nhận chuỗi thì dùng ôtomát nào thì dễ dàng hơn. Vì sao?

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 19/44

III. Sự tương đương giữa DFA và NFA
Định lý: Nếu L là ngôn ngữ được chấp nhận bởi một NFA thì tồn tại một DFA
chấp nhận L.
Cho NFA M = (Q, Σ, δ, q0, F).
Xây dựng DFA tương đương M’ = (Q’, Σ’, δ’, q0’, F’) như sau:
Q’ = 2Q ={Tập tất cả các tập con của Q}

Σ’ = Σ = {Bảng chữ cái giữ nguyên}
q0’ = [q0]
Xác định δ’
Nếu δ(q, a) = p thì δ’([q], a) = [p]
Nếu δ({q1, q2... qn},a) = {p1, p2,..., pn} thì δ’([q1, q2... qn],a) = [p1, p2,..., pn]
δ’(∅, a) = ∅ ∀ a ∈ Σ’
F’ = các phần tử thuộc Q’ mà các phần tử đó giao với F khác rỗng
2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 20/44

Ví dụ
Cho NFA M ({q0, q1}, {0, 1}, δ, q0, {q1}) với hàm chuyển δ như sau:
δ (q0, 0) = {q0, q1},δ (q0,1) = {q1},δ (q1, 0) = ∅,δ(q1, 1) = {q0, q1}
Xây dựng DFA tương đương
Kết quả
Q’ = {[q0], [q1], [q0, q1], ∅}
Σ’ = {0, 1}
Hàm chuyển δ’
δ’([q0], 0) = [q0, q1], δ’([q0], 1) = [q1]
δ’([q1], 0) = ∅, δ’([q1], 1) = [q0, q1]
δ’(∅, 0) = δ’(∅, 1) = ∅
δ’([q0, q1],0) = [q0, q1], δ’([q0, q1], 1) = [q0, q1]

F’ = {[q1], [q0, q1]}
2/11/2014

Lý thuyết ngôn ngữ - Chương II


Trang 21/44

7


2/11/2014

Bài tập
Tìm hiểu phần mềm JFLAP,Tải về:

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 22/44

IV. NFA với ε-dịch chuyển (NFAεε)
Ta mở rộng mô hình NFA cho phép các phép chuyển trên nhãn
rỗng ε.
Ví dụ 1: Sơ đồ chuyển của một NFA với ε-dịch chuyển :

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 23/44

Định nghĩa
NFAε là bộ 5 thành phần (Q, Σ, δ, q0, F) với tất cả các thành

phần có ý nghĩa như DFA hoặc NFA, nhưng hàm chuyển δ là
ánh xạ từ Q × (Σ ∪ {ε}) → 2Q.
Ta sử dụng ε-CLOSURE(q) để xác định tập tất cả các đỉnh p sao
cho có đường đi từ q tới p với nhãn ε.
Vd: ε-CLOSURE(q0) = {q0, q1, q2}.

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 24/44

8


2/11/2014

δ(q, a) chỉ gồm các trạng thái có thể đến được từ q chỉ
bằng các cung nhãn a.
δ*(q, ε) = ε-CLOSURE(q)
Hay δ*(q, wa) = ε-CLOSURE(δ (δ*(q, w), a))
δ*(q, a) gồm tất cả các trạng thái có thể chuyển đến được từ q
trên nhãn a gồm cả đường đi nhãn ε.

2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 25/44


Ngôn ngữ được chấp nhận bởi NFAεε
L(M) = {w | δ*(q0, w) có chứa ít nhất một trạng thái trong F}
Ví dụ
Cho NFAε M ({q0, q1, q2}, {0, 1,
2}, δ, q0, {q2}) với hàm chuyển δ:
Vẽ sơ đồ chuyển
Kiểm tra chuỗi 012
Gợi ý: Ta cần tính δ*(q0, 012)
2/11/2014

δ
q0
q1
q2

Lý thuyết ngôn ngữ - Chương II

0
q0



1

q1


2



q2

ε
q1
q2


Trang 26/44

Giải thuật mô phỏng hoạt động của một NFAεε


2/11/2014

Lý thuyết ngôn ngữ - Chương II

Trang 27/44

9


×