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

tiểu luận môn lý thuyết tính toán programming techniques for turing machines

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 (224.85 KB, 15 trang )

BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
~~~oOo~~~
TIỂU LUẬN
LÝ THUYẾT TÍNH TOÁN
ĐỀ TÀI
PROGRAMMING TECHNIQUES FOR TURING
MACHINES
GIẢNG VIÊN : PGS.TS PHAN HUY KHÁNH
LỚP : KHOA HỌC MÁY TÍNH - K24
NHÓM HỌC VIÊN
• TRẦN NGỌC CHINH
• PHÙNG THỊ NGỌC DUNG
• VÕ VĂN THIÊN
ĐÀ NẴNG, 05/2012
Mục lục
MỤC LỤC
GIỚI THIỆU 1
PHẦN I: LÝ THUYẾT CÁC KỸ THUẬT
XÂY DỰNG MÁY TURING 2
.I LƯU TRỮ Ở BỘ ĐIỀU KHIỂN HỮU HẠN 2
.II BĂNG NHIỀU RÃNH 4
.III CHƯƠNG TRÌNH CON 6
PHẦN II: BÀI TẬP 10
.IV PHÁT BIỂU BÀI TOÁN 10
.V GIẢI QUYẾT BÀI TOÁN 10
TÀI LIỆU THAM KHẢO 13
GIỚI THIỆU
Nhóm 05 thực hiện việc nghiên cứu tài liệu “Addison-Wesley – Introduction to
Automata Theory, Languages and Computation”, phần 8.3 (p.329 – 336).
Nội dung chính của tiểu luận bao gồm:


PHẦN 1. LÝ THUYẾT
Các kỹ thuật xây dựng máy Turing
• Lưu trữ ở bộ điều khiển hữu hạn
• Băng nhiều rãnh
• Chương trình con
PHẦN 2. BÀI TẬP
Bài tập 8.3.3 (p.336)
Với những kiến thức có được còn hạn chế, trong quá trình nghiên cứu các
thành viên của Nhóm 05 đã có nhiều cố gắng tìm hiểu, nghiên cứu nhiều tài liệu
khác nhau để bổ sung vào phần tìm hiểu mục 8.3 này. Do đó, kết quả nghiên cứu và
trình bày không thể tránh khỏi những sai sót, hạn chế. Rất mong được sự đóng góp
ý kiến của Thầy PGS, TS. PHAN HUY KHÁNH và các bạn cùng lớp.
Xin chân thành cảm ơn!
Nhóm 05 – Lớp Khoa học Máy tính K24
• Trần Ngọc Chinh
• Phùng Thị Ngọc Dung
• Võ Văn Thiên
Nhóm 5 – Lớp KHMT.K24 1
PHẦN I: LÝ THUYẾT CÁC KỸ THUẬT
XÂY DỰNG MÁY TURING
Việc xây dựng máy Turing bằng cách viết (liệt kê) tất cả các hàm chuyển của
nó trên băng nhập có thể là một công việc đơn điệu. Để mô tả đầy đủ cách xây dựng
máy Turing, ta cần một vài công cụ "cấp cao" hơn. Phần này sẽ trình bày một số
công cụ tổng quát.
Mục đích của phần này cho thấy ý nghĩa của việc một máy Turing (Turing
Machine – TM) có thể được sử dụng để tính toán, trong mức độ nào đó không khác
so với với máy tính hiện nay. Chúng ta sẽ nghiên cứu những tính toán trên những
máy Turing khác nhau. Khả năng “nội hàm” này của cả máy Turing và máy tính
cho phép chúng ta chứng minh những vấn đề chưa quyết định được.
Để minh chứng khả năng của TM một cách rõ ràng, chúng ta sẽ trình bày một

số ví dụ về điều này và phải nghĩ đến băng từ và bộ điều khiển hữu hạn của máy.
Không một thủ thuật nào mở rộng kiểu cơ bản của TM. Chúng ta chỉ sử dụng những
ký hiệu để giả lập các máy TM mở rộng cùng với băng từ nhiều rãnh hơn so với
TM cơ bản
.I LƯU TRỮ Ở BỘ ĐIỀU KHIỂN HỮU HẠN
Bộ điều khiển có thể dùng để lưu trữ một lượng hữu hạn thông tin. Để làm
như thế, ta viết mỗi trạng thái như là một cặp các phần tử: một thành phần để điều
khiển, thành phần kia lưu giữ một ký hiệu. Chú ý rằng, đây chỉ là một cách mở rộng
trên khái niệm chứ không thay đổi định nghĩa máy Turing.
Có thể dùng bộ điều khiển hữu hạn không chỉ để chỉ rõ vị trí trong chương
trình (đầu đọc trên băng từ) của TM mà còn lưu trữ dữ liệu, hình 1.1 minh hoạ kỹ
thuật này (cũng giống như một phương pháp khác: băng nhiều rãnh), hình vẽ cho
thấy bộ điều khiển hữu hạn không những chứa một trạng thái điều khiển q mà còn
ba phần tử dữ liệu A, B và C. Điều này không phải mở rộng kiểu TM mà đơn thuần
xem trạng thái như 1 bộ. Như hình 1 đó là: [q, A, B, C]. Đối với nhiều trạng thái,
phương pháp này cho phép mô tả có hệ thống hơn và chương trình TM cũng dễ hiểu
hơn.
Nhóm 5 – Lớp KHMT.K24 2
Tiểu luận môn Lý thuyết tính toán 3
(Hình 1 - TM có bộ điều khiển hữu hạn lưu trữ dữ liệu và nhiều track)
Ví dụ 1.1: Thiết kế một TM
M = (Q, {0, 1}, {0, 1, B},
δ
, [q
0
, B], {[q
1
, B]})
Bộ điều khiển hữu hạn sẽ nhận biết ký tự đầu tiên là 0 hoặc 1 và xác định rằng
ký tự này sẽ không xuất hiện bất cứ vị trí nào trong chuỗi nhập. Như vậy, M chấp

nhận ngôn ngữ dạng 01* + 10*. Việc chấp nhận ngôn ngữ dạng này không cho thấy
được hết khả năng của TM, nhưng là một ví dụ đơn giản về khả năng của TM.
Tập hợp các trạng thái Q gồm {q
0
, q
1
}
×
{0, 1, B}, được biểu diễn từng cặp với
2 thành phần:
a) Phần đầu là trạng thái điều khiển của TM q
0
hoặc q
1
, trạng thái q
0
là trạng
thái khởi đầu mà M chưa đọc ký tự nào, q
1
là trạng thái M đã đọc 1 ký tự
và kiểm tra ký tự này sẽ không xuất hiện bất cứ nơi nào trong câu khi đầu
đọc di chuyển về phía phải, nếu gặp ô trắng thì câu được chấp nhận.
b) Phần thứ 2 chứa dữ liệu, đó là ký hiệu đầu tiên được tìm thấy (0 hoặc 1),
ký hiệu B xuất hiện trong phần này chứng tỏ M chưa đọc ký tự nào.
δ
: hàm chuyển của M:
1.
δ
([q
0

, B], a) = ([q
1
, a], a, R) với a = 0 hoặc a = 1. q
0
là trạng thái khởi đầu
và phần lưu dữ liệu của trạng thái là B. Ký tự đọc được ghi vào thành phần
GVHD: PGS.TS PHAN HUY KHÁNH 3
Tiểu luận môn Lý thuyết tính toán 4
thứ hai của trạng thái, đầu đọc di chuyển về phía phải và chuyển sang
trạng thái q
1
.
2.
δ
([q
1
, a],
a
) = ([q
1
, a],
a
, R), ở đây nếu a = 0 thì
a
= 1 và ngược lại. Ở
trạng thái q
1
, M sẽ bỏ qua những ký tự đọc được nếu so sánh khác với ký
tự đã đọc lần đầu tiên (đang lưu ở thành phần thứ hai của trạng thái) và di
chuyển tiếp về phía phải.

3.
δ
([q
1
, a], B) = ([q
1
, B], B, R) với a = 0 hoặc a = 1. Nếu M tìm thấy ký tự
trắng sẽ chuyển sang trạng thái kết thúc [q
1
, B].
Chú ý rằng M không được định nghĩa
δ
([q
1
, a], a) với a = 0 hoặc a = 1, vì
như vậy sẽ bắt gặp một sự cố khi so sánh ký tự đang đọc và ký tự đã lưu trong bộ
điều khiển hữu hạn tại lần đọc đầu tiên. Khi đó M treo và không đi đến trạng thái
kết thúc.
.II BĂNG NHIỀU RÃNH
Một cách khác được nghĩ đến là băng của TM chứa nhiều rãnh. Mỗi ký tự
của băng bao gồm một bộ, mỗi thành phần của bộ nằm trên một rãnh. Vì vậy, trong
hình 1.1, mỗi ô được đầu đọc quét qua chứa 1 bộ [X, Y, Z]. Kỹ thuật lưu trữ trong bộ
điều khiển hữu hạn sử dụng nhiều rãnh trên băng không phải mở rộng tính năng của
TM, mà đơn giản đó là một phương pháp để dễ quan sát và hình dung.
Ví dụ 1.2: Trên băng dùng nhiều rãnh, thông thường một rãnh lưu giữ dữ
liệu, rãnh thứ hai dùng để đánh dấu ký tự đã “duyệt” hoặc có thể lưu trong rãnh một
số ít những vị trí tương ứng với dữ liệu đã “duyệt”. Ví dụ đang xét sẽ minh hoạ rõ
cách sử dụng rãnh thứ hai để nhận một ngôn ngữ phi ngữ cảnh.
L
wcw

= {wcw | w is in (0 + 1)
+
}
TM sẽ được thiết kế:
M = (Q,
Σ
,
Γ
,
δ
, [q
1
, B], [B, B], {[q
9
, B]})
Trong đó:
Q: là tập hợp các trạng thái: {q
1
, q
2
, …, q
9
}
×
{0, 1, B}, gồm những cặp chứa
một trạng thái điều khiển q
i
và thành phần dữ liệu: 0, 1 hoặc ký tự trắng. Chúng
GVHD: PGS.TS PHAN HUY KHÁNH 4
Tiểu luận môn Lý thuyết tính toán 5

ta một lần nữa sử dụng kỹ thuật lưu trữ trong bộ điều khiển hữu hạn, như vậy
chúng ta cho phép một trạng thái ghi nhớ một ký tự đầu vào 0 hoặc 1.
Γ: Tập hợp các ký tự gồm: {B,

}
×
{0, 1, c, B}. Thành phần đầu tiên có thể
là ký tự trắng (B) hoặc đã đánh dấu (

). Dùng dấu

để đánh dấu những ký tự đã
duyệt qua trong w (gồm chuỗi các ký tự 0 và 1) nằm về hai phía của c có giống
nhau hay không. Thành phần thứ hai là một trong những ký tự đã được mô tả ở trên.
Nghĩa là nếu chúng ta có ký hiệu [B, X] thì X là một trong các ký tự 0, 1, c hoặc B.
∑: ký tự nhập [B, 0], [B, 1]. Như đã đề cập đến, chúng ta định nghĩa tương ứng
với 0 và 1.
δ: Hàm chuyển, được định nghĩa bởi các luật sau, trong đó a và b đại diện cho
0 hoặc 1:
1.
δ
([q
1
, B], [B, a]) = ([q
2
, a], [

, a], R). Ở trạng thái khởi động M
tìm thấy ký tự a (có thể là 0 hoặc 1), lưu a vào trong bộ điều khiển hữu
hạn, chuyển sang trạng thái q

2
và đánh dấu vị trí vừa đọc bằng cách thay
B bằng

, di chuyển về phía phải.
2.
δ
([q
2
, a], [B, b]) = ([q
2
, a], [B, b], R). M di chuyển về phải, tìm ký
tự c. Chú ý rằng a, b có thể hoặc 0 hoặc 1 nhưng không thể là c.
3.
δ
([q
2
, a], [B, c]) = ([q
3
, a], [

, b], R). M tìm thấy c, chuyển thành
trạng thái q
3
và đi tiếp về phía phải.
4.
δ
([q
3
, a], [


, b]) = ([q
3
, a], [

, b], R). M di chuyển qua tất cả các
ký tự đã đánh dấu và giữ trạng thái q
3
.
5.
δ
([q
3
, a], [B, a]) = ([q
4
, B], [

, a], L). Nếu M gặp ký tự đầu tiên
chưa đánh dấu giống với ký tự đang lưu trong bộ điều khiển hữu hạn thì
đánh dấu ký tự này. Chuyển sang trạng thái q
4
đồng thời xoá dữ liệu trong
bộ điều khiển hữu hạn, M chuyển sang trái.
6.
δ
([q
4
, B], [

, a]) = ([q

4
, B], [

, a], L). M di chuyển về trái bỏ qua
tất cả các ký tự đã đánh dấu, giữ nguyên trạng thái.
7.
δ
([q
4
, B], [B, c]) = ([q
5
, B], [B, c], L). Khi M gặp c, chuyển sang
trạng thái q
5
và đi tiếp về phía trái. Trong trạng thái q
5
, M gặp và giải
GVHD: PGS.TS PHAN HUY KHÁNH 5
Tiểu luận môn Lý thuyết tính toán 6
quyết các trường hợp: các ký tự trong chuỗi phía trái c chưa đánh dấu hết
hoặc đã đánh dấu xong.
Nếu đã đánh dấu xong, vấn đề còn lại là kiểm tra chắc chắn chuỗi
phía phải c cũng đã đánh dấu toàn bộ và đi vào trạng thái kết thúc.
Nếu chưa, M tìm ký tự chưa đánh dấu phía trái nhất, đánh dấu và bắt
đầu lặp lại ở trạng thái q
1
.
8.
δ
([q

5
, B], [B, a]) = ([q
6
, B], [B, a], L). Trường hợp xảy ra khi tìm
thấy phía trái c có ký tự chưa đánh dấu, M chuyển trạng thái q
6
và đi tiếp
về phía trái tìm ký tự đã đánh dấu.
9.
δ
([q
6
, B], [B, a]) = ([q
6
, B], [B, a], L). M tiếp tục về phái trái, bỏ
qua những ký tự chưa đánh dấu.
10.
δ
([q
6
, B], [

, a]) = ([q
1
, B], [

, a], R). Tìm thấy ký tự đánh dấu,
M đi vào trạng thái q
1
, dịch phải để duyệt ký tự chưa đánh dấu phía trái

nhất.
11.
δ
([q
5
, B], [

, a]) = ([q
7
, B], [

, a], R). Nếu tìm thấy chuỗi phía trái
c đã được đánh dấu toàn bộ, M dịch phải, chuyển thành trạng thái q
7
.
12.
δ
([q
7
, B], [B, c]) = ([q
8
, B], [B, c], R). Gặp c, M tiếp tục dịch phải
và đi vào trạng thái q
8
.
13.
δ
([q
8
, B], [


, a]) = ([q
8
, B], [

, a], R). M giữ nguyên trạng thái q
8
,
di chuyển qua tất cả các ký tự đã được đánh dấu được tìm thấy.
14.
δ
([q
8
, B], [B, B]) = ([q
8
, B], [B, B], R). Ở trạng thái q
8
, nếu M gặp
ký tự trắng (B) sẽ đi vào trạng thái q
9
– kết thúc, câu được chấp nhận. Nếu
gặp bất kỳ ký tự nào khác, câu không được chấp nhận, M treo.
.III CHƯƠNG TRÌNH CON
Trong những chương trình máy tính nói chung, TM có thể thực thi một tập các
thành phần tương tác hay những chương trình con. Một chương trình con của TM là
một tập các trạng thái được thực thi đầy đủ. Trong đó bao gồm trạng thái bắt đầu và
một trạng thái khác không có phép chuyển kế tiếp được xem như là trạng thái trở về
GVHD: PGS.TS PHAN HUY KHÁNH 6
Tiểu luận môn Lý thuyết tính toán 7
để giao quyền điều khiển đến một tập trạng thái khác của cùng một TM hay một

TM khác. Khi một chương trình con được gọi, trạng thái bắt đầu (q
0
) sẽ thi hành. Vì
TM không có kỹ thuật để nhớ địa chỉ trở về – trạng thái kế tiếp sau khi nó kết thúc,
nên phải thiết kế TM yêu cầu một chương trình con được gọi tại một số trạng thái,
tạo ra nhiều bản sao của chương trình con, mỗi bản sao là một tập các trạng thái
mới, như vậy mỗi lần gọi là thực thi một bản sao khác nhau của chương trình con.
Ví dụ 1.3: Thiết kế một TM thực hiện phép nhân. TM khởi động với chuỗi
nhập trên băng 0
m
10
n
1 và kết thúc với chuỗi 0
mn
trên băng. Nguyên tắc chung của
giải thuật này là:
1. Trên băng, trong trường hợp tổng quát, dạng chuỗi 0
i
10
n
10
kn
với
mỗi số k nguyên dương.
2. Thay đổi 1 ký tự 0 trong nhóm đầu tiên thành B (blank: ký tự trắng)
và thêm n ký tự 0 nối vào sau chuỗi, lúc này chuỗi có dạng: 0
i-1
10
n
10

(k+1)n
.
3. Lặp lại bước 2 m lần, khi đó toàn bộ các ký tự 0 của nhóm đầu
được thay bằng ký tự B và mn ký tự 0 được nối thêm vào sau chuỗi.
4. Bước cuối cùng thay nhóm đầu 10
n
1 bằng các ký tự B, kết thúc
công việc.
Biến ý tưởng giải thuật này thành chương trình con có tên Copy. Copy sẽ
thực hiện bước 2 trong 4 bước trên. Chính xác hơn, chương trình con Copy sẽ
chuyển dạng 0
m-k
1q
1
0
n
10
(k-1)n
thành dạng 0
m-k
1q
5
0
n
10
kn
. Hình 2 minh họa sự chuyển
đổi của chương trình con Copy. Chương trình con này thay ký tự 0 đầu tiên ở chuỗi
thành X, dịch chuyển sang phải trở thành q
2

và giữ trạng thái này cho đến khi tìm
thấy một ký tự trắng, ghi 0, dịch trái, chuyển thành trạng thái q
3
để tìm X đã đánh
dấu. Lặp lại chu kỳ trên ở trạng thái q
1
cho đến khi thay toàn bộ 0 phía trái thành X,
gặp 1 chuyển thành trạng thái q
4
, dịch trái, thay X trở thành 0 và kết thúc ở trạng
thái q
5
.
GVHD: PGS.TS PHAN HUY KHÁNH 7
Tiểu luận môn Lý thuyết tính toán 8
( Hình 2 - Chương trình con Copy)
TM thực hiện hoàn chỉnh phép nhân bắt đầu ở trạng thái q
0
. Đầu tiên trong vài
bước di chuyển từ dạng q
0
0
m
10
n
thành 0
m-1
1q
1
0

n
1. Những bước chuyển được minh
họa ở hình 1.3, bên trái của chương trình con; những bước dịch chuyển này chỉ gồm
trạng thái q
0
và q
6
.
Bên phải của chương trình con trên hình 1.3, gồm trạng thái q
7
đến q
12
. Mục
đích trạng thái q
7
, q
8
và q
9
nắm lấy điều khiển sau khi chương trình con Copy ghi
khối n ký tự 0 và ở trạng thái 0
m-k
1q
5
0
n
10
kn
. Cuối cùng, những trạng thái này sẽ đưa
về trạng thái q

0
0
m-k
10
n
10
kn
. Lúc này chu trình bắt đầu lần nữa và chương trình con
Copy được gọi để lặp lại việc chép khối n ký tự 0 vào cuối chuỗi.
Đặc biệt, tại trạng thái q
8
, TM phải tìm thấy toàn bộ m ký tự 0 đã được thay
bằng B, trong trường hợp này chuyển sang trạng thái q
10
, trạng thái q
11
sẽ thay chuỗi
10
n
1 thành B và đi vào trạng thái dừng q
12
, dạng chuỗi q
12
0
mn
.
GVHD: PGS.TS PHAN HUY KHÁNH 8
Tiểu luận môn Lý thuyết tính toán 9
( Hình 3 - Chương trình thực hiện phép nhân hoàn chỉnh dùng chương trình
con Copy)

GVHD: PGS.TS PHAN HUY KHÁNH 9
Tiểu luận môn Lý thuyết tính toán 10
PHẦN II: BÀI TẬP
.IV PHÁT BIỂU BÀI TOÁN
*Bài tập 8.3.3 (p.336): Thiết kế một chương trình con để di chuyển một đầu
TM từ vị trí hiện tại của mình sang bên phải, bỏ qua tất cả các số 0, cho đến khi gặp
một số 1 hoặc một khoảng trống.
Nếu vị trí hiện tại không nắm giữ 0, thì TM dừng. Giả định rằng có không có
biểu tượng băng khác hơn 0, 1, và B (trống).
Sau đó, sử dụng chương trình con này để thiết kế một TM chấp nhận tất cả các
chuỗi 0 và 1 mà không có hai số 1 liên tiếp trong một hàng.
.V GIẢI QUYẾT BÀI TOÁN
Chương trình con (GoToRight): Chú ý rằng bởi vì các yêu cầu về kỹ thuật
của chương trình con và vì TM không cho phép đầu đọc của nó đứng yên. Khi thấy
1 ký tự khác 0, TM sẽ chuyển sang trạng thái q
3
, di chuyển qua phải, và sau đó trở
về bên trái ở trạng thái q
4
, là trạng thái kết thúc của chương trình con.
state 0 1 B
q
1
(q
2
,0,R) - -
q
2
(q
2

,0,R) (q
3
,1,R) (q
3
,B,R)
q
3
(q
4
,0,L) (q
4
,1,L) (q
4
,B,L)
GVHD: PGS.TS PHAN HUY KHÁNH 10
Tiểu luận môn Lý thuyết tính toán 11
( Hình 4 - Chương trình con “GoToRight”)
Hình 4 minh họa sự chuyển đổi của chương trình con GoToRight. Chương
trình con này ghi ký tự 0 đầu tiên ở chuỗi, dịch chuyển sang phải trở thành q
2
và giữ
trạng thái này cho đến khi tìm thấy một ký tự trắng B (ghi B) hoặc một số 1 (ghi 1),
dịch phải, chuyển thành trạng thái q
3
. Ở trạng thái q
3
tiến hành dịch trái và kết thúc
ở trạng thái q
4
.

Chúng ta dùng chương trình con trên để thiết kế một TM bắt đầu ở trạng thái
q
0
. Bất cứ khi nào gặp ký tự trống, TM sẽ chấp nhận ở trạng thái q
f
. Tuy nhiên, ở
trạng thái q
0
, TM chỉ biết nó không bắt gặp một số 1 bên phải nó. Nếu TM quét qua
một số 0, nó phải kiểm tra (ở trạng thái q
5
) không có một khoảng trống ngay bên
phải nó; nếu có, TM chấp nhận. Nếu nó gặp số 0 ở trạng thái q
5
, TM sẽ quay trở lại
số 0 trước đó và gọi chương trình con để bỏ qua ô không phải số 0 tiếp theo. Nếu
TM gặp 1 ở trạng thái q
5
, thì nó gặp 01, nó sẽ sử dụng trạng thái q
6
để kiểm tra rằng
không có bất kỳ số 1 nào ở bên phía phải.
Ngoài ra, TM ở trạng thái q
4
(trạng thái kết thúc của chương trình con) sẽ chấp
nhận nếu nó bắt gặp một khoảng trống, và nếu nó gặp một số 1 thì sẽ chuyển sang
trạng thái q
6
để chắc chắn theo sau sẽ là một số 0 hoặc một khoảng trống.
Chú ý rằng các trạng thái q

4
và q
5
là thật sự giống nhau, ngoại trừ ở trạng thái
q
4
chúng ta chắc chắn không quét qua một số 0. Hai trạng thái này có thể kết hợp lại
thành một trạng thái chung. Ngoài ra, chương trình con không phải là một giải pháp
GVHD: PGS.TS PHAN HUY KHÁNH 11
1/1 →
B/B →
0/0 →
0/0→
0/0 ←
B/B ←
1/1 ←
q
1
q
2
q
4
Start
q
3
Tiểu luận môn Lý thuyết tính toán 12
hoàn hảo mà chúng ta muốn, và sẽ có một số bước nhảy qua lại trên băng không cần
thiết. Dưới đây là phần còn lại của bảng chuyển đổi.
state 0 1 B
q

0
(q
5
,0,R) (q
6
,1,R) (q
f
,B,R)
q
5
(q
1
,0,L) (q
6
,1,R) (q
f
,B,R)
q
6
(q
0
,0,R) - (q
f
,B,R)
q
4
- (q
6
,1,R) (q
f

,B,R)
GoToRight
( Hình 5 - Chương trình TM hoàn chỉnh dùng chương trình con “GoToRight”)
GVHD: PGS.TS PHAN HUY KHÁNH 12
q
6
Start
0/0 →
1/1 →
0/0 →
B/B →
B/B →
B/B →
B/B →
1/1 →
0/0 ←
q
0
q
4
q
1
q
f
q
5
Tiểu luận môn Lý thuyết tính toán 13
TÀI LIỆU THAM KHẢO
[1]. John E. Hopcroft, Rajeev Motwani, Jefferey D. Ullman, Introduction to
Automata Theory, Languages, and Computation, Addison Wesley, 2001.

[2]. PGS.TS Phan Huy Khánh, Giáo trình Lý thuyết tính toán, ĐH Đà Nẵng,
1999.
[3]. PGS.TS Phan Huy Khánh, Lý thuyết ngôn ngữ hình thức và ôtômat, ĐH
Đà Nẵng, 1997.
[4]. Các tài liệu khác + tham khảo Internet.
GVHD: PGS.TS PHAN HUY KHÁNH 13

×