Lý thuyết automata và ngôn ngữ hình thức

Grammar

Automata

Ngôn ngữ hình thức

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

©copyright by PhD. C.T.Ha, Le Quy Don Technical University

Bài 1. Nhập môn Theory of automata and formal languagues – TA&FL (AL)

2

MỤC ĐÍCH:

 Trang bị những hiểu biết chung nhất về môn học;  Khái quát lại một số khái niệm, cơ sở toán học làm cơ sở

học tập môn học.

YÊU CẦU:

 Về nhà, sinh viên phải hệ thống lại các kiến thức cơ sở về

toán liên quan và kiến thức lập trình.

©copyright by PhD. C.T.Ha, Le Quy Don Technical University

Bài 1. Nhập môn TA&FL

3

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

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 1. Nhập môn TA&FL

4

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.1. Giới thiệu về môn học TA&FL

5

 Ngôn ngữ hình thức (Formal Languages) là môn học cơ

sở của ngành công nghệ thông tin:  Turing, Post Church,... nghiên cứu xây dựng mô hình toán học

cho các máy tính toán (30,40th–XXc.);

 Chomsky với mục đích xây dựng mô hình toán cho ngôn ngữ

tự nhiên (50th–XXc.).

 Môn học trang bị cho người học những kiến thức cơ bản về thuật toán, ngôn ngữ thuật toán, các kỹ thuật xây dựng chương trình, xây dựng các hệ thống tự động và phương pháp tư duy liên quan đến khoa học máy tính.

 Kiến thức về ngôn ngữ hình thức và automat là nền tảng cho nhiều lĩnh vực của khoa học máy tính và CNTT.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.1. Giới thiệu về môn học TA&FL

6

 Ứng dụng của lý thuyết ngôn ngữ hình thức và automata:

 Dùng trong xử lý từ vựng và cú pháp ngôn ngữ tự nhiên;  Dùng trong xây dựng ngôn ngữ lập trình ctd;  Dùng trong nhận dạng (đối với những mẫu nhận dạng có

cấu trúc);

 Dùng trong tin sinh học (Bio-informatics);  Dùng trong tính toán phân tử (DNA Computing);  Dùng trong xử lý ảnh (nén ảnh Fractal,...);  Dùng trong công nghệ phần mềm ( mã hóa dữ liệu, mô hình hoá các hệ thống động, các tiến trình hệ thống…);

 Trong lĩnh vực trí tuệ nhân tạo…

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.1. Giới thiệu về môn học TA&FL

7

 Nội dung chính của môn học TA&FL: 1. Cơ sở toán học của môn TA&FL 2. Văn phạm và ngôn ngữ hình thức 3. Automata hữu hạn và ngôn ngữ hình thức 4. Văn phạm chính quy và các tính chất 5. Văn phạm phi ngữ cảnh 6. Pushdown automata (automata đẩy xuống) 7. Máy Turing 8. Phần bài tập lý thuyết và thực hành

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 1. Nhập môn TA&FL

8

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.2. Một số yêu cầu với môn học

9

 Kiến thức nền:

 Toán rời rạc (tập hợp, đồ thị, cây, quan hệ, phương pháp

chứng minh,…);

 các kiến thức toán liên quan;  khả năng lập trình (C, C++, C#,…)

 Hình thức đánh giá:

 Tổng số tiết: 45;  Hình thức thi: vấn đáp;  Điểm đánh giá: c.cần 10%, t.xuyên 20%, thi 70%;  Đồ án môn: Giải bài tập và viết chương trình.

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 1. Nhập môn TA&FL

10

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.3. Tài liệu môn học

11

1. Bài giảng của giảng viên. 2. Nguyễn Gia Định. Lý thuyết ngôn ngữ hình thức và ôtômát. Đại học khoa học Đại học Huế - 2004.

3. Nguyễn Văn Xuất. Giáo trình Automata, ngôn ngữ hình thức và nguyên lý chương trình dịch - HVKTQS – 2004. 4. Hồ Văn Quân – Giáo trình lý thuyết ôtômát và ngôn ngữ hình thức – Nhà xuất bản Đại học quốc gia Tp. Hồ Chí Minh – 2002.

5. John E. Hopcropft, Rareev Motwani, Jeffrey D. Ullman.

Introduction to Automata Theory, Languages, and Computation (2nd Edition) -Addison-Wesley.-2001.

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 1. Nhập môn TA&FL

12

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.1. Tập hợp

13

ĐN 1.1: Tập hợp là một nhóm các đối tượng rời rạc và không

có sự lặp lại.

Ví dụ 1.1:

D = {Mon, Tue, Wed, Thu, Fri, Sat, Sun};

Phần tử

- các phần tử là rời rạc - các phần tử không lặp lại

D = {1, 2, 3}

Hình thức biểu diễn tập hợp:  Liệt kê phần tử:  Mô tả tính chất đặc trưng: D = { x | x là một ngày trong tuần}

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.1. Tập hợp

14

 ĐN 1.2: Tập rỗng, ký hiệu là  hoặc { }  ĐN 1.3: Tập hợp con (subset)

oKý hiệu: A  B (Ngược lại: A  B ) o{ 1, 2, 4 }  { 1, 2, 3, 4, 5 } nhưng { 2, 4, 6 }  { 1, 2, 3, 4, 5 }

 ĐN 1.4: Tập hợp bằng nhau

oKý hiệu: A = B nếu ( x  A )  ( x  B ), (ngược lại: A  B ) o{ 1, 2 } = { 2, 1 } nhưng { 1, 2, 3 }  { 2, 1 }

 ĐN 1.5: Tập lũy thừa (power set)

oKý hiệu: 2A oA = { 1, 2, 3 } thì 2A = {, {1}, {2}, {3}, {1, 2}, {2, 3}, {3, 1}, {1, 2, 3} }

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.1. Tập hợp

15

 Kết quả của một số phép toán sau đây trên các tập hợp là

một tập hợp mới.

 Phần bù (complement):

A’ = { x | x  A }

 Phép hợp (Union):

A  B = { x | x  A hoặc x  B }

 Phép giao (intersection):

A  B = { x | x A và x  B }

 Phép trừ (difference):

A \ B = { x | x  A nhưng x  B }

 Tích Đềcác:

A x B = { (a,b) | a  A và b  B }

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.1. Tập hợp

16

 Ví dụ 1.2: Cho A = {1, 2} và B = {2, 3}

o A  B = { 1, 2, 3 }

o A  B = { 2 }

o A \ B = { 1 }

o A x B = { (1,2 ), (1, 3), (2, 2), (2, 3) }

o 2A = { , {1}, {2}, {1, 2} }

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 1. Nhập môn TA&FL

17

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.2. Quan hệ

18

 ĐN 1.6: Cho các tập hợp A1, A2, ..., An. Một quan hệ

(relations) n-ngôi trên các các tập hợp này là tập hợp con của tích Đềcác A1◦A2 ◦... ◦ An mà thỏa mãn một số tính chất nào đó. Các tập hợp A1, A2, ..., An được gọi là miền của quan hệ và n gọi là bậc của quan hệ.

 Ví dụ 1.3: Cho R là một quan hệ gồm bộ 3 số nguyên (a, b, c)

thỏa mãn a < b < c trên tập nguyên dương.

 Ví dụ 1.4: Cho R là một quan hệ gồm bộ 2 số nguyên (a, b) thỏa

mãn a ≡ b mod 3 trên tập nguyên dương.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.2. Quan hệ

19

 ĐN 1.7: Cho hai tập hợp A và B. Một quan hệ (relations) hai

ngôi R giữa A và B là tập hợp chứa tất cả các tập hợp con của A × B mà thành phần thứ nhất A được gọi là miền xác định (domain) của R, còn B gọi là miền giá trị (range) của R.

 Nếu miền xác định và miền giá trị cùng thuộc một tập hợp S,

gọi là một quan hệ trên S. Nếu R là một quan hệ và (a,b) là một cặp trong R thì ta viết aRb.

S

R( A  B ) = aRb miền xác định (domain)

 miền giá trị (range)

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.2. Quan hệ

20

 Các tính chất của quan hệ:  Phản xạ (reflexive): nếu aRa là đúng với aS  Đối xứng (symmetric): nếu aRb thì bRa  Bắc cầu (transitive): nếu aRb và bRc thì aRc  Ví dụ 1.5: cho S = {0, 1, 2, 3} o Quan hệ ‘thứ tự nhỏ hơn’:

L = { (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3) } o Quan hệ ‘bằng’: E = { (0, 0), (1, 1), (2, 2), (3, 3) } o Quan hệ ‘chẵn lẻ’:

P = { (0, 0), (1, 1), (2, 2), (3, 3), (0, 2), (2, 0), (1, 3), (3, 1)}

o Tính chất: L không là quan hệ phản xạ hay đối xứng, E

và P mang tính phản xạ, đối xứng và bắc cầu Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

07/03/2012

1.4.2. Quan hệ

21

 ĐN 1.8: quan hệ mang tính phản xạ, đối xứng và bắc cầu

được gọi là quan hệ tương đương.

 Ví dụ 1.6: E và P là quan hệ tương đương, L không là quan

hệ tương đương.

 ĐN 1.9: Nếu R là quan hệ tương đương trên S thì R phân hoạch S thành các lớp tương đương không rỗng và rời nhau: S = S1  S2  …

 Tính chất:

o Si  Sj = ; o Nếu a, b cùng thuộc Si thì aRb đúng; o Nếu a  Si và b  Sj, i≠j thì aRb sai.

 Ví dụ 1.7: P có 2 lớp tương đương {0, 2} và {1, 3}

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.2. Quan hệ

22

 ĐN 1.10: Bao đóng của quan hệ (P-closure) là quan hệ

nhỏ nhất thỏa các tính chất trong P (tập hợp một số tính chất của các quan hệ)

 ĐN 1.11: Bao đóng bắc cầu R+: o Nếu (a,b)  R thì (a,b) R+ o Nếu (a,b)  R+ và (b,c)  R thì (a,c)  R+ o Không còn gì thêm trong R+

 ĐN 1.12: Bao đóng phản xạ và bắc cầu R*:

o R* = R+  { (a, a)  a  S }

 Ví dụ 1.8: R = { (1, 2), (2, 2), (2, 3) } trên S = {1, 2, 3}

o R+ = { (1, 2), (2, 2), (2, 3), (1, 3) } o R* = { (1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 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 1. Nhập môn TA&FL

23

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.3. Phép chứng minh

24

 Chứng minh trực tiếp: Áp dụng phép suy diễn lôgic (phép

kéo theo) một cách tuần từ theo từng bước: A1  A2  . . . . .  Ak B

 Ví dụ 1.9: chứng minh với mọi số nguyên n thì biểu thức:

n2 - n +5

biểu diễn một số lẻ.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.3. Phép chứng minh

25

 Chứng minh lựa chọn: áp dụng phương pháp chứng minh

trực tiếp cho tất cả các trường hợp riêng của bài toán:

Case 1: A1  B Case 2: A2  B … Case n: An  B

 Ví dụ 1.10: chứng minh với mọi số nguyên n thì biểu thức:

9n2 + 3n -2

biểu diễn một số chẵn.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.3. Phép chứng minh

26

 Chứng minh bằng phản chứng: trong trường hợp không biết bắt đầu bằng lập luận nào hoặc không thể liệt kê các trường hợp, ta có thể áp dụng luật phủ định của phủ định, có nghĩa là chứng minh phủ định của A là sai.

 Ví dụ 1.11: chứng minh nếu n là số nguyên và n2 chẵn thì n

cũng là số chẵn.

 Ví dụ 1.12: chứng minh nếu x là số thực bất kỳ thì x2 –

4x+17 0.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.3. Phép chứng minh

27

 Chứng minh bằng quy nạp:

o Bước 1 (cơ sở quy nạp): chứng minh P(0)

o Bước 2 (giả thiết quy nạp): giả sử P(n-1)

o Bước 3 (quy nạp): P(n - 1)  P(n),  n  1.

 Ví dụ 1.13: chứng minh:

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 1. Nhập môn TA&FL

28

1.1. Giới thiệu về môn học TA&FL

1.2. Yêu cầu với môn học

1.3. Tài liệu tham khảo môn TA&FL

1.4. Bổ túc một số khái niệm toán học

1.4.1. Tập hợp

1.4.2. Quan hệ

1.4.3. Phép chứng minh

1.4.4. Đồ thị và cây

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

29

 Khái niệm đồ thị (graph): một đồ thị là một bộ đôi G =

(V, E) (hoặc ký hiệu là G(V, E)), trong đó:

o V : tập các đỉnh (nút); o E : tập các cạnh nối giữa 2 nút.

 Nếu giữa 2 đỉnh chỉ có tối đa một cạnh, ta gọi đồ thị là đơn.  Ví dụ 1.14: đồ thị G = (V, E) dưới đây là đơn đồ thị:

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

30

 Một cạnh (u, v) của G (V, E) thường được viết là uv (hay vu), ta nói cạnh uv nối u với v, lúc đó, ta nói u và v là 2 đỉnh kề nhau. Nếu giữa 2 đỉnh có nhiều hơn 1 cạnh ta gọi chúng là cạnh bội (hoặc cạnh song song). Đồ thị G, trong trường hợp này, là đa đồ thị.

 Ví dụ 1.15: đồ thị G = (V, E) dưới đây là đa đồ thị:

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

31

 Nếu một cạnh nối 1 đỉnh với chính nó (ví dụ: uu, vv,...) ta gọi

cạnh đó là khuyên.

 Ví dụ 1.16: đa đồ thị G(V, E) đưới đây có chứa các khuyên:

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

32

 (Đa) đồ thị có hướng (directed graph) G = (V, E)

o V : tập các đỉnh (nút) o E : tập các cung có hướng v  w

 Ví dụ 1.17: đồ thị G = (V, E) dưới đây là một đa đồ thị có

hướng:

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

33

 Phân biệt dạng đồ thị:

Loại

Cạnh

Có khuyên?

Có cạnh bội?

Đơn đồ thị Đa đồ thị Giả đồ thị Đồ thị có hướng Đa đồ thị có hướng

Vô hướng Vô hướng Vô hướng Có hướng Có hướng

Không Có Có Không Có

Không Không Có Có Có

 Cây: cây là đồ thị có hướng gồm

o 1 nút gốc (root) o Các nút trung gian (nút trong: có nút cha và các nút con) o Các nút lá: không dẫn ra nút con

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

34

 Ví dụ 1.18: Cho cây sau:

1

3

2

4

5

6

7

8

9

10

 Duyệt cây:

Duyệt theo thứ tự trước: 1, 2, 5, 6, 3, 4, 7, 9, 10, 8 Duyệt theo thứ tự giữa: 5, 2, 6, 1, 3, 9, 7, 10, 4, 8 Duyệt theo thứ tự sau: 5, 6, 2, 3, 9, 10, 7, 8, 4, 1.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

1.4.4. Đồ thị và cây

35

 Ví dụ 1.19: cây minh họa cấu trúc cú pháp câu ‘An là sinh

viên giỏi’

Câu đơn

Chủ ngữ

Vị ngữ

Danh từ

Động từ

Bổ ngữ

Danh từ

Tính từ

An

giỏi

sinh viên

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University

Tài liệu tham khảo

36

 Kenneth H. Rosen. Toán rời rạc ứng dụng trong tin học.-

NXBKHKT, 2000

 Nguyễn Tô Thành, Nguyễn Đức Nghĩa. Toán rời rạc.-

NXBGD, 2000.

07/03/2012 Automata và ngôn ngữ hình thức - ©copyright by PhD. C.T.Ha, Le Quy Don Technical University