Các biến thể của máy Turing

Một phần của tài liệu bài giảng automat (Trang 85)

Trong các thành phần cấu tạo của TM, nếu cải tiến một hoặc một số thành phần của nó thì dẫn đến các dạng khác của máy Turing. Người ta thường thay cấu trúc của băng, của bộ phận điều khiể hữu hạn để tạo ra các biến thể khác nhau của TM. Sau đây xét một vài biến thể thường gặp của máy Turing.

3.1. Máy Turing nhiều rãnh

Trong máy Turing bộ phận điều khiển hữu hạn không chỉ để biểu diễn 1 vị trí trong chương trình của máy, mà còn có thể sử dụng để lưu giữ một lượng dữ liệu hữu hạn. dữ liệu lưu giữ này đóng một vai trò nhất định nào đó trong qua trình máy hoạt động. Băng của máy Turing cũng có thể được cấu tạo bởi nhiều rãnh (track). Mỗi rãnh có thể chứa một ký hiệu, vì vậy, bộ chữ cái của băng sẽ là tập hợp các bộ ký hiệu, mỗi ký hiệu ứng với 1 rãnh của băng. Mô hình máy Turing nhiều băng có dạng như sau:

Trạng thái q Chỗ chứa A B C Rãnh 1 X Rãnh 2 Y Rãnh 3 Z

Về cấu tạo, máy Turing nhiều rãnh phức tạp hơn so với máy 1 rãnh, nhưng hai loại máy này đều đoán nhận cùng một lớp ngôn ngữ. Với mỗi máy nhiều rãnh luôn tìm được máy 1 rãnh tương ứng thực hiện cùng các thao tác. Hay nói cách khác, hai loại máy Turing đơn rãnh (TM thông thường) và đa rãnh là tương đương với nhau.

3.2. Máy Turing đa băng

Một máy Turing đa băng (multitape) là máy có một số (hữu hạn) băng, mỗi băng câu tạo tương tự như băng của TM 1 băng. Bộ điều khiển hữu hạn gồm nhiều đầu đọc-ghi, mỗi đầu phụ trách 1 băng. Băng thứ nhất dùng để chứa dữ liệu vào

- 86 -

cần xử lý (đoán nhận), còn các băng khác có vai trò hỗ trợ cho máy hoạt động. Xâu ký hiệu vào được đặt trên băng thứ nhất. Đầu đọc-ghi của băng thứ nhất lúc ban đầu chỉ vào ô chứa ký hiệu đầu trái của xâu vào, còn đầu đọc-ghi của các băng khác có thể chỉ vào các ô tùy ý trong băng tương ứng.

Mặc dù về mặt hình thức, máy đa băng có vẻ thực hiện được nhiều chức năng hơn so với máy 1 băng, nhưng người ta đã chứng minh được sự tương đương của các loại máy này. Nghĩa là lớp ngôn ngữ đoán nhận được bởi máy Turing đơn băng và đa băng là một. Kỹ thuật chứng minh dựa trên ý tưởng: luôn xây dựng máy 1 băng thực hiện mọi thao tác của máy đa băng cho trước.

3.3. Máy Turing không đơn định

Nếu như trong định nghĩa máy Turing ỏ trên, khi xác định hàm chuyển vị, ta cho ứng mỗi bộ (q, X) không phải là 1 bộ ba (p, Y, D) mà là 1 tập hợp nhiều bộ ba như vậy, tứ là hàm chuyển (q, X) xác định một tập các bộ ba:

{(q1, Y1, D1), (q2, Y2, D2), … , (qk, Yk, Dk)}

trong đó k là số nguyên hữu hạn xác định, thì ta có máy Turing không đơn định (Nondeterministic Turing Machine, viết tắt là NTM).

Tại mỗi bước NTM có thể chọn một trong các bộ ba của hàm chuyển để thực hiện bước chuyển tiếp theo. Như vậy về hình thức, TM và NTM tương tự như DFA và NFA của automat hữu hạn. Cũng như automat hữ hạn, với máy Turing, người ta cũng chứng minh được rằng lớp ngôn ngữ đoán nhận được bởi TM cũng chính là lớp ngôn ngữ đoán nhận được bởi NTM, hay nói cách khác, TM và NTM là tương đương.

Nhận xét: Mặc dù có nhiều biến thể khác nhau, nhưng tất cả các biến thể của TM đều không mở rộng được lớp ngôn ngữ đoán nhận của TM, đó là lớp ngôn ngữ kể được đệ quy. Lớp ngôn ngữ này chính là lớp ngôn ngữ sinh bởi văn phạm ngữ cấu, hay là lớp L0.

4. Bài tập chƣơng 4

1) Trong định nghĩa hàm chuyển  của máy Turing M=<, Q, , , q0, B, F>:

(q, X)= (p, Y, D), hãy cho biết các ký hiệu này? a. p, qQ; X; Y; D{L, R}

- 87 - c. p, qQ; X,Y; D{L, R}

d. p, qQ; X,Y;,Y; D{L, R}

2) Tìm phát biểu sai khi nói về khả năng đoán nhận các loại ngôn ngữ: ngôn ngữ chính quy (NNCQ), ngôn ngữ phi ngữ cảnh (NNPNC), ngôn ngữ cảm ngữ cảnh (NNCNC), ngôn ngữ ngữ cấu (NNNC) của các máy automat hữu hạn (FA), automat đẩy xuống (PA) và máy Turing (TM):

a. FA, PA và TM đều đoán nhận được NNCQ b. PA và TM đều đoán nhận được NNPNC

c. Tồn tại NNCNC mà cả PA và FA đều không đoán nhận được d. Tồn tại NNNC mà cả PA, PA và TM đều không đoán nhận được

3) Tìm phát biểu sai khi nói về khả năng đoán nhận ngôn ngữ của các loại máy Turing:

a. Lớp ngôn ngữ đoán nhận bởi máy Turing nhiều rãnh thực sự rộng hơn so với lớp ngôn ngữ đoán nhận bởi máy Turing 1 rãnh

b. Lớp ngôn ngữ đoán nhận bởi máy Turing nhiều rãnh thực trùng lớp ngôn ngữ đoán nhận bởi máy Turing đa băng

c. Máy Turing đơn định và không đơn định tương đương nhau d. Máy Turing không đơn định đoán nhận lớp ngôn ngữ ngữ cấu 4) Hãy xây dựng TM đoán nhận ngôn ngữ {anbncn n>0}

- 89 -

TÀI LIỆU THAM KHẢO

1. Đỗ Đức Giáo

Cơ sở toán trong lập trình

Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội – 1998

2. Đỗ Đức Giáo, Đặng Huy Ruận

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

Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội – 1991

3. Trần Đức Quang

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

Nhà xuất bản Đại học quốc gia Tp. Hồ Chí Minh – 2002

4. Phan Đình Diệu

Lý thuyết Ôtômat và thuật toán

Nhà xuất bản Đại học và Trung học chuyên nghiệp, Hà Nội – 1977

5. Salomaa A.

Formal Languages

Academic Press New York – 1972

6. Hopcroft J. Ullman J.

Formal Languages and their Relation to Automata Addison-Wesley Reading Mass London – 1969

- 90 -

MỤC LỤC

Lời nói đầu ... 1

Chƣơng 1. Nhập môn về văn phạm và ngôn ngữ hình thức ... 1

1. Các khái niệm cơ bản ... 1

2. Văn phạm và ngôn ngữ sinh bởi văn phạm ... 3

2.1. Định nghĩa văn phạm ... 3

2.2. Ngôn ngữ của văn phạm ... 5

2.3. Một số tính chất của văn phạm ... 6

3. Phân loại văn phạmcủa Chomsky ... 7

3.1. Văn phạm ngữ cấu ... 7

3.2. Văn phạm cảm ngữ cảnh ... 8

3.3. Văn phạm phi ngữ cảnh ... 8

3.4. Văn phạm chính quy ... 9

4. Các dạng bài toán về văn phạm ... 11

4.1. Bài toán xác định ngôn ngữ của văn phạm ... 11

4.2. Bài toán xác định văn phạm sinh ngôn ngữ... 11

4.3. Một số ví dụ về văn phạm ... 12

5. Bài tập chương 1 ... 14

Chƣơng 2. Ôtômát hữu hạn (Finite Automata) ... 21

1. Định nghĩa Automat hữu hạn (Finite Automata FA) ... 21

1.1. Các ví dụ mở đầu ... 21

1.2. Định nghĩa FA đơn định (DFA)và không đơn định (NFA) ... 21

1.3. Các phương pháp biểu diễn FA ... 23

1.4. Sự tương đương giữa DFA và NFA ... 30

2. Ngôn ngữ chính quy và biểu thức chính quy ... 33

2.1. Ngôn ngữ chính quy ... 33

2.2. Biểu thức chính quy ... 34

2.3. Thuật toán Thompson ... 35

2.4. Tính chất của ngôn ngữ chính quy ... 37

3. Quan hệ giữa FA và ngôn ngữ chính quy ... 38

3.1. Văn phạm chính quy mẫu ... 38

3.2. Đồ hình của văn phạm chính quy mẫu ... 38

- 91 -

4. Bổ đề bơm ... 39

5. Bài tập chương 2 ... 41

Chƣơng 3. Ôtômát đẩy xuống (Pushdown Automata) ... 49

1. Văn phạm phi ngữ cảnh ... 49

1.1. Định nghĩa và ký hiệu ... 49

1.2. Cây dẫn xuất đầy đủ ... 49

1.3. Đơn giản hoá văn phạm phi ngữ cảnh ... 51

1.4. Dạng chuẩn của Chomsky ... 57

1.5. Dạng biên dịch BNF (Backus-Naur Form) ... 60

2. Ôtômát đẩy xuống (Pushdown Automata PA) ... 61

2.1. Định nghĩa PA ... 61

2.2. Các bước chuyển của PA ... 63

2.3. Ngôn ngữ đoán nhận của PA ... 64

2.4. Quan hệ giữa PA và ngôn ngữ phi ngữ cảnh ... 67

3. Thuật toán phân tích cú pháp trên lớp ngôn ngữ phi ngữ cảnh ... 68

3.1. Phân tích cú pháp ... 68

3.2. Các hàm FIRST và FOLLOW ... 69

3.3. Điều kiện để VPPNC không nhập nhằng và không đệ quy trái .. 70

3.4. Thuật toán phân tích top-down ... 71

3.5. Thuật toán phân tích tất định ... 71

4. Bài tập chương 3 ... 74

Chƣơng 4. Máy Turing (Turing Machines) ... 80

1. Mở đầu ... 80

2. Máy Turing ... 80

2.1. Định nghĩa... 80

2.2. Mô tả tức thời cho máy Turing ... 82

2.3. Ngôn ngữ của máy Turing ... 84

3. Các biến thể của máy Turing ... 85

3.1. Máy Turing nhiều rãnh ... 85

3.2. Máy Turing đa băng ... 85

3.3. Máy Turing không đơn định ... 86

4. Bài tập chương 4 ... 86

Một phần của tài liệu bài giảng automat (Trang 85)