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

tiểu luận môn lý thuyết tính toán unrestricted grammars and 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 (466.35 KB, 13 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC
LÝ THUYẾT TÍNH TOÁN
Unrestricted Grammars and Turing Machines
Giảng viên hướng dẫn
Giảng viên hướng dẫn
: PGS.TS. Phan Huy Khánh
: PGS.TS. Phan Huy Khánh


Học viên thực hiện
Học viên thực hiện


: Phùng Hữu Đoàn
: Phùng Hữu Đoàn
Huỳnh Công Trường
Huỳnh Công Trường
Nguyễn Hải Minh
Nguyễn Hải Minh
Lớp
Lớp
: Khoa học máy tính
: Khoa học máy tính
Khoá
Khoá
: K24
: K24
Đà Nẵng, tháng 05 năm 2012


Đà Nẵng, tháng 05 năm 2012
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
LỜI NÓI ĐẦU
Mấy năm gần đây, chúng ta đã chứng kiến sự phát triển mãnh liệt trong
các lĩnh vực nghiên cứu toán học liên quan đến máy tính và tin học. Sự phát
triển phi thường của các máy tính và những thay đổi sâu sắc trong phương
pháp luận khoa học đã mở ra những chân trời mới cho toán học với một tốc
độ không thể sánh được trong suốt lịch sử lâu dài của toán học. Những phát
triển đa dạng của toán học đã trực tiếp tạo ra “thuở ban đầu” của máy tính và
tin học và các tiến bộ trong tin học đã dẫn đến sự phát triển mạnh mẽ một số
ngành toán học.
Lý thuyết tính toán là các từ được sinh ra bởi một văn phạm, tức tập
các quy tắc để sinh ra ngôn ngữ. Lý thuyết tính toán không sử dụng các lệnh
gán biến và không gây ra hiệu ứng phụ như vẫn gặp trong lập trình mệnh
lệnh. Nguyên cứu những phương pháp lập trình này giúp ích rất nhiều cho
những ai muốn tìm hiểu về kỹ thuật lập trình trong các lĩnh vực trí tuệ nhân
tạo, giao tiếp hệ thống. xử lý ký hiệu, tính toán hình thức, các hệ thống đồ
họa…
Vận dụng những kiến thức thu nhận trong quá trình học tập, tìm hiểu và
nghiên cứu về môn Lý thuyết tính toán, được sự phân công và hướng dẫn của
thầy giáo PGS.TS. Phan Huy Khánh, chúng tôi đã chọn đề tài này để làm đề
tài tiểu luận cho môn học.
Tiểu luận đề cập đến các vấn đề lý thuyết về cách giải quyết mô hình biến
thể của mô hình máy Turing tiêu chuẩn hóa đã xét trước đây cũng chỉ là
những mô hình tương đương với chúng. Nhờ khái niệm về phép mô phỏng
(simulate), trước hết ta ần chỉ ra rằng các máy turing nhiều băng và các máy
turing không đơn định có thể được mô phỏng bởi các máy turing tiêu chuẩn
hóa. Sau đó, ta sẽ xem xét vấn đề về bản số giới hạn (số lượng ký tự) của một
bảng chữ.
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh

2
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
Xin chân thành cảm ơn thầy giáo PGS.TS. Phan Huy Khánh đã tận tình
giảng dạy và hướng dẫn để chúng tôi hoàn thành tiểu luận này. Chúng tôi
cũng xin chân thành cảm ơn các học viên trong lớp đã động viên và chia sẻ
kinh nghiệm trong học tập nghiên cứu và giúp đỡ chúng tôi trong quá trình
làm tiểu luận.
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
3
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
PHẦN I: LÝ THUYẾT
I.1. YÊU CẦU
Yêu cầu: Dịch phần sau: Chapter 11. Others Grammar. Section
11.2.Unrestricted Grammars and Turing Machines [1] p315-319.
I.2. BÀI DỊCH
11.2 VĂN PHẠM KHÔNG GIỚI HẠN VÀ MÁY TURING
Như chúng ta đã biết trong phần 11.1. ngữ pháp không giới hạn thì
nhiều cái chung hơn CFGs, trong phần này chúng ta cho thấy rằng những
ngôn ngữ tương ứng đó chính xác là cái mà có thể được chấp nhận bởi máy
turing. Một trong những hướng chủ yếu là vấn đề của việc có một TM mô
phỏng một xuất xứ ngữ pháp và rất đơn giản. Ở một hướng khác, chúng tôi
tận dụng lợi thế của một số tính năng của văn phạm tiếng không hạn chế mà
chúng tôi đã quan sát để xây dựng văn phạm tiếng mà có thể tính toán thực sự
TM.
Định lý 11.1:
Nếu G=(V, ,S,P) là bất kì ngữ pháp không giới hạn, thì có một máy turing
T=(Q,
, ,
q
0

, ) với L(T)= L(G).
Chứng minh: chúng tôi chứng minh định lý bằng cách xây dựng một máy
turing giả định chấp nhận L(G). Đây là máy phức hợp
T= MovePastInput  giả sử  Bằng
nơi mà các thành phần đầu tiên di chuyển đầu băng cho vuông trống sau
chuỗi nhập liệu, thứ hai mô phỏng một xuất phát trong G bắt đầu vào vị trí
này và lá chuỗi kết quả trên băng, và thứ ba so sánh kết quả này với đầu vào
ban đầu, ngăn chặn nếu và chỉ trong hai dây đồng ý. Nếu chuỗi đầu vào x
thuộc L(G), giả sử mô phỏng có thể chọn chuỗi tuần tự mà xuất phát từ x, và
kết quả là T sự dừng đó; cách khác, Mô phỏng hay phát sinh một chuỗi khác
từ x hay những sự thất bại để hoàn thành một xuất xứ chút nào, và T sẽ không
dừng. Bảng chữ cái của băng mô phỏng bao gồm tất cả những biểu tượng
trong V U và có thể là người khác, máy bắt đầu bằng cách di chuyển những
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
4
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
hình vuông bên phải nếu nơi nó bắt đầu và viết các ký hiệu bắt đầu S. Bắt đầu
vào thời điểm này, nó vào một vòng lặp, mà nó có thể chấm dứt sau khi bất
kỳ số lượng lặp. Tại lúc bắt đầu của mỗi vòng lặp. Phần mô phỏng của băng
mà sử dụng trông giống như ∆γ, nơi γ là chuỗi hiện trong điểm đầu mô
phỏng. Các vòng lặp tiếp theo tương ứng với một sản phẩm cụ thể α

β của
G, chọn giả định. Các bước trong vòng lặp như sau: Thử tìm một sự xuất hiện
của một chuỗi nếu có hàng, thay thế nó bằng β, sau đó trở về đầu băng cho bắt
đầu của chuỗi kết quả. Khi mô phỏng lựa chọn để thoát khỏi vòng lặp, nó sẽ
trả về đầu băng để vuông 0 và tạm dừng. Giả sử được hiện diện trong ba vị trí
trong vòng Mô phỏng: khi lựa chọn một sản phẩm để sử dụng trong lặp kế
tiếp của vòng lặp, khi chọn một xuất hiện của biểu tượng đầu tiên của α (có
thể hoặc có thể không thực sự được sự khởi đầu của sự xuất hiện của α), và

khi quyết định để thoát khỏi vòng lặp. Những sự lựa chọn sai tại bất kỳ ba
điểm này nào có thể dẫn dắt tới một sự cố, hoặc tới một chuỗi bỏ đi trên băng
mà vẫn còn chứa đựng những biến, hay tới một chuỗi thuộc L(G) Mà không
phù hợp với chuỗi nguyên bản được nhập vào tới T. Nó cần phải là sự xóa,
tuy nhiên, mà bất kỳ cái nào X ε L(G), ít nhất một sự lựa chọn những nguyên
nhân những chuyển động mô phỏng bỏ đi X. Trên băng, và không có chuỗi
khác nào đó của những thiết bị đầu cuối có thể là kết quả cuối cùng về mô
phỏng.
Ví dụ 11.3 Xem xét các văn phạm không hạn chế với các sản phẩm
S  aBS | A
aB  Ba
Ba  aB
B  b
mà tạo ra ngôn ngữ của chuỗi trong (a, b)* với số lượng bằng nhau của a’s và
b’s. Hình 11-1 cho thấy TM Mô phỏng thảo luận trong các giấy tờ chứng
minh Định lý 11.1. Lưu ý rằng trong ví dụ này, chỉ việc sản xuất, trong đó bên
trái và bên phải là chiều dài bất bình đẳng là S-sản xuất, và S chỉ xuất hiện
cuối bên phải của chuỗi. Trong ví dụ tổng quát, áp dụng sản xuất một như S
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
5
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
-> aBS có thể mua được thực hiện bằng cách sử dụng chèn TM (xem Ví dụ
9.4) hai lần, và một trong những ví dụ như S  A đòi hỏi một xóa.
Bạn nên dấu vết di chuyển của mô phỏng như nó mô phỏng các nguồn gốc
của một chuỗi trong ngôn ngữ, nói abba.
Đinh lý 11.2. Nếu L C ∑* là bất kỳ ngôn ngữ một cách đệ quy đếm được
nào, rồi ở đó là một sự sinh ra G ngữ pháp không giới hạn L.

Hình 11-1 : Mô phỏng máy Turing cho ví dụ 11.3
Chứng minh: Cho là một TM chấp nhận L. Ngữ pháp G cái mà chúng ta sẽ

xây dựng được ba loại sản phẩm :
1. Sản phẩm mà có thể tạo ra 2 bản sao của một chuỗi tùy ý thuộc ∑*.
Cộng thêm một vài kí tự giữ nhiệm vụ như là vật ghi để giữ 2 bản sao tách
biệt.
2.
Những sản phẩm mà có thể mô phỏng sự di chuyển tuần tự của M. Trong khi
đạo hàm gốc, một trong hai bản sao của chuỗi ban đầu là trái không thay đổi;
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
6
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
khác đại diện cho các băng đầu vào để M và được sửa đổi cho phù hợp. (Vì
sao thứ hai có chứa các ký hiệu băng từ T, tất cả những biểu tượng thuộc bao
gồm như là biến trong ngữ pháp này).
3. Việc sản xuất, có thể xóa tất cả mọi thứ nhưng sao chưa sửa đổi các
chuỗi, miễn là di chuyển mô phỏng M áp dụng cho tạm dừng bản sao khác M
gây ra. Hai chuỗi bản sao từ chuỗi gốc a
1
a
2
… a
k
theo mẫu sau:
(a
1
a
1
)(a
2
a
2

)…(a
k
a
k
)
Những kí tự “(“and”)” được sử dụng như là biến. Các biểu tượng đầu
tiên của mỗi cặp vẫn giữ nguyên, trong khi thứ hai có thể được sửa đổi
trong các mô phỏng.
Khi M bắt đầu, có trống trong vuông 0 của băng. Ngoài ra, M có thể sử
dụng một số phần của cuốn băng trống bên phải của chuỗi nhập liệu.
Điều này có nghĩa rằng chúng tôi thực sự cần bắt đầu với một chuỗi các
biểu mẫu
Nếu M chấp nhận x bằng cách thực hiện một chuỗi các nước đi có sử
dụng hình vuông n trống bên phải của các đầu vào, các nguồn gốc
tương ứng của x trong G bắt đầu bằng cách đặt ít nhất n bản sao của
(∆∆) ở phần cuối của chuỗi.
Nó bây giờ là làm thế nào rõ ràng băng M's được đại diện trong các mô
phỏng. Để đại diện cho cấu hình TM hoàn thành, chúng ta cần chỉ ra đi
của cả hai trạng thái và vị trí của băng đầu. Chúng ta có thể làm cả hai
bằng cách thêm để thiết lập của chúng ta về biến các trạng thái của M,
và cho phép như một biến xuất hiện trong chuỗi ngay trước khi ký
hiệu-cặp ở vị trí hiện tại. Vì vậy, khi mô phỏng được về để bắt đầu,
chuỗi hiện tại là
Nếu tại một vài điểm của quá trình xử lý, M sẽ được thiết lập như sau
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
7
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
Thì chuỗi tương ứng sẽ được xác định như sau:
(Giả định rằng m là lớn hơn k, chiều dài của chuỗi nhập liệu ban đầu.
Trong trường hợp khác, chuỗi hơi khác nhau).

Những sản phẩm tạo ra chuỗi bắt đầu:
Ở đó có một sản phẩm cho mỗi kí tự tương ứng với mỗi bước
di chuyển của TM
Ở đó, chúng ta có những sản phẩm
Với mỗi . Chú ý rằng kí tự ∂ sẽ ko bị thay đổi và trạng thái
của biến di chuyển qua trái của ký tự đôi. Mỗi bước di chuyển:
Chúng ta có tất cả sản phẩm
,
và mỗi bước di chuyển
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
8
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
Chúng ta có sản phẩm:
Ứng với mỗi vị trí kết hợp giữa và nếu trình tự của các chuyển động
của M dẫn đến tình trạng tạm dừng, và chỉ có trường hợp này, nguồn
gốc sản xuất một chuỗi tương ứng với các h biểu tượng trong nó. Các
sản phẩm còn cho phép chúng tôi xóa từ bất kỳ chuỗi chứa h tất cả
những biểu tượng ở vị trí thứ hai của một cặp và tất cả các biến phụ
(tức là ,"(",")", ∆, và các yếu tố của Q U (h)), rời bỏ chỉ những ký hiệu
cuối của chuỗi đầu vào chấp nhận bởi M. Việc sản xuất như sau:
Các sản phẩm trong hai dòng đầu tiên chỉ đơn giản là tuyên truyền các
bản sao của h trong toàn chuỗi, và những người trong cuối hai là cần
thiết xoá.
Nó không phải là khó để thấy rằng ngữ pháp này tạo ra một cách chính
xác các chuỗi được chấp nhận bởi M, mặc dù chúng tôi không cố gắng
một bằng chứng nghiêm ngặt. Trong ví dụ sau đây, một mẫu đơn giản
bao gồm.
Ví dụ 11.4: Ví dụ này đề cập đến ví dụ 9.2 và TM những thể hiện trong
hình, 9-4 mà chấp nhận ngôn ngữ của palidromes trên (a, b). Chúng tôi
sẽ không liệt kê tất cả các sản phẩm về ngữ pháp, có 251 người trong số

họ, và nhiều người là không cần thiết bởi vì chúng liên quan đến sự kết
hợp (∂
1
,∂
2
) mà không bao giờ xảy ra.
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
9
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
Thay vào đó, chúng tôi cho thấy một xuất xứ của chuỗi aab trong ngữ
pháp này. Chuỗi tương ứng TM sự chuyển động được mô phỏng bởi
xuất xứ được hiện ra tới quyền. Bởi vì TM di chuyển cái đầu của nó tới
chỗ trống vuông đối với quyền của chuỗi đầu vào và không có hơn nữa.
Khởi nguồn bắt đầu bằng việc sản xuất một chuỗi với một sự sao chép
của (∆,∆) trên quyền. Tại mỗi bước trong xuất xứ, phần gạch chân cho
thấy cạnh trái của sự sản xuất mà sẽ được sử dụng trong bước tiếp theo
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
10
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
PHẦN II. BÀI TẬP
II.1. YÊU CẦU BÀI TOÁN (Bài tập 21)
Theo phương pháp Toán học xây dựng các hàm đệ quy đã trình bày trong
bài giảng, hãy giải thích và cho ví dụ các hàm đệ quy thực hiện các phép chia
(Division) và tìm giá trị căn bậc hai (Square Root) :
- remaind(numerator, denominator) = rem(denominator, numerator)
- rem(x, 0) = 0
- rem(x, y+1) = s(rem(x, y)) * test(equal(x, s(rem(x, y))))
- div(numerator, denominator) = dv(denominator, numerator)
- dv(x, 0) = 0
- dv(x, y+1) = dv(x, y) + test(remaind(y+1, x))

- sqrt(0) = 0
- sqrt(x+1) = sqrt(x) + equal(x+1, (s(sqrt(x))*s(sqrt(x))))
II.2. MỘT SỐ HÀM DÙNG CHUNG
Hàm test: test(0)=1
test(x+1)=0
Hàm s(x)=x+1
Hàm equal: equals(m,n)= 1 nếu m=n
= 0 nếu ngược lại
Hàm remaind
remaind (numerator, denominator) = rem(denominator, numerator)
- rem(x, 0) = 0
- rem(x, y+1) = s(rem(x, y)) * test(equal(x, s(rem(x, y))))
Ý nghĩa
- Hàm rem(x,y) trả về phần dư của phép chia (x>0, y>=0)
- Hàm rem trả về 0 nếu tử số bằng 0
- Trả về s(rem(x, y)) * test(equal(x, s(rem(x, y)))) nếu ngược lại
II.2.1. Hàm Division
- div(numerator, denominator) = dv(denominator, numerator)
- dv(x, 0) = 0
- dv(x, y+1) = dv(x, y) + test(remaind(y+1, x))
Ý nghĩa: - Hàm dv trả về phép chia nguyên của y cho x (x>0, y>=0)
- Hàm trả về 0 khi y=0
- Trả về kết quả dv(x, y) + test(remaind(y+1, x)) nếu ngược lại
Ví dụ
Tính Div(5,3) ?
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh
11
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
Ta có : div(x,y) =dv(y,x)
remaind(x,y) = rem(y,x)

 Div(5,3) = dv(3,5)
Dv(3,5) = dv(3,4)+test(rem (3,5))
=(dv(3,3)+test(rem (3,4)) ) + test(rem (3,5))
=((dv(3,2) + test(rem (3,3)))+test(rem (3,4)) ) +test(rem (3,5))
=(((dv(3,1) + test(rem (3,2))) + test(rem (3,3)))+test(rem (3,4)) ) +test(rem (3,5))
=((((dv(3,0) + test(rem(3,1)) + test(rem (3,2))) + test(rem (3,3)))+test(rem (3,4)))
+test(rem (3,5)).
Ta có dv(3,0) = 0;
Dv(3,5)= test(rem(3,1)) + test(rem(3,2)) + test(rem(3,3))+test(rem(3,4)) +
test(rem(3,5))
Ta có:
rem(3,1)= s(rem(3,0)) * test(equal(3, s(rem(3,0))))
=s(0) * test(equal(3,s(0)))
=1*test(equal(3,1))=1*test(0) = 1*1=1
rem(3,2)= s(rem(3,1)) * test(equal(3, s(rem(3,1))))
=s(1) * test(equal(3,s(1)))
=2*test(equal(3,2))=1*test(0) = 2*1=2
rem(3,3)= s(rem(3,2)) * test(equal(3, s(rem(3,2))))
=s(2) * test(equal(3,s(2)))
=3*test(equal(3,3))=3*test(1) = 3*0=0
rem(3,4)= s(rem(3,3)) * test(equal(3, s(rem(3,3))))
=s(0) * test(equal(3,s(0)))
=1*test(equal(3,1))=1*test(0) = 1*1=1
rem(3,5)= s(rem(3,4)) * test(equal(3, s(rem(3,4))))
=s(1) * test(equal(3,s(1)))
=2*test(equal(3,2))=1*test(0) = 2*1=2
Có :
Dv(3,5)= test(rem(3,1)) + test(rem(3,2)) + test(rem(3,3))+test(rem(3,4)) +
test(rem(3,5))
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh

12
Tiểu luận Lý Thuyết Tính Toán GVHD:PGS.TS. Phan Huy Khánh
=test(1) + test(2) + test(0) + test(1) + test(2)
=0 + 0 + 1 + 0 + 0 =1
 Div(5,3) = dv(3,5) =1
Vậy Div(5,3) =1.
II.2.2. Hàm Square Root
Hàm trả về kết quả căn bậc hai của một số x bất kỳ(x >=0)
Diễn giải:
- Hàm trả về giá trị 0 nếu x <=0
- Trả về kết quả sqrt(x) + equal(x+1, (s(sqrt(x))*s(sqrt(x)))) nếu ngược lại
Ví dụ:
Tính căn bậc hai của 4 ?
sqrt(4) = sqrt(3) + equal(4, (s(sqrt(3))*s(sqrt(3))))
sqrt(3) = sqrt(2) + equal(3, (s(sqrt(2))*s(sqrt(2))))
sqrt(2) = sqrt(1) + equal(2, (s(sqrt(1))*s(sqrt(1))))
sqrt(1) = sqrt(0) + equal(1, (s(sqrt(0))*s(sqrt(0))))
có sqrt(0) = 0
 sqrt(1) = 0 + equal(1, (s(0)*s(0)))=0 + equal(1,1) =1
 sqrt(2) = sqrt(1) + equal(2, (s(sqrt(1))*s(sqrt(1))))
= 1 + equal(2,(s(1)*s(1))) =1 + equal(2,2*2)
= 1 + equal(2,4) = 1
 sqrt(3) = sqrt(2) + equal(3, (s(sqrt(2))*s(sqrt(2))))
= 1 + equal(3,(s(1)*s(1))) =1 + equal(3,2*2)
= 1 + equal(3,4) = 1
 sqrt(4) = sqrt(3) + equal(4, (s(sqrt(2))*s(sqrt(2))))
= 1 + equal(4,(s(1)*s(1))) =1 + equal(4,2*2)
= 1 + equal(4,4) = 1 + 1 =2
Vậy sqrt(4) =2.
SVTH:Phùng Hữu Đoàn - Huỳnh Công Trường - Nguyễn Hải Minh

13

×