1. Trang chủ
  2. » Khoa Học Tự Nhiên

lý thuyết tính toán

54 117 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CÁC MÁY MACHINES.... Các hàm h ng constant functions.... Các hàm chi u projection functions .... Các hàm đ quy nguyên th y primitive recursive functions...62 II.1.1... CÁC BÀI TOÁN KHÔNG

Trang 1

I H C À N NG

KHOA CÔNG NGH THÔNG TIN

LÝ THUY T TÍNH TOÁN

PGS.TS PHAN HUY KHÁNH

À N NG 1999

Trang 2

biên so n 1

M C L C

CH NG 1 NH P MÔN LÝ THUY T TÍNH TOÁN 1

I CÁC I T NG C X LÝ TRONG TIN H C 1

II CÁC MÁY (MACHINES) 2

II.1 Khía c nh ch c n ng (functional look) 2

II.2 Khía c nh c u trúc (structural look) 3

III MÔ HÌNH TÍNH TOÁN 4

IV NH NGH A BÀI TOÁN 5

CH NG 2 MÔ HÌNH CÁC MÁY RAM 9

I CÁC MÁY RAM 9

II MÔPH NG M TMÁYB IM TMÁYKHÁC 16

III M TMÔHÌNHTHÔS KI U RAM 19

III.1 Mô ph ng các phép toán trên chu i ký t b i các phép toán trên các s nguyên 19

III.2 Thu g n t p h p các l nh ng t 20

III.3 Thu g n t p h p các l nh s h c 20

IV MÁY RAM V N N NG 22

CH NG 3 MÔ HÌNH CÁC MÁY TURING 25

I MÔ T VÀ HO T NG C A MÁY TURING 25

I.1 Mô t máy Turing 25

I.2 Ho t đ ng c a máy Turing 26

I.3 C u hình xu t phát c a máy Turing 29

I.4 Máy Turing đ n đ nh 29

II CAC HAM T−TINH D C 30

III L P CÁC HÀM T−TÍNH C 32

III.1 M t s hàm s c p 32

III.1.1 Các hàm h ng (constant functions) 32

III.1.2 Các hàm chi u (projection functions) 33

III.2 Các hàm k ti p (successor functions) 33

III.3 Các hàm k tr c (predecessor functions) 34

III.4 S h p thành (composition) 34

III.3.1 Các máy đ c tiêu chu n hóa 35

III.3.2 Các máy Turing đ c chu n hóa 36

III.3.3 T h p các máy Turing 36

III.5 L p trình trên ngôn ng b c cao máy Turing 37

III.4.1 C u trúc if then else và c u trúc r nhi u nhánh 37

III.4.2 C u trúc while 38

III.6 Qu n lý b nh 39

III.5.1 Máy Turing chuy n m t ô qua ph i 39

III.5.2 Máy Turing ch s d ng ph n b ng bên ph i k t v trí đ u tiên c a đ u đ c-ghi 39

2 Lý thuy t tính toán III.7 M t s máy Turing thông d ng 40

III.6.1 Sao chép 40

III.6.2 Ki m tra b ng nhau 41

III.6.3 Li t kê các câu, các c p câu và dãy các câu 41

III.6.4 Các hàm chi u ng c (antiprojection function) 42

III.6.5 Các hàm giao hoán 42

III.7 Các hàm T-tính đ c ph c t p h n 42

III.8 Nh n xét 43

IV CÁC BI N TH KHÁC C A MÔ HÌNH MÁY TURING 46

IV.1 Mô ph ng m t máy Turing b i m t máy khác 46

IV.2 Các bi n th c a máy Turing 48

IV.2.1 Máy Turing có k b ng 48

IV.2.2 Các máy off−line và các máy có b ng ra 49

IV.2.3 Các máy Turing không đ n đ nh 49

IV.2.4 Thu g n m t b ng ch còn ba ký t 50

IV.2.5 Rút g n m t b ng ch còn hai ký t 52

IV.3 Các máy Turing có b ng vô h n m t phía 52

V MÁY TURING V N N NG 53

VI T N T I CAC HAM KHONG LA T−TINH D C 55

CH NG 4 LU N CHURCH 59

I S T NG NG GI A CÁC MÔ HÌNH MÁY TURING VÀ MÁY RAM 59

I.1 M i hàm T-tính đ c c ng là Rtính đ c 59

I.2 M i hàm Rtính đ c c ng là Ttính đ c 60

I.2.1 T ng n i dung thanh ghi n lên 1 60

I.2.2 Gi m 1 n i dung thanh ghi n 60

I.2.3 a n i dung thanh ghi n v 0 60

I.2.4 Nh y theo n i dung thanh ghi n 61

I.2.5 Hoán v n i dung hai thanh ghi n và m 61

I.3 S khác nhau gi a máy Turing và máy RAM 61

II MÔ HÌNH CÁC HÀM QUY 62

II.1 Các hàm đ quy nguyên th y (primitive recursive functions) 62

II.1.1 Xây d ng các hàm s c p 62

II.1.2 S đ h p thành t ng quát 62

II.1.3 S đ đ quy đ n (simple recurrence) 63

II.1.4 S đ đ quy đ ng th i 63

II.1.5 Các hàm đ c đ nh ngh a b i case 65

II.2 Các hàm đ quy 67

II.2.1 S đ t i thi u 67

II.2.2 Các hàm đ quy tr u t ng (abstract recursive functions) 68

II.2.3 M t s ví d 68

II.3 Các hàm đ quy đ u Ttính đ c 70

II.3.1 S đ h p thành t ng quát 70

II.3.2 S đ đ quy đ n 70

II.3.3 S đ t i thi u 71

II.4 M i hàm Ttính đ c là đ quy b ph n 71

III LU N CHURCH 73

Trang 3

Nh p môn lý thuy t tính toán 3

CH NG 5 CÁC BÀI TOÁN KHÔNG QUY T NH C 77

I CÁC NGÔN NG LI T KÊ QUY VÀ CÁC NGÔN NG QUY 77

II CÁC BÀI TOÁN KHÔNG QUY T NH C 82

III THU T TOÁN RÚT G N M T BÀI TOÁN V BÀI TOÁN KHÁC 83

CH NG 6 PH C T P TÍNH TOÁN 93

I PH C T P V TH I GIAN VÀ V B NH 93

II CÁC L P C A PH C T P 95

II.1 Hi n t ng nén 96

II.2 Các h P, NP và Pb nh (Pspace) 97

III RUT G N DA TH C VA CAC BAI TOAN NP−D Y D 98

III.1 Khái ni m 98

III.2 Các bài toán c đi n 99

III.3 Ví d v rút g n ki u đa th c 100

Trang 4

biên so n 1

Nh p môn lý thuy t tính toán

(Introduction to the theory of computation)

It’s not bad being the small fish

Trong Tin h c, các đ i t ng (objects) đ c x lý thông th ng là nh ng

ph n t thu c vào nh ng t p h p vô h n đ m đ c Nh ng ph n t này luôn luôn

đ c bi u di n (represented) d i m t d ng nào đó

Ch ng h n trong ngôn ng t nhiên, s nguyên 1999 đ c bi u di n trong h

đ m c s 10 (h th p phân) g m m t dãy b n ch s th p phân thu c b ng ch

s {0, 1, , 9} Vi c x lý (th c hi n các phép toán s h c thông th ng) đ i v i

các s nguyên đ c ti n hành trên cách bi u di n c s 10 này

Ví d : Phép c ng hai s 1999 + 1 = 2000

Ng i ta gi thi t r ng các đ i t ng đ c x lý là nh ng câu (word, hay

sentence) đ c xây d ng trên m t b ng ch (alphabet) h u h n, đ c xem nh là

dài (length) c a m t câu (trên b ng ch S đã cho) là s l ng các ký t có

m t trong câu Câu r ng (empty word), đ c ký hi u là e (ω ho c e, ho c l), là

câu có đ dài không, t c không ch a ký t nào

Ghép (concatenation) c a hai câu là đ t k ti p hai câu đã cho (trên cùng

dòng) đ nh n đ c m t câu m i B ng cách ghép liên t c nh v y cho m i ký

t , m i câu c a S, ta nh n đ c m t t p h p ch a m i câu có th trên S, ký hi u

S* Ng i ta nói S*là m t c u trúc đ ng đ ng (nonoide), mà ph n t trung hòa

(neutral element) chính là câu r ng

Cho tr c m t b ng ch S, ng i ta đ nh ngh a m t quan h có th t toàn

ph n (total order) trên S* nh sau : cho m t th t tùy ý trên các ký t c a S,

ng i ta s p x p các câu theo m t th t phân c p (hierechical order), đ u tiên là

theo đ dài câu, sau đó theo th t t v ng (lexicography), hay th t ABC

Ví d :

Cho S = {a, b, c}, v i gi thi t th t phân c p c a các ký t là a < b < c, ta

có th đánh s các câu c a S* (k c câu r ng e) b t đ u t 1 tr đi nh sau :

Hình 1.1 Th t phân c p trong S*

II Các máy (machines)

II.1 Khía c nh ch c n ng (functional look)

M t máy (machine) đ c bi u di n m t cách h th ng nh sau :

Hình 1.2 Khía c nh ch c n ng c a m t máy

l i vào, ng i ta cung c p m t ho c nhi u d li u (data) cho máy, thì l i ra,

ng i ta nh n đ c k t qu (result)

Gi thi t r ng các d li u vào có d ng là dãy các ký t , là m t câu trên m t

b ng ch nào đó đã cho (vào t bàn phím ch ng h n) K t qu là m t ph n t c a

m t t p h p xác đ nh tr c (predefini) Ng i ta phân bi t các ki u máy (machine type) tùy theo b n ch t c a t p h p k t qu này nh sau :

1 N u t p h p ch có hai ph n t { không, có } hay {0, 1}, máy s chia d

li u vào thành ba ph n tùy theo k t qu :

T p h p các câu trên b ng ch vào sau khi đ c x lý s cho ra m t k t

qu là có (đúng, true), ho c không (sai, false)

Trang 5

Nh p môn lý thuy t tính toán 3

Các t p h p này t o thành các ngôn ng (language) Hai t p h p đ u là bù

nhau n u v i m i d li u vào, máy đ u cho m t k t qu Ng i ta g i đó là

máy đoán nh n (recognition machine) câu

2 N u k t qu là m t dãy h u h n các ký t , ta nh n đ c m t câu trên m t

b ng ch G nào đó

Cho S là b ng ch vào, máy xác đ nh m t hàm f t S* vào G*, ta vi t :

f : S* → G*

ngh a là v i m t câu vào w ∈ S*, f(w) ∈ G* Ng i ta nói máy th c hi n

hàm f N u v i m i câu vào w ∈ S*, máy đ u cho m t k t qu f(w) ∈ G*,

thì f đ c g i là hàm toàn ph n (partial function) Ng i ta g i đó là máy

tính toán (computation machine) hay máy tính

Chú ý r ng ki u máy th nh t (máy đoán nh n) mà chúng ta v a phân bi t

th c ra ch là m t tr ng h p đ c bi t c a ki u máy th hai (máy tính)

3 N u k t qu là m t dãy vô h n các ký t và b ng ch đang s d ng ch có

t i thi u hai ký t , trong đó có m t d u phân cách (separator) #, thì ng i ta

nh n đ c k t qu là m t dãy liên ti p các câu phân cách nhau b i d u #,

t o thành m t ngôn ng Ng i ta g i ngôn ng này là li t kê đ c

(enumerated) b i máy

II.2 Khía c nh c u trúc (structural look)

đây, ta ch quan tâm đ n các máy đ c mô t đ y đ v ch c n ng ho t

đ ng c a chúng Nh ng máy này có thê :

Th c hi n các phép toán s c p (elementary operation) trong m t kho ng

th i gian h u h n M i phép toán, gi thi t không chia c t nh h n đ c,

đ c ch n trong m t t p h p h u h n các phép toán là m t ph n mô t c u

trúc máy

L n l t th c hi n các phép toán s c p theo m t th t xác đ nh tr c, t o

thành m t ch ng trình (program), là m t ph n mô t c u trúc máy

M t dãy các phép toán s c p đ c máy th c hi n liên ti p đ c g i là m t

tính toán (computation) c a máy

III Mô hình tính toán

Thay vì ph i thay đ i l i máy tính m i l n thay đ i bài toán c n gi i, ng i ta

đ nh ngh a các l p máy có cùng nguyên lý ho t đ ng và chúng ch khác nhau

ch ng trình

Ng i ta g i mô hình tính toán (model), ký hi u T, là s mô t t t c các phép toán s c p có th đ c th c hi n trên nh ng đ i t ng nào, cách tác đ ng lên

m i m t trong chúng nh th nào, và mô t cách th c ch ng trình đ c th c

hi n (execution) trên máy

M t tr ng h p riêng (instance) c a mô hình là m t máy bi t l p nào đó, g i

t t là máy, ho t đ ng theo cách mô hình tính toán đã ch ra Máy này đ c đ nh ngh a b i d li u vào c a ch ng trình :

− l p các ngôn ng li t kê đ c (enumerable) đ c g i là T −li t kê đ c,

b i m t máy nào đó c a mô hình này ? Hai mô hình tính toán đ c đ a ra so sánh v i nhau : m t mô hình T1 đ c

nói là m nh h n so v i m t mô hình T2 n u :

− m i ngôn ng T2−nh n bi t đ c c ng là T1−nh n bi t đ c, ho c

− m i hàm T2-tính đ c c ng là T1−tính đ c, ho c

− m i ngôn ng T2-li t kê đ c c ng là T1-li t kê đ c

Hai mô hình đ c g i là t ng đ ng (equivalent) n u m i mô hình m nh

h n mô hình kia và ng c l i

Hai mô hình là không th so sánh v i nhau đ c n u không t n t i mô hình

nào ít ra đ m nh h n mô hình kia

Trang 6

Nh p môn lý thuy t tính toán 5

Trong Tin h c lý thuy t, đ nh ngh a v bài toán (problem) có vai trò đ c bi t

quan tr ng, khác v i khái ni m thông th ng v bài toán đ c dùng trong l nh

v c Toán h c ho c hi u theo ngh a thông d ng

nh ngh a 1.2 :

M t bài toán là :

− S mô t cách bi u di n (h u h n) các ph n t c a m t t p h p h u h n

hay vô h n đ m đ c

− M t phát bi u liên quan đ n các ph n t c a t p h p này, có th là đúng,

ho c có th là sai tùy theo ph n t đ c ch n

Câu h i : Có t n t i m t đ ng đi Hamilton (đi qua h t t t c các đ nh c a

đ th , m i đ nh đi qua đúng m t l n) trong đ th đã cho không ?

Bài toán 5 :

D li u : M t bi u th c chính quy (regular expression) đ c xây d ng trên

m t b ng ch S (là m t bi u th c nh n đ c t các câu w∈S* b i

các phép ho c, phép ghép ti p, phép * và l y bù)

Câu h i : Có ph i bi u th c đã cho bi u di n (hay ch đ nh) m t ngôn ng

tr ng (empty language) hay không ?

c a bài toán, đ c bi u di n b i m t câu trên m t b ng ch h u h n đã cho

V i m i bài toán P đ c h p thành t m t bi u di n các ph n t c a m t t p

h p và t m t phát bi u liên quan đ n các ph n t này, ng i ta th ng k t h p

bài toán P v i m t ngôn ng , g i là ngôn ng đ c tr ng (characteristic language)

c a bài toán, đ c h p thành t t p h p các câu bi u di n m t ph n t c a t p

h p đ t đó, k t qu c a bài toán là câu tr l i đúng Ng i ta ký hi u LP là ngôn ng đ c tr ng c a bài toán P

Cho tr c m t bài toán P, bài toán ng c l i CP là bài toán nh n đ c t P

b ng cách gi nguyên cách bi u di n các d li u nh ng riêng câu h i thì đ t

ng c l i Ví d , bài toán ng c v i bài toán 1 s là :

Bài toán 1’ :

D li u : Cho m t s nguyên vi t trong h 10

Câu h i : S nguyên này không ph i là m t s nguyên t ?

T đó, l i gi i m t bài toán đ a đ n s nh n bi t c a m t ngôn ng : ngôn

ng k t h p v i bài toán này Ng i ta đ a ra đ nh ngh a hình th c sau đây :

nh ngh a 1.2 :

M t máy gi i (solve) m t bài toán P n u và ch n u v i m i câu f bi u di n

m t ph n t c a t p h p liên quan đ n bài toán này, máy cho phép xác đ nh,

trong m t kho ng th i gian h u h n, n u câu này thu c v LP hay LCP

Ng i ta phân l p các bài toán tùy theo đ khó (difficulty) đ đ a ra câu tr

l i t d li u vào đã cho

M t bài toán là t m th ng (trivial) n u LP = ∅ ho c n u LCP= ∅

Th t v y, trong tr ng h p này, không c n thi t bi t d li u đ a vào đ đ a ra câu tr l i Chú ý r ng, nh ng gì là t m th ng, đó là vi c đ a ra câu tr l i,

nh ng có th r t khó đ ch ng minh r ng bài toán là t m th ng theo ngh a này

Ví d , bài toán 2 là t m th ng

Các bài toán 1 và 3 có cùng câu h i, nh ng bài toán 3 gi i quy t r t d dàng :

ch c n đ c qua d li u vào, ng i ta có th đ a ra k t qu , tuy nhiên trong bài toán 1 thì c n ph i x lý d li u vào Bài toán 4 ph c t p h n : ng i ta ch a bi t

ph ng pháp nào ho t đ ng m t cách đ n đ nh (deterministic) tiêu t n m t l ng

th i gian đa th c (polynomial times) đ gi i quy t v n đ đ t ra

Trang 7

Nh p môn lý thuy t tính toán 7

Bài t p

1) Ch ng minh r ng m t t p h p E là h u h n hay vô h n đ m đ c n u t n t i

m t đ n ánh t E vào N T ng t , n u t n t i m t toàn ánh (surjection) t Ν

vào E

2) Ch ng minh r ng tích ê-cac c a hai t p h p vô h n đ m đ c c ng là m t

t p h p vô h n đ m đ c

3) Ch ng minh các t p h p sau đây là vô h n đ m đ c : N×N, Q, t p h p Ν*

g m các dãy s nguyên, S*, S*×G*, S*×N, t p h p (S*)* g m các dãy các

câu Th hi n các song ánh (bijection) gi a N và m i m t t p h p v a nêu

4) Cho S là m t b ng ch kích th c (b n s ) n V i m i câu w∈S*, ký hi u |w|

là đ dài c a w và m(w) là s th t c a w trong th t phân c p đã cho Hãy

tìm cách tính m(w) khi bi t w

5) Ch ng minh r ng N N không ph i là vô h n đ m đ c T p h p các ch ng

trình Pascal có ph i là vô h n đ m đ c hay không ? T p h p các hàm f: N →

N tính đ c nh m t ch ng trình Psacal có là vô h n đ m đ c hay không ?

T đó suy ra r ng t n t i các hàm t N vào N không là vô h n đ m đ c nh

Trang 8

biên so n 9

Mô hình các máy RAM

« I like the dreams of the future better than

the history of the past »

Jefferson

I Các máy RAM

Máy RAM là m t mô hình tính toán r t g n v i máy tính đi n t và ngôn ng

assembler Máy RAM có các thành ph n đ c tr ng chung nh sau :

M t b ng vào, hay d i vào (input tape) đ c chia thành nhi u ô (square hay

pigeonhole) liên ti p nhau, m i ô ch a m t s nguyên ho c m t ký t M t

đ u đ c (read head) đ c l n l t n i dung t ng ô trên b ng vào, đ c t trái

qua ph i

M t b ng ra (output tape) c ng chia ra thành nhi u ô liên ti p nhau và m t

đ u ghi (write head) có th ghi m i l n lên m t ô và ti n t trái qua ph i

Ng i ta nói r ng đ u đ c (ho c ghi) đ c đ t trên (t i) m t ô và di chuy n

qua ph i m i l n m t ô Tr c tiên, ta xem r ng m i ô ch a m t s nguyên có th

l n tu ý B ng vào và b ng ra c a máy RAM đ c g i là các c quan vào/ra

Máy RAM còn có các thành ph n bên trong nh sau :

Các thanh ghi (registers) là các ph n t nh đ c đánh s th t , s l ng

các thanh ghi có th l n tu ý M i thanh ghi có th l u gi m t s nguyên

Các thanh ghi l n l t đ c đ t tên là R0, R1, R2, , Rn

Ch s i, i = 0, 1, 2, , đ c g i là đ a ch (address) c a m i thanh ghi (hay

c a b nh ) Riêng R0 là m t thanh ghi đ c bi t, đ c g i là thanh t ng (ACC −

accumulator) hay thanh tích lu

M t t p h p các đ n v nh đ c đánh s ch a ch ng trình c a máy RAM

d i d ng m t dãy các l nh s c p (primary instructions) không b thay đ i

trong quá trình ch y (th c hi n) M i l nh đ c l u tr trong m t đ n v

nh , đ c đánh s t ng ng v i s th t hay nhãn c a l nh (label)

M t đ n v nh ch a s th t c a l nh đang đ c th c hi n, đ c g i là

thanh đ m l nh (OC − Ordinal Counter) Lúc đ u n i dung là c a OC là 1

Trong ki u máy này, ng i ta truy c p tr c ti p đ n m i thanh ghi b i đ a ch

c a thanh ghi đó Chính lý do này mà ki u máy này đ c đ t tên là Random

Access Memory (vi t t t RAM)

Nhóm l nh s h c :

INCR Operand DECR Operand

AD Operand SUB Operand MULT Operand DIV Operand

Nhóm l nh nh y (hay l nh ng t, c ng còn g i là l nh chuy n đi u khi n) :

JUMP Label JGTZ Label JZERO Label HALT

Nhóm l nh vào − ra :

READ Operand WRITE Operand

đ m l nh

y1 y2 y3 B ng ra

Ch ng trình

x1 x2 xn B ng vào

Trang 9

Mô hình các máy RAM 11

Theo nguyên t c đ a ch , ph n toán h ng là đ a ch (address) c a toán h ng

tham gia phép toán ch đ nh b i ph n mã l nh Toán h ng có th là m t trong ba

ki u sau :

Ki u đ a ch Ý ngh a

S nguyên n Ch n i dung c a thanh ghi th n (Rn)

A: n (A = Absolute) toán h ng chính là s nguyên n đó

I: n (I = Indirection) toán h ng là n i dung c a thanh ghi có s th

t là n i dung c a thanh ghi Rn ây là ki u l nh gián ti p

N u l nh là m t l nh nh y thì đ a ch chính là s th t c a l nh trong ch ng

trình Các l nh trên đây c a máy RAM đi n hình cho các l nh c a ngôn ng

assembler Tuy nhiên đây v ng m t các l nh x lý ký t và các l nh logic nh m

đ n gi n cách trình bày

Th t th c hi n các l nh c a ch ng trình là tu n t (on sequence), b t đ u

t l nh đ u tiên (có nhãn 1) Ngo i l duy nh t là khi g p l nh nh y (hay chuy n

đi u khi n) thì l nh ti p theo đ c th c hi n có nhãn ch đ nh b i l nh nh y này

Nguyên t c th c hi n nh sau : OC luôn luôn ch a nhãn c a l nh s đ c

th c hi n, lúc đ u n i dung OC là 1 Sau khi th c hi n l nh, n i dung OC đ c

t đ ng t ng thêm 1 (increment) n u nh l nh v a th c hi n không là l nh nh y

N u nh l nh v a th c hi n là l nh nh y thì n i dung c a OC l y nhãn là ph n

đ a ch c a l nh nh y này

Sau đây s d ng m t s quy c đ gi i thích cách th c hi n l nh

← d u gán ; quy c s nguyên i n m bên trái d u gán ch thanh ghi

th i là Ri, s nguyên i n m bên ph i d u gán ch giá tr chính là s

nguyên i đó

<i> Ch n i dung c a thanh ghi Ri

<<i>> Ch n i dung c a thanh ghi có s th t đ c ch a trong thanh ghi

Ri đ i v i ki u l nh gián ti p

ACC Ch thanh ghi R0

CO Ch thanh đ m l nh

<CO> N i dung c a CO

Sau đây là b ng các l nh RAM và ý ngh a s d ng c a chúng

ADD n ACC ← <ACC> + <n>

SUB n ACC ← <ACC> − <n>

MULT n ACC ← <ACC> × <n>

DIV n ACC ← <ACC> / <n>

đ u ghi d ch qua ph i m t ô

Ví d 2.1 : Ch ng trình RAM sau đây đánh giá tr n!

JZERO 10 n u n = 0, nh y đ n nhãn 10,

n u không, th c hi n l nh ti p theo STORE 1 R1 ← <ACC>

4: STORE 2 R2 ← <ACC>

DECR 1 R1 ← < R1> − 1 LOAD 1 ACC ← <R1>

JZERO 12 n u <ACC> = 0 nh y đ n 12

MULT 2 ACC ← <ACC> * <R2>

10: LOAD A: 1 ACC ← 1 STORE 2 R2 ← <ACC>

12 : WRITE 2 ghi ra <R2>

Trang 10

Mô hình các máy RAM 13

Ta th y m t trình RAM xác đ nh m t ánh x t t p các b ng vào lên t p các

b ng ra ây là ánh x b ph n (partial map) vì m t s ánh x có th không xác

đ nh trên m t s b ng vào, ngh a là ch ng trình ng v i b ng vào đó không

m t ký t k t qu và d ng

Ta nói máy RAM th a nh n m t ngôn ng L đã cho n u th a nh n m i câu

w ∈L N u w∉L thì máy RAM có th không đ c h t w, ghi ký t k t thúc lên

b ng ra, ho c b hóc (crash), ho c không bao gi d ng

S khác nhau c b n gi a mô hình máy RAM v a mô t trên và các máy tinh đi n t hi n nay là ch :

1) Ta đã gi thi t có th s d ng m t s l n tùy ý các thanh ghi, tuy nhiên trong th c t đi u này r t khó th c hi n T ng t , ta đã gi thi t có th đ t

m t s nguyên l n tùy ý vào m t thanh ghi nào đó, ho c vào m t ô nào đó trên b ng vào, ho c trên b ng ra Nh ng đi u này c ng r t khó th c hi n trong th c ti n

2) Ta đã gi thi t r ng ch ng trình có s n trong b nh RAM ch có th đ c (không th b thay đ i khi ch y ch ng trình), khác v i các b nh ki u thanh ghi i u này c ng không x y ra v i các máy tính thông d ng

S khác nhau chi ti t nh sau : 3) Các l nh s c p đ c ch n h n ch h n so v i các ngôn ng assembler Tuy nhiên, ng i ta có th nói r ng v n không làm m t tính t ng quát n u

gi m đáng k t p h p các l nh s c p

4) Các d li u đ a vào không ph i d i d ng các s nguyên đ c đ c toàn b

m t l n trong m t ô, mà d i d ng m t dãy ký t (m t dãy các ch s ),

t ng t nh v y đ i v i các k t qu ra

Ta hãy xem làm cách nào đ gi i quy t v n đ do 4) đ t ra : Trong các máy tính, các s nguyên th ng đ c bi u di n theo hai cách phân bi t là bi u di n

th p phân, ho c bi u di n nh phân Cách bi u di n nh phân có l i th h n vì ch

s d ng hai ch s Máy tính s chuy n đ i chu i ký t bi u di n s nguyên thành bi u di n nh phân đ đ t trong các thanh ghi, sau đó chuy n đ i k t qu đang d ng bi u di n nh phân c a s nguyên thành chu i ký t trên b ng ra

i m 1) trên đây có ngh a : trong m i tr ng h p, kích th c c a bài toán c n

gi i là đ bé đ b nh máy tính có th ch a h t d ng nh phân trong các đ n v

nh , hay t nh (memory word) Chú ý r ng n u ch làm vi c v i cách bi u di n

s nguyên b i chu i các ch s thì không còn gi thi t s l n tùy ý n a

Trang 11

Mô hình các máy RAM 15

Cu i cùng, s khác nhau đi m (2) đ a đ n vi c xây d ng m t mô hình

t ng t mô hình RAM, nh ng ch ng trình đ c đ t trong các thanh ghi (và do

v y có th b thay đ i), đ c g i là mô hình các máy RASP (Random Access

with Stored Program) S khác nhau c b n v i các máy RAM là vùng nh l u

gi ch ng trình c a RASP hoàn toàn không khác gì so v i các vùng nh khác

Máy RASP

thu n ti n cách trình bày, ta quy c r ng m i l nh RASP chi m ch hai

thanh ghi liên ti p nhau : thanh ghi đ u ch a tr ng toán h ng, thanh ghi th hai

ch a tr ng đ a ch c a l nh

Hình 2.2 S đ m t máy RASP

Trong máy RASP, thanh t ng luôn luôn là R0, thanh ghi R1 dùng đ l u gi

trung gian n i dung c a thanh t ng

Các thanh ghi t 2 p (v i p là m t s nguyên l ) ch a ch ng trình c a máy

RASP, và các thanh ghi ti p theo, t p + 1 tr đi, là các thanh ghi còn tr ng

S khác nhau c b n v i mô hình máy RAM là có th thay đ i m t thanh ghi

i

y1 y2 y3 B ng ra

x1 x2 xn B ng vào

II Mô ph ng m t máy b i m t máy khác

T đây tr đi, ng i ta th ng ph i mô ph ng m t máy b i m t máy khác : máy mô ph ng s b t ch c hay nh i l i (mime) m i m t l nh c a máy đ c mô

ph ng, b ng cách th c hi n nhi u l nh (nói chung) đ đi đ n cùng m t k t qu

Khi có m t máy RAM M có ch ng trình P ch y và s d ng đ n thanh ghi 0

và các thanh ghi t 1 đ n p (giá tr c a p thay đ i tùy theo d li u), ng i ta nói

r ng m t máy RAM M’ có ch ng trình P’ mô ph ng ch c n ng c a máy RAM

M n u :

T n t i m t ánh x I t N vào N mà bi n 0 thành 0

M i l nh c a P đ c thay th b i m t l nh c a P’ sao cho, m i l n th c

hi n ch ng trình P (ngh a là v i m i d li u), n i dung m i thanh ghi I (r)

c a M’ sau khi th c hi n dãy các l nh c a P’ là gi ng nh n i dung c a thanh ghi R c a M sau khi th c hi n các l nh t ng ng c a P

Ví d 2.3 : D ch chuy n các đ a ch thanh ghi

Xu t phát t m t máy RAM có ch ng trình P khi ch y s d ng thanh ghi 0

và các thanh ghi t 1 đ n p, ta có th xây d ng m t máy RAM khác có ch ng

đ n, b ng cách thêm giá tr k (nh l nh ADD A:k) vào n i dung c a thanh ghi

liên quan (đ t sau I) đ th c hi n ki u gián ti p

Các máy RASP c ng có th đ c mô ph ng và có th x lý ki u l nh gián

ti p

D ch chuy n các đ a ch thanh ghi c a RASP

Nh ng gì mà m t máy RAM làm đ c thì m t máy RASP c ng có th đ c làm đ c Th t v y, n u ch ng trình c a RASP đ c l u gi trong các thanh ghi t 2 đ n p, ch c n th c hi n m t s bi n đ i c a p lên t t c các s c a thanh ghi s d ng b i máy RAM t ng ng

Tuy nhiên trong mô hình c a RASP, ki u l nh gián ti p đ c x lý nh sau :

Gi s m t ch ng trình P c a máy RASP đ c l u gi t thanh ghi s 2 đ n

p và khi ch y s d ng đ n các thanh ghi t p + 1 đ n q Ta s xây d ng m t

ch ng trình m i mô ph ng P đ c l u gi trong các thanh ghi t 2 đ n p’

Khi ch y, ch ng trình s d ng đ n các thanh ghi t p’ + 1 đ n q + p’ − p,

b ng cách thay th m i l nh ki u gián ti p b i 6 l nh không là ki u gián ti p, sao cho k t qu c a 6 l nh này là t ng t trên m i thanh ghi s p’ + i v i k t qu

c a l nh đ c mô ph ng trên m i thanh ghi s p + i

Trang 12

Mô hình câc mây RAM 17

M t câch c th h n, p’ − p có giâ tr 2 × (6 − 1) × s = 10s v i s lă t ng s

l nh ki u giân ti p c a ch ng trình

Gi s ta c n mô ph ng m t trong câc l nh MULT I: n c a ch ng trình

RASP c n mô ph ng, đ c l u gi trín câc thanh ghi 30 vă 31 c a mây xu t

phât mô ph ng, ta c n t o ra nhóm 6 l nh chi m 12 liín ti p, gi s t thanh

ghi s 50 đ n 61, v i gi thi t ch ng trình có trín hai l nh ki u giân ti p L nh

đ u tiín c a nhóm 6 l nh năy lă l u gi n i dung c a thanh t ng văo thanh ghi

R1 :

50 STORE

L nh th hai n p văo thanh t ng n i dung c a thanh ghi n + p’ − p (t ng ng

v i thanh ghi n trong ch ng trình xu t phât) :

52 LOAD

53 n + p’- p ACC ← <Rn> + (p’ − p)

L nh th ba t ng n i dung c a thanh t ng lín p’ − p đ lúc năy thanh t ng

ch a đ a ch c a thanh ghi ch a giâ tr c n nhđn :

đđy, lúc b t đ u th c hi n ch ng trình, x lă m t giâ tr năo đó, vă m i l n

th c hi n, n u thanh ghi n c a mây xu t phât ch a s nguyín a, thì x s có giâ tr

lă a + p’ - p t i th i đi m th c hi n l nh đ t trong câc thanh ghi 60 vă 61 Nh

v y, khi mô ph ng trình P thănh P’ đ t trong câc thanh ghi RASP, P’ đê b thay

b a b

b a a

nếu

nếu 1

Trang 13

Mô hình các máy RAM 19

III M t mô hình thô s ki u RAM

Trong ph n này, ta s ch ra r ng có th thu g n v m t t p h p l nh s c p r t

nh c bi t, ta s ch ra r ng có th x lý ký t và x lý các s nguyên

Tr c h t, ta quay l i cách bi u di n các s nguyên Trong máy tính, có hai

cách bi u di n : bi u di n nh phân cho phép l u tr m t s nguyên trong m t

thanh ghi làm ti t ki m ch và tính toán nhanh chóng nh ng có nh c đi m là đ

l n c a s nguyên ph thu c vào kích th c th c t c a thanh ghi (h u h n)

Cách bi u di n th hai là s d ng m t dãy ch s trên b ng ch {0 9} Th c

t , ngay c khi ng i ta có th bi u di n trong m t thanh ghi nhi u ký t (th ng

không quá 4), thì đ bi u di n m t s nguyên c ng đòi h i có nhi u thanh ghi

M c dù d i s nguyên có th bi u di n đ c là khá l n, nh ng do s l ng các

thanh ghi trong máy tính hi n nay b h n ch nên cách bi u di n này c ng ch a

ph i t i u

III.1 Mô ph ng các phép toán trên chu i ký t b i các

phép toán trên các s nguyên

M i ký t đ c mã hóa b i m t dãy các ch s nh phân {0, 1} (ch ng h n 8

ch s cho m t ký t ) M t chu i bit nh v y có th dùng đ bi u di n các s

nguyên nh th c hi n các phép toán trên các s nguyên

Ch ng h n, ghép 198 và 7, d n đ n phép nhân s nguyên bi u di n chu i 198

v i 28 r i c ng thêm s nguyên bi u di n chu i 7 vào tích s nh n đ c :

Hình 2.4 Ghép hai s nguyên

Ng c l i, các phép toán s h c có th đ c th c hi n trên bi u di n các s

nguyên b i các chu i ký t , đó là các phép tính s c p

Chú ý r ng khi ng i ta ti n hành các phép toán trên các s nguyên theo cách

bi u di n nh phân, ng i ta đã x lý trên các câu c a b ng ch {0, 1}, và phép

toán đ c th c thi trên các ký t

LOAD 1 <ACC> ← R1sau đó thay th l nh nh y b i :

STORE 1 R1 ← <ACC>

JZERO n’ goto n’, if <ACC> = 0 Trong đó n’ là nhãn c a l nh STORE 1 đ t tr c ngay l nh có nhãn n trong máy xu t phát

Bài t p : M t cách t ng t , xây d ng l i l nh JGTZ (nh y n u k t qu d ng)

III.3 Thu g n t p h p các l nh s h c

Có th chuy n đ i các l nh s h c (c ng, tr , nhân, chia) v hai ki u l nh là INCR (t ng 1) và DECR (gi m 1)

Ch ng h n, l nh nhân MULT n s đ c chuy n đ i b ng cách thêm <n> l n

n i dung c a thanh t ng S d ng các thanh ghi t 1 đ n 3 làm trung gian, ta có

th thay l nh nhân b i các l nh sau :

STORE 1 LOAD n STORE 2

STORE 3

JZERO lab DECR 2 LOAD 1 ADD 1 STORE 3 JUMP return

M t cách t ng t , l nh ADD n t ng thêm 1 (INCR) đúng <n> l n n i dung

c a thanh t ng nh các l nh STORE, LOAD, JGTZ, DECR

Trang 14

Mô hình các máy RAM 21

T đó, ng i ta có th thu h p v m t mô hình tính toán, g i là mô hình RAM

thô s , ch có t p h p các l nh t i thi u sau :

L nh Ý ngh a

I <n> T ng thêm 1 n i dung c a thanh ghi n

D <n> Gi m b t 1 n i dung c a thanh ghi n

Z <n> t n i dung c a thanh ghi n v 0

S <n, m> Hoán đ i n i dung các thanh ghi n và m

J <n> (i, j) N u n i dung c a thanh ghi n là 0, nh y đ n l nh có nhãn i,

n u không nh y đ n l nh có nhãn j HALT D ng máy

V i t p h p các l nh trên, ch ng trình c ng là m t dãy l nh có mang nhãn

N u <n> ch đ nh n i dung c a thanh ghi n, thì <<n>> ch đ nh n i dung c a

N u các thanh ghi 1 và 2 ch a l n l t các s nguyên n và p, thì máy d ng l i

khi hai thanh ghi này ch a l n l t n + p và 0

IV Máy RAM v n n ng

Trong ph n này, chúng ta s ch ra cách xây d ng m t máy ki u RAM có th

mô ph ng b t k máy RASP nào không s d ng ki u gián ti p Nguyên lý mô

ph ng nh sau : lúc đ u, ng i ta đ c ch ng trình c a máy RASP, ch ng trình này đ c l u gi trong các thanh ghi t 4 đ n p c a máy RAM Thanh ghi R1

dùng làm đ a ch gián ti p ; thanh ghi R2 dùng đ mô ph ng thanh đ m l nh c a RASP Thanh ghi R3 dùng đ mô ph ng thanh t ng c a RASP Sau đó, th c hi n

m t vòng l p trên các phép toán đ c mô t d i đây, m i l n l p là m t l n mô

− Phân tích mã phép toán c a l nh này và tùy theo mã đã phân tích mà nh y

đ n dãy l nh t ng ng v i nó Ví d , n u x là mã c a phép chia DIV và y

là nhãn c a dãy phép toán mô ph ng DIV, n u z là mã c a phép nh y

d ng JGTZ và t là nhãn c a dãy phép toán mô ph ng JGTZ :

JZERO y ADD A: x

JZERO t ADD A: z

Sau đó, t nhãn y, th c hi n mô ph ng phép toán chia DIV :

− T ng n i dung R2 lên 1 đ R2 ch a đ a ch c a thanh ghi ch a toán h ng : INCR 2

− Gán đ a ch này cho thanh ghi R1 :

Trang 15

Mô hình các máy RAM 23

− T ng n i dung thanh ghi R2 lên 1 đ R2 ch a đ a ch c a thanh ghi đ u tiên

trong hai thanh ghi ch a l nh ti p theo c n mô ph ng :

− N u k t qu âm, t ng n i dung c a R2 lên 2 đ R2 ch a đ a ch c a thanh

ghi đ u tiên trong hai thanh ghi ch a l nh ti p theo c n mô ph ng và quay

l i đ u vòng l p :

INCR 2

INCR 2

JUMP loop

− N u k t qu d ng, t nhãn lab, t ng n i dung thanh ghi R2 lên 1 đ R2

ch a đ a ch c a thanh ghi ch a toán h ng :

Nh v y m i phép toán s c p c a RASP đ c mô ph ng b i m t dãy các l nh

l p c a máy RAM Máy RAM v a mô ph ng có d li u là ch ng trình P c a m t

máy RASP b t k , theo sau là m t d li u D cho ch ng trình P Máy RAM có k t

qu là k t qu c a P trên d li u D Máy RAM mô ph ng ho t đ ng c a m i máy

RASP

M t cách t ng t , ng i ta có th xây d ng m t máy RAM mô ph ng ho t

đ ng c a t t c máy RAM M t máy RAM d a trên mô hình tính toán mô ph ng

ho t đ ng c a t t c các ph n t c a mô hình nh v a xét đ c g i là m t máy

RAM v n n ng (universal)

Bài t p

1 Vi t ch ng trình c a m t máy RAM tính n n v i s nguyên n cho tr c

2 Vi t ch ng trình c a m t máy RASP tính giá tr bình quân nguyên c a dãy n

s nguyên cho tr c, v i n l

3 Vi t ch ng trình c a m t máy RASP không s d ng ki u gián ti p đ tính

gi ng bài 2

4 Vi t ch ng trình c a m t máy RAM thô s tính :

a Ph n d c a phép chia m cho n, v i m và n cho tr c

b S nguyên t th n, v i n cho tr c

5 Ch ng t r ng có th rút l nh hoán đ i : S <n, m> trong máy RAM thô s

6 Hãy tìm cách mô ph ng các phép toán logic s c p trong m t máy RAM, trong m t máy RASP và trong m t máy RAM thô s

7 Hãy cho bi t t p h p các phép toán s c p đ x lý ký t Hãy tìm cách mô

ph ng chúng trong m t máy RAM, trong m t máy RASP và trong m t máy RAM thô s

8 Vi t ch ng trình c a m t máy RAM v n n ng

Trang 16

biên so n 25

Mô hình các máy Turing

« If the human brain was so simple that we could understand it, then we would be so simple that we could not »

(L Watson)

Mô hình các máy Turing (Turing machines model) là m t trong trong nh ng

mô hình đ c s d ng r t r ng rãi trong lý thuy t tính toán Trong ch ng này,

chúng ta s t p trung mô t hình th c các máy Turing, ch c n ng đoán nh n ngôn

ng và tính hàm c a chúng T đó chúng ta s nghiên c u các tính ch t c a l p

các hàm T−tính đ c Ph n cu i ch ng trình bày các bi n th khác c a mô hình

các máy Turing và các máy Turing không đ n đ nh

I Mô t và ho t đ ng c a máy Turing

I.1 Mô t máy Turing

M t máy Turing g m :

M t b ng vô h n c hai phía trái và ph i đ c chia thành các ô liên ti p

nhau M i ô ch a m t thông tin h u h n (finite information) nào đó đ c

bi u di n b i m t ch cái (letter) hay ký t T p h p các ch cái (hay ký t )

này t o ra b ng ch c a máy Turing, đ c đ nh ngh a đ ng th i v i máy

Turing

M t đ u đ c−ghi đ đ c hay ghi (làm thay đ i) n i dung t ng ô c a b ng,

và m i l n ch di chuy n, qua ph i ho c qua trái, m t v trí t ng ng v i

m t ô Nh v y, t i m i th i đi m, ch duy nh t m t ô đ c đ c, ho c đ c

ghi mà thôi

M t b nh ph h u h n có th ti p c n t i m i th i đi m, có th bi t đ c

n i dung và thay đ i đ c T t c các n i dung có th c a b nh ph này

đ c li t kê h t lúc đ nh ngh a máy Turing, đ c ch đ nh b i m t s th

t , g i là tr ng thái c a máy Turing

M t ch ng trình là m t t p h p h u h n các quy t c ch ra s thay đ i các

thông tin trên b ng và n i dung c a b nh ph

M t cách hình th c, máy Turing đ c đ nh ngh a t các thành ph n sau đây :

M t b ng ch S có t i thi u hai ký t , m t trong chúng là m t ký t tr ng,

ký hi u # (ho c B) Trên b ng c a máy Turing, m i ô ch a m t ký t c a

C p (q, x) là v trái c a quy t c, cho bi t đi u ki n đ áp d ng quy t c

B ba (y, m, p) là v ph i c a quy t c, cho bi t các thay đ i khác nhau khi

áp d ng quy t c, theo m t th th c s trình bày d i đây

Ng i ta th ng bi u di n m t quy t c c a P d i d ng s đ nh sau :

Hình 3.1 Bi u di n d ng s đ m t quy t c c a máy Turing

Nh v y, m t máy Turing là m t b ba T = <S, Q, P> đ c đ c t m t cách

h u h n Tr c khi gi i thích h at đ ng c a m t máy Turing, ta có nh n xét r ng

t n t i nhi u cách đ nh ngh a máy Turing M c dù nh ng đ nh ngh a này không làm nh h ng đ n hi u l c c a mô hình, nh ng đ u có các nh c đi m

Mô hình đ c ch n đ nh ngh a đây c ng có nh ng đi u b t ti n ó là cách

mô t các ô c a b ng vô h n đây ta đã quy c r ng các máy Turing luôn luôn

có vô h n các ô ch a ký t tr ng # v phía bên trái và v phía bên ph i, ch có

m t ph n c a b ng g m m t s h u h n ô (nh ng không b gi i h n) là h u ích,

g i là ph n h u ích (usable part)

Dãy ký t ch a trong ph n h u ích này là m t câu f trên b ng ch S, n m gi a

hai ký t # Ng i ta vi t f#f

Chú ý r ng m t s tài li u xem ký t tr ng không thu c b ng ch S, # ∉ S

I.2 Ho t đ ng c a máy Turing

Ng i ta g i c là c u hình (configuration) c a m t máy Turing T =<S, Q, P>

là m t b ba :

c = (f, q, xg) ∈ S* ´ Q ´ SS*sao cho câu fxg t o thành ph n h u ích c a b ng vô h n Tr ng thái q ch đ nh n i

dung c a b nh ph u đ c−ghi đ c đ t trên ô ch a ký t x

x | y, m

q p

Trang 17

Mô hình các máy RAM 27

M t máy Turing và m t c u hình c a máy cho phép mô t đ y đ h th ng

Cho máy Turing T = <S, Q, P>, và c = (f, q, xg) là m t c u hình nào đó, ta nói

r ng t n t i m t chuy n ti p (transition) hay d ch chuy n t c u hình c thành c u

Trong c hai tr ng h p, chuy n ti p làm thay đ i n i dung c a ô n m d i

đ u đ c−ghi, và d ch đ u đ c−ghi qua trái ho c qua ph i tu theo giá tr ch

h ng c a m (L ho c R) Cu i cùng chuy n ti p làm thay đ i n i dung c a b

nh ph , chuy n t tr ng thái q thành tr ng thái q’

Hình 3.2 Máy Turing trong c u hình c = (f, q, xg)

Cho máy Turing T = <S, Q, P>, và c là m t c u hình, ta nói r ng t n t i m t

phép tính h p l (valid computation) có đ dài n ≥ 0 d n t c u hình c đ n c u

Nh v y, trong m t s c u hình, khi không còn t n t i m t chuy n ti p nào có

th , ng i ta nói r ng máy Turing d ng (halt) t i nh ng c u hình đó

M t phép tính h p l d n đ n m t c u hình nh v y s không th kéo dài

Ng i ta có th nói v phép tính h p l t i đa trong tr ng h p này Ký hi u :

c Ã

T c’

là s ki n t n t i m t phép tính h p l gi a các c u hình c và c’ và không m t chuy n ti p nào có th k t c u hình c’

Ng c l i, xu t phát t m t s c u hình, t n t i các phép tính h p l không bao gi d ng T đó ng i ta có th chia t p h p các câu f ∈ S* thành hai ph n :

Trang 18

Mô hình các máy RAM 29

T p h p các câu f sao cho xu t phát t c u hình (e, q 1 , f), máy Turing có ít

nh t m t phép tính h p l d ng, g i là L(T)

T p h p các câu f sao cho t c u hình (e, q 1 , f), máy Turing không có m t

phép tính h p l nào d ng

I.3 C u hình xu t phát c a máy Turing

Bây gi , ta c n xem xét nh ng y u t b t ti n c a mô hình máy Turing Ta d

nh n th y r ng không th bi t đâu là đi m b t đ u và đâu là đi m k t thúc c a d

li u trên b ng B i vì ph n h u ích không phân bi t đ c v i ph n còn l i trên

b ng kh c ph c đi u b t ti n này, ng i ta đ a vào các quy c đ i v i các

Lúc đ u, đ u đ c−ghi đ c đ t trong ph n h u ích đ ch đ nh ph n này

M t khác, ng i ta c ng quy c thêm nh sau :

Tr ng thái xu t phát ph i luôn luôn là q 1 , g i là tr ng thái đ u (initial)

u đ c−ghi đ t t i ký t khác # và sát bên trái nh t c a ph n h u ích

M t câu f ∈ S* đ c g i là đ c th a nh n (accepted) b i máy Turing n u,

xu t phát t c u hình ban đ u (e, q1 , f), máy Turing đã th c hi n m t phép tính

h p l và d ng Ngôn ng L(T) g m t p h p các câu đ c th a nh n, đ c g i là

ngôn ng đ c th a nh n (accepted language) b i máy Turing

Trong ví d trên, ngôn ng đ c th a nh n là các câu ch a m t s l s 1 :

L(T) = { f ∈ S * | f g m m t s l ch s 1 }

I.4 Máy Turing đ n đ nh

i m b t ti n th hai trong mô hình máy Turing là có th th c hi n nhi u

phép tính khác nhau t i m i th i đi m N u v i m i c p (q, x) ∈ Q ´ S, t n t i

nhi u nh t m t quy t c c a máy Turing có (q, x) là ph n bên trái, khi đó t m t

c u hình đã cho c, t n t i duy nh t m t phép tính h p l có th Ng i ta g i máy

Turing nh v y là đ n đ nh (deterministic)

Ta d nh n th y tính đ n gi n c a các máy Turing đ n đ nh v i quan ni m

nh sau : m t câu f ∈ S* không đ c th a nh n ngay khi phép tính h p l xu t

phát t (e, q 1 , f) không d ng Trong tr ng h p này, ch ng trình P c a máy

Turing :

P ⊆ Q ´ S ´ S ´ M ´ Q

là m t hàm b ph n (partial function) c a Q ´ S vào S ´ M ´ Q, d dàng đ c

phân tách thành ba hàm b ph n khác nhau có cùng mi n xác đ nh (domain)

Trang 19

Mô hình các máy RAM 31

Bây gi xét các c u hình c 1 = (e, q 1 , 10100) và c 2 = (e, q 1, 100111) T n t i

phép tính t i đa d n c đ n c u hình (g, q3 , h) sao cho, n u f là bi u di n nh phân

c a s nguyên n, thì câu gh là bi u di n nh phân c a s nguyên n + 1

Ng i ta nói máy Turing T 1 đã th c hi n hàm tính s nguyên k ti p

(successor) trên m t bi u di n nh phân c a s nguyên

nguyên bi u di n theo quy c này đ c đ t cách nhau m t ký t tr ng #, khi đó,

d dàng nh n th y r ng máy Turing T 2 th c hi n hàm tính t ng hai s nguyên

cho k t qu là m t bi u di n đ n nguyên Ch ng h n :

(ε, q1, 11 # 111) Ã−

T (##1111, q 4, 111)

nh ngh a 3.1 :

M t hàm b ph n φ t S* → S* đ c g i là tính đ c b i máy Turing (Turing

−computable), vi t t t T−tính đ c, n u t n t i m t máy Turing đ n đ nh tính

đ c hàm này

Rõ ràng, v i m i hàm T−tính đ c, s có vô s các máy Turing tính nó

Chú ý r ng quan đi m tính đ c trong lý thuy t tính toán đ c nêu ra đây

liên quan ch t ch đ n s nh n bi t (cognition) :

Trang 20

Mô hình các máy RAM 33

Hàm h ng r t d tri n khai và có th xây d ng b t k hàm h ng nào

III.1.2 Các hàm chi u (projection functions)

Xét hàm chi u :

Proj n, iG : (G*)n → G*

sao cho v i m i b −n các câu c a G*, hàm chi u tr v câu th i c a dãy này

Ví d 3.5 :

Gi s G = {0, 1}, n = 4 và i = 2, xây d ng máy Turing th c hi n hàm chi u

Proj 4, 2G đ tr v k t qu là câu th hai trong d li u vào là dãy b n câu nh sau :

Ta nh n th y r ng hàm chi u c ng r t d tri n khai nh hàm h ng và có th

xây d ng b t k ki u hàm chi u nào

III.2 Các hàm k ti p (successor functions)

sao cho v i m i câu f∈G*, hàm PredG tr v câu k tr c c a f trong th t đã

cho c a b ng ch S hàm PredG là toàn ph n, ta c n quy c r ng câu đ ng

tr c câu r ng c ng chính là câu r ng

Bài t p : Xây d ng m t máy Turing th c hi n hàm k tr c

Nhi u hàm đ c đ nh ngh a t nhi u hàm khác h p thành Ta s nghiên c u

các k thu t cho phép xây d ng l p các hàm T−tính đ c nh phép h p thành

Trang 21

Mô hình các máy RAM 35

III.4.1 Các máy đ c tiêu chu n hóa

M t máy Turing đ c g i là đã tiêu chu n hóa (standadized) n u, khi tính

toán xong, đ u đ c-ghi đ c đ t t i v trí khác ký t tr ng # c n trái nh t c a

ph n h u ích trên b ng

Hình 3.3 Máy Turing đ c tiêu chu n hóa

M nh đ 3.1 :

N u T là m t máy Turing, thì có th xây d ng t T m t máy turing T’ khác

đ c tiêu chu n hóa cùng th c hi n m t ch c n ng (tính hàm) nh T

Bài t p : Ch ng minh m nh đ 3.1

M nh đ 3.2 :

Có th luôn luôn gi thi t đ c r ng tr ng thái đ u (tr ng thái xu t phát)

không n m trong b t k m t v ph i nào c a quy t c

Ch ng minh :

Th t v y, n u q 1 là tr ng thái đ u, ta thêm vào Q m t tr ng thái m i q’1

thêm vào P m i quy t c d ng :

q’1, x → y, m, q i

sao cho quy t c :

q 1 , x → y, m, q i

là m t quy t c c a máy Turing đang xét V y ng i ta ch n l i q’1 là tr ng thái

đ u Nh v y, máy Turing v a thêm q’ 1 th c hi n cùng m t ch c n ng v i máy

Turing c và th a mãn đi u ki n c a gi thi t

Lúc này, ng i ta có th bi u di n máy Turing có tr ng thái đ u th a mãn

Cho máy Turing T =<S, Q, P> có m t t p h p con A các tr ng thái thõa mãn :

1 Không m t tr ng thái nào c a A n m trong v trái c a quy t c

2 V i m i tr ng thái q∈Q\A và m i ký t x∈S, t n t i m t quy t c c a P có (q, x) là v trái

M t máy Turing nh v y đ c g i là đã đ c chu n hóa (normalized) Nói cách khác, máy Turing là đ c chu n hóa n u v i m t t p h p tr ng thái

A, m t phép tính d ng n u và ch n u máy Turing r i vào m t tr ng thái c a A

M t tr ng thái c a A đ c g i là m t tr ng thái d ng (halt state)

Hình 3.5 Máy Turing T đ c chu n hóa

N u ti n hành đ ng th i c hai cách xây d ng v a nêu, chúng ta s nh n đ c

m t máy Turing v a đ c tiêu chu n hóa, v a đ c chu n hóa

III.4.3 T h p các máy Turing

Cho T là m t máy Turing chu n hóa có m t tr ng thái d ng duy nh t q h , và T’

là m t máy Turing b t k nào đó Ta đ nh ngh a máy Turing t h p t T và T’, ký

hi u T next T’, b ng cách đánh s l i các tr ng thái c a T’ đ nh n đ c các

tr ng thái tách r i (disjoint) v i các tr ng thái c a T và l y tr ng thái d ng c a T

làm tr ng thái đ u c a T’ :

Hình 3.6 Máy Turing T next T’

Chú ý r ng n u T’ đ c tiêu chu n hóa (m t cách t ng ng, đ c chu n hóa) thì máy Turing T next T’ c ng đ c tiêu chu n hóa (đ c chu n hóa)

Rõ ràng r ng, n u T đ c tiêu chu n hóa và th c hi n hàm f và n u T’ th c

hi n hàm f’, thì máy Turing T next T’ th c hi n hàm ghép f’°f

= q’1

Trang 22

Mô hình các máy RAM 37

III.5 L p trình trên ngôn ng b c cao máy Turing

M t cách t ng t , ta có th xây d ng máy Turing cho phép d i đ u đ c−ghi

qua ph i (hay qua trái) đ n v trí (ngay tr c, ho c ngay sau) ký t th n trong G

là m t t p h p con c a S

Ta c ng có th xây d ng m t s máy Turing ti n ích khác đ th c hi n các

ch c n ng nh : chuy n thành h ng, phép chi u, k ti p, k tr c, và các hàm

m i nh sao chép, hoán v

Sau đây, ta s m r ng ph ng ti n th hi n các máy Turing b ng cách đ a

vào các c u trúc đi u khi n và ch ra cách ho t đ ng c a chúng

III.5.1 C u trúc if then else và c u trúc r nhi u nhánh

Cho T là m t máy Turing chu n hóa d ng các tr ng thái q h1 , q h2 , , q hk

T 1 , T 2 , , T k là nh ng máy Turing b t k , ng i ta đ nh ngh a phép t h p t ng

quát (generalized combinator) t phép t h p next b i :

T next if h 1 : T 1 , if h 2 : T 2 , , if h k : T k

là máy Turing nh n đ c b ng cách đánh s l i các tr ng thái c a Tiđ nh n

đ c các tr ng thái tách r i nhau gi a chúng và tách r i các tr ng thái c a T,

b ng cách l y tr ng thái d ng q h1 c a T làm tr ng thái đ u c a T 1, l y tr ng thái

d ng q h2 c a T làm tr ng thái đ u c a T 2, , l y tr ng thái d ng qhk c a T làm

tr ng thái đ u c a Tk

N u máy Turing T d ng v i m i d li u vào, T s th c hi n phép r nhánh

theo các tr ng h p khác nhau (v i if then else là m t tr ng h p đ c bi t)

Ch ng h n v i k = 2, máy Turing T th c hi n l nh if then else :

Hình 3.7 Máy Turing T next if h1 : T 1 , if h2 : T 2

III.5.2 C u trúc while

Cho T là máy Turing chu n hóa có hai tr ng thái d ng q h1 và q h2 , và T’ là

m t máy Turing chu n hóa có duy nh t m t tr ng thái d ng q’h Gi thi t r ng T

và T’ có các tr ng thái r i nhau Ng i ta đ nh ngh a while T do qh : T’ là máy

Turing nh n đ c t T và T’ b ng cách l y tr ng thái d ng qh2 c a T làm tr ng

thái đ u c a T’ và l y tr ng thái d ng c a T’ làm tr ng thái đ u q1 c a T

Máy Turing while T do q h : T’ đ c v nh sau :

Hình 3.8 Máy Turing while T do h2 : T’

Ng i ta nh n th y r ng, các tr ng thái c a m t máy Turing có th đ c xem

nh là các nhãn (label) c a ch ng trình c a chính máy này Do v y, các quy t c

trong P d ng q, x → y, m, p có th đ c vi t d i d ng :

q : if x then y, m next goto p

và b ng cách nhóm t t c các quy t c có cùng tr ng thái q là v trái, lúc này ch

c n vi t q quy t c đ u tiên liên quan

Ch ng trình tìm ph n t k ti p ví d 3.7 bây gi đ c vi t l i nh sau :

q 1 : if 0 then 0, R next goto q 1

if 1 then 1, R next goto q1

if 2 then 2, R next goto q1

if # then #, L next goto q2

q 2 : if 0 then 1, R next goto q 3

q 1 T

T 1 q

h1

T 2 q

Trang 23

Mô hình các máy RAM 39

if 1 then 2, R next goto q3

if 2 then 0, L next goto q2

if # then #, R next goto q3

q 3 : halt

III.6 Qu n lý b nh

Khi xây d ng các máy Turing th c hi n các hàm ph c t p, ng i ta g p ph i

v n đ qu n lý b nh , ngh a là kh n ng t ch c l i n i dung các ô trên b ng

Ta đ a vào các kh n ng qu n lý b nh cho máy Turing nh sau :

III.6.1 Máy Turing chuy n m t ô qua ph i

Vi c chuy n m t ký t sang bên ph i đ c th c hi n đ i v i m t b ng ch có

ba ký t là S = {#, 0, 1} nh máy Turing có t p h p P g m các quy t c nh sau :

Máy Turing này d ng l i khi g p hai ký t # liên ti p T cách xây d ng này,

d dàng xây d ng đ c các máy Turing chuy n k ô qua ph i (ho c qua trái)

III.6.2 Máy Turing ch s d ng ph n b ng bên ph i k

t v trí đ u tiên c a đ u đ c-ghi

N u T =< S, Q, P > là m t máy Turing th c hi n hàm f, có th xây d ng m t

máy Turing khác mô ph ng T sao cho đ u đ c−ghi không bao gi v t qua bên

trái v trí ban đ u

Gi s T 1 là máy Turing đ t m t d u h v trí đ u tiên c a đ u đ c−ghi và di

chuy n n i dung câu vào m t ô qua bên ph i Gi s T 2 là máy Turing cho phép

di chuy n n i dung m t ô qua bên ph i xu t phát t v trí đ u tiên c a đ u

đ c−ghi (và đ t m t ô ký t tr ng # t i v trí ô đ u tiên đã di chuy n)

Nh v y, có bao nhiêu tr ng thái trong máy T thì có b y nhiêu máy sao chép

c a T 2 và gi thi t chúng đ u đã đ c tiêu chu n hóa và chu n hóa Ký hi u T2i

là b n sao t ng ng v i tr ng thái q i , còn p i1 là tr ng thái đ u và pih là tr ng thái

cu i c a T 2i

Xây d ng t máy T m t máy m i T 3 có t t c các quy t c c a T và các quy t c

c a t t c các máy T 2i , ngoài ra, P 3 còn có thêm các quy t c sau :

P 3 = { q i , h → h, R, p i1

p ih , x → x, L, q i } v i x ∈ S là ký t b t k

V i các đi u ki n trên, T1 next T 3 là máy th a mãn yêu c u đ t ra

Sau đây ta s xét m t s máy Turing th c hi n các ch c n ng ph c t p h n

III.7.1 Sao chép

Xây d ng hàm :

CopyG : G* → (G*)2sao cho ∀ câu f ∈ G*, v i G = {0, 1}, hàm CopyG tr v câu f #f ∈ (G*)2

Gi s T 1 là máy Turing đ c m t ký t và thay th ký t đó b i ký t đánh

d u a, sau đó di chuy n qua ph i đ vi t l i ký t này t i v trí c a ký t tr ng #

đ u tiên g p ph i, sau đó quay tr l i ký t đánh d u a đ thay th nó b i ký t

ban đ u Máy T1 d ng ngay l p t c bên ph i v trí này

Trang 24

Mô hình các máy RAM 41

Xây d ng T 2 là máy Turing :

while < t i tr ng thái q 1 không đ c ký t b > : T1

Xu t phát t câu vào fb#, T 2 cho k t qu là fbf# V y T 2 là máy sao chép c n

xây d ng

III.7.2 Ki m tra b ng nhau

C n xây d ng máy Turing so sánh hai câu cho tr c có b ng nhau không

Mu n v y, ta xây d ng máy Turing có hai tr ng thái d ng q Yes và q No sao cho

khi cho câu vào f#g, máy d ng tr ng thái qYesn u f = g và máy d ng tr ng

thái q No n u f ≠ g

Máy ho t đ ng nh sau : thay đ i câu vào f#g thành fagb v i a và b là hai ký

t đánh d u Sau đó, trong khi f và g còn khác r ng, thay th các ký t cu i c a f

và g b i a và b t ng ng r i ghi nh chúng N u sau khi thay th , chúng khác

nhau, máy d ng tr ng thái q No N u không, ti p t c quá trình Cho t i khi đ ng

th i c f và g đ u r ng thì máy d ng tr ng thái thái qYes, n u không ph i, máy

d ng tr ng thái q No

III.7.3 Li t kê các câu, các c p câu và dãy các câu

Vi c li t kê các câu c a S* r t đ n gi n : ng i ta li t kê câu đ u tiên c a S*

(là m t h ng), sau đó l n l t li t kê câu k ti p c a câu tr c đó đã li t kê

Vi c li t kê các c p câu đ c ti n hành nh sau : gi s máy Turing T1 đã có

trên b ng vào m t c p câu, gi s f#g, T 1 th c hi n vi c chép k ti p m t c p câu,

g m câu đ u tiên c a S*, là f, và câu k ti p c a câu kia, là succ(g) Sau đó T 1 l p

đi l p l i vi c chép c p câu ti p theo b ng cách l y câu k ti p c a thành ph n th

nh t, là succ(f), và câu k tr c c a thành ph n th hai, là pred(succ(g)), khi mà

thành ph n này không ph i là câu đ u tiên c a S*

Gi s máy Turing T 2 có c p câu vào x#y trên b ng, T 2 th c hi n chép m t

c p câu, g m câu k ti p c a câu đ u tiên, là succ(x), và câu còn l i, là y Sau đó,

T 2 th c hi n l p đi l p l i vi c chép c p câu ti p theo b ng cách l y câu k tr c

c a thành ph n th nh t, là pred(succ(x)), khi mà thành ph n này không ph i là

câu đ u tiên c a S*, và l y câu k ti p c a thành ph n th hai, là succ(y)

Máy Turing c n tìm th c hi n chép m t c p câu g m hai câu đ u tiên c a S*, sau đó l p đi l p l i th c hi n T1 next T 2

Bài t p : Mô t máy Turing li t kê dãy các câu trên S*

Xét hàm chi u ng c :

Antiproj n, iG : (G*)n → (G*)n-1sao cho bi n m i b −n là dãy n câu c a G* thành b −(n−1) câu, b ng cách l y đi câu th i c a dãy n câu

Máy Turing th c hi n hàm chi u ng c đ c mô t nh sau : sau khi đ t đ u

đ c−ghi ngay tr c câu th i (t i ký t # th i c a d li u vào), máy Turing đánh

d u a t i v trí này và xóa (thay th b i #) câu th i cho đ n khi g p ký t # đ t

tr c câu th i+1 Sau đó, máy th c hi n l p đi l p l i phép d i qua trái m t ô cho ph n các câu còn l i (t i + 1 đ n n) cho đ n khi g p ký t đánh d u a Máy

d ng l i sau khi đã xóa ký t đánh d u a

III.7.5 Các hàm giao hoán Hàm giao hoán (permutation function) :

ngh a là câu th i đ i ch cho câu th j và ng c l i

Máy Turing th c hi n hàm giao hoán đ c xây d ng b ng cách t h p cách máy sao chép và máy chi u ng c

III.8 Các hàm T -tính đ c ph c t p h n

Bây gi ta s xây d ng các máy Turing th c hi n các phép tính s h c d a trên các công c đã có

Phép c ng : Ta c n th c hi n phép c ng hai s nguyên h 2 : Gi s m và n là

hai s nguyên đ c bi u di n b i hai câu u và v trên b ng ch {0, 1} G i d li u

là u#v và ta c n chuy n nó thành uabv, v i a và b là hai ký t đánh d u

Trang 25

Mô hình các máy RAM 43

t đ u đ c−ghi t i ký t cu i cùng c a v, ti p theo, trong khi ký t đ c đ c

(d i đ u đ c−ghi) ch a là b thì ghi nh b ng cách xóa ký t đ c đ c (0 hay 1)

và đi đ n ngay tr c ký t a đây, tùy theo ký t đã đ c (0 hay 1 ho c ký t

tr ng # đ c x lý hoàn toàn t ng t 0), tùy theo ký t đã ghi nh , và theo m t

s nguyên 0 hay 1 c ng đã ghi nh (ph n nh do 1 + 1), lúc đó đã đ c kh i

đ ng giá tr 0, vi t ký t a theo sau 0 ho c 1 tùy theo k t qu (ngh a là s đ i

chi u c a t ng 3 ch s này), và ghi nh ph n nh 0 ho c 1 (tùy theo có hay

không ít ra là hai ch s 1 trong 3 ch s này) Ti p t c quay l i ngay tr c ký t

tr ng # đ u tiên bên ph i, r i l i quay đ n ngay tr c ch a và trong khi ph n

nh là 1, thay đ i ký t đ c đ c và d i m t ô qua bên trái : 1 đ c thay th b i

0, v i ph n nh v n gi , và 0 đ c thay th b i 1, v i ph n nh thay đ i thành 0

T đó nh n đ c câu fagb v i fg là bi u di n nh phân c a m + n

Máy Turing xây d ng theo cách trên có th th c hi n đ c phép c ng các s

nguyên bi u di n trong m t h đ m b t k

Bài t p : Xây d ng máy Turing th c hi n phép tr , phép nhân và phép chia c a

hai s nguyên bi u di n trong h 2, h 10 ho c trong m t h đ m b t k

III.9 Nh n xét

Nh đã trình bày, nh các máy Turing, ta có th th c hi n đ c m t l p r ng

các hàm x lý các phép tính s h c Tuy nhiên, nh ta s th y v sau, l p các

hàm T−tính đ c không ch a t t c m i hàm Nh v y, ta không th xây d ng

b t c m i hàm nh các máy Turing Vì v y, trong nh ng ph n sau, ta c n

h đ m nào đó thì ng i ta nói r ng phép c ng các s nguyên là T−tính đ c

M i quan h h p gi a các ngôn ng và các hàm đ c ch rõ qua các m nh đ sau

«Ch khi» : Cho T là máy Turing th c hi n hàm f, ta c n ch ng minh r ng đ

th Gf c a nó đ c nh n bi t b i m t máy Turing nào đó

N u T là máy Turing th c hi n hàm f : f → f( f) = g, có th gi thi t r ng T

đ c chu n hóa và tiêu chu n hóa, đ u đ c−ghi c a T s không bao gi v t qua

bên trái v trí xu t phát

xây d ng máy Turing nh n bi t Gf, ta xây d ng hai máy Turing b tr :

− T 1 hoán v hai câu vào (f#g tr thành g#f) và d i đ u đ c-ghi v v trí

b t đ u c a câu th hai (câu m i),

− T 2 so sánh hai câu vào g#g và s không bao gi d ng trong tr ng h p không b ng nhau

T đây, máy Turing : T1 next T next T 2 có th nh n bi t Gf.฀

«Khi» : Cho T là m t máy Turing nh n bi t ngôn ng Gf,, ta c n ch ng minh

r ng có th xây d ng đ c m t máy Turing th c hi n hàmf

Gi s T là máy Turing nh n bi t ngôn ng (hay đ th c a φ) Gf ⊂ S*,

Gφ = { f # g | f ∈ Dom(φ) và g = φ(f) }

Ta xây d ng m t máy Turing T’ th c hi n hàm f theo cách sau : n u f là m t

d li u vào c a T’, máy T’ s li t kê t t c các c p (g, n_ ) có th , v i g là m t câu,

g ∈S* và n là đ dài c a phép tính (hay quá trình đoán nh n) đ i v i d li u f #g

c a máy T đã cho N u T d ng trên f #g, thì T’ c ng d ng sau m i c p li t kê

Trang 26

Mô hình các máy RAM 45

đây, n_ là m t bi u di n nào đó c a s nguyên n T nay v sau, ta quy c

r ng m i s nguyên có g ch d i ch đ nh bi u di n nh phân c a s nguyên đó

C th , xu t phát t máy T, đ u tiên ta xây d ng m t máy T U sao cho v i m i

d li u f#g và m i s nguyên n, máy T U th c hi n đ i v i d li u f#g#n _ và d ng

khi g p tr ng thái q

Yes n u T th c hi n phép tính đ i v i d li u f#g d ng đ dài n, và d ng tr ng thái q

No n u T không d ng Ta c ng gi thi t r ng, đ u đ c

c a T U không bao gi qua trái k t v trí xu t phát, và, trong tr ng h p th t b i

(d ng tr ng thái q No ), T U xóa h t n i dung trên b ng vào c a nó

Ti p theo, ta xây d ng máy các máy Turing :

− T 1 nh n d li u vào f#g#n _ đ tr v k t qu là f#g’#n _ ’, v i (g’, n’) là c p

câu theo sau c p (g, n)

− T 2 th c hi n sao chép f#g#n _ thành f#g#n _ #f#g#n _ và đ t đ u đ c−ghi v trí

b t đ u câu f th hai

− T 0 chép qua bên ph i f c p (g, n) đ u tiên đ nh n đ c f#g#n _

T đó, máy Turing T’ đ c xây d ng nh sau :

T 0 next T 2 next T U next while T give q

No : T 1 next T 2 next T_ cho phép th c hi n f.฀

IV Các bi n th khác c a mô hình máy Turing

Theo quan ni m c a lý thuy t tính toán, hai mô hình đ c g i là t ng đ ng

n u nh ng gì tính đ c (m t cách t ng ng : nh n bi t đ c, li t kê đ c) trong

m t mô hình này thì c ng có th tính đ c (m t cách t ng ng : nh n bi t đ c,

li t kê đ c) trong mô hình kia Trong m c này, ta s ch ra r ng các mô hình

bi n th (variant model) c a mô hình các máy Turing tiêu chu n hoá đã 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 (simulation), tr c h t ta c 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 hoá 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

IV.1 Mô ph ng m t máy Turing b i m t máy khác

nh ngh a 3.3 :

M t máy Turing T đ c mô ph ng b i m t máy T’ n u xây d ng đ c m t

phép đ n ánh i t các c u hình c a T vào các c u hình c a T’, sao cho, n u cÃ−

c’ trong T, thì i(c) Ã−* i(c’) trong T’ Máy T’ d ng k t m t c u hình xu t phát

Cho T =<S, Q, P> là máy Turing th c hi n hàm f, xây d ng máy T’ trên b ng

ch S ∪ {a, b}, v i a và b là hai ký t m i Máy T’ s mô ph ng máy T sao cho

Trang 27

Mô hình các máy RAM 47

IV.2 Các bi n th c a máy Turing

Bi n th quan tr ng nh t và thông d ng nh t là máy Turing không đ n đ nh

(non-deterministic) Tuy nhiên v n còn các bi n th khác v i nh ng thay đ i không l n Ta s nghiên c u các máy Turing không đ n đ nh ch ng cu i khi nghiên c u các l p đ ph c t p

IV.2.1 Máy Turing có k b ng

Máy Turing lo i này có k b ng vô h n v c hai phía, m i b ng có đ u

đ c−ghi riêng M i quy t c lúc này có d ng :

q, x 1 , x 2 , , x k → y1 , m 1 , y 2 , m 2 , , y k , m k , q’

v i x i là ký t n m d i đ u đ c-ghi, yi là ký t thay th cho x i , và m i ∈{L, R} ch

h ng (qua trái ho c qua ph i) c a đ u đ c-ghi t ng ng t i b ng th i, i=1 k

Gi s T =<S, Q, P> là máy Turing có k b ng nh đã mô t , ta mô ph ng T

b i m t máy Turing T’ ho t đ ng trên b ng ch :

trình tính toán do ký t <#, #, , #> gây ra Rõ ràng, máy Turing T’ m t b ng đã

mô ph ng máy Turing T có k b ng

Ngày đăng: 07/12/2015, 03:44

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Th  t  phân c p trong S * - lý thuyết tính toán
Hình 1.1. Th t phân c p trong S * (Trang 4)
Hình 2.1 S   đ  m t máy RAM - lý thuyết tính toán
Hình 2.1 S đ m t máy RAM (Trang 8)
Hình 2.2 S   đ  m t máy RASP - lý thuyết tính toán
Hình 2.2 S đ m t máy RASP (Trang 11)
Hình 2.3. Trình P’ b  thay  đ i khi th c hi n - lý thuyết tính toán
Hình 2.3. Trình P’ b thay đ i khi th c hi n (Trang 12)
Hình 2.4 Ghép hai s  nguyên - lý thuyết tính toán
Hình 2.4 Ghép hai s nguyên (Trang 13)
Hình 3.2. Máy Turing trong c u hình c = (f, q, xg) - lý thuyết tính toán
Hình 3.2. Máy Turing trong c u hình c = (f, q, xg) (Trang 17)
Hình 3.3 Máy Turing  đ c tiêu chu n hóa - lý thuyết tính toán
Hình 3.3 Máy Turing đ c tiêu chu n hóa (Trang 21)
Hình 3.4. Máy Turing T có tr ng thái  đ u - lý thuyết tính toán
Hình 3.4. Máy Turing T có tr ng thái đ u (Trang 21)
Hình 3.7. Máy Turing T next if h 1  : T 1 , if h 2  : T 2 - lý thuyết tính toán
Hình 3.7. Máy Turing T next if h 1 : T 1 , if h 2 : T 2 (Trang 22)
Hình 3.8. Máy Turing while T do h2 : T’ - lý thuyết tính toán
Hình 3.8. Máy Turing while T do h2 : T’ (Trang 22)
Hình 3.9. Máy Turing có m t b ng vào và m t b ng ra - lý thuyết tính toán
Hình 3.9. Máy Turing có m t b ng vào và m t b ng ra (Trang 28)
Hình 5.1 Rút g n bài toán A v  bài toán B - lý thuyết tính toán
Hình 5.1 Rút g n bài toán A v bài toán B (Trang 45)
Hình 6.1 Rút g n bài toán A v  bài toán B - lý thuyết tính toán
Hình 6.1 Rút g n bài toán A v bài toán B (Trang 52)
w