Download as pdf or txt
Download as pdf or txt
You are on page 1of 107

B gio dc v o to

i hc hu
trng i hc khoa hc
nguyn gia nh

L THUYT
NGN NG HNH THC
V TMAT
1

q1

q0
1

q2

q3
1

hu 2004

LI NI U
My chc nm gn y, chng ta chng kin s pht trin mnh lit
trong cc lnh vc nghin cu ton hc lin quan n my tnh v tin hc. S pht
trin phi thng ca cc my tnh v nhng thay i su sc trong phng php
lun khoa hc m ra nhng chn tri mi cho ton hc vi mt tc khng
th snh c trong sut lch s lu di ca ton hc. Nhng pht trin a dng
ca ton hc trc tip to ra thu ban u ca my tnh v tin hc v cc tin
b trong tin hc dn n s pht trin rt mnh m mt s ngnh ton hc.
V vy, ton hc ng vai tr trung tm trong cc c s ca tin hc. C th
k ra mt s lnh vc nghin cu ng ch trong mi quan h ny. Tht l th v
khi nhn thy rng cc lnh vc ny cng phn nh s pht trin lch s ca tin
hc.
1. L thuyt kinh in v tnh ton bt u bng cng trnh ca Gdel, Tarski,
Church, Post, Turing v Kleene chim v tr trung tm.
2. Trong l thuyt tmat v ngn ng hnh thc kinh in, cc khi nim c bn
l tmat, vn phm v ngn ng, vi cc cng trnh sng gi ca Axel Thue,
Chomsky, Post.
Ngoi hai lnh vc trn, nhiu lnh vc quan trng khc thuc v cc c s
ton hc ca tin hc; chng hn, l thuyt phc tp, ng ngha v l thuyt v
tnh ng n ca cc ngn ng lp trnh, l thuyt mt m, l thuyt cc cu trc
d liu v l thuyt cc c s d liu.
L thuyt ngn ng hnh thc v tmat ng mt vai tr rt quan trng
trong cc c s ton hc ca tin hc. Ngn ng hnh thc c s dng trong vic
xy dng cc ngn ng lp trnh, l thuyt v cc chng trnh dch. Cc ngn
ng hnh thc to thnh mt cng c m t i vi cc m hnh tnh ton c cho
dng thng tin vo-ra ln kiu thao tc. L thuyt ngn ng hnh thc, chnh v
thc cht ca n l mt lnh vc khoa hc lin ngnh; nhu cu m t hnh thc
vn phm c pht sinh trong nhiu ngnh khoa hc khc nhau t ngn ng hc
n sinh vt hc. Do nhng kha cnh thch hp ca l thuyt ngn ng hnh
thc s c tm quan trng quyt nh trong cc gio trnh v L thuyt ngn ng
hnh thc v tmat.
Ngoi ra, mt trong cc vn c bn ca l thuyt tnh ton l cc bi
ton no c cc thut ton gii. S pht trin c tnh cht nn tng ca lgic
ton trong nhng nm 30 ca th k 20 ch ra vic tn ti cc bi ton khng
gii c, l cc bi ton m khng th c mt thut ton no gii c chng.
1

Cn phi c mt m hnh tnh ton thit lp tnh khng gii c. M hnh tnh
ton l my Turing, n c a ra t trc khi cc my tnh in t ra i
kh lu. Cc my Turing lp thnh m hnh tnh ton tng qut c dng rng
ri nht.
Gio trnh ny nhm trnh by v vn phm hnh thc v cc tmat cng
nh my Turing, l nhng cng c sinh ngn ng, ng thi cp n cc tnh
cht ca ngn ng chnh quy, ngn ng phi ng cnh, ngn ng quy v ngn
ng quy m c. Ngoi ra, gio trnh cng gii thiu s lc v trnh bin
dch, mt phn quan trng ca hc phn Chng trnh dch, hc phn gn b cht
ch vi L thuyt ngn ng hnh thc v tmat. Mt phn rt quan trng trong l
thuyt thut ton l lp cc ngn ng (hay bi ton) P v NP cng nh lp cc
ngn ng NP-y c gii thiu trong phn ph lc.
Ni dung ca ti liu ny c b tr trong 5 chng, khng k li ni u,
mc lc, ti liu tham kho v phn ph lc:
Chng I: Trnh by v cc khi nim c bn ca ngn ng, cu trc ca vn
phm sinh ra ngn ng v s phn cp Chomsky ca ngn ng.
Chng II: Trnh by v ngn ng chnh quy, trong c cc cng c sinh ra
ngn ng chnh quy l vn phm chnh quy, tmat hu hn (n nh v khng
n nh) v biu thc chnh quy.
Chng III: i su v ngn ng phi ng cnh v tmat y xung l cng c
on nhn ngn ng phi ng cnh.
Chng IV: Gii thiu v my Turing v vn khng gii c ca thut ton.
Chng V: Trnh by s lc v cc qu trnh ca s bin dch ca cc ngn ng,
c bit l ngn ng lp trnh.
y l mt ti liu tham kho, hc tp cho sinh vin, hc vin cao hc v
nghin cu sinh cc chuyn ngnh Ton-Tin, Cng ngh thng tin, Tin hc v
nhng ai quan tm v vn phm, ngn ng hnh thc v tmat.
Chng ti xin chn thnh cm n cc ng nghip ng vin v gp
cho cng vic vit gio trnh L thuyt ngn ng hnh thc v tmat ny v li
cm n c bit xin dnh cho Thy L Mnh Thnh v ng nghip Nguyn
Hong Sn v s cung cp mt s ti liu quan trng v ng vin kp thi to
nim hng phn tc gi ging dy v vit gio trnh cho hc phn L thuyt
ngn ng hnh thc v tmat.
Tc gi mong nhn c s ch gio ca cc ng nghip v c gi v
nhng thiu st kh trnh khi ca cun sch.
Trng ng nm Gip Thn (2004)
Nguyn Gia nh
2

MC LC
Li ni u ............................................................................................................ 1
Mc lc .................................................................................................................. 2
Chng I: Nhp mn v vn phm v ngn ng hnh thc ........................ 4
1.1. Khi nim ngn ng........................................................................................ 4
1.2. Vn phm v ngn ng sinh bi vn phm..................................................... 8
1.3. Mt s tnh cht ca ngn ng ....................................................................... 15
Bi tp Chng I ................................................................................................... 19
Chng II: tmat hu hn v ngn ng chnh quy ..................................... 20
2.1. tmat hu hn .............................................................................................. 20
2.2. Quan h gia tmat hu hn v ngn ng chnh quy .................................. 28
2.3. Biu thc chnh quy ....................................................................................... 32
2.4. Cc tiu ho tmat hu hn ......................................................................... 34
Bi tp Chng II.................................................................................................. 41
Chng III: tmat y xung v ngn ng phi ng cnh ........................... 43
3.1. Vn phm phi ng cnh v cy suy dn ca n ............................................. 43
3.2. tmat y xung .......................................................................................... 51
Bi tp Chng III ................................................................................................ 59
Chng IV: My Turing .................................................................................... 60
4.1. My Turing v lp cc hm c th tnh c ................................................ 61
4.2. My Turing ph dng..................................................................................... 68
4.3. Vn khng gii c bng thut ton........................................................ 72
Bi tp Chng IV ................................................................................................ 75
Chng V: Gii thiu v trnh bin dch .......................................................... 76
5.1. Ngn ng lp trnh ......................................................................................... 76
5.2. Trnh bin dch ............................................................................................... 80
5.3. Cc mi lin quan vi trnh bin dch ............................................................ 87
5.4. Nhm cc giai on ca trnh bin dch......................................................... 91
Ph lc: Cc lp P v NP v lp cc bi ton NP-y ............................... 93
Ti liu tham kho..............................................................................................105

CHNG I:

NHP MN V VN PHM
V NGN NG HNH THC
1.1. KHI NIM NGN NG.
1.1.1. M u:
T ngn xa con ngi mun giao tip vi nhau phi dng ngn ng. Ngn
ng con ngi c th giao tip vi nhau c gi l ngn ng t nhin, chng
hn nh ting Anh, ting Nga, ting Vit l cc ngn ng t nhin. Con ngi
mun giao tip vi my tnh tt nhin cng thng qua ngn ng. Con ngi mun
my tnh thc hin cng vic, phi vit cc yu cu a cho my bng ngn ng
my hiu c. Vic vit cc yu cu ta gi l lp trnh. Ngn ng dng lp
trnh c gi l ngn ng lp trnh.
C ngn ng lp trnh ln ngn ng t nhin u c th xem nh nhng tp
cc t, tc l cc xu hu hn cc phn t ca mt b ch ci c s no . Khi
nim ngn ng c a vo trong mc ny rt tng qut. Chc chn bao hm c
ngn ng lp trnh ln t nhin, v c mi ngn ng v ngha m ta c th ngh
n. V mt truyn thng, l thuyt ngn ng hnh thc lin quan n cc c t
c php ca ngn ng nhiu hn l n nhng vn ng ngha. Mt c t v c
php ca mt ngn ng c hu hn t, t nht v nguyn tc, c th c cho
bng cch lit k cc t. iu khng th p dng i vi cc ngn ng c v
hn t. Nhim v chnh ca l thuyt ngn ng hnh thc l nghin cu cc cch
c t hu hn ca cc ngn ng v hn.
L thuyt c s ca tnh ton cng nh ca nhiu ngnh khc nhau ca n,
chng hn mt m hc, c lin quan mt thit vi l thuyt ngn ng. Cc tp vo
v ra ca mt thit b tnh ton c th c xem nh cc ngn ng v ni mt su
sc hn th cc m hnh tnh ton c th c ng nht vi cc lp cc c t
ngn ng theo ngha m sau ny s nu chnh xc hn. Chng hn, cc my
Turing c th c ng nht vi cc vn phm cu trc cu v cc tmat hu
hn c th ng nht vi cc vn phm chnh quy.
1.1.2. nh ngha: Mt bng ch ci l mt tp hu hn khc rng. Cc phn t
ca mt bng ch ci c gi l cc ch ci hay cc k hiu.
Th d 1: Di y l cc bng ch ci:
= {a, b, c, , z},
U = {, , , , , , , , , , , , , , , , ,, },
V = {0, 1}, W = {if, then, else, a, b, c, d, e, f, +, , , /, =, }.
4

1.1.3. nh ngha: Mt t trn bng ch ci l mt xu hu hn gm mt s


ln hn hay bng khng cc ch ca , trong mt ch c th xut hin vi ln.
Xu khng c ch no c gi l t rng v c k hiu l .
Nh vy, theo nh ngha, hai t =a1a2an v =b1b2bm l bng nhau,
=, nu n=m v ai=bi vi mi i=1, 2, , n.
Tp mi t (t.. mi t khc rng) trn bng ch ci c k hiu l *
(t.. +). Cc tp * v + l v hn vi bt k no (tht ra, * v + l v hn
m c nh Mnh 1.1.5 di y). V mt i s, * l mt v nhm t do
vi n v l t rng sinh bi v + l mt na nhm t do sinh bi .
i vi cc t * v *, vic t v cnh nhau c t mi
()* c gi l php ghp vi . T rng l phn t n v i vi
php ghp: = = ng vi mi t . V php ghp c tnh kt hp, ngha
l vi mi t , , , ta c () = (), nn k hiu n, vi n l s t nhin,
c dng theo ngha quen thuc:
khi n = 0,

n = khi n = 1,
n1
khi n > 1.
Th d 2: , 0, 01, 101, 1010, 110011 l cc t trn bng ch ci V = {0,1}.
beautiful l mt t trn bng ch ci = {a, b, c, , z}.
Trn bng ch ci W = {if, then, else, a, b, c, d, e, f, +, , , /, =, }, nu
l t if a+b=c then cd=e v l t else c/d=f th l t:
if a + b = c then c d = e else c / d = f.
1.1.4. nh ngha: di ca mt t , k hiu || hay d(), l s cc ch c
mt trong . Theo nh ngha, ||=0.
Hm di c mt s tnh cht hnh thc ca lgarit: vi mi t , v
mi s t nhin n,
|| = || + ||, |n| = n||.
o ca mt t c c bng cch vit cc ch ci theo th t ngc li;
nu =a1a2an l mt t trn bng ch th o R ca n l t trn bng ch :
R = an a2a1.
T c gi l mt t con hay mt nhn t ca t nu c cc t u v v sao
cho =uv. Ngoi ra, nu u= (t.. v=) th c gi l t con u hay tin t
(t.. t con cui hay hu t) ca .
Th d 3: T =010111001 trn bng ch ci {0, 1} c di 9, trong 0101 l
tin t v 11001 l hu t ca .

T if a + b = c then c d = e else c / d = f trn bng ch ci W trn c


di l 18, trong then c d = e l t con ca n.
1.1.5. Mnh : Nu l bng ch ci th * l tp (v hn) m c.
Chng minh: Do mi s t nhin n u tn ti mt t trn c di n nn * l
mt tp v hn. Gi s ={a1, a2, , an}. Xt nh x f t * vo tp hp N cc s
t nhin xc nh bi:
f() = 0, f(ai) = i, f(ai) = (n+1)f()+i, *.
Vi = ai0 ai1 ...aik , = b j0 b j1 ...b jh v f() = f(). Khi ,
(n+1)ki0+(n+1)k-1i1+ +(n+1)ik-1+ik = (n+1)hj0+(n+1)h-1j1+ +(n+1)jh-1+jh,
trong 2 v l hai khai trin ca mt s nguyn theo c s n+1. Do , k=h v
iu=ju vi 1 u k hay =. V vy, f l mt n nh. T suy ra * l mt m
c.
1.1.6. nh ngha: Mi tp con ca * c gi l mt ngn ng hnh thc hay
ngn gn hn l mt ngn ng trn . c bit, tp l mt ngn ng trn , gi
l ngn ng rng; tp {} cng l mt ngn ng trn , y l ngn ng ch cha
t rng v * l ngn ng gm tt c cc t trn .
Th d 4: L1 = {, a, b, abb, aab, aaa, bbb, abab},
L2 = {anbn | n N}
l hai ngn ng trn bng ch = {a, b}, L1 l ngn ng hu hn trong khi L2 l
ngn ng v hn. Mi t thuc ngn ng L2 c s ch ci a bng s ch ci b vi
a v b khng xen k, a nm pha tri v b pha phi ca n.
Cc h ngn ng c th thng c c trng mt cch tin li qua cc
php ton xc nh trn ngn ng, h gm cc ngn ng nhn c bng vic
t hp t mt s ngn ng cho trc bi mt s php ton no . V ngn ng l
tp hp nn ta c cc php ton Boole nh l php giao, php hp, php hiu,
php ly b. Chng hn, vi L1 v L2 l hai ngn ng trn bng ch th ta c cc
ngn ng mi sau cng trn bng ch : L1 L2, L1 L2, L1 \ L2, * \ L1. Ngoi
ra, ta cn c cc php ton khc l php ghp v php cu x nh di y.
1.1.7. nh ngha: Cho hai ngn ng L1 trn bng ch 1 v L2 trn bng ch
2. Ghp hay tch ca hai ngn ng L1 v L2 l ngn ng trn bng ch 1 2,
k hiu L1L2, uc xc nh bi:
L1L2 = { | L1 v L2}.
D dng thy rng php ghp c tnh kt hp, ngha l vi mi ngn ng
L1, L2 v L3, ta lun c:
(L1L2)L3 = L1(L2L3).
Ngoi ra, vi mi ngn ng L, ta c:
L = L = , {}L = L{} = L,
6

v php ghp c tnh phn phi i vi php hp, ngha l


L1(L2 L3) = L1L2 L1L3, (L2 L3)L1 = L2L1 L3L1.
V php ghp ngn ng c tnh kt hp nn k hiu Ln c dng vi mi
ngn ng L v s t nhin n theo ngha quen thuc sau:
{ } khi n = 0,

Ln = L khi n = 1,
n -1
L L khi n > 1.
Lp hay bao ng ghp ca ngn ng L, k hiu L*, c nh ngha l hp
ca mi lu tha ca L:
L* =

U Ln .

n =0

Lp khng- hay bao ng ghp khng- ca L, k hiu L+, c nh


ngha l hp ca mi lu tha dng ca L:
+

L =

U Ln .
n =1

Th d 5: 1) Xt cc ngn ng trn bng ch = {0, 1}:


L1 = {0, 01}, L2 = {01, 10}, L3 = {0}.
L2L3 = {010, 100}, L1 (L2L3) = {0, 01, 010, 100}, L1 L2 = {0, 01, 10},
L1 L3 = {0, 01}, (L1 L2)(L1 L3) = {00, 001, 010, 0101, 100, 1010}. Do
L1 (L2L3) (L1 L2)(L1 L3) tc l php hp khng c tnh phn phi i vi
php ghp.
L2 L3 = , L1(L2 L3) = , L1L2 = {001, 010, 0101, 0110}, L1L3 = {00,
010}, (L1L2) (L1L3) = {010}. Do L1(L2 L3) (L1L2) (L1L3) tc l php
ghp khng c tnh phn phi i vi php giao.
L1 (L2L3) = , L1 L2 = {01}, L1 L3 = {0}, (L1 L2)(L1 L3) =
{010}. Do L1 (L2L3) (L1 L2)(L1 L3) tc l php giao khng c tnh
phn phi i vi php ghp.
2) Xt ngn ng L = {0, 1} trn bng ch = {0, 1}. Ta c:
L2 = {00, 01, 10, 11}, tp hp cc xu nh phn di 2;
L3 = {000, 001, 010, 011, 100, 101, 110, 111}, tp hp cc xu nh phn di 3;
Tng t, Ln l tp hp cc xu nh phn di n.
V vy, L* l tp hp tt c cc xu nh phn.
3) Xt hai ngn ng trn bng ch = {a}:
L1 = {a2n | n 1}, L2 = {a5n+3 | n 0}.
+
Khi , ta c L1 = {a2} , L2 = {a5}*{a3}.

Mt php ton c tm quan trng ct yu trong l thuyt ngn ng l php


cu x, nh c nh ngha di y.
1.1.8. nh ngha: Cho hai bng ch v . nh x f: *
* tho mn
iu kin
f() = f()f() vi mi t , * (1)
c gi l mt cu x. i vi ngn ng L trn , f(L) = {f() | L} l ngn
ng trn . Theo iu kin (1), xc nh cu x f, ch cn lit k mi t f(a)
trn vi a chy trn mi ch ci ca .
Cu x f gi l khng xo (t.. ch - thnh - ch) nu f(a) (t.. f(a) )
vi mi a .
Th d 6: Xt bng ch ci ting Anh = {A, B, C, , Z}. Mi cu x ch thnh - ch
fi: *
*, 0 i 25
nh x mi ch thnh ch ng sau n i v tr trong bng ch ci, trong phn
cui ca bng ch ci c ni tip vng trn ln phn u. Chng hn,
f3(A) = D, f7(Y) = F, f25(Z) = Y.
Trong mt m hc, mi cu x fi thng c cp n nh cch m ho
Caesar. Chng hn,
f25(IBM) = HAL, f3(HELP) = KHOS.
D dng thy rng cc cu x fi c tnh giao hon:
fi o fj = fj o fi vi mi i, j.
Ngoi ra, f26-i o fi = f0 vi mi i 1. Nh vy, nu mt bn r no c m ho
bng cch dng fi, chnh bn r c th tm li c bng cch dng f26-i gii
m.

1.2. VN PHM V NGN NG SINH BI VN PHM.


1.2.1. M u:
Ta c th hnh dung mt vn phm nh mt thit b t ng m n c
kh nng sinh ra mt tp hp cc t trn mt bng ch ci cho trc. Mi t c
sinh ra sau mt s hu hn bc thc hin cc quy tc ca vn phm.
Vic xc nh mt ngn ng trn bng ch ci cho trc c th c thc
hin bng mt trong cc cch thc sau:
Cch 1: i vi mi t thuc ngn ng cho, ta c th chn mt quy cch hot
ng ca thit b t ng sau mt s hu hn bc lm vic n dng v sinh
ra chnh t .
Cch 2: Thit b t ng c kh nng ln lt sinh ra tt c cc t trong ngn
ng cho.

Cch 3: Vi mi t cho trc, thit b t ng c th cho bit t c thuc


ngn ng cho hay khng.
Trong l thuyt vn phm, ngi ta chng minh c rng ba cch thc
trn l tng ng nhau hay vn phm lm vic theo cc cch trn l tng
ng nhau. V vy, y ta quan tm n cch th nht, tc l ta xt vn phm
nh l mt thit b t ng sinh ra cc t. V l m ngi ta cn gi cc
thit b t ng l vn phm sinh.
Vic sinh ra cc t c th c thc hin bng nhiu cch khc nhau. Cc
t c th c sinh ra bi cc vn phm, bi cc tmat, bi cc my hnh thc
nh my Turing, y ta cp n cch ca CHOMSKY a ra vo nhng
nm 1956-1957.
1.2.2. nh ngha: Vn phm G l mt b sp th t gm 4 thnh phn:
G = < , , S, P >,
trong :
a) l mt bng ch, gi l bng ch kt thc hay t in c bn, mi phn t
ca n c gi l mt k hiu kt thc hay k hiu c bn;
b) l mt bng ch, =, gi l bng ch khng kt thc hay t in h
tr, mi phn t ca n c gi l mt k hiu khng kt thc hay k hiu h tr.
c) S c gi l k hiu u;
d) P l tp hp cc cp th t <, >, trong , ( )* v trong cha t
nht mt k hiu khng kt thc; P c gi l tp cc quy tc thay th, <, >
c gi l mt quy tc hay sn sut v thng c vit cho thun tin l ,
c gi l v tri v c gi l v phi ca quy tc ny.
Th d 7: Cc b bn sau l cc vn phm:
G1 = <{0, 1}, {S}, S, {S0S1, S}>,
G2 = <{a, b}, {S, A}, S, {SAb, AaAb, A}>,
G3 = <{a, b, c}, {S, A, B, C}, S, {SABC, AaA, BbB, CcC, Aa,
Bb, Cc}>
G4 = <, , S, P>, trong
={ti, anh, ch, n, ung, cm, ph, sa, caf},
={<cu>, <chng>, <vng>, <ngt1>, <ngt2>, <danht1>,<danht2>},
S=<cu>,
P={<cu><chng><vng>, <chng>ti,<chng>anh,<chng>ch,
<vng><ngt1><danht1>, <vng><ngt2><danht2>,
<ngt1>n, <ngt2>ung, <danht1>cm, <danht1>ph,
<danht2>sa, <danht2>caf}.

1.2.3. nh ngha: Cho vn phm G = < , , S, P > v , ( )*. Ta ni

c suy dn trc tip t trong G, k hiu G hay ngn gn l (nu


khng s nhm ln), nu tn ti quy tc P v , ( )* sao cho
=, =.
iu ny c ngha l nu nhn v tri ca quy tc nh l t con
th ta thay bng c t mi .
1.2.4. nh ngha: Cho vn phm G = < , , S, P > v , ( )*. Ta ni
c suy dn t trong G, k hiu G hay ngn gn l (nu khng s
nhm ln), nu = hoc tn ti mt dy 0, 1, , k( )* sao cho 0=,
k= v i-1 G i, vi i=1, 2, , k. Khi dy 0, 1, , k c gi l mt dn
xut ca t trong G v s k c gi l di ca dn xut ny. Nu i c
suy dn trc tip t i-1 bng vic p dng mt quy tc p no trong G th ta ni
quy tc p c p dng bc th i.
1.2.5. nh ngha: Cho vn phm G = < , , S, P >. T * c gi l sinh
G
bi vn phm G nu tn ti suy dn S . Ngn ng sinh bi vn phm G, k
hiu L(G), l tp hp xc nh bi:
G
L(G) = {* | S }.
Hai vn phm G1 v G2 c gi l tng ng nu L(G1)=L(G2).
Th d 8: 1) Xt vn phm G1 nh trong 1) ca Th d 7. T 0414 c suy dn t
S bng dy dn xut di 5: S 0S1 00S11 000S111 0000S1111 0414.
Bng vic s dng n ln (n 0) quy tc 1 ri quy tc 2, ta c: S 0n1n. Do
L(G1) = {0n1n | n 0}.
2) Xt vn phm G2 nh trong 2) ca Th d 7. S dng quy tc 1, ri n ln (n
0) quy tc 2, sau s dng quy tc 3 kt thc, ta c:
S Ab anAbnb anbn+1.
Do L(G2) = {anbn+1 | n 0}.
3) Xt vn phm G3 nh trong 3) ca Th d 7. S dng quy tc 1, ri m-1 ln (m
1) quy tc 2, n-1 ln (n 1) quy tc 3, k-1 ln (k 1) quy tc 4 (c th xen k),
sau kt thc s dng cc quy tc 5,6, 7, ta c:
S ABC amAbnBckC ambnck.
Do L(G3) = {ambnck | m 1, n 1, k 1}.
4) L(G4) = {ti n cm, anh n cm, ch n cm, ti n ph, anh n ph,
ch n ph, ti ung sa, anh ung sa, ch ung sa, ti ung caf,
anh ung caf, ch ung caf}.
Ta c th biu din vic dn xut t <cu> n mt t trong L(G4), chng
hn ti n cm bng mt cy gi l cy dn xut hay cy phn tch c php nh
di y. Tt nhin, theo quan im phn tch c php thc t, vic xem xt cc
10

quy tc theo hng ngc li l t phi qua tri. iu c ngha l cy di y


c x l t di ln trn ch khng phi l t trn xung di.
<cu>

<chng>

ti

<vng>

<ngt1>

<danht1>

cm

Th d 9: 1) Cho hai vn phm


G1 = <{a, b}, {S}, S, {SaSb, Sab}>,
G2 = <{a, b}, {S, A, B}, S, {SASB, Aa, Bb, Sab}>.
D dng c c L(G1)=L(G2)={anbn | n 1} hay G1 v G2 l tng ng nhau.
Lu rng nu cc quy tc c v tri ging nhau c th vit gn li. Chng
hn, nh trong G1 ta c th vit hai quy tc ca n di dng SaSb| ab.
2) Cho hai vn phm G3 = <, {S}, S, P3>, G4 = <, {S}, S, P4>, trong :
= {0, 1, 2, 3, 4, 5 ,6, 7, 8, 9},
P3 = {S1| 2| 3| 4| 5| 6| 7| 8| 9| S0| S1| S2| S3| S4| S5| S6| S7| S8| S9},
P4 = {S0| 1| 2| 3| 4| 5| 6| 7| 8| 9| 1S| 2S| 3S| 4S| 5S| 6S| 7S| 8S| 9S}.
S dng k-1 ln (k 1) cc quy tc trong nhm 10 quy tc cui ca G3, ri
mt quy tc trong nhm 9 quy tc ca n, ta c:
S Si1 Si2i1 Sik-1i2i1 ikik-1i2i1,
trong , i1, i2, , ik-1 0 v ik 1. Do , L(G3) = {n | n 1} = N \ {0}.
Lp lun nh trn, ta nhn c L(G4) = {nN | n c ch s hng n v
tu v cc ch s khc n 1}. V vy, G3 v G4 khng tng ng nhau.
1.2.6. B : Cho vn phm G = < , , S, P >. Khi nu tn ti trong P quy
tc cha k hiu u S v phi th tn ti vn phm G tng ng vi G m
cc quy tc ca n khng cha k hiu u v phi.
Chng minh: Ly S , xt vn phm G = <, {S}, S, P>, trong
P=P {S | S P}. R rng trong P khng cha quy tc no c S v
phi. Ta chng minh L(G)=L(G).
+ L(G) (hay S G ): Gi s dy dn xut ca l S G G 1 G G .
G
V S G nn c SP, do SP v v P P nn ta c S G . Vy
S G hay L(G).
11

+ L(G) (hay S ): Gi s ta c dy dn xut l S G G. V S G


nn SP, do tn ti SP. Mt khc, trong khng cha S nn cc
suy dn trc tip trong G ch s dng cc quy tc ca P. Vy ta c S G hay
L(G).
1.2.7. nh ngha: Vn phm G = < , , S, P > m khng c mt rng buc
no trn cc quy tc ca n c gi l vn phm tng qut hay l vn phm
nhm 0.
Nh vy, G l vn phm nhm 0 khi v ch khi cc quy tc ca n c dng
A, trong A, , , ( )*.
1.2.8. nh ngha: Vn phm G = < , , S, P > m cc quy tc ca n c dng
A, trong A, , , ( )*, , c gi l vn phm cm
ng cnh hay l vn phm nhm 1.
Cc vn phm m cc quy tc ca chng c dng trn, ng thi cha thm
quy tc S, min sao k hiu u S khng xut hin v phi ca bt k quy
tc no cng c xp vo lp vn phm nhm 1.
Th d 10: Cho vn phm G = <{a, b, c}, {S, A, B, C}, S, P>, trong
P = {SaSAC, SabC, CABA, BABC, BCAC, bAbb, Cc}.
Khi G l vn phm cm ng cnh.
S dng n-1 ln (n 1) quy tc 1, ri quy tc 2, k n s dng lin tip
cc quy tc 3, 4, 5 ( i ch A v C), sau s dng n-1 ln quy tc 6 v n ln
quy tc 7, ta c:
S an-1S(AC)n-1 anbC(AC)n-1 anbAn-1Cn anbncn.
T suy ra L(G) = {anbncn | n 1}.
1.2.9. nh ngha: Vn phm G = < , , S, P > m cc quy tc ca n c dng
A, trong A, ( )*, , c gi l vn phm phi ng cnh hay
l vn phm nhm 2.
Cc vn phm m cc quy tc ca chng c dng trn, ng thi cha thm
quy tc S, min sao k hiu u S khng xut hin v phi ca bt k quy
tc no cng c xp vo lp vn phm nhm 2.
Th d 11: 1) Cho vn phm G1 = <{a, b}, {S, A}, S, P>, trong
P = {SSa, SAa, AaAb, Aab}.
Khi G1 l vn phm phi ng cnh.
S dng m-1 ln (m 1) quy tc 1, ri quy tc 2, sau s dng n-1 ln
(n 1) quy tc 3, cui cng l quy tc 4, ta c:
S Sam-1 Aaam-1 an-1Abn-1am anbnam.
T suy ra L(G1) = {anbnam | n 1, m 1}.

12

2) Cho vn phm G2 = <{0, 1}, {S}, S, {SSS, S0S1, S1S0, S}. Khi ,
G2 khng l vn phm phi ng cnh v c quy tc S m S li xut hin v
phi ca mt quy tc khc. Theo B 1.2.6, G2 tng ng vi vn phm
G2 = <{0, 1}, {S, S}, S, P>,
P = {SSS, S0S1, S1S0, S, SSS, S0S1, S1S0, S}.
y, G2 cng khng l phi ng cnh. Tuy nhin, vn phm G2 sau l phi ng
cnh m tng ng vi vn phm G2, nn cng tng ng vi vn phm G1.
G2 = <{0, 1}, {S, S}, S, P>,
P = {SSS, S0S1, S1S0, S01, S10, SSS, S0S1, S1S0,
S01, S10, S}.
T cc quy tc ca G2, ta c c:
L(G2)=L(G2)=L(G2)={{0, 1}* | s cc ch s 0 v 1 trong l bng nhau}.
1.2.10. nh ngha: Vn phm G = < , , S, P > m cc quy tc ca n c
dng AaB, Aa, trong A, B, a, , c gi l vn phm chnh quy
hay l vn phm nhm 3.
Cc vn phm m cc quy tc ca chng c dng trn, ng thi cha thm
quy tc S, min sao k hiu u S khng xut hin v phi ca bt k quy
tc no cng c xp vo lp vn phm nhm 3.
Th d 12: 1) Cho vn phm:
G1 = <{1}, {S, A, B}, S, {S, S1A, A1B, B1A, A1}.
Khi , G1 l vn phm chnh quy v L(G1) = {12n | n 0}.
Tht vy, s dng quy tc 1, ta c S 12n, vi n=0; s dng quy tc 2, ri
n-1 ln (n 1) lin tip cp quy tc 3 v 4, cui cng l quy tc 5, ta c:
S 1A 11B 111A 1(12n-2)A 1(12n-2)1=12n.
2) Cho vn phm G2 = <{0, 1}, {S, A}, S, {S0A, A0A, A1A, A0}>. Khi
, G1 l vn phm chnh quy v L(G2) = {00 | {0, 1}*}.
Tht vy, s dng quy tc 1, ri hu hn tu c th xen k cc quy tc 2
v 3, cui cng l quy tc 4, ta c:
S 0A 0A 00.
1.2.11. nh ngha: T cc nh ngha trn, ta thy lp vn phm tng qut l
rng nht, n cha ng cc vn phm cm ng cnh, lp vn phm cm ng
cnh cha cc vn phm phi ng cnh v lp vn phm phi ng cnh cha cc
vn phm chnh quy. H thng cc lp vn phm ny c gi l s phn cp
Chomsky.
Ngn ng hnh thc c gi l ngn ng tng qut (t.. cm ng cnh, phi
ng cnh, chnh quy) nu tn ti vn phm tng qut (t.. cm ng cnh, phi ng
cnh, chnh quy) sinh ra n. V vy, i vi cc lp ngn ng, ta c bao hm thc:
13

{ngn ng chnh quy} {ngn ng phi ng cnh} {ngn ng cm ng cnh}


{ngn ng tng qut}.
Ta cng thy v mt cu trc ng php th cc quy tc ca cc vn phm
phi ng cnh v vn phm chnh quy l n gin hn c v chng c nhiu ng
dng trong vic thit k cc ngn ng lp trnh v trong nghin cu v chng
trnh dch V vy, trong cc phn tip theo chng ta dnh thm s quan tm ti
hai lp vn phm .
Th d 13: 1) Cho bng ch = {a1, a2, , an}. Khi cc ngn ng
L1 = {=a1a2 an}, L2 = +, L3 = *, L =
l cc ngn ng chnh quy trn bng ch .
Tht vy, L1 = L(G1), L2 = L(G2), L3 = L(G3), L4 = L(G4) trong
G1 = <, {S, A1, , An-1}, S, {Sa1A1, A1a2A2, , An-2an-1An-1, An-1an}>,
G2 = <, {S}, S, {SaS, Sa | a}>,
G3 = <, {S, A}, S, {S, Sa, SaA, AaA, Aa | a}>
G4 = <, {S}, S, {SaS | a}>
l cc vn phm chnh quy. (Ring i vi G4, n lm vic khng bao gi dng,
tc l khng c *, m G4 sinh ra, hay G4 sinh ra ngn ng .)
2) Xt hai ngn ng:
L5 = {R | {a, b}*},
L6 = { | {a, b}*}.
(R cn c gi l nh gng ca v nh ta bit n nhn c bng cch
vit theo hng ngc li.)
Mc d xem qua th L5 v L6 phc tp nh nhau, vic xc nh L5 bng vn
phm n gin hn rt nhiu. Tht vy, L5 sinh bi vn phm phi ng cnh sau:
G5 = <{a, b}, {S, A}, S, {S, SA, AaAa, AbAb, Aaa, Abb}>.
sinh L6, ta xt vn phm cm ng cnh G6 sau y:
G6 = <{a, b}, {S, A, B, C, D, E}, S, P6>, trong
P6 = {SABC, ABaAD, ABbAE, DaaD, DbbD, EaaE, EbbE,
DCBaC, ECBbC, aBBa, bBBb, aABa, bABb, aCa,bCb, S}
v bng vic s dng cc quy tc trn vi phng php quy np, ta c c
L(G6)=L6.
1.2.12. B : Nu L l ngn ng cm ng cnh (t.. phi ng cnh, chnh quy)
th L {} v L \ {} cng vy.
Chng minh: a) L {}: -- L: L {}=L.
-- L: Gi s L=L(G), vi G = <, , S, P> l vn phm cm ng cnh (t.. phi
ng cnh, chnh quy). Theo B 1.2.6, tn ti G = <, {S}, S, P> tng

14

ng v cng nhm vi G m S khng xut hin v phi ca bt k mt quy


tc no trong P. Khi vn phm:
G = <, {S}, S, P {S}>
l cng loi vi G v L(G)=L(G) {}=L(G) {}=L {}.
b) L \ {}: -- L: L \ {}=L.
-- L: Gi s L=L(G), vi G = <, , S, P> l vn phm cm ng cnh (t.. phi
ng cnh, chnh quy). Khi SP v S khng xut hin v phi ca bt k
mt quy tc no trong P. Khi vn phm G = <, , S, P \ {S}> cng nhm
vi G v L(G)=L(G) \ {}=L {} \ {}.

1.3. MT S TNH CHT CA NGN NG.


1.3.1. nh ngha: Gi s L1 v L2 l hai ngn ng bt k c sinh bi vn
phm v o l mt php ton no trn lp cc ngn ng. Nu L1 o L2 l ngn
ng cng c sinh bi mt vn phm th ta ni lp ngn ng do vn phm sinh
ra ng i vi php ton o .
1.3.2. nh l: Lp ngn ng sinh ra bi vn phm l ng i vi php hp.
Chng minh: Gi s L1, L2 l cc ngn ng c sinh bi vn phm G1, G2 hay
L1=L(G1), L2=L(G2). Ta chng minh tn ti vn phm G sao cho L(G)=L1 L2.
Gi s G1 = <1, 1, S1, P1> v G2 = <2, 2, S2, P2>. Khng mt tnh cht
tng qut gi thit rng 1 (2 2)=2 (1 1)=. Ly S112 2.
Xt vn phm G = <1 2, 1 2 {S}, S, P>, trong
P = (P1 \ {S1}) (P2 \ {S2}) {S | S1P1 hoc S2P2}
{SS1, S S2}.
( y, ta hiu rng nu S1P1 (t.. S2P2) th S1 (t.. S2) khng xut hin
v phi ca bt k mt quy tc no trong P1 (t.. P2).)
a) L(G): -- =: tn ti SP, nn c S1P1 hoc S2P2. Do
=L1 L2.
G
G
-- : tn ti suy dn S G v gi s suy dn ny l S G G . T ta
c SP (), nn c =S1 hoc =S2. Nu =S1 th dy dn xut , , ,
G G
G
l trong G1, nn ta c S1 1 1 1, tc l L(G1). Nu =S2 th dy dn
G
G
xut , , , l trong G2, nn ta c S2 G2 2 2, tc l L(G2). Do
L1 L2.
b) L1 L2: -- =: tn ti S1P1 hoc S2P2, nn c SP. Do
=L(G).
G1
-- : L1 hoc L2. Nu L1 (t.. L2) th ta c suy dn S1 (t..
G
S2 2) vi cc quy tc c s dng thuc P1 \ {S1} (t.. P2 \ {S2}). Khi
G
G
, ta c S G S1 (t.. S GS2 ). Do L(G).
V vy, L(G)=L1 L2.
15

Tp quy tc P ca vn phm G trn c th c xc nh nh sau m ta


vn c L(G)=L1 L2:
P = (P1 \ {S1}) (P2 \ {S2}) {S | S1P1 hoc S2P2}.
1.3.3. H qu: Nu L1 v L2 l hai ngn ng chnh quy (t.. phi ng cnh, cm
ng cnh) th L1 L2 cng l ngn ng chnh quy (t.. phi ng cnh, cm ng
cnh).
Th d 14: Cho hai ngn ng L1={ancb2n | n 0} v L2={a2ncbn | n 0} trn bng
ch = {a, b, c}. Khi , L1=L(G1) v L2=L(G2), trong
G1 = <, {S1, A, B}, S1, {S1AS1B, S1c, Aa, Bbb}>,
G2 = <, {S2, C, D}, S2, {S2CS2D, S2c, Caa, Db}>.
Tht vy, trong G1, s dng n ln (n 0) quy tc 1, sau s dng n ln
quy tc 3, n ln quy tc 4 v quy tc 2, ta c:
G1
G
S1 AnS1Bn 1anc(bb)n=ancb2n.
G2
Tng t, trong G2 ta c S2 a2ncbn. T ta c vn phm G v G:
G = <, {S1, A, B, S2, C, D, S}, S, P>, G = <, {S1, A, B, S2, C, D, S}, S, P>
trong P = {S1AS1B, S1c, Aa, Bbb, S2CS2D, S2c, Caa, Db,
SS1, SS2}
v P = {S1AS1B, S1c, Aa, Bbb, S2CS2D, S2c, Caa, Db,
SAS1B, SCS2D, Sc}.
y, G1, G2 l hai vn phm phi ng cnh, G, G cng l hai vn phm
phi ng cnh v L(G)=L(G)=L1 L2={ancb2n, a2ncbn | n 0}.
1.3.4. nh l: Lp ngn ng sinh ra bi vn phm l ng i vi php ghp.
Chng minh: Gi s L1, L2 l cc ngn ng c sinh bi vn phm G1, G2 hay
L1=L(G1), L2=L(G2). Ta chng minh tn ti vn phm G sao cho L(G)=L1L2.
Gi s G1 = <1, 1, S1, P1> v G2 = <2, 2, S2, P2>. Khng mt tnh cht
tng qut gi thit rng 1 (2 2)=2 (1 1)=. Ly S112 2.
Xt vn phm G = <1 2, 1 2 {S}, S, P>, trong
P = (P1 \ {S1}) (P2 \ {S2}) {SS1 | S2P2} {SS2 | S1P1}
{S | S1P1 v S2P2} {SS1S2}.
( y, ta hiu rng nu S1P1 (t.. S2P2) th S1 (t.. S2) khng xut hin
v phi ca bt k mt quy tc no trong P1 (t.. P2).)
Vi vn phm G ny, d dng c c L(G)L1L2 v L1L2L(G).
c bit, khi G1 v G2 l hai vn phm chnh quy th ta c th xy dng vn
phm chnh quy G nh sau sao cho L(G)=L1L2.
a) L1 v L2 (tc l S1P1 v S2P2): Vn phm chnh quy G cn tm
l G = <1 2, 1 2, S1, P>, trong
P= (P1 \ {Aa | AaP1}) {AaS2 | AaP1} P2.
16

b) L1 v L2: t L1=L1 \ {} th theo B 1.2.12, ta xy dng c vn


phm chnh quy G1 sao cho L(G1)=L1. Khi theo a), ta c vn phm G sao
cho L(G)=L1L2. T L1L2=(L1 {})L2=L1L2 L2 v t cch xy dng vn
phm trong chng minh ca nh l 1.3.2, ta tm c vn phm chnh quy G
sao cho L(G)=L1L2.
c) L1 v L2: Tng t trng hp b).
d) L1 v L2: t L1=L1 \ {} v L2=L2 \ {} th ta c:
L1L2=(L1 {})(L2 {})=L1L2 L1 L2 {}
v lp lun nh trn ta tm c vn phm chnh quy sinh ra ngn ng L1L2.
1.3.5. H qu: Nu L1 v L2 l hai ngn ng chnh quy (t.. phi ng cnh, cm
ng cnh) th L1L2 cng l ngn ng chnh quy (t.. phi ng cnh, cm ng cnh).
Th d 15: 1) Cho hai ngn ng L1={anbn | n 1} v L2={cn | n 1}. D dng c
c L1=L(G1) v L2=L(G2), trong
G1 = <{a, b}, {S1}, S1, {S1aS1b, S1ab}>,
G2 = <{c}, {S2}, S2, {S2cS2, S2c}>.
T ta nhn c vn phm phi ng cnh G:
G = <{a, b, c}, {S1, S2, S}, S, {S1aS1b, S1ab, S2cS2, S2c, SS1S2}>,
tho mn L(G) = L1L2 = {anbncm | n 1, m 1}.
2) Cho hai ngn ng chnh quy L3={ban | n 0} v L4={bna | n 0}. Ta c ngay
L3=L(G3), L4=L(G4), trong G3 v G4 l hai vn phm chnh quy:
G3 = <{a, b}, {S1, A}, S1, {S1b, S1bA, AaA, Aa}>,
G4 = <{a, b}, {S2}, S2, {S2bS2, S2a}>.
T ta nhn c vn phm chnh quy G:
G = <{a, b}, {S1, A, S2}, S1, P>,
P = {S1bA, AaA, S1bS2, AaS2, S2bS2, S2a}
tho mn L(G) = L3L4 = {banbma | n 0, m 0}.
1.3.6. nh l: Nu L l ngn ng chnh quy th lp L* ca L cng l ngn ng
chnh quy. Ni mt cch khc, lp cc ngn ng chnh quy ng i vi php
ton mt ngi lp.
Chng minh: Gi s L=L(G), vi G = <, , S, P> l vn phm chnh quy. Xt
vn phm G = <, , S, P>, trong
P = (P \ {S}) {AaS | AaP}.
Khi G l vn phm chnh
quy. Ta chng minh L(G)=L* \ {}.

G
a) L(G): Ta c S vi v SP. Khng mt tnh cht tng qut, ta
c th gi thit k hiu u S khng xut hin v phi ca bt k quy tc no
trong P. Gi s dy dn xut ca c s dng n-1 quy tc ca P dng AaS. Khi
ta c:
17

S 1a1S 12a2S 12n-1an-1S 12n-1n = ,


y, i =iai. Nh vy, tn ti cc quy tc A1a1S, A2a2S, , An-1an-1S
trong P v do tn ti cc quy tc A1a1, A2a2, , An-1an-1 trong P. Ta c
S 1A1 1a1=1, S 2A2 2a2=2, , S n-1An-1 n-1an-1=n-1 l
cc suy dn trong G hay 1, 2, , n-1L(G). Mt khc suy dn S n khng
s dng mt quy tc no khc ngoi quy tc ca P, nn nL(G). Vy LnL*.
b) L* \ {}: Tn ti s nguyn dng n sao cho Ln hay =12n-1n,
trong iL \ {}, 1 i n. Nh vy trong G c cc suy dn
S iAi iai=i
v cui cc suy dn ny c s dng cc quy tc Aiai, 1 i n, do ta c cc
quy tc AiaiS trong G. T ta c suy dn trong G:
S 1a1S 12a2S 12n-1an-1S 12n-1n =
hay L(G).
Cui cng, theo B 1.2.12, L(G) chnh quy ko theo L(G) {} cng
chnh quy.
1.3.7. Mnh : Mi ngn ng hu hn u l ngn ng chnh quy.
Chng minh: Ngn ng hu hn l hp hu hn ca cc ngn ng mt t, nn t
Th d 13 (ngn ng mt t l chnh quy) v t H qu 1.3.3 (hp hu hn ca
cc ngn ng chnh quy l chnh quy), ta c ngn ng hu hn l chnh quy.
Th d 16: Cho ngn ng chnh quy L={0, 01, 011, 0111}. Khi L sinh bi vn
phm chnh quy G = <{0, 1}, {S, A, B, C}, S, P>, trong
P = {S0, S0A, A1, A1B, B1, B1C, C1}.
Vn phm chnh quy G = <{0, 1}, {S, A, B, C}, S, P>, trong
P = {S0, S0S, S0A, A1, A1S, A1B, B1, B1S, B1C, C1,
C1S}
*
*
sinh ra ngn ng L \ {}. Do vn phm sinh ra ngn ng L l:
G = <{0, 1}, {S, S, A, B, C}, S, P>, trong
P = {S0, S0, S0S, S0S, S0A, S0A, A1, A1S, A1B,
B1, B1S, B1C, C1, C1S, S}.

18

BI TP CHNG I:
1. Tm cc ngn ng L1, L2, L3 sao cho:

a) (L1L2)* L1*L2*.
b) (L1 L2)* L1* L2*.
c) (L1 L2)* L1* L2*.
d) L1(L2* L3*) (L1L2*) (L1L3*).
2. Cho L1, L2, L3 l cc ngn ng trn bng ch . Chng minh rng:
a) L1(L2 L3) = L1L2 L1L3, (L2 L3)L1 = L2L1 L3L1.
b) (L1*L2*)* = (L1 L2)*.
3. Hy xc nh xem cc vn phm di y sinh ra cc ngn ng no?
a) G = <{0, 1}, {S, A}, S, {S0A, A1S, S}>.
b) G = <{a, b}, {S}, S, {SSaS, Sb}>.
c) G = <{a, b, c}, {S}, S, {Saca, Sbcb, SaSa, SbSb}>.
d) G = <{0, 1, 2, , 9}, {S, A}, S, {SSA | A, A0|1|2|3|4|5|6|7|8|9}>.
4. Hy thnh lp cc vn phm sinh ra cc ngn ng di y:
a) L = {{a}* | || mod 3=0}.
b) L = {a2n+1 | n 0}.
c) L = {{a, b}* | na()>nb()} (nx() l s ch ci x c mt trong }.
d) L = {ambn | n 0, m n}.
5. Hy xy dng cc vn phm chnh quy sinh ra cc ngn ng di y trn
bng ch ={0, 1}:
a) L = {01 | *}.
b) L = {* | trong cha ng mt ch s 1}.
c) L = {* | trong ch cha mt s l ch s 0}.
d) L = {* | khng kt thc bng hai ch s 1}.
6. Hy tm vn phm phi ng cnh sinh ra ngn ng sau:
L = {anbm | n 0, m 0, nm}.
7. Hy xy dng cc vn phm chnh quy sinh ra cc ngn ng di y:
a) L = {(baa)m(aab)n | m 1, n 1}.
b) L = {1}*{010}{0}*.
c) L = {010}* {1100}*.
d) L = {ambnck | m 0, n 0, k 0}.
8. Chng minh rng lp ngn ng sinh bi vn phm l ng i vi php giao.

19

CHNG II:

TMAT HU HN
V NGN NG CHNH QUY
2.1. TMAT HU HN.
2.1.1. M u:
Mt tmat hu hn l mt m hnh tnh ton thc s hu hn. Mi ci lin
quan n n u c kch thc hu hn c nh v khng th m rng trong sut
qu trnh tnh ton. Cc loi tmat khc c nghin cu sau ny c t nht mt
b nh v hn v tim nng. S phn bit gia cc loi tmat khc nhau ch yu
da trn vic thng tin c th c a vo b nh nh th no.
Mt tmat hu hn lm vic theo thi gian ri rc nh tt c cc m hnh
tnh ton ch yu. Nh vy, ta c th ni v thi im k tip khi c t hot
ng ca mt tmat hu hn.
Trng hp n gin nht l thit b khng c b nh m mi thi im,
thng tin ra ch ph thuc vo thng tin vo lc . Cc thit b nh vy l m hnh
ca cc mch t hp.
Tuy nhin, ni chung, thng tin ra sn sinh bi mt tmat hu hn ph
thuc vo c thng tin vo hin ti ln cc thng tin vo trc . Nh vy tmat
c kh nng (vi mt phm vi no ) ghi nh cc thng tin vo trong qu kh ca
n. Mt cch chi tit hn, iu c ngha nh sau.
tmat c mt s hu hn trng thi b nh trong. Ti mi thi im i, n
mt trong cc trng thi , chng hn qi. Trng thi qi+1 thi im sau c xc
nh bi qi v thng tin vo ai cho thi im i. Thng tin ra thi im i c
xc nh bi trng thi qi (hay bi c ai v qi).
2.1.2. nh ngha: Mt tmat hu hn n nh hay mt DFA (Deteministic
Finite Automata) l mt b nm
A = <Q, , , q0, F>,
trong :
Q l mt tp hu hn khc rng, c gi l tp cc trng thi;
l mt bng ch, c gi l bng ch vo;
Q, trong DQ x , c gi l nh x chuyn;
: D
q0Q, c gi l trng thi u;
F Q, c gi l tp cc trng thi kt thc.
Trong trng hp D=Q x , ta ni A l y . V sau ta s thy rng mi
tmat hu hn u a v c tmat hu hn y tng ng.
20

Hot ng ca tmat hu hn n nh A = <Q, , , q0, F> khi cho xu


vo =a1a2 an c th c m t nh sau:
Khi bt u lm vic, my trng thi u q0 v u c ang nhn vo c
k hiu a1. Tip theo my chuyn t trng thi q0 di tc ng ca k hiu vo a1
v trng thi mi (q0, a1)=q1Q v u c chuyn sang phi mt , tc l nhn
vo c k hiu a2. Sau tmat A c th li tip tc chuyn t trng thi q1 nh
nh x chuyn v trng thi mi q2=(q1, a2)Q. Qu trnh s tip tc cho ti
khi gp mt trong cc tnh hung sau:
Trong trng hp tmat A c ht xu vo v (qn-1,an)=qnF, ta ni rng A
on nhn .
Trong trng hp tmat A c ht xu vo v (qn-1,an)=qnF hoc tn ti ch
s j (jn) sao cho (qj-1,aj) khng xc nh, ta ni rng A khng on nhn .
Q. Khi tmat dng li. Nu qnF th ta ni rng tmat on nhn xu .
a2
a3
an-1
an
Xu vo : a1
q0

q1

q2

qn-2

qn-1

qn

2.1.3. Phng php biu din tmat hu hn n nh:


nh x chuyn l mt b phn quan trng ca mt tmat hu hn n nh.
N c th cho di dng bng chuyn hoc cho di dng th.
1) Phng php cho bng chuyn:
Trng
thi
q1
q2
q3

qm

K hiu vo
a1
a2
... an
(q1,a1) (q1,a2) (q1,a2)
(q2,a1) (q2,a2) (q2,a2)
(q3,a1) (q3,a2) (q3,a2)
...
(qm,a1) (qm,a2) (qm,a2)

trong dng i ct j ca bng l trng nu (qi,aj)D, tc l (qi,aj) khng xc


nh.
2) Phng php cho bng th chuyn:
Cho tmat A = <Q, , , q0, F>. nh x chuyn c th cho bng mt a
th c hng, c khuyn G sau y, c gi l th chuyn ca tmat A.
Tp nh ca G l Q. Nu a v t trng thi q chuyn sang trng thi p do ng
thc (q, a)=p th s c mt cung t q ti p c gn nhn a.

21

nh vo ca th chuyn l nh ng vi trng thi ban u q0. Cc nh


s c khoanh bi cc vng trn, ti nh q0 c mi tn i vo, ring nh vi
trng thi kt thc c khoanh bi vng trn m.
Th d 1: Cho hai tmat hu hn n nh
A1 = <{q0, q1, q2}, {a, b}, , q0, {q2}>,
trong (q0, a)=q0, (q0, b)=q1, (q1, a)=q0, (q1, b)=q2, (q2, a)=q2, (q2, b)=q2 v
A2 = <{q0, q1, q2, q3}, {0, 1}, , q0, {q0}>,
trong (q0, 0)=q2, (q0, 1)=q1, (q1, 0)=q3, (q1, 1)=q0, (q2, 0)=q0, (q2, 1)=q3,
(q3, 0)=q1, (q3, 1)=q2. Khi cc bng chuyn ca A1 v A2 l:
Trng
thi
q0
q1
q2

K hiu vo
a
b
q0
q1
q0
q2
q2
q2

Trng
thi
q0
q1
q2
q3

K hiu vo
0
1
q2
q1
q3
q0
q0
q3
q1
q2

Dy trng thi ca tmat A1 khi cho xu =ababbab vo l:


a
b
a
b
b
a
b
q0

q0

q1

q0

q1

q2

q2F.

q2

Dy trng thi ca tmat A2 khi cho xu =1010100 vo l:


1
0
1
0
1
0
0
q1

q0

q3

q2

q0

q1

q1F.

q3

th chuyn ca tmat A1:


b

q0

a
b

q1

q2
b

th chuyn ca tmat A2:


1

q0
0

q1

1
0

q2

0
1

q3

1
22

Ta c th m t qu trnh on nhn xu vo ca tmat hu hn n nh


y A bng thut ton m phng sau:
u vo:
Mt xu , kt thc bi k hiu ht File l eof.
Mt tmat hu hn n nh y A vi trng thi u q0 v tp trng
thi kt thc l F.
u ra: ng nu A on nhn xu .
Sai nu A khng on nhn xu .
Thut ton:
Begin
S:=q0;
C:=k hiu tip theo;
While C < > eof do
begin
S:=(S, C);
C:=k hiu tip theo;
end;
if S in F return (True)
else return (False);
End.
m t hnh thc qu trnh on nhn mt t (xu vo), ngi ta a vo
nh x m rng t tp con ca Q x * vo Q nh trong nh ngha sau.
2.1.4. nh ngha: Cho tmat hu hn n nh A = <Q, , , q0, F>. M rng
ca l mt nh x t tp con ca Q x * vo Q c xc nh nh sau:
1) (q, )=q, qQ,
2) (q, a)=((q, ), a), a, qQ, * sao cho (q, ) c xc nh.
Ta c (q, a)=(q, a) = ((q, ), a) = (q, a), a, qQ. Do trn
Q x , ta c th ng nht vi . Nu khng cn phn bit, t y v sau ta vit
thay cho .
2.1.5. nh ngha: Cho tmat hu hn n nh A = <Q, , , q0, F>, * v
L l mt ngn ng trn . Ta ni:
c on nhn bi A nu (q0, )F;
L c on nhn bi A nu L={* | (q0, )F} v k hiu L l T(A).
Lu rng trong th chuyn ca A, * c on nhn bi A khi v
ch khi ng vi mt ng i t nh q0 n mt trong cc nh kt thc. C th
l nu =a1a2an th ng i l (q0, q1, , qn) vi cung (qi-1, qi) c nhn ai
23

(1in) v qnF. Nh vy, T(A) l tp hp tt c cc ng i t q0 n cc nh


kt thc.
2.1.6. nh ngha: Hai tmat hu hn n nh A v A c gi l tng
ng nu T(A)=T(A).
Th d 2: Cho tmat hu hn n nh:
A = <{q0, q1, q2, q3, q4}, {0, 1}, , q0, {q1, q2, q4}>,
trong (q0,0)=q0, (q0,1)=q1, (q1,0)=q3, (q1,1)=q2, (q2,0)=q2, (q2,1)=q2,
(q3,1)=q3, (q4,0)=q2, (q4,1)=q3.
th chuyn ca A l:
0

q0

q1
0
1

0
1

q2
0

q3

q4

Trc ht, ta nhn thy rng khng c ng i t q0 n nh kt thc q4,


do tmat A tng ng vi tmat A sau:
A = <{q0, q1, q2}, {0, 1}, , q0, {q1, q2}>,
trong (q0,0)=q0, (q0,1)=q1, (q1,1)=q2, (q2,0)=q2, (q2,1)=q2.
th chuyn ca A l:
0

q0

q1

q2

Cc ng i t q0 n nh kt thc q1 ng vi cc xu 0n1, n0. Cc ng


i t q0 n nh kt thc q2 ng vi cc xu 0n11, n0, {0, 1}*. Vy
T(A)=T(A)={0n1, 0n11 | n0, {0, 1}*}.
2.1.7. B : Cho tmat hu hn n nh A = <Q, , , q0, F>. Khi 1,
2*, qQ sao cho (q, 12) xc nh, ta c:
(q, 12) = ((q, 1), 2).
Chng minh: Ta chng minh ng thc trn bng quy np theo di ca 2. Khi
d(2)=0 hay 2=, ta c ((q, 1), )=(q, 1)=(q, 1). Gi s ng thc ng
vi mi 2 c di n. Vi 2 c di n+1, ta c 2=2a, vi 2*,
d(2)=n, a v (q, 12)=(q, 12a)=((q, 12), a)=(((q, 1), 2), a)=
((q, 1), 2a)=((q, 1), 2). Do ng thc ng n n+1.
2.1.8. nh l: Nu L l ngn ng c on nhn bi tmat hu hn n nh
th tn ti s t nhin n sao cho vi mi L c d()n u c th phn tch di
dng =uvw, trong d(uv)n, d(v)1 v vi mi iN, ta c uviwL.
24

Chng minh: Gi s L=T(A) , vi A = <Q, , , q0, F> l mt tmat hu hn


n nh. Gi n=|Q|. Ta chng minh n l s t nhin cn tm.
Cho =a1a2amL vi mn. Khi q1, , qmQ sao cho (qi-1, ai)=qi,
1im v qmF. Do mn nn trong dy q0, q1, , qm c t nht hai trng thi trng
nhau. Gi k l s nh nht sao cho tn ti i (i<kn) qi=qk.
t u=a1ai, v=ai+1ak, w=ak+1am. Ta c =uvw, d(uv)=kn, d(v)1 (do
i<k). Ngoi ra,
(q0, u)=qi=qk=(q0, uv),
(q0, u)=(q0, uv)=((q0, u), v)=((q0, uv), v)=(q0, uv2),
(q0, u)=(q0, uv2)=((q0, u), v2)=((q0, uv), v2)=(q0, uv3),
tip tc ta c (q0, u)=(q0, uvi), iN. Cui cng ta c:
(q0, uviw)=((q0, uvi), w)=((q0, uv), w)=(q0, uvw)F.
Vy uviwL, iN.
2.1.9. H qu: Cho A l tmat hu hn n nh c n trng thi v L l ngn
ng c on nhn bi A. Khi L khi v ch khi L sao d()<n.
Chng minh: iu kin l hin nhin. By gi cho L. Gi s mi t trong L
u c di n. Gi l t c di nh nht trong L (d()n). Theo nh l
2.1.8, ta c =uvw, trong d(uv)n, d(v)1 v vi mi iN, ta c uviwL. Vi
i=0, =uwL m d(uw)<d(). iu ny mu thun vi tnh nh nht cad(). Vy
tn ti L sao d()<n.
2.1.10. H qu: Tn ti mt ngn ng phi ng cnh m khng c on nhn
bi bt k mt tmat hu hn n nh no.
Chng minh: Cho ngn ng L={anbn | n1} trn bng ch ={a, b}. Ta c
L=L(G), trong G=<, {S}, S, {SaSb, Sab}> l vn phm phi ng cnh. Gi
s L=T(A) vi A=<Q, , , q0, F> l mt tmat hu hn n nh. Vi n ln,
=anbn c d()|Q|. Theo nh l 2.1.8, anbn=uvw, trong d(uv)|Q|, d(v)1,
uviwL, iN.
Nu na(v)>0 v nb(v)=0 th vi i ln na(v)>nb(v).
Nu nb(v)>0 v na(v)=0 th vi i ln nb(v)>na(v).
Nu na(v)>0 v nb(v)>0 th vi i=2 ta c a v b xen k nhau trong uviw.
C ba trng hp u mu thun vi uviwL. Vy khng tn ti mt tmat hu
hn n nh no on nhn A.
V sau, ta s thy rng iu kin cn v mt ngn ng c on nhn
bi mt tmat hu hn n nh l chnh quy. Do h qu trn cho bit tn ti
mt ngn ng phi ng cnh m khng l ngn ng chnh quy, tc l lp cc ngn
ng chnh quy l con thc s ca lp cc ngn ng phi ng cnh.

25

2.1.11. Ch : Vi tmat hu hn n nh A=<Q, , , q0, F> bt k, ta lun c


th xy dng mt tmat hu hn n nh y A tng ng vi A.
Q xc
Tht vy, ly SQ (do SF), t Q=Q{S} v : Q x
nh bi: qQ, a, (q, a)=(q, a) nu (q, a) c xc nh, (q, a)=S nu
(q, a) khng c xc nh v (S, a)=S. Khi A=<Q,, , q0, F> l tmat
hu hn n nh y m T(A)=T(A).
2.1.12. nh ngha: Mt tmat hu hn khng n nh hay mt NDFA
(Nondeteministic Finite Automata) l mt b nm
A = <Q, , , q0, F>,
P(Q) (P(Q) l
trong Q, , q0, F nh trong nh ngha 2.1.2 v : Q x
tp hp cc tp con ca Q) gi l nh x chuyn.
Trong trng hp (q, a), qQ, a, ta ni A l y .
Nu (q, a)={p1, p2, , pk} th ta ni rng tmat A trng thi q gp k
hiu a th c th chuyn n mt trong cc trng thi p1, p2, , pk. Nu (q, a)={p}
th trng thi q gp k hiu a, tmat A ch chuyn n mt trng thi duy nht p.
Nu (q, a)= th trng thi q gp k hiu a, tmat A khng th chuyn n
trng thi no. Trng hp ny tng t nh (q, a) khng xc nh ca tmat
hu hn n nh. Nh vy, ta thy rng mt tmat hu hn n nh l mt
trng hp c bit ca mt tmat hu hn khng n nh.
Hot ng ca tmat hu hn khng n nh A = <Q, , , q0, F> khi cho
xu vo =a1a2 an c th c m t nh sau:
Khi bt u lm vic, my trng thi u q0 v u c ang nhn vo c
k hiu a1. T trng thi q0, di tc ng ca k hiu vo a1, (q0, a1)={p1,, pk},
my xc nh cc trng thi c th tip theo l p1, , pk v u c chuyn sang
phi mt , tc l nhn vo c k hiu a2. Tip tc vi mi pi (1ik) v k hiu
tip theo l a2, cc trng thi tip theo c th n c l (p1, a2)(pk, a2).
Qu trnh s tip tc cho ti khi gp mt trong cc tnh hung sau:
Trong trng hp tp trng thi tip theo sau khi c aj no l rng hoc sau
khi c k hiu an l Q m QF=, ta ni rng A khng on nhn .
Trong trng hp tp trng thi tip theo sau khi c k hiu an l Q m
QF, ta ni rng A on nhn .
Mt tmat hu hn khng n nh c th biu din di dng bng
chuyn hoc th chuyn nh trong trng hp tmat hu hn n nh.
Nu (q, a)={p1, p2, , pk} th trong th chuyn c k cung t q sang p1,
, pk cng mt nhn a.
Qu trnh on nhn mt xu vo ca mt tmat hu hn khng n nh
A c th biu din bng mt cy c gc m gc l trng thi u q0. Trong cy ny,
26

nu c mt ng i qua mt dy cc trng thi ng vi xu vo t q0 n mt l


cha trng thi kt thc th xu vo ny c on nhn bi tmat A. Ngc li,
nu khng c mt l no trong cy cha trng thi kt thc th khng c on
nhn bi A.
Th d 3: Cho tmat hu hn khng n nh:
A = <{q0, q1, q2, q3, q4}, {0, 1}, , q0, {q2, q4}>,
trong (q0,0)={q0,q3}, (q0, 1)={q0,q1}, (q1, 0)=, (q1, 1)={q2}, (q2, 0)={q2},
(q2, 1)={q2}, (q3, 0)={q4}, (q3, 1)=, (q4, 0)={q4}, (q4, 1)={q4}.
Cho xu vo =01001. Ta c cy on nhn nh sau:
q0
q0

q3

q0
q0
q0
q0

q1

q3
q3

q1

q4
q4

Trong cy trn c mt ng i t q0 n q4F nn xu =01001 l xu


c on nhn bi tmat A.
th chuyn ca tmat A l:
0

0
1

q0

q1

q2
1

q3
1

q4

2.1.13. nh ngha: Cho tmat hu hn khng n nh A = <Q, , , q0, F>.

M rng ca l nh x t tp Q x * vo P(Q) c xc nh nh sau:


1) (q, )={q}, qQ,
2) (q, a)= U ( p, a ) , qQ, *, a.
p '( q , )

27

Ta c (q, a)=(q, a)=

U ( p, a) =(q, a), qQ, a. V vy, cng

p '( q , )

nh trng hp tmat hu hn n nh, ta c th s dng k hiu thay cho .


2.1.14. nh ngha: Cho tmat hu hn khng n nh A = <Q, , , q0, F>,
* v L l mt ngn ng trn . Ta ni:
c on nhn bi A nu (q0, )F;
L c on nhn bi A nu L={* | (q0, )F} v k hiu L l T(A).
Hai tmat hu hn khng n nh (hoc mt n nh mt khng n
nh) A v A c gi l tng ng nu T(A)=T(A).
Th d 4: Cho tmat hu hn khng n nh:
A = <{q0, q1, q2}, {a, b}, , q0, {q2}>,
trong (q0, a)={q0}, (q0, b)={q0, q1}, (q1, a)={q1}, (q1, b)={q1, q2},
(q2, a)={q2}, (q2, b)={q2}.
th chuyn ca A l:
a

q0
b

q1

q2
b

T(A)={1b2b3 | 1, 2, 3{a, b}*}.

2.2. QUAN H GIA TMAT HU HN V NGN NG CHNH


QUY.
2.2.1. nh l: Nu ngn ng L c on nhn bi mt tmat hu hn khng
n nh th tn ti mt tmat hu hn n nh on nhn L.
Chng minh: Gi s L=T(A), vi A = <Q, , , q0, F> l mt tmat hu hn
khng n nh. Xt tmat hu hn n nh A = <Q, , , t0, F>, trong
Q l tp trng thi mi m |Q|=|P(Q)| v ta c th ng nht mi phn t ca
P(Q) vi mi phn t ca Q nh sau: mi tp con {p1, p2, , pn}P(Q) c t
tng ng vi phn t ca Q k hiu t[p1, p2, , pn];
a, t[p1, p2, , pn]Q, (t[p1, p2, , pn], a)=t[r1, r2, , rk] nu {r1, r2, ,
rk}=(p1, a)(p2, a)(pn, a);
t0=t[q0];
F={t[p1, p2, , pn]Q | {p1, p2, , pn}F}.
Ta chng minh T(A)=L. c iu ny, ta chng minh mnh sau:
*, (t[q0], )=t[p1, p2, , pn](q0, )={p1, p2, , pn}
bng quy np theo di ca .
Nu d()=0 th =, khi (q0, )={q0} v theo nh ngha (t[q0],
)=t[q0].
28

Gi s mnh ng vi mi t 1 c d(1)m (m1). Cho * c


d()=m+1. t =1a, vi a, 1*, d(1)=m. Gi s (t[q0], 1)=t[p1,, pn].
Khi theo nh ngha ca , ta c
(t[q0], 1a)=((t[q0], 1), a)=(t[p1, , pn], a).
Theo gi thit quy np,
(t[q0], 1)=t[p1, , pn]](q0, 1)={p1, , pn}.
Mt khc,
n

(t[p1, , pn], a)=t[r1, r2, , rk]{r1, r2, , rk}= U ( pi , a ) =(q0, 1a).


i =1

Vy mnh ng n m+1. Cui cng ta c:


T(A)(t[q0], )=t[p1, , pn]F{p1, , pn}F(q0, )F
T(A).
Th d 5: Cho tmat hu hn khng n nh:
A = <{q0, q1}, {a, b}, , q0, {q1}>,
trong (q0, a)={q0}, (q0, b)={q0, q1}, (q1, a)={q0, q1}, (q1, b)=.
th chuyn ca A l:
a

q0

q1

Ta xy dng tmat A=<Q, {a, b}, , t0, F} tng ng vi A, trong :


Q={t, t[q0], t[q1], t[q0, q1]}
t0=t[q0],
F={t[q1], t[q0, q1]},
c xc nh nh sau: (t[q0], a)=t[q0], (t[q0], b)=t[q0, q1],
(t[q1], a)=t[q0, q1], (t[q1], b)=t,
(t, a)=t, (t, b)=t,
(t[q0, q1], a)=t[q0, q1], (t[q0, q1], b)=t[q0, q1].
t t1=t[q1], t2=t[q0, q1], t3=t, ta c th chuyn ca A l:
a

t0

t2
b

t1

t
b

29

R rng A tng ng vi tmat A c th chuyn sau:


a

t0

t2
b

v T(A)=T(A)=T(A)={anb | n0, {a, b}*}.


2.2.2. nh l: Nu L l mt ngn ng chnh quy th tn ti mt tmat hu hn
khng n nh on nhn L.
Chng minh: Gi s L=L(G), vi G=<, , S, P> l vn phm chnh quy. Xt
tmat hu hn khng n nh A=<Q, , , q0, F>, trong
Q={E}, E;
q0=S;
F={E} nu SP v F={E, S} nu SP;
(A, a)={B | AaBP}{E | AaP} v (E, a)=, A, a.
Ta chng minh L=T(A).
1) L: a) =: SP, do SF. Trong trng hp ny (S, )={S} nn
T(A).
b) =a1a2 an : Ta c suy dn S a1A1 a1a2A2 a1a2an-1An-1 a1an-1an
Do tn ti dy quy tc Sa1A1, A1a2A2, , An-1an trong P. T nh ngha
ca , ta c A1(S, a1), A2(A1, a2), , An-1(An-2, an-1), E(An-1, an). Nh
vy, E(S, a1a2 an) hay T(A).
2) T(A): a) =: (S, )F hay SF hay SP, do L.
b) =a1a2 an : (S, )F vi hay E(S, ), do tn ti cc trng
thi A1, A2, , An-1 sao cho A1(S, a1), A2(A1, a2), , An-1(An-2, an-1),
E(An-1, an). T ta c Sa1A1, A1a2A2, , An-1anP hay trong G c mt
suy dn l S a1A1 a1a2A2 a1a2an-1An-1 a1an-1an=. V vy L.
Th d 6: Cho ngn ng L={abnab | n0, {a, b}*}. Ta c L=L(G) trong
G=<{a, b}, {S, A, B}, S, {SaS, SbS, SaA, AbA, AaB, Bb}>
l vn phm chnh quy.
Xt tmat hu hn khng n nh A=<{S, A, B, E}, {a, b}, , S, {E}>,
trong (S, a)={S, A}, (S, b)={S}, (A, a)={B}, (A, b)={A}, (B, a)=,
(B, b)={E}, (E, a)=, (E, b)=.
th chuyn ca A l:
a

S
b

T(A)=L={abnab | n0, {a, b}*}.


30

2.2.3. nh l: Nu L l ngn ng c on nhn bi mt tmat hu hn n


nh th L l mt ngn ng chnh quy.
Chng minh: Gi s L=T(A), vi A = <Q, , , q0, F> l mt tmat hu hn n
nh. Xt vn phm
G=<, Q, q0, P>,
trong P={qap | (q, a)=p}{qa | (q, a)=pF}. Khi G l mt vn phm
chnh quy. Ta chng minh L(G)=L \ {}.
1) =a1a2 anL(G): v tn ti suy dn:
q0 a1p1 a1a2p2 a1a2an-1pn-1 a1an-1an=.
Do q0a1p1, p1a2p2, , pn-1an-1pn-1, pn-1anP hay ta c
p1=(q0, a1), p2=(p1, a2), , pn-1=(pn-2, an-1), pnF
tc l (q0, )=pnF hay T(A) \ {}=L \ {}.
2) =a1a2 anL \ {}: Tn ti dy trng thi p1, p2, , pn sao cho (q0, a1)=p1,
(p1, a2)=p2, , (pn-2, an-1)=pn-1, pnF. Do q0a1p1, p1a2p2, , pn-1an-1pn-1,
pn-1anP hay q0 a1p1 a1a2p2 a1a2an-1pn-1 a1an-1an= hay L(G).
Trong trng hp L, ta xy dng G tng ng vi G trong k hiu
u khng xut hin trong bt k v phi ca quy tc no, ng thi thm vo G
quy tc q0 (q0 l k hiu u ca G) nhn c vn phm chnh quy G
sao cho L(G)=L(G){}=L(G){}.
Th d 7: Cho tmat hu hn n nh A=<{q0, q1, q2}, {0, 1}, , q0, {q2}>, trong
(q0, 0)=q1, (q1, 0)=q2, (q1, 1)=q0, (q2, 1)=q0.
th chuyn ca A l:
0

q0

q1

q2

T(A)={00 | {01, 001}*} l ngn ng chnh quy.


2.2.4. Ch : T cc nh l trn vi ch l mi tmat hu hn n nh c th
xem nh l mt tmat hu hn khng n nh, ta c th rt ra kt lun sau.
Gi D l lp cc ngn ng c on nhn bi tmat hu hn n nh, N
l lp cc ngn ng c on nhn bi tmat hu hn khng n nh v R l
lp cc ngn ng chnh quy.
nh l 2.2.1 cho bit N D.
nh l 2.2.2 cho bit R N.
nh l 2.2.3 cho bit D R.
Vy D = N = R.
31

2.3. BIU THC CHNH QUY.


2.3.1. nh ngha: Trn bng ch , ta nh ngha biu thc chnh quy theo cc
bc quy sau y:
1) l biu thc chnh quy, n biu din ngn ng rng.
2) l biu thc chnh quy, n biu din ngn ng {}.
3) Nu a th a l biu thc chnh quy, n biu din ngn ng {a}.
4) Nu r, s tng ng l biu thc chnh quy trn biu din ngn ng R, S
th (r+s) l biu thc chnh quy biu din ngn ng RS, (rs) l biu thc chnh
quy biu din ngn ng R.S v (r*) l biu thc chnh quy biu din ngn ng R*.
Trong biu thc chnh quy, ta c th b cc du ngoc v quy c th t
thc hin cc php tnh l php lp, php ghp, php hp. Chng hn, biu thc
chnh quy ab*a+ba thay cho biu thc (((a(b*))a)+(ba). Ngoi ra, nu khng s
nhm ln, ta c th s dng k hiu a thay cho biu thc chnh quy a vi mi a.
2.3.2. nh ngha: Hai biu thc chnh quy r v s c gi l tng ng, k
hiu r=s, nu chng biu din cng mt ngn ng.
Vi r, s, t l cc biu thc chnh quy trn bng ch , d dng c c cc
tng sau:
1) r+s = s+r,
2) (r+s)+t = r+(s+t),
3) r+r = r,
4) (rs)t = r(st),
5) r(s+t) = rs+rt, (s+t)r = sr+tr,
6) * = ,
7) (r*)* = r*,
8) rr*+=r*,
9) (r*s*)* = (r+s)*,
Th d 8: Cho biu thc chnh quy (01*+02)1+(0+1)(220*1)*.
a) (01*+02)1 = 01*1+021 l biu thc chnh quy biu din ngn ng c on
nhn bi tmat hu hn c th chuyn l:
q2

q1
0

q0

1
0

q4

q3

32

b) (0+1)(220*1)* l biu thc chnh quy biu din ngn ng c on nhn bi


tmat hu hn c th chuyn l:
q6
2

q0

q5

q7

V vy, biu thc chnh quy cho biu din ngn ng c on nhn bi
tmat hu hn c th chuyn l:
q2

q6

q1

q0

0
1

q4

q5
1

q3

q7

2.3.3. nh l: Cho L l mt ngn ng trn bng ch . Khi L l mt ngn


ng chnh quy khi v ch khi tn ti mt biu thc chnh quy trn biu din L.
Chng minh: Gi s tn ti mt biu thc chnh quy trn bng ch ={a1, , an }
biu din ngn ng L. Theo nh ngha ca biu thc chnh quy th L l tp hp
c to thnh t cc tp c s , {}, {a1}, , {an} bng vic p dng mt s
hu hn cc php hp, ghp, lp. V cc tp c s trn l ngn ng chnh quy v
hp, ghp, lp ca mt s hu hn ca chng cng l ngn ng chnh quy. Do L
l mt ngn ng chnh quy.
Gi s L l mt ngn ng chnh quy trn bng ch . Khi theo Mc 2.2,
L=T(A), vi A=<Q, , , q0, F> l mt tmat hu hn n nh.
Gi s Q={q0, q1, , qm}. K hiu Rijk l tp hp tt c cc t m di tc
ng ca chng, tmat A chuyn t trng thi qi n qj, thm vo cc trng thi
m A i qua c ch s khng vt qu k. Trn th chuyn ca A, Rijk l tp hp
cc t ng vi cc ng i t qi n qj khng i qua qk+1, , qm.
Mt cch hnh thc, ta c th nh ngha Rijk bng quy nh sau:

Rij1 ={a | (qi, a)=qj}, ij; Rii1 ={a | (qi, a)=qi}{};


33

Rijk = Rijk 1 Rikk 1 ( Rkkk 1 )* Rkjk 1 , i, j, k=0, 1, , m.


Rijk

Bng quy np theo k, tn ti mt biu thc chnh quy biu din ngn ng
, i, j=0, 1, , m.
Gi s F={ qi1 , qi2 , ..., qik }. Khi L=T(A)= R0mi1 R0mi2 ... R0mik (nu tn

m
ti j sao cho ij=0 th thnh phn th j ca hp l ( R00
) . Do tn ti biu thc
chnh quy biu din ngn ng L.
Th d 9: Cho tmat hu hn khng n nh A c th chuyn l:

q0
1

q1

1
0
0
) = ( R00
R01
( R110 ) R100 ) .
Theo chng minh ca nh l 2.3.3, ta c: T(A)= ( R00
T th chuyn ta thy rng:
0
.
Biu thc chnh quy 1* biu din R00
*
0
Biu thc chnh quy 1 1 biu din R01 .
Biu thc chnh quy 1*01 biu din R110 .
Biu thc chnh quy 1*0 biu din R100 .
Vy T(A) biu din bi biu thc chnh quy (1*+1*1(1*01)1*0)*=(1*+11*0)*.

2.4. CC TIU HO TMAT HU HN.


Cng mt ngn ng chnh quy L, c th c nhiu tmat hu hn on nhn
n. Nhng trc ht ngi ta phi quan tm n cc tmat c s trng thi t nht
cng on nhn ngn ng L. T ta c khi nim tmat ti tiu.
2.4.1. nh ngha: tmat c s trng thi t nht trong cc tmat hu hn n
nh y cng on nhn ngn ng L c gi l tmat ti tiu ca ngn ng
L. Vic tm tmat ti tiu M sao cho T(M)=T(A) vi A l tmat hu hn n
nh y cho trc gi l cc tiu ho tmat hu hn A.
2.4.2. nh ngha: Cho A = <Q, , , q0, F> l mt tmat hu hn n nh y
. Trn * c quan h RA c nh ngha nh sau:
, *, RA (q0, ) = (q0, ).
D dng thy rng RA c cc tnh cht sau:
RA c tnh phn x v *, RA.
RA c tnh i xng v , *, RA ko theo RA.
RA c tnh bc cu v , , *, RA v RA ko theo RA.
Do RA l mt quan h tng ng, nn quan h RA phn hoch * thnh cc
lp tng ng. T nh ngha ca RA, ta thy rng mi lp tng ng ng vi
mt trng thi. V vy s cc lp tng ng theo RA khng ln hn s cc trng
thi ca A.
34

2.4.3. nh ngha: Quan h tng ng R trn * c gi l bt bin phi nu


, , *, R R.
Quan h RA nh trn l bt bin phi. Tht vy,
, , *, RA (q0, ) = (q0, ) (q0, ) = ((q0, ), )=((q0, ), )
=(q0, ) RA.
By gi ta xt mt quan h tng ng bt bin phi khc trn * m n
c xc nh bi mt ngn ng L cho trc nh di y.
2.4.4. nh ngha: Cho L l mt ngn ng trn bng ch . Trn * c quan h
RL c nh ngha nh sau:
, *, RL (*, L L).
Kim tra d dng rng RL tho mn cc tnh cht phn x, i xng v bc
cu, do RL l mt quan h tng ng. Hn th na, RL cng bt bin phi.
2.4.5. nh l: Cho L l mt ngn ng trn bng ch . Khi L l ngn ng
chnh quy khi v ch khi RL phn hoch * thnh mt s hu hn cc lp tng
ng.
Chng minh: Gi s L l mt ngn ng chnh quy. Khi tn ti mt tmat hu
hn n nh y A = <Q, , , q0, F> sao cho L=T(A).
Xt quan h RA trn *. Vi , * sao cho RA th *ta c
L (q0, )F (q0, )F L.
iu ny c ngha l RL. Nh vy, RA ko theo RL hay quan h RA mn
hn quan h RL. Do s lp tng ng theo quan h RL khng ln hn s lp
tng ng theo quan h RA, m s ny l hu hn nn s lp tng ng theo
quan h RL l hu hn.
By gi gi s L l mt ngn ng trn bng ch m s lp tng ng
theo quan h RL l hu hn. Ta xy dng mt tmat hu hn n nh y l
A = <Q, , , q0, F>, trong :
Q={[] | *} ([]={* | RL} l lp tng ng theo quan h RL);
q0=[];
Q cho bi ([], a)=[a] (do RL l bt bin phi nn nu RL th
: Q x
aRLa, do nh ngha ca l tt).
F={[] | [], L}.
Khi nu []F th [], ta c L. Tht vy, vi [], L, ta c
RL, t do =L nn =L.
Ngoi ra, ta c T(A)=L. Tht vy,
T(A) ([], )=[]=[]F L.
Th d 10: Cho A l mt tmat hu hn n nh y c th chuyn c
cho di y:
35

q1

q2

q3

1
1

q0
0

q4

q5

0
1

q6

K hiu Ci l lp tng ng xc nh bi qi, ngha l Ci = {* | (q0, )=qi}.


C0 = {},
C1 = 11*,
C2 = 11*0,
C3 = 11*001*+0011*,
C4 = 0,
C5 = (01+000+11*01+11*001*0+0011*0)(0+1)*,
C6 = 00.
D dng thy rng T(A) = C3C6=0011*+00+11*001*=1*001*.
Vi L=T(A)=1*001*, ta tm cc lp tng ng theo quan h RL. Vi ,
{0, 1}*, RL khi v ch khi mt trong cc mnh di y tho mn:
a) v khng cha s 0.
b) v cha ng mt ch s 0 cui.
c) v cha ng hai ch s 0 lin tip nhau.
d) v hoc l ch cha mt ch s 0 khng phi cui cu, hoc l hai
ch s 0 khng ng cnh nhau, hoc cha nhiu hn 2 ch s 0. Khi cc lp
tng ng theo quan h RL l:
[] = C0C1 = +11*,
[0] = C2C4 = 11*0+0,
[00] = C3C6 = 11*001*+0011*+00,
[000] = C5 = (01+000+11*01+11*001*0+0011*0)(0+1)*.
Trn c s chng minh ca nh l 2.4.5, ta c tmat hu hn n nh:
M = <{[], [0], [00], [000]}, {0, 1}, , [], {[00]},
trong , ([], 0)=[0], ([], 1)=[], ([0], 0)=[00], ([0], 1)=[000],
([00], 0)=[000], ([00], 1)=[00], ([000], 0)=[000], ([000], 1)=[000].
th chuyn ca M l:
36

0
[]

[0]

[00]

1
0

[000]

T(M) = T(A) = 1*001*.


Lu rng hai tmat c xem l nh nhau nu c mt php i tn cc
trng thi sao cho hai th chuyn ca chng l ging nhau.
2.4.6. nh l: Nu L l mt ngn ng chnh quy th tn ti duy nht mt tmat
hu hn n nh ti tiu on nhn L.
Chng minh: Gi M = <Q, , , q0, F> l tmat hu hn n nh on nhn
ngn ng L c xy dng nh trong nh l 2.4.5. Cho A l tmat hu hn n
nh y tu on nhn L. Khi s trng thi ca A khng t hn s lp
tng ng theo quan h RA v do khng t hn s lp tng ng theo quan
h RL, tc l s trng thi ca M.
Gi s A = <Q, , , q0, F> l tmat hu hn n nh on nhn L c
s trng thi bng s trng thi ca M. qQ, do s lp tng ng theo quan
h RA bng s trng thi ca A, nn * sao cho (q0, )=q. t q=(q0, ).
Nu * sao cho (q0, )=(q0, )=q th RA. T s bng nhau gia s
lp tng ng theo RA v theo RL, ta suy ra RL. Do ta c:
([], ) = [] = [] = ([], ) ( y q0=[]).
Bng phng php nh vy, ta c th ng nht cc trng thi ca M vi cc
trng thi ca A. Chnh xc hn, tn ti song nh f t Q ln Q tho mn:
f((q0, )) = (q0, ), *.
iu ny cho bit hai tmat M v A c xem l nh nhau v M l tmat hu
hn n nh ti tiu duy nht on nhn L.
2.4.7. nh ngha: Trng thi q ca tmat hu hn n nh y A=<Q, , ,
q0, F> c gi l n c nu * sao cho (q0, )=q.
Khi mi lp tng ng theo quan h RA c th c ng nht vi mt
trng thi n c.
2.4.8. Ch : Cho A=<Q, , , q0, F> l mt tmat hu hn n nh y
on nhn ngn ng chnh quy L trn bng ch . Chng ta s ch ra phng php
tm tmat hu hn n nh ti tiu M on nhn L. tm cc trng thi ca M,
ta cn tm cc lp tng ng theo quan h RL, m mi lp tng ng theo RL
li l hp ca mt s lp tng ng theo quan h RA. Do ta ng nht mi lp
tng ng theo RA vi mt trng thi n c ca A nn ta s xy dng mt
37

quan h tng ng trn tp hp K tt c cc trng thi n c m quan h ny


c th ng nht vi RL.
Trn tp hp K xt quan h sau:
p,qK, pq (*, (p, )F (q, )F).
R rng l mt quan h tng ng trn K.
p,qK, , * sao cho p=(q0, ) v q=(q0, ). Khi ta c:
pq (*, ((q0, ), )F ((q0, ), )F)
(*, (q0, )F (q0, )F)
(*, L L)
RL.
Tp K cc trng thi n c c th nhn c nh sau. t K0={q0},
K1=K0{(q0, a) | a}. Nu K1K0, t K2=K1{(p, a) | a, pK1 \ K0}.
Tng t nh vy, ta c th tm c Kj+1 thng qua Kj (j0). Nu tn ti i sao cho
Ki+1=Ki th ta c K=Ki.
By gi ta tm cc lp tng ng theo quan h trn K bng thut ton
nh di y.
1. Chn ra cc cp trng thi (p, q) m pF v qF. Gn s 0 cho cc cp ny v
nh du mi cp bng du *.
2. Chn ra cc cp (p, q) m n cha c nh du v xt cc cp ((p, a), (q, a))
vi mi a. Nu trong s cc cp ny tm thy mt cp c nh du th ta
nh du cp (p, q). Thm vo , nu i vi cp chn ((p, a), (q, a))
c gn s k th ta gn s k+1 cho cp (p, q). Ngc li, nu khng tm thy cp
c nh du * th ta xp cp (p, q) cng vi cc cp ((p, a), (q, a)) thnh danh
sch ring bit.
3. Nu mt cp (p, q) c nh du * v c gn s k th ta nh du * tt c
cc cp m trc ta xp chng vo danh sch ring i vi (p, q) v cha
c gn bi mt s no, ta gn s k1 cho mi cp k hiu.
4. Lp li Bc 2 cho n khi khng cn cc cp (p, q) khng c nh du * m
cha c a ra xt.
Ta s chng t rng cc trng thi p, qK l khng tng ng (theo quan
h ) khi v ch khi trong qu trnh trn, cp (p, q) b nh du *.
Trc ht, gi s p v q khng tng ng v * sao cho (p, )F v
(q, )F. Bng quy np theo di ca , ta ch ra rng cp (p, q) c nh du
*. Nu = th (p, )=p, (q, )=q, nn cp (p, q) c nh du *. Gi s mnh
ng i vi mi cp trng thi m chng c ch ra l khng tng ng vi
nhau bng mt t c di nh hn n. Ly * m d()=n, ta c =a, vi a
v * m d()<n. Gi s (p, a)=r, (q, a)=s. Khi r, s c ch ra l khng
38

tng ng bng t , nn theo gi thit quy np (r, s) c nh du *, do


cp (p, q) c nh du *.
By gi gi s cp (p, q) c nh du *. Ta cn chng t cc trng thi
p v q l khng tng ng. Bng quy np theo s k gn cho cp (p, q), ta c th
chng minh iu ny.
Khi k=0, ta c pF v qF, iu ny c ngha l cc trng thi p v q l
khng tng ng. Gi s mnh ng i vi mi cp c gn vi s h<k.
Cho (p, q) l cp c gn bi s k. Trn c s Bc 2 v 3, tn ti a sao cho
cp (r=(p, a), s=(q, a)) c gn bi s k1. Theo gi thit quy np, r v s khng
tng ng; ngha l, * sao cho (r, )F v (s, )F. Do (p, a)F
v (q, a)F hay p v q l khng tng ng.
Xt tmat hu hn n nh M=<Q, , , [q0], F>, trong :
Q={[q] | qK} ([q] l lp tng ng theo quan h ),
F={[q] | qF},
Q cho bi ([q], a)=[(q, a)].
: Q x
Bng quy np theo di ca t , d dng c c ([q], )=[(q, )]. T
suy ra T(M)=T(A)=L.
Vy M l tmat hu hn n nh ti tiu on nhn L.
Th d 11: Cho tmat hu hn n nh y
A = <{q0, q1, q2, q3, q4, q5, q6, q7}, {a, b}, , q0, {q2, q3, q5, q6, q7}>,
trong (q0, a)=q4, (q0, b)=q6, (q1, a)=q2, (q1, b)=q0, (q2, a)=q2, (q2, b)=q2,
(q3, a)=q3, (q3, b)=q2, (q4, a)=q2, (q4, b)=q5, (q5, a)=q5, (q5, b)=q5,
(q6, a)=q6, (q6, b)=q7, (q7, a)=q3, (q7, b)=q5.
th chuyn ca A l:
a
a

q1

q2

q3

a
a
a

q0

q4

q5
b

q6

q7

Trc ht, ta tm cc trng thi n c ca A. Ta c:


39

b
a

K0={q0},K1={q0, q4, q6},K2={q0, q4, q6, q2, q5, q7}, K4=K3={q0, q4, q6, q2, q5, q7,q3}.
Trn c s Bc 1, ta nh du cc cp trng thi sau:
(q0, q2), (q0, q3), (q0, q5), (q0, q6), (q0, q7), (q4, q2), (q4, q3), (q4, q5), (q4, q6), (q4, q7).
V (q0, a)=q4, (q4, a)=q2 v (q4, q2) c nh du nn ta nh du (q0, q4).
Tng t nh vy i vi cc cp khc. Kt qu c c trong bng sau:
q7
q6
q5
q4 *
*
*
q3 *
q2
*
q0 *
*
*
*
*
*
Cc trng thi n c chia thnh cc lp tng ng sau:
[q0] = {q0}, [q2] = {q2, q3, q5, q6, q7}, [q4] = {q4}.
Vy tmat hu hn n nh ti tiu on nhn L=T(A) l:
M = <{[q0], [q2], [q4]}, {a, b}, , [q0], {[q2]}>,
trong , ([q0], a)=[(q0, a)]=[q4], ([q0], b)=[(q0, b)]=[q2],
([q2], a)=[(q2, a)]=[q2], ([q2], b)=[(q2, b)]=[q2],
([q4], a)=[(q4, a)]=[q2], ([q4], b)=[(q4, b)]=[q2].
th chuyn ca M l:
[q4]

[q0]

a
b

[q2]
a

T(M) = T(A) = (b+aa+ab)(a+b)*.

40

BI TP CHNG II:
1. Hy xy dng cc tmat hu hn c th chuyn sau v xc nh cc ngn
ng c on nhn bi chng.
0
a)
q0

q1

q2

b)

q0

a
a

0
q3
1

q1

c)

q1
b
a

q0
a

a
q2

2. Hy xy dng cc tmat hu hn n nh on nhn cc ngn ng sau:


a) L = {anbm | n1, m1}.
b) L = {{0, 1}* | bt u ng 3 ch s 0}.
c) L = {{0, 1}* | khng bt u bi hai ch s 1 lin tip}.
d) L = {(01)n, (101)n | n0}.
e) L = {(aab)n(baa)m | n1, m1}.
3. Chng minh rng khng tn ti tmat hu hn n nh no on nhn cc
ngn ng sau:
a) L = { | {a, b}*}.
b) L = {ap | p l mt s nguyn t}.
4. Hy xy dng cc tmat hu hn khng n nh on nhn cc ngn ng sau:
a) L = {1aba2 | 1, 2{a, b}*}.
b) L = {{0, 1}* | bt u bng lu tha dng ca 101}.
c) L = {(1111)n | {0, 1}*, n0}.
5. Hy thnh lp cc vn phm chnh quy sinh ra cc ngn ng m c on nhn
bi cc tmat hu hn khng n nh sau:
a) A = <{q0, q1, q2, q3, q4}, {a, b}, , q0, {q2, q4}>, trong
(q0, a)={q0, q1}, (q0, b)={q0, q1}, (q1, a)=, (q1, b)={q2}, (q2, a)={q2},
(q2, b)={q2}, (q3, a)={q4}, (q3, b)=, (q4, a)={q4}, (q4, b)={q4}.
b) A = <{q0, q1}, {0, 1}, , q0, {q1}>, trong
41

(q0, 0)={q0, q1}, (q0, 1)={q1}, (q1, 0)=, (q1, 1)={q0, q1}.
6. Hy xy dng cc tmat hu hn n nh on nhn cc ngn ng m c
sinh bi cc vn phm chnh quy sau:
a) G=<{a, b, c}, {S, A, B, C, D}, S, {SaB, SaC, BaA, CbD,
DbC, DbA, AcA, Ac}>.
b) G=<{0, 1}, {S, A, B, C, D, E}, S,{S, S1A, B0C, B0D, A1B,
B1D, D0E, C1B, C0A, E1A, D1E, E0B, A0D, E1, C1}>.
7. Cho k l mt s nguyn dng v Lk = {{1}* | d()=nk, n=1, 2, }. Chng
minh rng Lk c th c biu din bi mt biu thc chnh quy. Hy cho cc
tmat hu hn n nh on nhn L2, L3, L5.
8. Cho L = {0n1n | n0}. Hy xc nh cc lp tng ng theo quan h RL v t
suy ra L khng l ngn ng chnh quy.
9. Hy thay cc biu thc chnh quy sau bng biu thc tng ng, n gin
hn, trong khng cha php cng:
a) E = 00+0011*+1*1001*.
b) E = 100*100*+1100*+100*1+11.
10. Hy xy dng cc tmat hu hn n nh on nhn cc ngn ng c biu
din bi cc biu thc chnh quy sau:
a) bba(a+b)*.
b) (a+b)*bab.
c) (bb+a)*(aa+b)*.
d) (+1+11)(01)*.
e) (0+1)(0+1)(0+1)*.
11. Hy cc tiu ho tmat hu hn n nh sau:
A = <{q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}, {0, 1}, , q0, {q7, q9}>,
trong : (q0, 0)=q1, (q0, 1)=q3, (q1, 0)=q7, (q1, 1)=q1, (q2, 0)=q0, (q2, 1)=q5,
(q3, 0)=q5, (q3, 1)=q9, (q4, 0)=q1, (q4, 1)=q7, (q5, 0)=q8, (q5, 1)=q4,
(q6, 0)=q3, (q6, 1)=q8, (q7, 0)=q8, (q7, 1)=q7, (q8, 0)=q7, (q8, 1)=q8,
(q9, 0)=q8, (q9, 1)=q9.

42

CHNG III:

TMAT Y XUNG
V NGN NG PHI NG CNH
i vi cc lp vn phm c phn loi theo Chomsky, lp vn phm phi
ng cnh c vai tr quan trng nht trong vic ng dng xy dng cc ngn ng
lp trnh v chng trnh dch.
Trong qu trnh dch t chng trnh ngun ra chng trnh ch, ngi ta s
dng cu trc c php ca vn phm phi ng cnh phn tch cc xu vo. Cu
trc c php ca mt xu vo c xc nh t dy cc quy tc suy t xu . Da
vo dy cc quy tc , b phn tch c php ca chng trnh dch s cho bit xu
vo ang xt c thuc vo xu do vn phm phi ng cnh sinh ra hay khng. Ni
cch khc l vi xu vo v mt vn phm phi ng cnh G, hi xem L(G)
hay khng? Nu c th hy tm cch biu din bng vn phm, tc l tm cc quy
tc sinh ca vn phm G sinh ra xu .

3.1. VN PHM PHI NG CNH V CY SUY DN CA N.


3.1.1. nh ngha: Cho vn phm phi ng cnh G=<, , S, P>. Cy suy dn
trong vn phm G l mt cy c gc tho mn bn yu cu sau:
1. mi nh c gn mt nhn. Nhn gn nh l cc k hiu trong tp
. Gc ca cy c gn nhn l S.
2. Mi nh trong c gn nhn l mt k hiu no trong .
3. Mi nh ngoi (l ca cy) c gn nhn l mt k hiu trong tp .
4. Nu nh m c gn nhn l A, cn cc nh n1, n2, , nk l cc con
ca nh m theo th t t tri sang phi v c gn nhn B1, B2, , Bk tng ng
th AB1B2Bk l mt quy tc trong P ca vn phm G.
Nu c tt c nhn cc l theo th t t tri sang phi, ta s nhn c
mt t no . T s l mt phn t trong L(G) v c gi l kt qu ca cy
suy dn trong G.
Th d 1: Cho cc vn phm phi ng cnh:
G1=<{a, b, c, +, , (, )}, {S, A}, S, {SS+S | AA | a | b | c, A(S+S) | a | b | c}>,
G2=<{a, b}, {S, A}, S, {SSa | Aa, AaAb | ab}>,
G3=<{={a1, a2, , an}, {S}, S, {SaSa, Saa | a}>,
G4=<{if, then, else, for, do, a, b, c}, {S, A}, S, {Sif b then A | if b then A else S,
Sa, Afor c do S | a}>.
Cy suy dn ca t b+(a+c)b trong G1 l:

43

S
S

Cy suy dn ca t anbnam trong G2 l:


S
S

m ln

a
a

S
a

A
a

n ln
A
a

Cy suy dn ca t R=a1a2anana2a1 trong G3 l:

44

S
a1

a1

a2

a2

S
S

an-1

an

an-1

an

Hai cy suy dn ca t =if b then for c do if b then a else a trong G3 l:


S
if

S
A

then

for

if

if
do

then

S
A

else

then

else

for

do

if

then

3.1.2. nh l: Cho G=<, , S, P> l vn phm phi ng cnh v * \ {}. Khi


L(G) khi v ch khi tn ti mt cy suy dn trong G c kt qu l .
Chng minh: Do nn ta c th gi thit rng SP. By gi vi mi A,
t GA=<, , A, P>, ta c GA l vn phm phi ng cnh. Ta s chng t rng
L(GA) khi v ch khi tn ti mt cy suy dn trong GA c kt qu l .
Gi s l kt qu ca mt cy suy dn trong GA v n l s k hiu khng
kt thc trong cy. Bng quy np theo n, ta s ch ra rng L(GA).
Nu tng s k hiu khng kt thc trong cy l 1, k hiu ny phi l A v
l gc ca cy, do cc con ca A phi l cc nh c gn bi cc k hiu kt

45

thc, chng hn b1, b2, , bk. Theo nh ngha ca cy suy dn, ta c Ab1b2bk
hay A .
Gi s mnh ng vi mi cy suy dn c s k hiu khng kt thc l
n1. Xt mt cy suy dn trong GA c kt qu l v trong cy c n k hiu khng
kt thc. Gi cc con ca A theo th t t tri sang phi l B1, B2, , Bk. Nu cc
nh ny u l l th cy gc A ch c mt nh c k hiu khng kt thc. Gi s
trong cc nh ny c cc nh trong l C1, C2, , Cm. Xt cc cy con m gc ca
n l C1, C2, ,Cm. Gi i l kt qu ca cy suy dn gc Ci. Theo gi thit quy
np, iL(Gi). V tp cc quy tc trong GCi cha trong tp cc quy tc trong GA
nn ta c cc suy dn trong GA l C1 1, C2 2, , Cm m. S dng cc suy
dn ny v quy tc AB1B2Bk, ta nhn c:
A B1B2Bk 1C12C2 mCmm+1 1122 mmm+1.
Do kt qu ca cy suy dn trong GA l nn =1122 mmm+1 hay
L(GA).
o li, ta cn chng minh rng nu c suy dn A () trong GA th c
th xy dng mt cy suy dn trong GA c kt qu l . Mnh ny c chng
minh bng quy np theo di ca suy dn.
Trc ht, nu A =b1b2 bk (suy dn mt bc) th c th xy dng mt
cy c gc l A v cc con t tri sang phi ln lt l b1, b2, , bk.
Gi s mnh ng vi mi suy dn c di khng ln hn n. Cho suy
dn trong GA l A c di n+1. Gi s quy tc u tin trong suy dn ny l
AB1B2Bk v C1, C2, , Cm l cc k hiu khng kt thc trong cc Bi (1ik),
c ngha l B1B2Bk=1C12C2 mCmm+1, y Ci i c di khng vt
qu n. Theo gi thit quy np, tn ti cc cy Ti ca GCi m kt qu ca n l i v
do ta c th xy dng trong GA cy suy dn c kt qu l nh sau:
S

. C1
1

. C2
2
2

Cm .

m+1
.
m

3.1.3. nh ngha: Cho vn phm phi ng cnh G=<, , S, P>. Ta ni vn phm


G l nhp nhng hay a ngha nu tn ti mt xu l kt qu ca hai cy suy dn
khc nhau trong G.
46

Trong trng hp ngc li, ta ni G l khng nhp nhng hay n ngha.


Mt vn phm phi ng cnh c gi l nhp nhng vnh cu nu khng tn
ti vn phm phi ng cnh n ngha no tng ng vi n.
Ngn ng do vn phm G sinh ra gi l ngn ng nhp nhng nu G l vn
phm nhp nhng.
Th d 2: Vn phm phi ng cnh sau l nhp nhng:
G = <{a, b, +, }, {S}, S, {SS+S, SSS, Sa, Sb}>,
v xu =b+ab+a c hai suy dn tri khc nhau trong G.
S

S
S

S
S

S
a

Cng vi vn phm G trn, vn phm


G = <{a, b, +, }, {S, A}, S, {SA, SA+S, AAA, Aa, Ab}>
l n ngha v L(G)=L(G).
Trong mt vn phm phi ng cnh c th c nhiu yu t tha, chng hn c
nhng k hiu khng h tham gia vo qu trnh sinh cc ngn ng, hoc c nhng
quy tc dng AB ch lm mt thi gian trong qu trnh hnh thnh cc xu ca
ngn ng. V l cn loi b nhng yu t d tha khng c ch trong vic sinh
ngn ng, sao cho vic loi b khng lm nh hng ti qu trnh sinh ngn
ng. iu c ngha l ch cn gi li cc k hiu v cc quy tc c ch trong vn
phm G m chng thc s l cn thit trong qu trnh sinh ngn ng m thi.
3.1.4. nh ngha: Cho vn phm phi ng cnh G=<, , S, P>. X c gi l k
hiu c ch nu tn ti suy dn S X , trong , ()*, X v
*.
Nu k hiu X khng tho mn iu kin trn th X c gi l k hiu tha.
Nh vy X l k hiu tha nu t X khng th dn ra mt xu *. K hiu X c
tnh cht nh th cn c gi l k hiu v sinh. Nu t k hiu u S khng dn
c mt xu no c cha k hiu X th ta ni k hiu X l k hiu khng n

47

c. Nh vy mt k hiu l tha nu n l k hiu v sinh hoc l khng n


c.
3.1.5. B (loi k hiu v sinh): Cho vn phm phi ng cnh G=<, , S, P>
vi L(G). Khi tn ti vn phm phi ng cnh G=<, , S, P> tng ng
vi G sao cho mi A c mt xu * A .
Chng minh: T tp quy tc P ca G, ta xy dng nh sau:
Nu trong P c quy tc dng A vi A, * th kt np A vo .
Nu AX1X2Xn l quy tc trong P m Xi hoc Xi l bin c kt np
vo th a A vo .
C tip tc xt cc quy tc trong P, ta s xy dng cc k hiu cho tp . V
P l hu hn nn qu trnh s c dng li sau mt s hu hn bc. Khi ta
xy dng c tp .
Ta xy dng tip tp quy tc P gm cc quy tc trong P m cc k hiu c
mt trong u thuc tp .
3.1.6. B (loi k hiu khng n c): Cho vn phm phi ng cnh G=<,
, S, P>. Khi tn ti vn phm phi ng cnh G=<, , S, P> tng ng
vi G sao cho mi X c , ()* cho S X.
Chng minh: Xy dng tp v nh sau:
a k hiu S vo . Nu mt bin A c kt np vo v A,
y ()* th ta kt np cc k hiu bin trong vo , cn cc k hiu kt
thc trong th kt np vo .
Th tc kt np trn s ngng khi khng cn b sung thm c bt k k
hiu no na vo cc tp v .
Tp quy tc P c xy dng nh sau:
P bao gm mi quy tc trong P m cc k hiu thuc tp . Vi cch
xy dng , ta c L(G)=L(G), trong G gm cc k hiu n c. T hai b
trn ta c:
3.1.7. nh l: Mi ngn ng phi ng cnh khc rng u c th c sinh ra t
mt vn phm phi ng cnh khng c k hiu tha.
3.1.8. nh ngha: Cho vn phm phi ng cnh G=<, , S, P>. Quy tc trong P
c dng AB, y A, B, c gi l quy tc n hay php i tn.
Quy tc n c tc dng lm ko di qu trnh sinh ra ngn ng, v vy ta s
tm cch loi quy tc n m khng lm nh hng ti qu trnh sinh ra ngn ng
ca vn phm cho.
Lu rng quy tc Aa, vi A v a khng phi l quy tc n.

48

3.1.9. nh l: i vi mi vn phm phi ng cnh m trong tp cc quy tc ca


n c quy tc n th tn ti mt vn phm phi ng cnh tng ng vi n m
trong tp cc quy tc ca n khng cha quy tc n.
Chng minh: Gi s G=<, , S, P> l vn phm phi ng cnh c cha quy tc
n (v khng cha k hiu tha). Ta xy dng vn phm phi ng cnh G=<, ,
S, P> tng ng vi G v khng cha quy tc n.
a tt c cc quy tc khng n ca P vo P. Nu trong P c quy tc
AB, vi A, B, th tn ti suy dn S A B , y ,()*,
* do gm cc k hiu khng tha.
Vy thay cho AB, ta a vo P quy tc SA v A u l cc quy
tc khng n nhng chc nng sinh ngn ng tng ng vi quy tc AB.
Th d 3: Vn phm phi ng cnh
G= <{a, +, }, {S, A, B}, S, {SS+A, SA, AAB, AB, Ba}>
tng ng vi vn phm phi ng cnh sau khng cn cc quy tc n:
G = <{a, +, }, {S, A, B}, S, {SS+A, AAB, Ba, SAB, Aa, Sa}>.
3.1.10. nh l: Cho G=<, , S, P> l vn phm m cc quy tc ca n c dng
A, y A, ()*. Khi L(G) l ngn ng phi ng cnh.
Chng minh: i vi vn phm G nh trn, ta cng c th nh ngha cy suy
dn bng cch s dng t v nh vy ta c th xc nh c rng A hay
khng? lm vic ny, ta ch cn xt cc cy suy dn trong G trong khng c
con ng no di hn s phn t ca . Gi s A1, A2, , An l cc k hiu
khng kt thc m i vi chng ta c Ai . Cui cng ta gi thit rng S khng
c mt trong v phi ca bt k quy tc no ca P. Ta xy dng vn phm phi ng
cnh G=<, , S, P>, trong P cha S nu S v mi quy tc dng
A1k nu AC1 Ck (k1) l mt quy tc trong P v i=Ci, trong
Ci \ {A1, , An} hoc i{Ci, }, trong Ci{A1, , An}, y ta rng
buc mi mt i khng th bng .
G
Bng quy np theo di suy dn, ta c th ch ra rng vi *, S khi
G
v ch khi S .
3.1.11. nh l: Cho L l mt ngn ng phi ng cnh. Khi tn ti s t nhin n
tho mn iu kin vi mi L c d()>n, tn ti cc t u, v, w, x v y sao cho
=uvwxy, y d(w)1, d(vx)1, d(vwx)n v vi mi i (i0), uviwxiyL.
Chng minh: Gi s G=<, , S, P> l vn phm phi ng cnh sinh ra L v P
khng cha cc quy tc n. Gi m l s phn t ca v n=lm+1, vi l l di
cc i ca tt c cc v phi ca cc quy tc trong P.
Ly L(G) sao cho d()>n=lm+1. Khi tn ti cy suy dn m kt qu l
. Gi s T l cy suy dn c kt qu m chiu cao ca n nh nht. D dng
49

thy rng i vi cy suy dn chiu cao h th di ca t nhn c khng vt


qu lh. V l kt qu ca cy T nn d()lh. Mt khc t d()>lm+1 nn suy ra
h>m+1. iu ny c ngha l trong T tn ti mt ng i t gc n l c nhiu
hn m+1 nt v trn ng ny c t nht m+1 k hiu khng kt thc. V rng s
phn t ca l m nn trn ng ny c t nht hai nt c cng mt tn A. Gi T
v T l hai cy con ln nht c cng gc k hiu A nm trn ng i ch ra.
S

T
T

By gi ta xt kt qu ca cy T v phn tch n nh trn hnh v,


=uvwxy. V rng trong G khng c quy tc n, nn t nt A c t nht l hai
nhnh i ra, do d(vx)1 v d(w)1.
cao ca cy T cng lm l m+1, ta chng minh cc nt c k hiu
bi A sao cho phn u tin trong T ca con ng xt mi k hiu ch xut
hin mt ln, do ta c d(vwx)lm+1=n. T cy T, ta c S uAy. Tip theo ta xt
cy T m n l mt cy suy dn ca vn phm GA=<, , A, P>, ta c A
vAx
trong GA, do A vAx trong G. Tip n xt cy T, ta c A w trong GA, do
A w trong G. Cui cng, S uAy, A vAx v A w. T , ta c
S uAy uwy,
S uAy uvAxy uvwxy,
S uAy uvAxy uviwxiy.
3.1.12. H qu: Tn ti ngn ng cm ng cnh m n khng phi l phi ng
cnh.
Chng minh: Trong Th d 10 ca Chng I, ta bit ngn ng L={ambmcm | m
1} c sinh bi vn phm cm ng cnh G = <{a, b, c}, {S, A, B, C}, S, P>,
trong P = {SaSAC, SabC, CABA, BABC, BCAC, bAbb, Cc}.
Ta s chng minh rng khng tn ti vn phm phi ng cnh no sinh ra L.

50

Gi s tn ti mt vn phm nh vy. Theo nh l trn, tn ti s t nhin n


sao cho vi mi t c d()>n u c phn tch thnh =uvwxy, d(vx)1 v
uviwxiyL vi mi i=0, 1, 2,
Ly t =anbncn, vi d()=3n>n. Do ta c =anbncn=uvwxy, d(vx)1.
Trc ht ta thy rng nu trong v hoc trong x cha hai trong ba k hiu a,
b, c th uviwxiyL, do x ch cha mt loi k hiu v trong trng hp ny th
vi i ln, s k hiu a, b, c trong uviwxiy khng bng nhau v v vy
uviwxiyL. iu ny mu thun vi kt qu trn. Vy khng tn ti vn phm phi
ng cnh no sinh ra L.

3.2. TMAT Y XUNG.


Nh ta bit, lp cc ngn ng chnh quy do vn phm chnh quy sinh ra
cng trng vi lp cc ngn ng c on nhn bi tmat hu hn (n nh
hoc khng n nh).
Tng t, ta s thy trong phn ny l lp cc ngn ng phi ng cnh do cc
vn phm phi ng cnh sinh ra s trng vi lp cc ngn ng c on nhn bi
tmat y xung khng n nh (Nondeteministic Pushdown Automata).
ng lu , ch c lp tmat y xung khng n nh mi c th on
nhn ht lp ngn ng phi ng cnh. Cn tmat y xung n nh ch c kh
nng on nhn c lp con thc s ca lp ngn ng phi ng cnh m thi. Tuy
vy, lp ngn ng c on nhn bi lp cc tmat y xung n nh l kh
rng, n bao gm phn ln cc ngn ng lp trnh hin nay. y, ta ch cp ti
tmat y xung khng n nh m ngi ta thng gi tt l NDPA hay gn
hn l PA.

3.2.1. M u:
Mt tmat y xung bao gm mt bng vo, mt ngn xp v mt b iu
khin nh hnh di y:
x1

x2

xn-1

xn

Bng vo

q
Ngn
xp

B iu khin

tmat y xung cng nh tmat hu hn c b iu khin l tp hu hn


cc trng thi. u c ca tmat cho php c ln lt cc k hiu trn bng vo
51

t tri sang phi. Ngoi ra, tmat y xung cn c thm bng lm vic (ngn
xp) hay stack, nh c n m b nh ca tmat y xung c tng ln so vi
kh nng nh ca tmat hu hn. Ngn xp c t chc theo nguyn tc k hiu
vo sau th ra trc, ging nh np n. Khi a k hiu vo ngn xp th k
hiu c tr thnh k hiu u ca ngn xp. Khi ngn xp c th k hiu
l k hiu trn cng v khi k hiu c xong th n s b loi khi ngn xp.
Mt ngn xp nh vy cn c gi l mt danh sch y xung.
Cn c vo trng thi hin ti ca b iu khin, k hiu vo m u c
ang quan st v k hiu u ca ngn xp, tmat y xung s chuyn sang mt
trng thi mi no v ng thi u c c th c chuyn sang bn phi.
Nu u c chuyn sang bn phi th ta gi qu trnh trn l mt bc chuyn.
Ngc li, nu k hiu vo khng nh hng ti bc chuyn th ta gi l bc
chuyn nhm mt v trong bc chuyn u c vn ng yn ti ch. Thc
cht ca bc chuyn nhm mt l s tm ngng quan st bng vo chn
chnh li ngn xp.
C hai cch on nhn xu vo ca tmat y xung:
Cch 1: Xu vo c c xong v tmat y xung chuyn c v mt trng
thi kt thc no .
Cch 2: Xu vo c c xong v ngn xp tr thnh rng.
Sau ny ta s ch ra hai cch on nhn trn l tng ng.
Th d 4: Cho vn phm phi ng cnh:
G = <{0, 1, c}, {S}, S, {S0S0, S1S1, Sc}>.
D dng thy rng L(G)={cR | {0, 1}*} (R l xu vit cc k hiu ca xu
theo mt th t ngc li). Chng hn, i vi xu =010011 th xu
cR=010011c110010 s c dn xut sau y: (S, 0S0, 01S10, 010S010,
0100S0010, 01001S10010, 010011S110010, 010011c110010).
Mt khc xu cR c th c on nhn bi tmat y xung nh sau:
Trc ht t xu x=cR ln bng vo. u c dch chuyn t tri sang
phi. Ban u ngn xp rng. tmat y xung c hai trng thi p, q trong p l
trng thi u. Khi trng thi u p, u c c k hiu trn bng vo l 0 hoc
1 v n a k hiu vo ngn xp. Trng thi ca tmat y xung lc vn
l p. u c dch chuyn sang bn phi mt v c k hiu trn mi ny. Nu
k hiu ny l 0 hoc 1 th tmat y xung a k hiu vo ngn xp, trng
thi ca tmat vn l p v u c li c chuyn sang phi mt .
Qu trnh vn tip tc cho ti khi u c gp k hiu c. Khi tmat s
chuyn trng thi p sang trng thi q v u c chuyn sang phi mt . Ti thi
im ny ngn xp xut hin xu . K hiu bn phi nht ca nm trn cng
52

ca ngn xp, cn trng thi ca tmat l q. u c ang ch bn phi k hiu


c. Nu k hiu ca ny l k hiu ca trn cng ca ngn xp th tmat y
xung loi k hiu trn cng ra khi ngn xp, k hiu di n li ln v tr u ca
ngn xp, tmat y xung chuyn u c sang phi mt , cn trng thi vn l
q. Qu trnh c tip tc v c hai kh nng xy ra:
1) tmat y xung c ht xu x v ngn xp tr thnh rng th tmat
dng li v on nhn c xu x=cR.
2) Cc k hiu ngn xp cha b loi ht th u c gp k hiu trn xu
vo khc k hiu trn cng ca ngn xp. Trong trng hp ny tmat y xung
khng on nhn xu x.
Nh c ngn xp m tmat y xung c kh nng nh c na u ca
xu x=cR vi c di tu v sau n so snh dn vi na cui R ca x.
tmat hu hn khng c kh nng ny.
By gi ta nh ngha mt cch hnh thc tmat y xung nh sau:
3.2.2. nh ngha: Mt tmat y xung l mt b by:
M = <Q, , , , q0, z0, F>,
trong ,
l mt bng ch, gi l bng ch vo, mi k hiu trong gi l k hiu vo;
Q l mt tp hu hn, khc rng cc trng thi sao cho Q=;
l mt bng ch m cc k hiu ca n gi l cc k hiu ca ngn xp;
z0 l k hiu c bit, gi l k hiu y ca ngn xp (cn gi l k hiu u
ca danh sch y xung);
q0Q gi l trng thi u;
FQ gi l tp cc trng thi kt thc;
P(Q x *) gi l hm chuyn ca M.
: Q x ({}) x
Mt ng thc dng:
(q, a, z)={<q1, 1>, <q2, 2>, , <qm, m>},
trong q, qiQ, a, z, i*, i=1, , m c gi l mt bc chuyn ca
tmat y xung M. N ang trng thi q, c k hiu a bng vo v z l k
hiu nh ngn xp. Khi n chuyn sang trng thi qi, thay k hiu z nh
ngn xp bng xu i, i=1, , m, ng thi chuyn u c sang bn phi mt .
Quy c rng khi a i vo ngn xp, k hiu bn tri nht ca i s nm phn
di, cn k hiu bn phi nht ca i s nm u ngn xp.
Mt ng thc dng:
(q, , z)={<q1, 1>, <q2, 2>, , <qm, m>}
din t mt bc chuyn nhm mt ca tmat y xung M: tmat trng
thi q, k hiu z nh ngn xp. Khi tmat y xung chuyn trng thi q v
53

qi v thay z nh ngn xp bi xu i (1im), cn u c th khng dch


chuyn.
mt thi im, tnh hung tc thi ca tmat y xung xc nh bi ba
yu t:
Xu * trong ngn xp (vi quy c l k hiu bn tri nht ca nm y
ngn xp).
Trng thi qQ.
Phn xu vo x* cha c c n trn bng vo (vi quy c k hiu bn
tri nht ca x l k hiu s c c tip).
3.2.3. nh ngha: Cho tmat y xung M = <Q, , , , q0, z0, F>. Mt hnh
trng (hay cu hnh) ca M l mt b ba <q, , >, trong qQ, *, *.
Gi s =a1a2ak*, =x1x2xm*. Di tc ng ca nh x chuyn
trng thi, M c th chuyn t hnh trng ny sang hnh trng khc theo nguyn tc
sau:
1) Nu <p, >(q, a1, xm) th hnh trng <q, a1a2ak, x1x2xm> c th chuyn
sang hnh trng <p, a2ak, x1x2xm-1> v k hiu:
<q, a1a2ak, x1x2xm> <p, a2ak, x1x2xm-1>.
2) Nu <p, >(q, , xm) th hnh trng <q, a1a2ak, x1x2xm> c th chuyn
sang hnh trng <p, a1a2ak, x1x2xm-1> v k hiu:
<q, a1a2ak, x1x2xm> <p, a1a2ak, x1x2xm-1>.
3.2.4. nh ngha: Cho tmat y xung M = <Q, , , , q0, z0, F> v *.
Ta ni rng tmat M on nhn t theo tp trng thi kt thc nu tn ti mt
dy hu hn cc hnh trng K0, K1, , Kn sao cho:
1) K0=<q0, , z0>, gi l hnh trng u;
2) Kn=<p, , >, pF, gi l hnh trng kt thc;
3) K0 K1 K2 Kn.
K hiu T(M)={*| c on nhn bi M theo tp trng thi kt thc}.
T(M) c gi l ngn ng c on nhn bi tmat y xung M theo
tp trng thi kt thc.
3.2.5. nh ngha: Cho tmat y xung M = <Q, , , , q0, z0, F> v *.
Ta ni rng tmat M on nhn t theo ngn xp rng nu tn ti mt dy hu
hn cc hnh trng K0, K1, , Kn sao cho:
1) K0=<q0, , z0>, gi l hnh trng u;
2) Kn=<p, , > gi l hnh trng kt thc;
3) K0 K1 K2 Kn.
K hiu N(M)={* | c on nhn bi M theo ngn xp rng}.

54

N(M) c gi l ngn ng c on nhn bi tmat y xung M theo


ngn xp rng.
Th d 5: Cho tmat y xung M=<{q0, q1, q2}, {a, b}, {z0, z1}, , q0, z0, {q2}>,
trong (q0, , z0)={<q0, >}, (q0, a, z0)={<q1, z0z1>}, (q1, a, z1)={<q1, z1z1>},
(q1, b, z1)={<q2, >}, (q2, b, z1)={<q2, >}, (q2, , z0)={<q0, >} ( y, nh ca
cc b ba khc qua c hiu l ).
Xt cc t =aabb v =abaab. Ta c:
<q0, aabb, z0> <q1, abb, z0z1> <q1, bb, z0z1z1> <q2, b, z0z1> <q2, , z0>
<q0, , >.
<q0, abaab, z0> <q1, baab, z0z1> <q2, aab, z0>.
Do N(M), N(M), T(M). Tng qut, ta c th chng minh c rng
N(M)=T(M)={anbn | n0}.
Th d 6: Cho tmat y xung M=<{q0, q1}, {0, 1}, {z0, z1, z2}, , q0, z0>, trong
(q0, 0, z0)={<q0, z0z1>}, (q0, 0, z1)={<q0, z1z1>, <q1, >},
(q0, 0, z2)={<q0, z2z1>}, (q0, 1, z0)={<q0, z0z2>}, (q0, 1, z1)={<q0, z1z2>},
(q0, 1, z2)={<q0, z2z2>, <q1, >}, (q1, 0, z1)={<q1, >},
(q1, 1, z2)={<q0, z2z2>, <q1, >}, (q0, , z0)={<q1, >}, (q1, , z0)={<q1, >}.
Xt =110011, ta c th v cy biu din cc kh nng bin i ca cc hnh
trng nh sau:
<q0, 110011, z0>

<q0, 10011, z0z2>


<q1, 0011, z0>

<q0, 0011, z0z2z2>


<q0, 011, z0z2z2z1>

<q1, 11, z0z2z2>

<q0, 11, z0z2z2z1z1>

<q0, 1, z0z2z2z2>

<q0, 1, z0z2z2z1z1z2>
<q0, , z0z2z2z1z1z2z2>

<q1, , z0z2z2z1z1>

<q0, , z0z2z2z2z2>

<q1, 1, z0z2>

<q0, , z0z2z2>

<q0, , z0z2z2>

<q1, , z0>
<q1, , >

55

ng in m l dy dch chuyn t hnh trng u <q0, , z0> n hnh


trng cui <q1, , > theo ngn xp rng.
3.2.6. Ch : Cng nh i vi tmat hu hn, ta c th m t tmat y xung
bng th chuyn. l mt a th c hng, c khuyn G vi tp nh ca G
l Q. Vi a{}, p, qQ, z, *, nu <p, >(q, a, z) th s c mt cung
t q ti p c gn nhn l (a, z/).
Chng hn, th chuyn ca tmat y xung M trong Th d 5 l:
<a, z1/z1z1>

q1
<a, z0/z0z1>
q0
<, z0/>

<b, z1/>
<, z0/>

q2
<b, z1/>

3.2.7. nh l: Cho L l mt ngn ng phi ng cnh. Khi tn ti mt tmat


y xung M on nhn L theo tp trng thi kt thc.
Chng minh: Gi s G=<, , S, P> l vn phm phi ng cnh sinh ra ngn ng
L. Ta xy dng tmat y xung M=<Q, , , , q0, z0, F> on nhn L vi:
Q={q0, q1, q2} l tp cc trng thi,
={%} l tp cc k hiu ngn xp, k hiu % l khng thuc ,
z0=S l k hiu u ca ngn xp,
q0Q l trng thi u,
F={q2} l tp cc trng thi kt thc,
Hm chuyn : Q x ({}) x
P(Q x *) c nh ngha qua cc biu
thc sau:
1) (q1, , z)={<q1, wR> | zwP, z, w*}.
2) (q1, a, a)={<q1, >}, vi mi a.
3) (q1, , %)={<q2, %>}.
4) (q0, , S)={<q1, %S>}.
Gi s wL(G). Khi tn ti dy suy dn y trong G l
D=(S, u1z1v1, u1u2z2v2, , u1un-1zn-1vn-1, u1u2un=w),
y zi, ui, vi (1in-1) v un*.
Da vo cc quy tc ca G s dng trong dy suy dn y D ca xu w,
tmat y xung M on nhn w theo nguyn tc sau:
p dng hm chuyn trong cc biu thc 4, 1, 2, ta c:
<q0, w, z0> <q1, w, %S> <q1, u1u2un, %v1Rz1u1R> <q1, u2u3un, %v1Rz1>.
Gi s cc quy tc tip theo (sau quy tc Su1z1v1) trong D l zixiP
(i=1, 2, , n-2) vi zi, xi sao cho xivi=ui+1zi+1vi+1. Khi M sau thi
56

im thc hin quy tc Su1z1v1 n c hnh trng <q1, u2u3un, %v1Rz1>. Hnh
trng ca M khi p dng quy tc zixi bin i nh sau:
<q1, u2u3un, %v1Rz1> <q1, u3un, %v1Rx1R>=<q1, u3un, %v2Rz2 u2R>
<q1, u3un, %v2Rz2> <q1, un, %vn-1Rzn-1>.
Trong D, s dng quy tc zn-1xn-1P vi xn-1vn-1=un, ta c:
<q1, un, %vn-1Rzn-1> <q1, un, %vn-1Rxn-1R> <q1, , %> <q2, , %>.
<q2, , %>
T ta c dy suy dn cc hnh trng trong M: <q0, w, z0>
m q2F nn M on nhn c xu w theo tp trng thi kt thc.
Th d 7: Cho vn phm phi ng cnh
G=<{a, b}, {S, A}, S, {Sa, SbSA, Ab, SbA, AaS}>.
Theo chng minh ca nh l 3.2.7, ta c th xy dng tmat y xung on
nhn L(G) nh sau:
M = <{q0, q1, q2}, {a, b}, {a, b, S, A, %}, , q0, S, {q2}>,
trong (q1, , S)={<q1, a>, <q1, Asb>, <q1, Ab>}, (q1, , A)={<q1, b>,<q1, Sa>},
(q1, a, a)={<q1, >}, (q1, b, b)={<q1, >}, (q1, , %)={<q2, %>},
(q0, , S)={<q1, %S>}.
3.2.8. nh l: Cho tmat y xung M. Khi tn ti tmat y xung M sao
cho N(M)=T(M).
Chng minh: Gi s M=<Q, , , , q0, z0, F> l tmat y xung no . Ta
xy dng tmat y xung M=<Q, , , , q0, z0, F> sao cho N(M)=T(M).
Mun vy ta a thm vo k hiu trng thi mi q1, q2Q v k hiu ngn
xp mi % v t:
=, Q=Q{q1, q2}, ={%}, q0=q1, z0=%, F=,
: Q x ({}) x
P(Q x *) c nh ngha nh sau:
1) (q1, , %)={<q0, %z0>},
2) (q, x, z)=(q, x, z) vi x, qQ, z,
3) (q, , z)=(q, , z) nu qQ \ F, z v (q, , z)=(q, , z){<q2, >}
nu qF, z,
4) (q, , %)={<q2, >} vi qF,
5) (q2, , z)={<q2, >} vi z{%}.
By gi ta ch ra N(M)=T(M).
Gi s wN(M). Khi theo cch lm vic ca M th ta c mt dy cc
hnh trng sau:
<q0, w, z0>=<q1, w, %> K1 K2 Kt=<q, , >,
vi t2, Ki=<qi, wi, zi>, wi*, qiQ, zi* (i=1, 2, , t).
Theo cch xy dng ca M th
K1=<q0, w, %z0>, Kt=<q2, , > v wN(M).
57

T i<t sao cho Ki=<qi, , %zi> <q2, , %zi+1>, y qiF, zi, zi+1* v
<qj+1, wj+1, %zj+1>, y wj*, qjQ, zj* (1ji). Cng
Kj=<qj, wj, %zj>
nh Kj=<q2, , %zi>, y zj* (1<j<t). T <q0, w, z0> <qi, , %zi> v do
qiF suy ra wT(M).
Tm li ta c bao hm thc N(M)T(M). Bao hm thc ngc li
T(M)N(M) c suy trc tip t cch xy dng M t M.
3.2.9. nh l: Cho M l mt tmat y xung. Khi tn ti mt vn phm phi
ng cnh G sao cho L(G)=N(M).
Chng minh: Gi s M=<Q, , , , q0, z0, F> l mt tmat y xung. Theo
nh l 3.2.8, ta cn ch ra c vn phm phi ng cnh G=<, , S, P> sao cho
L(G)=N(M). Khng mt tnh cht tng qut, gi s N(M). Ta xy dng vn
phm G trn nh sau:
={S}{[q1, z, q2] | q1, q2Q, z},
P=P1P2P3, y P1={S[q0, z, q] | qQ, z},
P2={[t1, z, t2]x[t3, zn, qn-1][qn-1, zn-1, qn-2][q2, z2, q1][q1, z1, t2] | n1, qiQ
(1in), t1, t2, t3Q, x{}, <t3, z1z2zn>(t1, x, z)},
P3={[t1, z, t2]x | <t2, >(t1, x, z) vi z, t1, t2Q, x{}}.
Ngi ta ch ra c vi G nh ngha nh trn l vn phm phi ng cnh
m L(G)=N(M).
Lu rng gi P1, P2, P3 ln lt l lp cc ngn ng phi ng cnh, lp cc
ngn ng c on nhn bi tmat y xung theo tp trng thi kt thc, lp
cc ngn ng c on nhn bi tmat y xung theo ngn xp rng, ta c:
P1 P2 (theo nh l 3.2.7),
P2 P3 (theo nh l 3.2.8),
P3 P1 (theo nh l 3.2.9).
V vy, P1=P2=P3.

58

BI TP CHNG III:
1. Cho vn phm phi ng cnh:
G=<{x, +, , (, )}, {S, A, B}, S, {SA | S+A, AAB | B, Bx | (S)}>
v =(x+xx)(x+xxx). Hy tm mt suy dn t S ca v v cy suy dn c
kt qu l .
2. Chng t cc vn phm phi ng cnh sau l nhp nhng:
a) G = <{a, b}, {S, A}, S, {SA, AAbA, Aa}>.
b) G = <{a, b}, {S, A, B}, S, {SA, ABb, AAb, BBb, Aa, Bb}>.
c) G = <{a, b, c, +, }, {S, A}, S, {SS+S | AA | a | b | c, AS+S | a | b | c}>.
3. Hy chng minh cc ngn ng sau y khng phi l phi ng cnh:
a) L = {a2n | n0}.
b) L = {ap | p l mt s nguyn t}.
4. Hy cho tmat y xung on nhn cc ngn ng sau:
a) L = {anb2n | n0}.
b) L = {a2ncbn | n0}.
c) L = {{0, 1}* | n0()>n1()}.
5. V th chuyn ca tmat y xung c cho di y v xc nh ngn
ng c on nhn bi n.
M = <{q0, q1}, {a, b, c}, {z0, z1, z2}, , q0, z0, },
trong (q0, a, z0)={<q0, z0z1>}, (q0, a, z1)={<q0, z1z1>},
(q0, a, z2)={<q0, z0z1>}, (q0, b, z0)={<q0, z0z1>},
(q0, b, z1)={<q0, z1z2>}, (q0, b, z2)={<q0, z2z2>},
(q0, c, z0)={<q0, z0>}, (q0, c, z1)={<q1, z1>},
(q0, c, z2)={<q1, z2>}, (q1, b, z2)={<q1, >},
(q1, a, z1)={<q1, >}, (q1, , z0)={<q1, >}.
6. Hy xy dng cc tmat y xung on nhn cc ngn ng phi ng cnh
c sinh bi cc vn phm sau:
a) G = <{a, b}, {S}, S, {SaSb, Sab}>.
b) G = <{a, b}, {S, A, B}, S, {SAB, AaAa, BbBb, Aa, Bb}>.
c) G = <{a, b, c}, {S, A, B, C}, S, {SABC, AaA | a, BbB | b, CcC | c}>.
d) G = <{a, b, c}, {S, A, B}, S, {SAB, AaAb, BBc, Aab, Bc}>.

59

CHNG IV:

MY TURING
Khi thit k v ci t mt phn mm tin hc cho mt vn no , ta cn
phi a ra phng php gii quyt m thc cht l thut ton gii quyt vn
ny. R rng rng, nu khng tm c mt phng php gii quyt th khng th
lp trnh c. Chnh v th, thut ton l khi nim nn tng ca hu ht cc lnh
vc ca tin hc. Ta c th hiu khi nim thut ton nh sau. Nu cho trc mt
bi ton th mt cch gii bi ton c phn nh ra thnh mt s hu hn bc,
c kt thc cui cng v t c kt qu mong mun gi l thut ton.
V mt lch s, trong nhng nm 30 ca th k trc, khi khoa hc v cng
ngh pht trin, nhn loi nu ra nhiu bi ton m khng tm thy li gii. C
ngha l khng tm c thut ton gii chng. Ngi ta phi tm cch nh
ngha chnh xc khi nim thut ton. Nm 1936 A. Turing a ra mt cng c
rt tt m t thut ton m ngy nay ngi ta gi l my Turing. ghi nh
cng lao ny, Hi Tin hc M (ACM) t ra gii thng Turing trong tin hc.
Cho n nay, gii thng Turing l gii thng tin hc ln nht th gii. Tip theo
Turing, mt s nh khoa hc khc a ra cc cng c chnh xc ho khi nim
thut ton. l cc khi nim hm quy, thut ton Marcop, vn phm sinh ca
N. Chomsky. Nhng khi nim ny l c s pht trin ca vic nghin cu v ng
dng thut ton. Mt khc chnh nh cc khi nim ny, ngi ta cng xc nh
c nhng bi ton khng th gii c bng thut ton.
A. Turing xut khi nim my Turing nhm chnh xc ho khi nim
thut ton. Thc t chng t rng my Turing l mt cng c rt tt m t
thut ton. Tri qua nhiu thp nin, l thuyt v my Turing pht trin khng
ngng bi s ng gp cng sc ca nhiu nh khoa hc, trong c nhng cng
trnh nn tng ca Hartmanis, Lewis, Stearns, Minsky, Blum, Hopcroft, Ullman.
Thc cht, my Turing l mt m hnh my. N phn r ton b qu trnh
hot ng ra thnh cc bc thao tc rt n gin. Bn thn my Turing l mt m
hnh khi qut v n gin c th m hnh ho mt qu trnh tnh ton bt k.
My Turing c th xem l mt my vi b nh ngoi c dung lng c
xem nh v hn. Trong b nh ngoi, cc gi tr c b tr sao cho c th truy
cp, c v sa i c.
Ta c th xem my Turing nh l mt my on nhn mt ngn ng gi l
ngn ng m c quy. ng thi c s dng m t mt lp hm quan
trng, gi l cc hm c th tnh c. Chng ny cng m t mt my Turing

60

ph dng m n c th bt chc hot ng ca tt c cc my Turing khc. T


ta i n khi nim bi ton khng gii c bng thut ton.

4.1. MY TURING V LP CC HM C TH TNH C.


4.1.1. nh ngha: My Turing n nh l mt b by
M = <Q, , , , s0, B, F>,
trong ,
Q l tp hu hn khc rng, gi l tp cc trng thi;
l mt bng ch, gi l bng ch vo hay bng ch trong;
l mt bng ch, , gi l bng ch ngoi hay tp cc k hiu c th ghi
c ln bng;
Q x x {R, L}, vi DQ x v R, LQ x , gi l nh x chuyn;
: D
s0Q, gi l trng thi u;
B \ , gi l k hiu trng;
FQ, gi l tp cc trng thi kt thc.
Trong trng hp min gi tr ca l P(Q x x {R, L}) th my Turing
c gi l khng n nh v lp cc ngn ng c on nhn bi my Turing
n nh v khng n nh s trng nhau. Ngoi ra, c nhiu dng my Turing;
chng hn, my Turing vi bng v hn mt u hoc bng v hn hai u. y,
ta ch xt lp cc my Turing n nh vi bng v hn hai u.
4.1.2. nh ngha: Cho my Turing M = <Q, , , , s0, B, F>. B ba <, s, a>,
trong , *, sQ, a, khng c bt u v khng c kt thc bi
B, c gi l mt hnh trng ca M. a c gi l t ng vi hnh trng cho.
B ba <, s0, a>, trong a, *, c gi l hnh trng u (c t
ng vi n l a).
4.1.3. nh ngha: Cho my Turing M = <Q, , , , s0, B, F>. Ta ni hnh trng
=<, s, a> chuyn n hnh trng ca M, k hiu M hay n gin l ,
nu tho mn mt trong cc iu sau:
1) (s, a)=<q, b, R>:
a) =c1, c, 1*:
+ <b, q, c1>, nu b{B}*,
B

c
q

<, q, c1>, nu b{B}*,

61

c
q

b) =:
+ =<, s, a>
a

<b, q, B>, nu b{B}*,


B

+ =<, s, a>
B

<, q, B>, nu b{B}*,


B

2) (s, a)=<q, b, L>:


a) =1d, d, 1*:
+ <1, q, db>, nu db{B}*,
B

<1, q, B>, nu db{B}*,


B

b) =:
+ =<, s, a>
a

<, q, Bb>, nu Bb{B}*,


B

B
q

s
62

<, q, B>, nu Bb{B}*,

+ =<, s, a>
B

i+1 (1in-1)
Dy hnh trng i (1in) ca my Turing M sao cho i
M
c gi l qu trnh tnh ton trong M, k hiu 1 n hay n gin l 1 n.
Cc hnh trng khng th chuyn n hnh trng mi c gi l hnh trng
cui. Qu trnh tnh ton c bt u bi hnh trng u v kt thc bi hnh trng
cui c gi l mt qu trnh tnh ton hon chnh.
4.1.4. nh ngha: Cho my Turing M = <Q, , , , s0, B, F> v *. Ta ni
M on nhn nu tn ti qu trnh tnh ton hon chnh <, s0, > <, q, a>
vi qF. Tp hp cc t c on nhn bi my Turing M c gi l ngn ng
c on nhn bi M, k hiu T(M).
Ngn ng c on nhn bi my Turing cn c gi l ngn ng quy
m c (Recursively Enumerable). Ngn ng c on nhn bi my Turing
m n s dng sau mt s hu hn bc i vi mi t vo c gi l ngn ng
quy. T nh ngha suy ra rng mi ngn ng quy u l ngn ng quy
m c.
4.1.5. Ch : S hot ng ca my Turing c th hin nh x chuyn. nh
x ny c th c m t bng bng hoc th chuyn.
Bng gm cc ct c nh du bng cc k hiu ca v cc dng c
nh du bng cc trng thi. Nu (s, a)=<q, b, C>, vi a, b, s, qQ, C{R,
L} th b ba <b, C, q> c ghi vo ng vi dng s ct a.
th chuyn l mt a th c hng, c khuyn G vi tp nh ca G l
Q. Vi a, b, s, qQ, C{R, L}, nu (s, a)=<q, b, c> th c mt cung t s n q
vi nhn l <a/b, C>.
Th d 1: Cho my Turing:
M = <{s0, s1, s2, s3, s4, s5, s6}, {0, 1}, {B, 0, 1, X}, , s0, B, {s0}>,
trong
(s0, 0)=<s1, X, R>, (s0, 1)=<s2, X, R>, (s1, 0)=<s1, 0, R>,
(s1, 1)=<s1, 1, R>, (s1, B)=<s3, B, L>, (s2, 0)=<s2, 0, R>,
(s2, 1)=<s2, 1, R>, (s2, B)=<s4, B, L>, (s3, 0)=<s5, B, L>,
(s4, 1)=<s6, B, L>, (s5, 0)=<s5, 0, L>, (s5, 1)=<s5, 1, L>,
(s5, X)=<s0, X, R>, (s6, 0)=<s6, 0, L>, (s6, 1)=<s6, 1, L>,
(s6, X)=<s0, X, R>.
63

nh x chuyn c th cho bng bng sau:


B
S0
S1
S2
S3
S4
S5
S6

<B, L, s3>
<B, L, s4>

0
<X, R, s1>
<0, R, s1>
<0, R, s2>
<B, L, s5>
<0, L, s5>
<0, L, s6>

1
<X, R, s2>
<1, R, s1>
<1, R, s2>
<B, L, s6>
<1, L, s5>
<1, L, s6>

<X, R, s0>
<X, R, s0>

th chuyn ca M l:
<1/B,L>

<1/1,L>

s4

<B/B,L>

s6

<1/1,R>

s2

<0/0,L>

<0/0,R>
<X/X,R>
<X/X,R>

<1/1,L>

<1/X,R>
<0/X,R>

s0

s5

<1/1,R>

s1

<0/0,L>

<0/0,R>
<0/B,L>

<B/B,L>

s3

Ta hy xem my Turing M hot ng nh th no i vi cc t 001 v


1001.
i vi t 001, ta c dy hnh trng:
<, s0, 001> <X, s1, 01> <X0, s1, 1> <X01, s1, B> <X0, s3, 1>.
R rng <X0, s3, 1> hnh trng cui, nhng s3 khng phi l trng thi kt
thc, do M khng on nhn t 001.
i vi t 1001, ta c dy hnh trng:
<, s0, 1001> <X, s2, 001> <X0, s2, 01> <X00, s2, 1> <X001, s2, B>
<X00, s4, 1> <X0, s6, 0> <X, s6, 00> <B, s6, X00> <X, s0, 00>
<XX, s1, 0> <XX0, s1, B> <XX, s3, 0> <X, s5, X> <XX, s0, B>.
<XX, s0, B> l hnh trng cui v s0 l trng thi kt thc nn t 1001 c
on nhn bi my Turing M.
T th chuyn d dng thy rng M hot ng vi xu vo nh sau: M
c xu t tri sang phi. Bt u t trng thi s0, thay k hiu c bi k
hiu X, ng thi nu k hiu va c l 0 th chuyn sang trng thi s1 v nu
64

ngc li th chuyn sang trng thi s2. Ti cc trng thi s1 hoc s2, my M chuyn
u c qua phi m khng thay i k hiu c c cho n khi gp k hiu B.
T s1 my chuyn sang s3 v t s2 my chuyn sang s4. T s3 nu gp 0 th xo 0 v
sang s5, t s4 nu gp 1 th xo 1 v sang s6. y, ta cn lu rng xo 0 trong
trng hp xut pht t s0, my thay 0 bi X v xo 1 trong trng hp xut pht
t s0, my thay 1 bi X. Ti cc trng thi s5 v s6, my dch chuyn qua tri m
khng lm thay i cc k hiu trn bng cho n khi gp k hiu X, my quay tr
li s0 v tip tc qu trnh trn cho n khi my dng cc trng hp sau:
My trng thi s3 gp 1 hoc trng thi s4 gp 0. Trong trng hp ny r
rng ban u khng c dng R v my khng on nhn t ny.
My trng thi s0 v gp k hiu B. iu ny c ngha l cc k hiu 0, 1 trn
bng c thay bng X hoc B. iu ny ch xy ra khi xu vo c dng R.
Vy T(M)={R | {0, 1}*}.
4.1.6. nh ngha: Cho my Turing M = <Q, , , , s0, B, F>. Hm c xc
nh bi my Turing M l hm:
khi < , s 0 , a ' > < ' , q, b ' ' > l mt qu trnh tnh ton hon chnh

f M ( ) = y a ' = , ' b ' ' = ;


Khng xc nh khi khng tn ti qu trnh nh vy.

Th d 2: Cho hm f()=B ({0, 1}*). Ta xy dng my Turing M xc nh


hm f nh sau:
M = <{s0, s1, s2, s3, s4, s5, s6, s7, s8}, {0, 1}, {0, 1, X, Y, B}, , s0, B, >,
trong nh x chuyn c ch ra trong th chuyn di y:
<0/0,R>

<1/1,R>

s3

<1/1,R>

<B/B,R>

<0/0,R>
<B/1,L>

s4

<1/Y,R>

s8

<B/B,R>

s7

<0/0,L>

<B/B,L>

s0

<X/0,R>
<Y/1,R>

s6

<0/0,L>

<0/X,R>

s1

<1/1,L>
<0/0,R>

<1/1,R>

<B/B,L>
<1/1,L>

<B/B,R>

s2

s5

<1/1,L>

<0/0,L>
<B/0,L>
<0/0,R>

<1/1,R>

M hot ng nh sau: k hiu u tin ca c thay bi X hoc l Y tu


thuc vo k hiu l 0 hay 1, sau u c/ghi chuyn sang phi tm k
hiu B, thay k hiu B tip theo bng 0 hoc 1 tu thuc trc ghi x hay Y.
Sau chy ngc li tm k hiu X hay Y v thay n bi 0 hoc 1 tng ng
v li chuyn sang phi. Nu k hiu ny l B th tnh ton kt thc, ngc li th
65

lp li qu trnh trn. D dng thy rng, sau mi vng thc hin mt k hiu ca
c ghi sang bn phi v khi qu trnh tnh ton kt thc trn bng l B hay
fM=B.
4.1.7. nh ngha: Cho hm f: D
N, vi N l tp s t nhin, DNm v m l
mt s nguyn dng. y, vi mi s t nhin n, k hiu n =1n+1. Ta ni hm f
c th tnh c bng my Turing nu tn ti my Turing M xc nh hm sau:
B f (n1 , n2 ,..., nm ) nu f(n1, n2, , nm) tn ti v

h(B n1 B n 2 n m1 B n m )= <, s0, B n1 B n 2 n m1 B n m > <, q, B f (n1 , n2 ,..., nm )


l qu trnh tnh ton hon chnh;
Khng xc nh nu f(n , n , , n ) khng tn ti.
1
2
m
Th d 3: Cho hm f(n1, n2)=n1+n2. Ta xy dng my Turing M vi th chuyn
nh sau:
s0

<B/B,R>

s1

<B/1,R>

<1/1,R>

s2

<B/B,L>

<1/B,L>

s3

<1/B,L>

s4

s5

<1/1,L>

<1/1,R>

i vi my Turing M, vi hnh trng u l <, s0, B n1 B n 2 > ch c cc qu


trnh tnh ton hon chnh vi hnh trng kt thc <, s5, B n1 + n2 >. Do f l hm
c th tnh c bng my Turing.
n n1 nu n2n1;
Th d 4: Cho hm f(n1, n2)= 2
Khng xc nh nu ngc li.
My Turing M c th chuyn di y vi hnh trng u <, s0, B n1 B n 2 > v
trong trng hp xc nh, hnh trng cui l <, s7, B n2 n1 > s xc nh hm f.
s0

<B/B,R>

s1

<1/B,R>
<X/B,R>

s2

<B/B,R>
<1/X,R>

s6

<1/1,L>

s7

<B/B,R>

<B/B,L>
<1/1,L>

s5

s3
<B/B,R>

<1/B,L>

s4

<B/B,R>
66

<1/1,R>

0 khi n2 n1 ;
Khi hm f c th tnh c bng
Th d 5: Cho hm f(n1, n2)=
1 khi n2 < n1 .
my Turing M c th chuyn di y. Hnh trng u l <, s0, B n1 B n 2 >, hnh
trng cui l s l <, s12, B1> trong trng hp n2n1 v <, s12, B11> trong
trng hp n1>n2.
<X/X,R>
<X/B,L
<X/B,L
s3

<1/X,R
<X/X,L

<B/B,L

<B/B,L

s9

s10

<B/1,L

s11

<B/B,R
<1/1,R

s4
<B/B,L

<B/1,L

s2

<1/1,R

s12

<1/1,L
<1/X,R

s5
<X/X,R

s1

<B/B,R

<B/1,L

<B/B,L

s6

<X/X,L

<B/B,R

s7

<X/B,R

<B/B,R

s8

<X/B,R
<1/B,R

s0

Th d 6: Chng ta a ra mt ngn ng chng trnh thch hp cho vic m t


hot ng ca my Turing. Ngn ng ny da trn cc ch th c s sau:
k: print A,
k: move right,
k: move left,
k: if A then go to h,
k: stop,
y, k v h l cc s t nhin k hiu dng ch th, cn A l mt k hiu trn
bng.
Chng trnh l mt dy ch th. Vic thc hin chng trnh thng thng
l theo th t t nhin ca cch vit tr khi gp lnh if A then go to h (nu k hiu
hin hnh trn bng l A th nhy n thc hin lnh c nhn h). Sau y l chng
trnh m t hot ng ca mt my Turing thc hin php ton nhn hai:
67

1: print B,
2: move left,
3: if 1 then go to 2,
4: print 1,
5: move left,
6: if 1 then go to 5,
7: print 1,
8: move right,
9: if 1 then go to 1,
10: stop,
Cc my Turing v cc hm c th tnh c bng my Turing ng vai tr
quan trng trong l thuyt thut ton. C s cho vic xy dng mt s l thuyt
thut ton t my Turing l nh Church sau y.
nh Church: Lp cc hm c th tnh c bng thut ton trng vi lp cc
hm c th tnh c bng my Turring.

4.2. MY TURING PH DNG.


4.2.1. M u:
My Turing ph dng l mt my Turing c th bt chc s hot ng ca
bt k my Turring no. My Turing ph dng U c th c hiu nh sau: vi
mt cch m ho thch hp nh x chuyn trng thi ca my Turing bt k v t
trn bng ch vo. Vi t m ho ny, my Turing ph dng U dng khi v ch
khi my Turing M dng vi t . Ta c th xem my Turing ph dng nh l m
hnh ton hc ca my tnh in t ngy nay. Cc my ny thc hin cng vic
bng cch m ho chng trnh theo ngn ng bn trong c gi l ngn ng
my.
Tp cc k hiu ghi ln bng l hu hn nn ta c th k hiu chng nh sau:
S0=B, S1, S2, , Sm v c th m ho bng b cc ch s 1. Chng hn, B1,
S111, S2111, , Sm1m+1.
Tng t, tp cc trng thi l hu hn v ta cng c th m ho chng:
q01, q111, q2111, , qn1n+1.
Cui cng hai k hiu L v R cng c th m ho: L1, R11.
By gi m ho nh x chuyn trng thi ca my Turing, ta s dng
bng biu din nh x ny. Trong bng, cc ct c k hiu bi cc k hiu c th
ghi ln bng, cc dng c k hiu bi cc trng thi. Tip theo lit k cc phn
t ca bng theo dng cng vi cc ch s dng v ct tng ng ca chng, th t
l cc phn t ca dng 1, dng 2, t tri sang phi. Chng hn, trn mt dng
xut hin b <qi, Sj, Sk, C, qh> c ngha l (qi, Sj)=<qh, Sk, C>. Gia cc dy m
68

ca cc b nm <qi, Sj, Sk, C, qh> c chn hai ch s 0 v gia m cc k hiu


trong cng mt b nm c chn bi mt ch s 0. My Turing M c m ho
nh vy k hiu l [M].
Ta chp nhn m khng chng minh y l vi my Turing M bt k tn
ti mt my Turing tng ng ch c mt trng thi kt thc, v vy ta c th
xem q0 l trng thi u v q1 l trng thi kt thc duy nht ca my Turing M.
Th d 7: Cho my Turing M vi nh x chuyn c cho bi bng sau:
q0
q1
q2

B
<S1, R, q1>

S1
<S1, R, q0>
<S1, L, q2>
<S1, L, q2>

Cc phn t ca bng c sp xp thnh dy di y:


<q0, B, S1, R, q1>, <q0, S1, S1, R, q0>, <q1, S1, S1, L, q2>, <q2, S1, S1, L, q2>.
Dy ny s c m ho di dng xu nh phn:
[M] = 10101101101100101101101101001101101101011100111011011010111.
Nu trn bng vo c =S1S1BS1 th m tng ng ca n l:
[] = 1101101011.

4.2.2. Hot ng ca my Turing ph dng:


By gi gi s my Turing M c n trng thi v bng ch ghi ln bng c m
k hiu, thm vo cc k hiu, cc trng thi v nh x chuyn ca M c m
ho nh ni trn. M hnh ho hot ng ca my Turing M bng mt my
Turing ph dng U c th m t khi qut nh sau: Trc ht [M] v [] cn phi
c ghi ln bng ca my Turing ph dng U theo quy cch sau y. K hiu X
c ghi ln bng chia bng thnh hai na v hn. Na bng bn phi c dnh
ra ba on k nhau k t v tr k hiu ngay sau X: on u tin c gi l
Buffer gm n+m+2 v tr k hiu v tt c c nhn k hiu 0; on tip theo
c gi l vng m ho ca M, bt u bi k hiu Y, tip sau Y l [M] v c
kt thc bi ba ch s 0; on sau cng c gi l on m ca , bt u bi k
hiu Z v tip theo l []. Hnh nh ca bng lc u l nh sau:
Y

Buffer

M ho M

M ho

Buffer phc v cho vic ghi nhn hnh trng ca M trong tng bc. Ta c
th sao chp vo vng ny trng thi bn trong v m ho ca k hiu ang c.
K hiu Y thng ng trc b nm xc nh trng thi hin hnh ca M, k hiu
69

hin hnh trn bng, hng chuyn ng ca u c trn bng. Z nh du k


hiu ang c trn bng ca M.
Qu trnh tnh ton trong U m phng hot ng ca my Turing M vi xu
vo c chia ra cc pha thch hp vi vic dch chuyn cc hnh trng ca M.
Mt giai on (pha) hot ng ca my Turing ph dng U c th tm tt
nh sau. u tin sao chp vo Buffer mt khi cc k hiu 1 nm ngay sau Y (gi
l khi Y), sau ghi vo cui khi va c chp mt k hiu X, tip theo xo k
hiu Y, chy sang phi tm k hiu Z v sao chp khi k hiu 1 ngay sau Z (gi l
khi Z) vo Buffer ngay sau k hiu X ri ghi li k hiu Y trc [M]. Nh vy
sau giai on ny trong Bufffer cha m ca trng thi v k hiu hin hnh ca
my Turing M. Bc tip theo, my Turing ph dng U so snh hai khi k hiu 1
lin tip nhau sau Y vi ni dung Buffer. Nu trng nhau th tm c b nm cn
tm. Nu ngc li th tm n m ho ca b nm tip theo sau Y v li tip tc so
snh. Trong trng hp gia cc b nm m t M khng tm thy b no thch hp
th U dng. Ngc li, nu tm c b nm cn tm th xo ni dung buffer ri
chuyn Y n trc phn t th ba trong b nm . i ni dung ca khi sau Z
bi ni dung ca khi sau Y v chuyn Y n trc phn t th t ca b nm. Sau
khi c xong phn t th t m n xc nh hng chuyn ng ca u
c/ghi ca M v U chuyn k hiu Y n sau phn t trc phn t th nm. Tu
thuc vo ni dung ca khi th t (mt k hiu 1 hay hai k hiu 1) U chuyn Z
qua phi hay qua tri mt khi. Nu Z lc u nm tn cng tri ca bng ghi v
M cn dch chuyn sang phi th U y m ca t sang phi v ghi m ho ca k
hiu trng vo sau Z. Nu Z nm tn cng phi ca bng v cn chuyn sang phi,
khi U ghi m ca k hiu trng vo cui t. Khi hon thnh cc cng vic trn
khi k hiu 1 ng sau Y, k hiu trng thi hin hnh ca M, cn khi sau Z xc
nh k hiu M cn c tip theo. Nh vy, giai on tip theo ca vic m phng
bc tip theo ca M c th bt u.
Cc giai on hot ng ca my Turing ph dng U m hnh ho hot ng
tng bc ca my Turing M nh d ch trn. Ngoi ra, U cn thc hin cng
vic sau y. u tin U thay tt c cc k hiu 0 trn ba on ca bng vo bng
cc khong trng, cui cng vic, khi M dng my U cn kim tra liu trng thi
cui ca M c phi l trng thi kt thc hay khng.
Cc pha ca mt my Turing ph dng U c chia thnh chn phn:
Phn 1: Thay cc k hiu 0 bi k hiu B v u c/ghi chuyn n trc Y.
Phn 2: Sao chp m ca trng thi hin hnh vo buffer.
Phn 3: Sao chp m ca k hiu cn c trn bng ca M vo buffer.
Phn 4: t X v Y vo trc buffer v trc k hiu ca [M].
70

Phn 5: Tm b nm c m ca trng thi v k hiu trn bng trng vi buffer.


Phn 6: Xo buffer.
Phn 7: Thay m k hiu c bng m k hiu mi ca M.
Phn 8: y Z sang phi hay sang tri mt khi m m k hiu ca khi s
c c trong pha tip theo. Nu cn th ghi m mt khong trng vo phi hoc
tri t trn bng ca M.
Phn 9: My Turing ph dng U dng trng thi kt thc khi v ch khi M
dng trng thi kt thc. ng thi trong vng m ho ca t trn bng s cha
m ca t ng ra cn li trn bng ca M, cn m ca trng thi cui ca M c th
thy trn buffer.
Di y l th chuyn trng thi ph hp cho vic m t my Turing ph
dng U.
<Z/Z,L>
<1/1,R>
<Y/B,R>
<B/B,R>
<X/X,R>
<Y/Y,R>
<Z/Z,R>

<B/B,L>
<B/B,L>

<1/1,L>

<1/1,R>

<Y/Y,R> Sao chp khi <X/X,R>

<B/X,R>

<B/B,R>
<Z/Z,R> Sao chp

khi X vo
Buffer

Y vo Buffer

<1/1,R>
<0/B,R>

<Y/Y,R>
<B/1,L>

<1/1,L>

<B/B,L>
<1/1,L>
<Z/Z,L>
<B/Z,L>

<1/1,L>

<B/Z,R>
<1/1,R>
<Y/Y,L>
<Z/B,R>
<1/1,L>
<B/B,R> <B/B,L>
<1/1,R>

<Z/B,L>

<B/B,R>

<X/B,R>

<B/Y,R>

<X/X,R>

<B/B,L>

<B/Y,L>
<1/1,L>

So snh khi
X vi khi Y
Trng
Khng trng
<X/X,R>
<1/1,L>
<1/1,R>

<1/1,R>

<1/1,R>
<B/Y,R>

<B/B,R>
<1/1,L>

<B/Y,L> <B/B,R>

<B/Z,L>
<1/1,L>

y m ca bng
<B/B,L>
qua phi hai v tr
k hiu

<X/B,R>

<B/Y,R>

<B/X,R>

<1/1,R>
<1/1,R>

<1/1,R>

<B/B,R>

<1/1,R>
<1/1,R>
<B/B,R>

<B/B,R>

<1/1,R>
<Y/B,R>

<1/1,R>

<Y/B,R>
Thay khi Z
bng khi Y

<1/1,R>

<B/Y,R>

71

<B/Y,L>

<X/X,R>

<X/X,R>

Trng So snh khi


<B/B,L>
X vi khi Y
<1/B,L> <X/B,R>
<1/B,R>
Khng trng
<B/B,L> <X/B,R>
<X/B,R>

<1/1,R>
<B/B,R>

<Y/B,R>

<1/1,R>

<1/1,L>
<B/B,L>

<1/1,R>

<1/1,R>

<Y/B,R>

4.3. VN KHNG GII C BNG THUT TON.


4.3.1. M u:
Trong ton hc thng gp vn cn xc nh liu mt phn t ca mt lp
v hn no c mt s tnh cht cho hay khng. Chng hn, ta c th hi liu
hai s t nhin cho trc c nguyn t cng nhau hay khng, hoc l mt my
Turing c dng sau mt s hu hn bc hay khng, Cc vn trn c gi
l vn thut ton v c th quy v vn l liu mt t trn bng ch no c
thuc vo mt ngn ng hnh thc cho hay khng.
Mt bi ton c gi l khng gii c bng thut ton nu khng tn ti
mt my Turing no sau mt s hu hn bc xc nh c liu mt s m ho
c th no ca bi ton c thuc ngn ng hnh thc cho hay khng. Trong
trng hp ngc li th bi ton c gi l gii c bng thut ton. Nh vy,
mt vn gii c bng thut ton nu v ch nu ngn ng hnh thc m t n
l quy.
Sau y ta s nghin cu mt vi tnh cht ca ngn ng quy v quy
m c. Vic chng minh cc tnh cht ny kh phc tp nn ta khng i su
vo chi tit.
4.3.2. nh l: Phn b ca mt ngn ng quy l ngn ng quy.
Chng minh: Gi s L l mt ngn ng quy trn bng ch . iu ny c
ngha l tn ti mt my Turing M m vi t * tu n dng sau mt s hu
hn bc v T(M)=L. Thay tp trng thi kt thc ca M bng phn b ca n, ta
c mt my Turing mi M. Di tc ng cng mt t, M dng vi trng thi
kt thc khi v ch khi di tc ng ca t M dng vi trng thi khng kt
thc. iu ny dn n T(M)= L . Do M dng sau mt s hu hn bc vi mi
t vo nn T(M)= L cng l ngn ng quy.
4.3.3. nh l: Nu L l ngn ng quy m c trn bng ch v phn b
L ca n cng l quy m c th L l quy.
Chng minh: Gi s M1, M2 l cc my Turing sao cho T(M1)=L v T(M2)= L . Ta
cn xy dng my Turing M m n m hnh ho ng thi s hot ng ca M1,
M2. iu ta cn c l di tc ng ca t , my Turing M ngng hot ng khi
v ch khi M1 hoc M2 on nhn t . Ta mun M1 dng vi trng thi kt thc,
cn M2 dng vi trng thi khng kt thc. Vic xy dng ny l c th thc hin
c v vi mi t my Turing M sau mt s hu hn bc s dng. Nu *
th L hoc L . Nu L th M2 s on nhn sau mt s hu hn bc.
T nu M1 khng dng sau mt s hu hn bc th M phi hon thnh cng
vic ca mnh trong thi gian hu hn. Nh vy T(M1)=L l quy.
4.3.4. nh l: Tn ti mt ngn ng quy m c nhng khng quy.
72

Chng minh: Xt ngn ng T(U) c on nhn bi my Turing U. Khi T(U)


l quy m c.
Gi s T(U) l quy. iu ny c ngha l tn ti mt my Turing M
(khng i hi l trng vi U) sao cho T(M)=T(U) v s dng sau mt s hu hn
bc di tc ng ca mi t trn bng ch vo. Ta xy dng my Turing M nh
sau:
Gi s l mt t trn bng ch vo ca M. Trc ht M cho m [] ca
, ng thi trn c s sp xp cc t trn bng ch vo tm ch s i ca (s th
t ca trong dy l i). Tip theo ng vi cc ch s i, my Turing M thit lp s
m t m ca my Turing th i trong dy cc my Turing M1, M2, Cui cng M
thit lp s m t chun ca t i v Mi, <Mii>. M bt chc s hot ng ca
my Turing M vi t <Mii> m theo gi thit n tn ti, on nhn ngn ng
T(U) v dng sau mt s hu hn bc i vi mi t trn bng ch vo. Nu M
kt thc s hot ng vi trng thi khng kt thc th khi M chuyn sang mt
trng thi kt thc ring v dng. Nu M dng trng thi kt thc th M bt u
bt chc s hot ng ca my Turing m n khng dng vi mi t ca bng
ch vo.
R rng rng my Turing M on nhn t =i khi v ch khi khng on
nhn <Mii>. Ta bit rng T(M)=T(U)={<Mi> | T(Mi)}. ng thi mi my
Turing u c mt trong dy M1, M2, v do M cng nm trong dy ny, c
ngha l tn ti mt s t nhin h sao cho M=Mh.
By gi ta xem my Turing M1 hot ng nh th no vi t 1. Ta nhn
c 1T(M) khi v ch khi 1T(M1). iu ny mu thun vi gi thit. Vy
T(U) khng quy.
4.3.5. H qu: Tn ti mt ngn ng hnh thc nhng khng quy m c.
Chng minh: Nh trong chng minh ca nh l 4.3.4, T(U) l quy m c
nhng khng quy. Do theo nh l 4.3.3, phn b ca T(U) l khng quy
m c.
4.3.6. nh l: Mt ngn ng hnh thc l loi 0 khi v ch khi n l quy m
c. iu ny c ngha l lp ngn ng hnh thc loi 0 chnh l lp ngn ng
quy m c.
4.3.7. Ch : Nh vo nh l 4.3.4, ta thy rng c nhng ngn ng quy m
c nhng khng quy. Vi vic m ho thch hp, ta ch ra rng nhiu vn
khng gii quyt c bng thut ton. Ta s kho st mt s vn lin quan n
lp cc ngn ng quy m c. Chng hn nh mt ngn ng quy m
c c rng hay khng, c hu hn hay khng, c chnh quy hay khng, c l phi
ng cnh hay khng v c l cm ng cnh hay khng, Tt c cc ngn ng c
73

tnh cht ny hnh thnh ln mt lp con ca lp cc ngn ng quy m c.


Khi ta kho st mt ngn ng c hay khng mt tnh cht cho th thc t ta cn
gii quyt vn ngn ng ny c thuc hay khng lp con cho ca lp cc
ngn ng quy m c.
Ta ni rng mt tnh cht ca cc ngn ng quy m c l tm thng
nu hoc mi ngn ng quy m c u c tnh cht ny hoc ngc li mi
ngn ng quy m c khng c tnh cht ny. iu ny c ngha l lp con
cc ngn ng xc nh bi tnh cht ny hoc bng rng hoc bng chnh lp cc
ngn ng quy m c. Nh vy cc tnh cht: mt ngn ng cho c rng
hay khng, c hu hn hay khng, c chnh quy hay khng, l khng tm
thng. C nhng ngn ng quy m c c nhng tnh cht trn v c nhng
ngn ng quy m c khng c tnh cht trn.
T nh l 4.3.3, ta bit rng mun xc nh bng thut ton vic thc hin
mt tnh cht no th vn ny c gii quyt bng thut ton khi v ch khi
vic ph nh ca tnh cht ny cng c gii quyt bng thut ton.
4.3.8. nh l: Cho trc mt tnh cht khng tm thng ca lp cc ngn ng
quy m c. Khi vn xc nh rng mt ngn ng c tnh cht ny hay
khng l khng gii quyt c bng thut ton.
4.3.9. H qu: Vic xc nh rng mt ngn ng quy m c c l:
a) Rng,
b) Hu hn,
c) Chnh quy,
d) Phi ng cnh,
e) Cm ng cnh,
f) quy
hay khng l vn khng gii c bng thut ton.
4.3.10. nh l: Mi ngn ng cm ng cnh u l ngn ng quy.
4.3.11. nh l: Tn ti mt ngn ng quy m khng l ngn ng cm ng
cnh.

74

BI TP CHNG IV:
1. Hy xy dng mt my Turring M sao cho T(M)={anbncn | n1}.
2. Cho my Turing M = <{s0, s1, s2, s3, s4}, {0, 1}, {0, 1, X, Y, B}, , s0, B, {s4}>,
trong :
(s0, 0)=<s1, X, R>, (s0, Y)=<s3, Y, R>, (s1, 0)=<s1, 0, R>,
(s1, 1)=<s2, Y, L>, (s1, Y)=<s1, Y, R>, (s2, 0)=<s2, 0, L>,
(s2, X)=<s0, X, R>, (s2, Y)=<s2, Y, L>, (s3, Y)=<s3, Y, R>,
(s3, B)=<s4, B, R>.
a) Hy v th chuyn ca M.
b) Hy trnh by cc qu trnh tnh ton hon chnh ca my M xut pht t cc
hnh trng u sau: <, s0, 000111>, <, s0, 00111>, <, s0, 0101>, <, s0, 00011>.
c) Hy xc nh ngn ng T(M).
3. Chng t rng cc hm di y c th c xc nh bng my Turing.
a) f ( ) =
B...43
B , {1}+ .
1B42
n ln

b) f ( ) = B R , {0,1}+ .
c) f (B ), {0,1}+ .
d) f (1n B1m ) = 1nm , n, m 0 .
e) f (1n ) = (0011) n .

1 khi = R ,
f) f ( ) =
0 khi R ; {0,1} .
4. Chng t rng cc hm di y c th tnh c bng my Turing.
a) f(n1)=3n1.
b) f(n1)=n1+3.
c) f(n1, n2)=n1n2.
d) f(n1, n2)=|n1n2|.
n n2 khi n1 n2 ,
e) f(n1, n2)= 1
0 khi n1 < n2 .
0 khi n1 = n2 ,
f) f(n1, n2)=
1 khi n1 n2 .
5. Cho f1, f2, , fn l cc hm m bin v g l hm n bin. Chng minh rng nu cc
hm trn u c th tnh c bng my Turing th hm
h(x1, x2, xm)=g(f1(x1, x2, xm), f2(x1, x2, xm), , fn(x1, x2, xm))
75

cng c th tnh c bng my Turing.

76

CHNG V:

GII THIU V TRNH BIN DCH


5.1. NGN NG LP TRNH.
5.1.1. M u:
T ngn xa con ngi mun giao tip vi nhau phi dng ngn ng. Vy
ngi giao tip vi my tnh tt nhin cng thng qua ngn ng. Con ngi mun
my tnh thc hin cng vic, phi vit cc yu cu a cho my bng ngn ng
my hiu c. Vic vit cc yu cu, ta gi l lp trnh (programming). Ngn ng
dng lp trnh c gi l ngn ng lp trnh (programming language).
Vit chng trnh gii quyt vn s d dng v t nhin hn nu ngn
ng lp trnh gn vi vn cn gii quyt. C ngha l ngn ng phi cha ng
cc cu trc thut ng, phn t dng miu t vn v khng ph thuc vo
my tnh c th.
Cc ngn ng lp trnh c tnh cht nh trn c gi l ngn ng cp cao.
Nhng my tnh ch hiu, ch chp nhn ngn ng cp thp ring ca mnh,
l chui cc s 0 v 1, chui s li khng gn gi cht no i vi con ngi.
Vic phn cp ngn ng lp trnh c da trn c s ca tnh khng ph
thuc vi my tnh ngy cng cao ca cc ngn ng.
Phn loi: 1) Ngn ng my (machine language),
2) Hp ng (assembly language),
3) Ngn ng cp cao (higher-level language).
Bi v my tnh ch c th hiu ngn ng my cho nn mt chng trnh vit
trong ngn ng cp cao cui cng ri cng c dch sang ngn ng my. Cng c
thc hin vic dch c gi l chng trnh dch (translator).
Chng trnh dch c chia lm hai loi: trnh bin dch (compiler) v trnh
thng dch (interpreter).
Trnh bin dch: chuyn mt chng trnh vit trong ngn ng cp cao chng
trnh ngun sang chng trnh trong ngn ng cp cao khc hoc ngn ng my
chng trnh ch.
+ Thi gian chuyn mt chng trnh ngun sang chng trnh ch c
gi l thi gian dch (compile time).
+ Thi gian m chng trnh ch c thc thi c gi l thi gian thc
D liu
thi (run time).
Chng trnh
ngun

Trnh
bin dch

Chng trnh
ch

Thi gian dch

My tnh
thc thi

Kt qu

Thi gian thc thi


76

Nh vy, i vi trnh bin dch, chng trnh ngun v d liu c x l


trong thi gian khc nhau, l thi gian dch v thi gian thc thi.
Trnh thng dch: qu trnh x l dng bn trong ca chng trnh ngun v d
liu cng mt thi gian.
Chng trnh
ngun

Trnh
thng dch

Kt qu

D liu

Mt s trnh thng dch lm vic nh sau: phn tch tng pht biu v thc
thi lun.
Hin nay trnh thng dch a phn p dng k thut ca trnh bin dch l
bin dch chng trnh ngun sang dng m trung gian. T m trung gian s c
thc thi bng trnh thng dch.
c t ngn ng lp trnh: c t ngn ng lp trnh, ti thiu ta cn nh
ngha:
1. Tp cc k hiu cn dng trong cc chng trnh hp l.
2. Tp cc chng trnh hp l.
3. Ngha ca tng chng trnh hp l.
Vic nh ngha tp cc k hiu ca mt ngn ng tht d dng, ta ch cn
lit k chng. Song nh ngha tp chng trnh, gi l hp l th qu l mt cng
vic kh khn hn nhiu. Bi v tht l kh xc nh th no l mt chng
trnh hp l.
Khi c t ngn ng lp trnh, ta thng nh ngha lp cc chng trnh
bng tp cc lut vn phm, ta c th to nn c nhng chng trnh cn nghi vn
v tnh hp l.
Chng hn, trong Fortran cho php pht biu sau: L GOTO L l hp l. Mc
d nu pht biu ny m c thc hin th s l vng lp v tn, khng gii quyt
c g c. V th chng trnh m ta coi l hp l phi c hiu trong ngha hp.
Kh khn th ba cng l vn kh nht ca c t ngn ng l vic nh
ngha ngha ca mt chng trnh hp l. C ba phng php xc nh ngha
ca chng trnh hp l.
Phng php th nht l nh ngha bng php nh x: nh x mi chng
trnh vo mt cu trong ngn ng m ngha ca n ta hiu c.
Phng php th hai, xc nh ngha ca chng trnh bng mt my l
tng (idealized machine). Ngha ca chng trnh c th c c t trong ngn

77

t ca my l tng ny. Nh vy my l tng tr thnh b thng dch cho ngn


ng.
Phng php th ba, ngha ca mt chng trnh ngun chnh l sn phm
xut ra ca trnh bin dch, khi n dch chng trnh ngun. Trnh bin dch c
dc t nh l tp cc cp (x, y), vi x l chng trnh ngun v y l chng trnh
ch, l chng trnh m x s c dch sang y. Gi s cp (x, y) c trc, by
gi ta quan tm n cu trc ca thit b khi nhn x l u vo th sinh ra y
u ra.
Ta coi tp (x, y) l s bin dch. Nu mi chui x c nh ngha trn bng
ch v chui y c nh ngha trn bng ch th bin dch l php nh x t
* n *.

5.1.2. C php v ng ngha:


tin li hn trong c t v hin thc s bin dch, ta coi s bin dch bao
gm hai php chiu n gin hn.
Th nht l php nh x c php (syntactic mapping), n nh x mt chng
trnh vit trong ngn ng ngun sang cu trc l i s ca php nh x tip theo,
l php nh x ng ngha (semantic mapping). Cu trc ca php nh x c
php l cy c php (syntactic tree). Sau y l th d cy c php c xy dng
nh th no trn chui nhp vo l mt cu ting Anh. Mi cu ting Anh c b
ra thnh nhng k hiu c php nh vo cc lut vn phm.
Th d 1: The pig is in the pen c cu trc vn phm c biu din bng cy c
php hnh sau. Cy c php vi cc nt c tn l k hiu c php (k hiu khng
kt thc) v l c tn l k hiu kt thc.
<sentence>

<noun phrasse>

<verb phrasse>

<adjective>

<noun>

<verb>

the

pig

is

<phrase>

<preposition>
in

78

<noun phrase>
<adjective>

<noun>

the

pen

Tng t, mt chng trnh c vit trong ngn ng lp trnh c th b nh


thnh cc phn t c php, quan h vi nhau bi lut c php, iu khin ngn ng
lp trnh.
Th d 2: Chui k t a + b c c cy c php sau:
<expression>

<expression>

<term>

<term>

<term>

<factor>

<factor>

<identifier>

<identifier>

<identifier>

<factor>

Qua hai th d trn ta thy rng vi mi cu ca ngn ng u tn ti cy c


hp ca n. Qu trnh tm ra cy c php ca mt cu, c gi l qu trnh phn
tch c php cu (syntactic analysis parsing). Qu trnh phn tch c php c
thc hin da trn c s cc lut c php ca ngn ng ( chnh l cc quy tc
hay lut sinh). C php ca ngn ng l tp lut sinh, n cung cp cho ta mi quan
h gia mi cu ca ngn ng vi cu trc c php.
Th hai l php chiu ng ngha, trong cu trc c php ca cu trong
ngn ng ngun s c nh x n vng xut l ngn ng ch (cui cng
cng l ngn ng my). Ng ngha ca ngn ng l php nh x n kt hp cu
trc c php ca mi cu nhp vo vi chui k hiu trong ngn ng no , m ta
gi l ngha ca cu nguyn thu (cu nhp vo). c t ng ngha ca ngn ng l
vn rt kh, n cha c gii quyt y , c bit vi ngn ng t nhin.
Mc d vic c t c php v ng ngha ca ngn ng lp trnh hon ton
khng phi l cng vic n gin, cng nh cho n by gi cha tn ti phng
php tng qut c t, song tn ti hai khi nim ca l thuyt ngn ng,
chng c dng xy dng s c t ngn ng.
79

Th nht l khi nim v vn phm phi ng cnh. Hu ht cc lut miu t


cu trc c php u c th hnh thc ho nh l vn phm phi ng cnh. Hn na
van phm phi ng cnh cn cung cp s miu t c coi l mt phn ca c t
trnh bin dch.
Th hai l khi nim s dch trc tip c php, n c dng c t
php nh x t ngn ng ny sang ngn ng khc.

5.2. TRNH BIN DCH.


Trnh bin dch l chng trnh dng c mt chng trnh c vit
trong mt ngn ng lp trnh c gi l ngn ng ngun (source language) v
dch chng trnh sang chng trnh tng ng trong ngn ng khc, ngn ng
ch (target language).
Nh vy ta s c rt nhiu trnh bin dch, v ta c hng ngn cc ngn ng
ngun t nhng ngn ng lp trnh h c in (Fortran, Pascal) n cc ngn ng
c bit xut hin rt nhiu trong lnh vc ng dng my tnh.
Ngn ng ch cng rt a dng v c th l ngn ng lp trnh bt k hoc
ngn ng my. Trnh bin dch u tin xut hin vo nhng nm 50 ca th k
trc. Lc vit trnh bin dch qu l mt cng vic ht sc kh khn. Trnh
bin dch ng ng Fortran u tin phi vit trong 18 nm/cng ngi.

5.2.1. Cc phn ca trnh bin dch:


Chng trnh ngun trong ngn ng lp trnh khng g khc l chui cc k
t. Trnh bin dch c nhim v chuyn chui k t ny sang chui k t khc -
l m i tng. Qu trnh ny bao gm cc qu trnh nh hn v c t tn nh
sau:
1) Phn tch t vng.
2) Bng danh biu v thng bo li.
3) Phn tch c php.
4) Phn tch ng ngha.
5) Sinh m trung gian.
6) Ti u m trung gian.
7) Sinh m i tng.
i vi mt trnh bin dch tn ti trong thc t, th t cc qu trnh nh c
th hi khc so vi th t trn. C th mt s qu trnh nh kt hp li vi nhau
thnh mt qu trnh duy nht. Trnh bin dch phi c kh nng nhn bit chui
nhp vo c phi l mt chng trnh hp l c php khng. Nu khng, trnh bin
dch phi thng bo li.
5.2.2. Phn tch t vng (lexical analysis):
Giai on phn tch t vng l giai on u ca qu trnh bin dch.
80

Dng nhp vo trnh bin dch l chui cc k t cho php ca mt ngn ng


lp trnh, cng l chui nhp vo b phn tch t vng.
Chng hn, i vi ngn ng Pascal, cc k t alphabet l cc k t sau:
AZ, az, $ @ 0 1 29 du trng + = := / ( ), & >=
Trong chng trnh ngun, s kt hp mt s k t alphabet s to nn mt
thc th ca ngn ng. Chng hn, BEGIN l s kt hp 5 k t B, E, G, I, N to
nn thc th l t kho BEGIN.
Cc thc th
1. K hiu trng, du tab, du xung hng,
2. T kho: begin, end, goto, while, do, integer,
3. Chui cc k t s tng trng cho hng s,
4. Danh biu, dng t tn cho cc bin, hm th tc, nhn,
5. Cc k hiu c bit: +, , /, , :=, ;, =, >, >=, <, <=,
c gi l cc token.
Nhim v ca b phn tch t vng l khi tip nhn chui k t nhp phi
bit nhm cc k t thnh cc thc th c php token. Token l k hiu kt thc,
mi token s c mt cu trc t vng. Cu trc t vng ny l mt cp (loi token,
d liu), gm hai thnh phn:
Thnh phn th nht l phm tr c php: hng, bin.
Thnh phn th hai l con tr, ch n thng tin ca token, c ct gi
trong bng, c gi l bng danh biu (symbol table).
Vi ngn ng lp trnh cho trc, s lng loi token l hu hn. Tm li b
phn tch t vng l b dch (translator) m u nhp ca n l chui cc k t,
tng trng cho chng trnh ngun, u ra l cc token. Dng u ra ny l u
nhp ca b phn tch c php.
Th d 3: Chng trnh ngun l pht biu gn trong ngn ng Pascal:
COST:=(PRICE+TAX)65
B phn tch t vng c nhim v nhn bit: COST, PRICE, TAX l nhm token
thuc loi danh biu, 65 l token thuc loi hng. Cc k t :=, (, ), +, t bn thn
l token.
Gi s tt c cc hng, danh biu l cc token c loi <num> v <id>. Thnh
phn th hai l d liu, y chnh l con tr ch n v tr ca cc token trong
bng danh biu, cha ng tr t vng (lexeme) ca token v cc thuc tnh khc
ca token. Thnh phn th nht ca token s c dng trong giai on phn tch
c php. Thnh phn th hai ca token c dng trong giai on x l ng ngha
v sinh m i tng.
Tr li vi Th d 3, ta thy u ra ca b phn tch t vng s c cc token:
81

(<id>, 1):=(<id>, 2)+(<id>, 3)(<num>, 4)


n gin ta vit li nh sau:
id1:=(id2+id3)num4
Cc ch s 1, 2, 3, 4 l con tr ca token tng ng trong bng danh biu.
Cc k hiu :=, (, ), +, l cc token, loi token s c hiu l chnh n, khng c
d liu, nn chng khng c thnh phn th hai l con tr.
S phn tch t vng s n gin nu token c nhiu hn mt k t, c c
lp bi cc k t m t chng l token. th d trn, ta thy COST, PRICE, TAX,
65 l cc token, c to bi nhiu hn mt k t c c lp bi cc token :=, (,
+, ), . R rng :=, (, +, ), khng th l mt thnh phn trong COST, PRICE,
TAX, 65. Song trong cc trng hp khc th phn tch t vng khng phi n
gin nh vy.
Th d 4: Trong Fortran ta c hai pht biu sau:
(1) DO 10 I=1.15
(2) DO 10 I=1,15
Gi s du trng c b qua khi b phn tch t vng xt cc k t. Nh
vy trng hp (1) DO10I l bin v 1.15 l hng v (1) l pht biu gn. Trong
trng hp (2) DO l t kho, I l bin vng DO, 1 v 15 l hng. Trong hai trng
hp trn, b phn tch t vng ch xc nh c token k tip khi gp du . trong
(1) v du , trong (2).
Nh vy b phn tch t vng cn phi nhn thy trc mt token. Nhng
nhn thy trc mt token nhiu khi cng cha .
Chng hn, DECLARE(X1, X2, , Xn) trong ngn ng PL/I. B phn tch t
vng s khng th ni c DECLARE l tn hm v X1, X2, , Xn l cc i s
ca hm hay DECLARE l t kho khai bo bin, X1, X2, , Xn l cc danh biu
m kiu d liu ca chng s ng ngay sau du ng ngoc ). Mun kt lun
c mt trong hai trng hp l ng, b phn tch t vng phi c kh nng nhn
trc mt khong cch bt k. Tuy nhin, ta c th ngh n cch phn tch t
vng khc, trnh c vn nhn trc mt khong bt k. T nhng suy ngh
trn m ta c hai cch tip cn vi vic phn tch t vng. Hu ht cc k thut
c s dng phn tch t vng cng nm mt trong hai phm tr trn.
B phn tch t vng thao tc trc tip: Nu c mt chui k t ca vn bn
nhp v c con tr trong vn bn, nh du v tr bt u tm token th b phn tch
t vng s xc nh c ngay token nm pha bn phi ca v tr con tr. Sau
n s chuyn v tr con tr v bn phi, v tr k t u tin, ng sau k t cui
cng ca token va c xc nh.

82

B phn tch t vng thao tc khng trc tip: Nu vi chui k t ca vn bn


nhp cho trc, c con tr trong vn bn v loi token cho trc, b phn tch t
vng s xc nh c token nu cc k t ng ngay sau con tr to nn token
ca loi token cho trc. Nu ng, con tr s c chuyn n k t ng ngay
sau token va c xc nh.

5.2.3. Bng danh biu:


Cc token c b phn tch t vng nhn bit v cc thng tin ca tng
token s c lu cha trong bng danh biu. Xt pht biu trong Th d 3. Sau hi
pht biu c i qua b phn tch t vng, bng danh biu s cha cc thng tin
sau:
Ch s
1
2
3
4

Token
Lexeme
Cc thng tin khc
id
COST
bin thc
id
PRICE
bin thc
id
TAX
bin thc
Num
65
hng s nguyn
Bng danh biu
Nu b phn tch t vng nhn tip cc chui k t ca chng trnh nhp,
nhn dng token, th bng danh biu cng thng xuyn c truy xut. Hnh
vi truy xut nhm hai mc ch: nu danh biu va c nhn dng c lu
cha trong bng danh biu th phn th hai ca token l d liu s c cp nht
bng ch s ca danh biu trong bng danh biu.
Th d 5: Vi pht biu trong Th d 3, COST c ch s l 1 trong bng danh biu,
COST li xut hin trong chui nhp sau:
y:=COST2.0
Chui xut ra ca b phn tch t vng l:
id5:=id1num6 (id, 5):=(id, 1)(num, 6)
Trong trng hp ny COST khng ct vo bng danh biu na, nhng b phn
tch t vng s y ra token (id, 1), 1 l v tr COST c ct trong bng danh
biu trc .
Bng danh biu thng xuyn c truy xut thm hoc truy xut cc
token, do phi tho mn hai iu kin:
1. Thc hin nhanh cc thao tc thm token, hoc cc thng tin ca token.
2. C kh nng truy xut nhanh cc thng tin ca mt token.

5.2.4. Pht hin v thng bo li:


mi giai on ca qu trnh bin dch mt chng trnh ngun u c th
c li. Nh vy sau khi pht hin mt li, trnh bin dch xem xt li xem c
83

tip tc qu trnh dch hay khng. Tt nhin, nu mt trnh bin dch m ngay khi
pht hin li u tin dng chng trnh th khng hu hiu.
Trong giai on phn tch t vng v c php thng xut hin nhiu li do
trnh bin dch pht hin. Trong lc phn tch t vng, li c pht hin khi phn
cn li trn bng nhp khng th to nn token. Li xy ra khi b phn tch c php
khng th xy dng cu trc c php cho chui token cho trc. Li cng c th
c pht hin trong qu trnh phn tch ng ngha, khi trnh bin dch kim tra
kiu d liu ca hai ton hng thuc mt php ton khng ph hp. Chng hn,
mt ton hng thuc kiu dy, cng vi mt ton hng l tn ca chng trnh con.
5.2.5. Phn tch c php (Syntactic analysis parsing):
Chui xut ra t b phn tch t vng l cc token c dng (loi token, d
liu), s l chui nhp vo b phn tch c php. B phn tch c php ch xt
thnh phn th nht ca token l loi token.
S phn tch c php l mt qu trnh, trong qu trnh ny chui cc token s
c kim tra xem c th c biu din bng cu trc c php ca ngn ng lp
trnh cho trc hay khng? Nu tn ti mt cu trc c php cho chui nhp th cu
trc c sinh ra chnh l kt qu ca qu trnh phn tch c php. giai on
sinh m, cu trc c php s c xem xt t sinh ra m cho chui k t ca
chng trnh ngun.
Th d 6: Vi pht biu trong Th d 3, kt qu ca qu trnh phn tch t vng:
COST:=(PRICE+TAX)65 Phn tch t vng id1:=(id2+id3)num4
v kt qu ca qu trnh phn tch c php l:
id1:=(id2+id3)num4 Phn tch c php
n3
id1

id2

:=

n2

n1

id3

num4

Cy c php ca pht biu COST:=(PRICE+TAX)65


Vy, kt qu ca qu trnh phn tch c php ca mt chui nhp l cu trc
c php c biu din bng cu trc cy. Cy biu din cu trc c php ca
mt chui nhp c gi l cy c php hay cy phn tch. Vi mt chui token l
chui nhp v tp lut sinh cho trc, b phn tch c php s t ng tm ra cy
84

c php cho chui nhp. Khi cy c php c xy dng xong th qu trnh phn
tch c php ca chui nhp cng kt thc thnh cng. Ngc li, nu b phn tch
c php p dng tt c cc lut sinh hin c, nhng khng th xy dng c cy
c php ca chui nhp cho trc th b phn tch c php s ra thng bo rng
chui nhp khng c vit ng c php ca ngn ng lp trnh. Nhn vo cy c
php trn vi cc nhn ca cc nt n1, n2, n3 ta thy c trnh t thc hin:
(1) n1 l nt miu t php ton:
id2 + id3 (PRICE+TAX)
(2) n2 miu t php ton:
n1 num4 (kt qu (1) 65)
(3) l php ton:
id1 := n2 (tc l gn kt qu ca php (1) 65 vo bin COST)
Ta thy rng du ( v ) khng hin din trn cy c php, song vic thc
hin php ton n1: id2 + id3 trc php nhn vi num4 chng t s c mt ca
chng.

5.2.6. Phn tch ng ngha:


Sau giai on phn tch c php, cu trc c php ca chui nhp s c b
phn tch ng ngha x l. B phn tch ng ngha s kim tra li v ng ngha..
Mt nhim v quan trng m b phn tch ng ngha thc hin l kim tra loi d
liu. Da trn cy c php, b phn tch ng ngha s x l tng php ton. Vi
mi php ton, n s xt cc ton hng xem loi d liu ca chng c cho php
tham gia vo php tnh khng (ni cch khc loi d liu ca cc ton hng
trong php ton c th, c c ngn ng lp trnh nh ngha khng).
Th d 7: a + 1 vi a l bin thuc loi d liu s thc, 1 l thuc loi lun l.
Vy php cng khng th thc hin vi hai ton hng loi s thc v loi
lun l.
Hoc: a + n vi a l s thc v n l s nguyn
Khi kim tra thy hai ton hng ca php cng mt c tr thc, mt c tr
nguyn th hu ht cc trnh bin dch s chuyn tr ca ton hng n sang biu thc
s thc, c th nu n c tr l 10 th tr 10 s c chuyn sang tr thuc loi thc
n3
10.0 cng vi tr ca a.
id1

id2
PRICE

:=

n2

n1

intoreal (65)

id3

65.0

85

TAX

Vi pht biu trong Th d 3, tr 65 s c chuyn sang s thc. Cy c


php khi x l ng ngha s c dng nh trn.

5.2.7. Sinh m trung gian:


Sau giai on phn tch c php v ng ngha, mt s trnh bin dch to
ra s biu din trung gian ca chng trnh ngun. S biu din trung gian ca
chng trnh ngun c hiu nh l chng trnh ca my tnh tru tng
(abstract machine).
Ngn ng c dng cho my tru tng l m trung gian. M trung gian c
hai c im quan trng: d c sinh ra v d chuyn sang m i tng ca
chng trnh ch. Vi Th d 3, kt qu ca giai on sinh m trung gian c dng:
temp p1 := intoreal (65)
(1)
temp p2 := id2 + id3
temp p3 := temp p2 temp p1
id1 := temp p3

5.2.8. Ti u m trung gian:


Giai on ny s thu gim mt s bc trong m trung gian nhm lm cho
khi sinh ra m i tng th thi gian thc thi m i tng s ngn hn.
Bc sinh m s dng cy c php c x l ng ngha ( qua bc
phn tch ng ngha) sinh m trung gian.
Cch lm thng thng nh sau:c ng vi nt l ton t s sinh ra m trung
gian nh (1). Tuy vy, c cch tt hn l vi (1) ch cn hai m trung gian m
thi.
(2)
temp p1 := id2 + id3
id1 := temp p1 + 65.0
Vic thu gim nh trn s c thc hin bc ti u m. Bc chuyn s
nguyn sang s thc s c thc hin ngay trong thi gian dch, do php ton
intoreal s c b i. Xem li (1), ta thy m th t id1 := temp p3, vi temp p3
ch dng c mt ln l gn tr vo id1, do c th ghp m th 3 v th 4 thnh
m th 2 ca (2).
Cn rt nhiu trng hp khc m trnh bin dch thc hin ti u m. y
mt vn ny sinh l thc hin ti u m trong thi gian bin dch s lm thi
gian dch tng ln trong giai on ny. Tuy nhin mt s trng hp ti u m cho
php nu thi gian thc thi ca chng trnh ch c rt ngn m khng lm s
bin dch qu lu.

5.2.9. Sinh m i tng:


Giai on cui ca trnh bin dch l sinh m i tng. M i tng c th
l m my nh v li a ch hoc m hp ng.
86

Th d 8: Ta s dng hai thanh ghi 1 v 2, dch m trung gian (2) sang m hp


ng:
movF id2, R1
movF id3, R2
addF R2, R1
(3)
mulF # 65.0, R1
movF R1, id1
Lu rng movF, addF, mulF l php tnh vi s thc. Ch th u thc hin
chuyn tr t v tr nh c tn PRICE, thuc loi token id2 vo thanh ghi R1. Ch th
th hai thc hin chuyn tr v tr nh c tn TAX thuc loi token id3 vo thanh
ghi R2. Ch th th ba thc hin php cng ni dung hai thanh ghi R1 v R2, kt qu
php ton c ct trong R1. Ch th th t thc hin php nhn hng c tr s thc
65.0 vi tr nm trong thanh ghi R1. Ch th cui cng chuyn ni dung trong thanh
ghi R1 vo v tr nh c tn COST thuc loi token id1.

5.3. CC MI LIN QUAN VI TRNH BIN DCH.


Cc phn trc ca chng ny ta c ni chui k t nhp vo trnh bin
dch l vn bn ca chng trnh ngun. ng vy, song vn bn li c th l
sn phm u ra ca mt hoc nhiu b tin x l (preprocessor) v sn phm u
ra ca trnh bin dch c th li tip tc c x l trc khi tr thnh m my ca
my tnh tht. Trong phn ny ta s ni ti cc mi lin quan .

5.3.1. B tin x l:
B tin x l s to ra chui nhp vo trnh bin dch. B tin x l thc
hin cc chc nng sau:
1. X l macro (macro processing). B tin x l c th cho php ngi s dng
nh ngha cc macro. Macro c hiu l cch vit ngn gn cho cu trc di hn.
2. Chm tp tin (file inclusion). B tin x l c th nht cc tp tin vo chng
trnh vn bn. Chng hn, tin x l ngn ng C s nht ni dung ca tp tin
<global.h> vo thay th cho pht biu # include <global.h> khi n x l mt tp tin
c cha pht biu trn.
3. B x l ho hp (Rational processor). B tin x l loi ny s to nn s ho
hp gia ngn ng c in vi nhng cu trc iu khin, cu trc d liu hin i
hn.. Chng hn, b tin x l gip cho ngi s dng c th dng cc pht biu
c cu trc nh while, if trong ngn ng lp trnh, m t bn thn ngn ng
khng c cc pht biu trn. Thc t cc pht biu while, if chnh l cc macro, khi
ngi s dng vit mt chng trnh trong ngn ng c in c dng ti hai loi
pht biu c cu trc trn v cn bin dch ra ngn ng my th b tin x l s lm

87

vic trc. Tt c ni no c hai pht biu while, if s c thay th bi chui cc


pht biu m ngn ng lp trnh c in c.
4. M rng ngn ng (language extension). B tin x l tng kh nng cho ngn
ng bng mt s cc macro ni ti ca n. Th d ngn ng Equel l ngn ng hi
p vi c s d liu c nhng vo ngn ng C. Cc pht biu c bt u
bng hai du # # trong C c b tin x l, x l, l cc pht biu truy xut c
s d liu, khng lin quan n C, c dch thnh cc pht biu gi th tc, s gi
cc trnh con c nhim trong m my thc hin vic truy xut c s d liu.
By gi ta s ni k hn v b x l macro. B x l ny thng lm vic
vi hai loi pht biu: nh ngha macro v s dng macro.
nh ngha macro bao gm: t kho define hoc macro, tip theo l tn
macro. Theo sau l thn (body) ca macro.
Chng hn, \define <macroname> {<body>}.
Thng thng b x l macro cho php cc thng s hnh thc (formal
parameter) trong nh ngha, chng l cc k hiu s b thay th bi cc tr (chui
cc k t) sau ny khi macro c dng.
Pht biu dng macro bao gm: tn macro v cc thng s thc (actual
parameter), l tr ca cc thng s hnh thc trong thn ca macro.
Th d 9: H thng nh my typesetting c phng tin macro vi pht biu nh
ngha macro nh sau:
\define <macro name><template> {<body>}
<macrro name>: tn macro
<template>
: danh sch thng s hnh thc
<body>
: thn macro
Macro nh ngha ve s trch dn ca tp ch ACM nh sau:
\define\JACM #1; #2; #3
{{\S1 J.ACM}{\bf #1}: #2, pp. #3}
Tn macro l \JACM. Cc thng s hnh thc l #1, #2, #3 c ngn cch
nhau bi du ; v c kt thc bng du ..
Khi dng macro, ngi s dng s vit nh sau: \JACM 17; 4; 715 728 s
c hiu nh sau: J.ACM 17: 4, pp. 715 728.

5.3.2. Trnh bin dch hp ng:


Mt s trnh bin dch cho sn phm u ra l m hp ng, chui m hp
ng ny s c a sang trnh bin dch hp ng x l tip. Mt s trnh bin
dch khc thc hin lun cng vic ca assembler, ngha l n dch ra lun m my
kh nh v (relocatable machine code), m my s c chuyn trc tip n b
phn loader/link editor.
88

M hp ng l phin bn gi nh ca m my, trong cc tn s c


dng thay th cho cc m nh phn ca cc tc v v tn cng c i din cho
cc a ch ca v tr nh. Chng hn, chui ch th trong m hp ng ca pht biu
gn b := a+2.
mov a, R1
add #2, R1
(4)
mov R1, b
Ba ch th thc hin vic chuyn ni dung a ch a vo thanh ghi R1, sau
cng hng s 2 vi ni dung ca R1 v kt qu c gi li trong thanh ghi R1,
cui cng l chuyn ni dung ca R1 vo a ch b. Sau khi thc hin ba ch th th
my thc s thc hin pht biu gn b:=a+2. Thng thng hp ng cng c
cc phng tin macro v b tin x l macro.
5.3.3. Trnh bin dch hp ng hai chuyn (two pass assembler):
Trnh bin dch hp ng n gin nht l bin dch hai chuyn trn d liu
nhp vo. Chuyn y c coi l ln c tp tin nhp trn vn. chuyn u,
ton b danh biu, i din cho v tr nh s c nht ra, ct vo bng danh biu.
Theo bng bn, ta gi s a ch c Danh biu a ch tng i
nh cho tng t (mt t l 4 byte). a l danh
a
0
biu i din cho a ch bt u byte 0. b
b
4
th 4. chuyn th hai, trnh bin dch hp
ng s r li tp tin nhp mt ln na. Ln ny n s dch m gi nh (c t
bng tn) ca tc v sang chui m my m nh phn v phn tn danh biu i
din cho v tr nh s c thay th bng a ch tng i ca danh biu trong
bng danh biu.
Th d 10: on ch th (4) c dch sang m my l:
0001 010000000000*
0011 011000000010*
(5)
0100 010000000100*
4 bit u l m tc v 0001, 0011, 0100 l m load, add, store. Hai bit tip
theo 01 ba ch th l m ca thanh ghi 1. 2 bit tip theo l m thng bo cho bit 8
bit theo sau l a ch hay ton hng. Hai bit ny c gi l mode a ch nu l 00
v mode trc tip ton hng nu l 10. V vy 8 bit ca ch th 1 v 3 l a ch,
ngc li ch th 2, 00000010 l ton hng, hng nguyn c tr 2.
u ra chuyn th hai ca trnh bin dch hp ng l m my kh nh v,
ngha l chng trnh trong dng ny c th c cha vo b nh bt k v tr L
no. Nh vy a ch tng i trong bng danh biu s c tnh li, tr thnh a
ch tuyt i, bng cch ly L cng vi a ch tng i, vic ny c thc hin
89

cho tt c cc danh biu trong bng danh biu. Quay li (5), ta thy ch th 1 v 3
th 8 bit sau cng l a ch tng i ca danh biu a, b. Gi s L=00001111, a
ch tuyt i ca a, b l 00001111, 00010011. Ba ch th (5) c vit li di dng
m my tuyt i:
0001010000001111
0011011000000010
(6)
0010010000010011

5.3.4. B ct lin kt son tho (loader/link editor):


Loader l chng trnh, thc hin hai nhim v sau: ct v son tho lin kt.
Qu trnh ct bao gm ly m my kh nh v tnh li a ch thnh a ch tuyt
i nh th d trn. Sau ta em ct tt c ch th vi cc a ch tuyt i ca
danh biu v d liu vo trong b nh ti v tr tng ng nh (6).
Link editor cho php ta to mt chng trnh duy nht t nhiu tp tin
dng m my kh nh v ca nhng ln bin dch ring bit v t nhng tp tin th
vin, do h thng cung cp. S lin kt ny to iu kin thun li cho bt k
chng trnh no cn ti chng khi thc thi. Nu c mt s tp tin c chng
trnh khc tham chiu, chng s c tham chiu ngoi (external reference). Trong
m ca tp tin ny c th tham chiu n mt v tr nh trong tp tin khc. C
ngha l v tr nh cha d liu c khai bo trong mt tp tin li c th c truy
xut tp tin khc. Hoc th tc c khai bo trong tp tin ny li c gi trong
tp tin khc.
Chng trnh ngun vit tt
H
thng
x
l
ngn
ng

B tin x l
Chng trnh ngun
Trnh bin dch
Chng trnh i tng trong m hp ng
Trnh bin dch hp ng
Chng trnh trong m my kh nh v

Th vin h thng,
cc tp tin i tng
B ct/lin kt-son tho
kh nh v a ch
Chng trnh trong m my vi a ch tuyt i
90

M kh nh v phi lu gi thng tin trong bng danh biu cho danh biu v
tn cc th tc. V ta khng th bit c ton b chng trnh trong dng m kh
nh v s c cha u trong b nh trong khi n cn b nh ngoi, do
ton b bng danh biu phi c lu gi y nh l mt phn ca chng trnh
trong m kh nh v.
bng trong 5.3.3, ta thy: khi c mt tp tin c thc thi, n tham chiu
n b th v tr nh ca b + a ch bt u vng d liu ca tp tin (6), c ct
trong b nh trong.

5.4. NHM CC GIAI ON CA TRNH BIN DCH.


Nh trong phn trc ta thy t chc lun l ca trnh bin dch gm
nhiu giai on. Song thc t mt s cc giai on thng c gp li thnh mt
giai on ln hn.
5.4.1. Giai on trc v giai on sau (front end and back end):
Thng thng cc giai on c nhm li trong hai giai on bao trm hn
l giai on trc (front end) v giai on sau (back end). Giai on trc bao gm
cc giai on, hoc cc phn ca cc giai on m chng ch ph thuc vo ngn
ng ngun m hu nh khng ph thuc vo my ch. Giai on u ny bao gm
phn tch t vng, phn tch c php, to bng danh biu, phn tch ng ngha,
thng bo li v sinh m trung gian. Phn ln ti u m trung gian cng nm trong
giai on u. Giai on sau bao gm nhng phn ph thuc vo my ch, m
khng (v tng qut) ph thuc vo ngn ng ngun. Giai on ny bao gm giai
on sinh m i tng, ti u m i tng v tt nhin n cn cc tc v ca
thng bo li v bng danh biu.
Vi nim nh vy c th xut hin mt th tc c bit, s ly giai on
u ca trnh bin dch kt ni vi cc phn sau to ra mt trnh bin dch cho
cng mt ngn ng ngun trn cc my khc nhau. Hoc ngc li, c th cc
trnh bin dch cho nhiu ngn ng ngun khc nhau, c chung mt ngn ng trung
gian v dng chung giai on cui, s cho ta nhiu trnh bin dch trn mt my.

5.4.2. Cc chuyn:
Thng thng mt s giai on c th hin thc trong mt chuyn. Chng
hn, phn tch t vng, phn tch c php, phn tch ng ngha v sinh m trung
gian c th c gom li, hin thc trong mt chuyn. Nu nh vy th chui token
c nhn dng s c dch thng sang m trung gian. Ni chi tit hn, ta s thy
vai tr b phn tch c php l bao trm, n trng coi ton b hot ng ca
chuyn. N c nhim v phi pht hin cu trc vn phm ca cc token a n
cho n. N li phi bit lc no cn ly tip token v n s gi b phn tch t
vng nhn dng token k tip. Khi pht hin xong mt cu trc vn phm, b
91

phn tch c php s gi b sinh m trung gian, thc hin phn tch ng ngha
v to m trung gian.

5.4.3. Thu gim s lng cc chuyn:


Nu mt qu trnh dch c chia thnh nhiu chuyn, n s lm tng thi
gian c v ghi ln b nh ngoi m trung gian. Ngc li, nu ta gom mt s
giai on thnh mt chuyn th buc phi gi ton b chng trnh trong b nh.
Bi v giai on on ny s cn nhng thng tin theo th t khc vi th t m
giai on trc to ra, nh vy vn b nh khng phi l n gin.
Vic thc hin gom mt s giai on trong mt chuyn phi gii quyt c
mt s vn sau. Vic giao tip gia b phn tch t vng v phn tch c php
c th c gii hn mt token v khi no b phn tch c php cn ti mt token
s gi b phn tch t vng cung cp. Nhng tht kh thc hin vic sinh m
i tng khi ton b m trung gian ca chng trnh ngun cha c to xong.
Chng hn, trong PL/I, Algol 68 cho php dng bin trc khi n c khai bo,
nh vy ta khng th to m i tng cho mt cu trc m m ta cha bit loi
ca bin, c xut hin trong n. R rng trong trng hp ny phi c s phn
tch ng ngha, kim tra kiu d liu ti cu trc c th quyt nh xem bin
thuc kiu no, khi kt lun c th b sinh m trung gian mi sinh m c.
Cng tng t trong trng hp pht biu goto tham kho trc, cc pht biu
goto L c th t ng trc pht biu c nhn L.
Khi dch ra m i tng, b sinh m s sinh m cho tc v goto cn a ch
c tn L th cha c thay th v ti thi im , n cha nhn thy ch th c
nhn L, nn khng bit ch th nm a ch no. B sinh m s to ra mt danh
sch lin kt, ghi nh a ch ca cc ch th goto L. Khi gp ch th c nhn L, b
sinh m xc nh c a ch c tn l L, n s ln theo danh sch lin kt
in vo cc ch th goto a ch ca L.

92

PH LC:

CC LP P V NP
V LP CC BI TON NP-Y
C nhng bi ton thc t m cho n nay vn cha xy dng c thut
ton hiu qu gii ( l thut ton c phc tp tnh ton l a thc) v chng
minh c mc kh thc cht ca n. Trong s cc bi ton nh vy, c th k
ra cc bi ton ni ting sau: Bi ton ngi du lch, Bi ton chu trnh Hamilton,
Bi ton t mu th, Bi ton tm ng i n di nht ca th. Ta c th
quy li cho vic thit k v phn tch thut ton hay l thuyt phc tp hay
khng? Liu trn thc t c thut ton hiu qu gii quyt cc bi ton ny
khng?
Trong phn ny, ta s c mt kt qu ni ting: mi thut ton hiu qu
gii mt trong s cc bi ton va k trn s cng cho ta thut ton hiu qu gii
tt c cc bi ton cn li. Ta cha bit nhng bi ton ny l d hay kh gii,
nhng ta bit rng tt c chng c phc tp nh nhau. ngha thc t quan
trng ca cc bi ton ny l m bo rng mi mt bi ton ny l i tng ca
nhng c gng tm thut ton hiu qu gii.

1. LP P V LP NP.
1.1. nh ngha: Cho M l mt my Turing. Hm T(n) c gi l phc tp
tnh ton ca M nu vi mi xu vo c di n th u tn ti mt dy hnh
trng c nhiu nht l T(n) bc on nhn ( y T(n) l mt s nguyn
dng). Nu c mt xu no c di n m my Turing khng dng th i vi
n , T(n) khng xc nh.
1.2. nh ngha: Lp P l lp cc ngn ng c on nhn bi my Turing n
nh v phc tp tnh ton l a thc.
C th pht biu mt cch khc l: mt bi ton c coi l thuc lp P nu
tn ti mt thut ton a thc gii n. Ngi ta ni rng nhng bi ton thuc
lp P l d.
1.3. Ch : Theo quan im ton hc, lp P l rt t nhin. iu ny thy c t
vic n l bt bin cao i vi m hnh tnh ton c dng. Chng hn, cc my
Turing M1 vi nhiu bng l nhanh hn cc my Turing thng thng, tc l
phc tp tnh ton ca chng nhn cc gi tr nh hn. Tuy nhin, nu phc tp
tnh ton ca mt my Turing M1 nh vy b chn trn bi mt a thc T1(n), ta c
th xy dng mt my Turing thng thng M vi gii hn thi gian a thc T(n)
93

on nhn chnh ngn ng nh M1. (Ni chung, T(n) nhn gi tr ln hn T1(n)


nhng vn l a thc). Tng t, mi ngn ng l trong gii hn a thc i vi
mt m hnh my Turing chun mc bt k hay i vi mt m hnh tnh ton hp
l bt k u thuc vo lp P c nh ngha nh trn i vi cc my Turing
thng thng.
Lp P cng c tm quan trng quyt nh v cc ngn ng nm ngoi P c
th xem l khng th tnh c. Trn thc t ta ni rng mt ngn ng quy l
bt tr nu n khng thuc P.
R rng rng cc ngn ng nm ngoi P l bt tr theo quan im thc hnh.
Ta cng c th ni nh vy i vi cc ngn ng trong P c cn l mt a thc
khng l. Tuy nhin, vic vch ra mt ranh gii gia tnh bt tr v tnh khng bt
tr bn trong P l khng t nhin lm. Mt nh ngha nh vy s thay i theo thi
gian: s pht trin k diu trong lnh vc my tnh c th lm thay i ranh gii
ny. Mt khc, lp P cho ta mt cch c trng rt t nhin cho tnh khng bt tr.
Th d 1: Bi ton tm ng i ngn nht gia hai thnh ph A v B l bi ton
d v phc tp ca thut ton gii n l O(n2) (tc l mt thut ton a thc).
Ta xt di y cc bi ton thuc lp s c gi l lp NP.
Theo nh ngha trn, ta nu ra th d v bi ton kh. Gi s ngi ta i
hi xc nh tt c cc con ng ni nh S vi nh T trong mt mng no v
c di nh hn (1+) ln so vi di ca ng i ngn nht. Ngi ta c th
khng c kh nng lp nn danh mc ny trong thi gian a thc (cch ni ny c
ngha tng t vi s cc php ton) v mt nguyn nhn n gin l danh mc
ny cha mt s cc phn t khng a thc (ngha l n khng b chn bi mt a
thc theo s cc d liu).
1.4. nh ngha: Mt bi ton c gi l nhn bit nu l bi ton m cc
kt qu ch c th lp mt trong hai gi tr ti NG hay SAI.
Th d 2: 1) Bi ton v vic tm phn b ph hp.
Cho tp hp X={x1, x2, , xn} gm cc bin Boole v mt biu thc Boole
i vi cc s hng ca cc bin ny: E=C1C2Cm, trong Ci (i=1,, m) l
biu thc Ci=uj1uj2ujk(i), trong mi ujq l mt trong cc bin ca X.
Bi ton t ra l th tm xem c mt phn b cc bin xk (k=1,,n) bng 0
hay 1 sao cho E=1.
i vi E= ( x1 x 2 x3 ) ( x1 x 2 ) x3 c cu tr li l NG khi ly
x1=0 hay 1, x2=1, x3=1. Tuy nhin, cu tr li l SAI trong trng hp ny i vi
E= ( x1 x 2 x3 ) ( x1 x 2 ) x3 ( x 2 x3 ) .
2) Bi ton v chu trnh Hamilton. Vn t ra l xc nh xem trong mt th
G cho c mt chu trnh s cp i qua tt c cc nh hay khng?
94

Nghim ca bi ton nhn bit ch l NG hoc SAI. Ngi ta khng i


hi g hn. iu ny phn bit mt cch c bn cc bi ton nhn bit vi cc bi
ton tn ti cng nh i vi bi ton v s tm phn b ph hp, nu cu tr li l
NG, ngi ta khng i hi cho mt phn b cc bin ca X cho E gi tr 1.
i vi bi ton chu trnh Hamilton, ngi ta khng i hi din t chu trnh.
1.5. nh ngha: Cho bi ton ti u ho t hp min (f(s)) (tng ng max (f(s)))
sS

sS

v mt s a. Ngi ta nh ngha bi ton nhn bit lin hp l bi ton: liu c


tn ti sS sao cho f(s)a (tng ng f(s)a).
Th d 3: 1) Cho mt tp n thnh ph, cc khong cch gia cc thnh ph v mt
s a. Bi ton vi ni dung l xc nh xem c tn ti mt vng i vi chi ph nh
hn hoc bng a l bi ton nhn bit lin hp ca bi ton ngi du lch.
2) Cho mt ma trn A v vect b vi cc h s nguyn. Bi ton c ni dung l
xc nh xem c tn ti vect x c cc thnh phn nguyn sao cho A x b l mt
bi ton nhn bit.
C
a
Nu t A = , b = , ta c th coi bi ton nhn bit l lin hp vi
A
b
bi ton quy hoch tuyn tnh nguyn:
Cx=z(min)
Ax b

x j N , j = 1, n.
1.6. nh l: Nu bi ton nhn bit lin hp ca mt bi ton ti u ho t hp
cho l kh th bi ton ti u ho t hp cng l kh.
nh l 1.6 ch ra rng bi ton ti u ho t hp t nht l kh nh bi
ton nhn bit lin hp. Trong thc t ngi ta lun lun c th chng minh rng
bi ton nhn bit (chng hn bi ton ngi du lch) khng phi l d hn bi
ton ti u ho t hp m n lin hp.
1.7. Nhn xt: K hiu NP c trng cho lp cc bi ton m ta s nghin cu
by gi tr nn nh l lng gt. Vn l n khng phi thuc cc bi ton
khng phi l a thc nh ngi ta tng.
Gi s rng ta bit cu tr li ca mt bi ton nhn bit l NG. Nu ta
c th chia s s tin chc ca ta cho mt ngi siu quan st bng thi gian a
thc th bi ton thuc lp NP, ngay c khi ta khng bit tm bng thi gian a thc
mt nghim s m i vi n cu tr li l NG. Ngi ta ch i hi rng nu
nghim s c xut th ngi ta c th th li bng thi gian a thc rng cu
tr li tng ng l NG.

95

Cc bi ton v s tm phn b ph hp, v chu trnh Hamilton, v nhn bit


lin hp vi bi ton ngi du lch v bi ton nhn bit lin hp ca quy hoch
tuyn tnh nguyn l cc bi ton thuc lp NP.
By gi ta xt cc my Turing khng n nh: khi c mi k hiu bt k
mt trng thi bt k, my c php c mt s kh nng hnh ng. Cn v cc
yu t khc, mt my Turing khng n nh c nh ngha nh mt my n
nh. Mt t c on nhn nu n sinh ra mt tnh ton on nhn c, c
lp vi vic n cng c th sinh ra cc tnh ton khc dn n tht bi. Nh vy,
khi quan h vi cc my khng n nh, ta khng quan tm n mi con ng
dn n tht bi nu c mt con ng c th c dn n thnh cng.
Thi gian cn thit my Turring khng n nh M on nhn mt t
T(M) c nh ngha bng s bc trong tnh ton ngn nht ca M dng
on nhn .
1.8. nh ngha: Lp NP l lp cc ngn ng c on nhn bi cc my
Turing khng n nh trong gii hn a thc.
1.9. Ch : Cc bi ton trong lp P l tr liu c, trong khi , cc bi ton
trong lp NP c tnh cht l vic kim chng xem mt phng on tt khng i
vi vic gii bi ton c l ng n khng l tr liu c. Mt my Turing khng
n nh c th c hnh dung nh mt thit b kim chng xem mt phng on
c ng hay khng: n tin hnh mt (hay mt s) phng on tng bc trong
sut qu trnh tnh ton v chung cuc l vic on nhn ch trong trng hp (cc)
phng on ny l ng n. Nh vy, trong thc t mt gii hn thi gian i vi
mt my Turing khng n nh l mt gii hn thi gian kim chng xem mt
phng on i vi li gii c l ng n khng.
D thy lp P l mt lp con ca lp NP. Tuy nhin, ta khng bit liu bao
hm ny c l thc s hay khng. Vn P c bng NP hay khng c th xem l
vn tn ti ni ting nht trong l thuyt tnh ton. Vn ny c ngha v
nhiu bi ton quan trng trong thc t c bit l thuc NP, trong khi ta
khng bit n c thuc P hay khng. Thc ra, v mt thi gian, mi thut ton n
nh c bit i vi cc bi ton ny u l m. Nh vy, mt chng minh cho
P=NP s lm cho mi bi ton ny tr liu c.
Cc my Turing khng n nh v vic on chng vn khng c d
nh m hnh ho vic tnh ton. Tnh khng n nh ch l mt khi nim b
tr v nh ta s thy, n rt tin li. Thc vy, nu ta mun gii quyt vn c
hay khng ng thc P=NP, cc nh ngha v kt qu sau ny chng t rng ch
cn xt mt ngn ng c bit (c th l mt ngn ng ta a thch!) v xc nh

96

xem n c thuc P hay khng. C mt s ln v rt a dng cc ngn ng m ta s


gi l cc ngn ng NP-y nhn c thc t t mi lnh vc ca ton hc.
1.10. nh ngha: Ngn ng L11* c gi l dn c trong thi gian a thc
v ngn ng L22*, k hiu L1 P L2, nu c mt hm xc nh bi my Turing
2* tho mn:
n nh trong thi gian a thc f: 1*
1*, L1 f()L2.
Ta nhn thy rng my Turing M c a vo trong nh ngha trn phi
dng vi mi d liu vo, l mt h qu ca vic M l n nh v trong thi
gian a thc.
Kt qu tip theo l mt h qu trc tip ca nh ngha.
1.11. Mnh : Nu L1 P L2 v L2P th L1P.

2. LP NP-Y .
i vi phn ln cc bi ton thuc lp NP, ngi ta khng ni c l
chng c th gii c hay khng bng mt thut ton a thc. Ch bit rng ngi
ta cha tm c mt thut ton a thc gii chng.
chng minh P=NP, ta phi chng t rng trong lp NP tt c cc bi ton
c th gii vi thi gian a thc bng cc thut ton n nh.. chng minh
PNP, ta phi ch ra mt bi ton trong NP m khng th gii c mt cch tin
nh vi thi gian a thc. Cch gii quyt hin nay l xy dng lp cc bi ton
tng ng.
2.1. nh ngha: Mt ngn ng L c gi l NP-kh nu vi mi ngn ng L
trong NP, ta c L P L.
Ngn ng L c gi l NP-y nu n l NP-kh v LNP.
2.2. Ch : Cc ngn ng NP-y c th hnh dung nh i din cho cc bi
ton kh nht trong NP. Hn na, gii quyt vn c P=NP khng, ch cn
quyt nh xem mt ngn ng NP-y L no c thuc P hay khng. Tht
vy, xt mt ngn ng L nh vy. Nu L khng thuc P th r rng PNP. Nu L
thuc P th nh ngha ca tnh NP-y v Mnh 1.11 chng t rng mi
ngn ng thuc NP cng thuc P. Nhng iu c ngha l P=NP.
Ta c th xy dng cho mi bi ton trong lp NP mt thut ton lm vic
trong thi gian a thc min l ta bit mt thut ton (n nh) trong gii hn thi
gian a thc i vi mt bi ton NP-y no . (Hin thi ta ni v cc bi
ton thay cho cc ngn ng nhc nh rng c th thay i qua li gia cc khi
nim ny). Nh vy, mt khi chng ta c c mt thut ton trong gii hn thi
gian a thc cho mt trong s rt nhiu bi ton NP-y , ta s c c thut
ton trong gii hn thi gian a thc cho mi bi ton trong lp NP! Do nhng n
lc cc k ln dnh cho d nh ci tin cc thut ton c bit cho mt s
97

trong cc bi ton nh vy (do tm quan trng thc t ln lao ca chng) v do


cha mt n lc no nh vy dn n thnh cng, by gi ni chung ngi ta tin
rng PNP.
Mnh sau y l mt h qu trc tip ca tnh bc cu ca quan h P.
2.3. Mnh : Nu L1 l NP-y v L2 l mt ngn ng trong lp NP tho mn
L1 P L2 th ngn ng L2 cng l NP-y .
Th d 4: Xt bng ch:
= {1, 2, , , , (, )}.
Mt t trn bng ch c gi l mt cng thc c thit lp ng ca php
tnh mnh , vit tt l wffpc, nu hoc (1) hoc (2) ng.
(1) l mt t khc rng trn bng ch {1, 2}.
(2) C cc wffpc u v v sao cho:
=(u v) hay =(u v) hay =u .
ch php tuyn, php hi v php ph nh.
V mt trc gic, , v
Trong cc wffpc, ta c th c nhiu khng hn ch cc bin xi m i l mt s
nguyn theo cch vit 2-adic. Chng han, thay v x9 th ta vit 121. iu kin (1)
ni rng mi bin n l l mt wffpc.
Mt cch hnh thc, mi t con {1, 2}+ ca mt wffpc tho mn cc
iu kin:
=12, 1*{1, 2}, 2{1, 2}*
c gi l mt bin.
Gi s 1, , n l tt c cc bin c mt trong mt wffpc . Mt nh x T
t tp {1, , n} n tp {0, 1} c gi l mt php gn gi tr chn l cho .
Gi tr chn l ca mt bin i bng T(i). Gi tr chn l ca (u v) (tng ng
ca (u v)) bng max(u1, v1) (tng ng min(u1, v1)), trong u1 v v1 tng ng
l cc gi tr chn l ca u v v. Gi tr chn l ca u bng 1u1.
Mt wffpc c gi l tho c nu n nhn gi tr chn l 1 i vi mt
cch gn gi tr chn l T no . Ta k hiu ngn ng trn gm mi wffpc tho
c l SAT.
V mt trc gic, 1 v 0 k hiu tng ng cc gi tr chn l ng v sai..
Mt wffpc l tho c nu n khng l ng nht sai theo k thut bng chn l
quen thuc. Tt nhin, trong mi cch gn gi tr chn l, mi xut hin ca mi
bin c bit i nhn cng mt gi tr chn l.
Sau y, cc quy tc nghim ngt v nh ngha ca mt wffpc c gim
nh i cht. Ta dng cc ch thng cui bng ch ci k hiu cc bin.
Nh vy, mt bin c bit c th c k hiu l x9 thay cho k hiu 121 ch ra
trong nh ngha. Cc du ngoc khng cn thit c b i. Quy c ny cng p
98

dng i vi cc du ngoc khng cn thit do tnh kt hp ca v . (Ta ch


quan tm n cc gi tr chn l v r rng rng cc hm min v max l kt hp).
Xt hai wffpc sau y:
( x1 x 2 ) ( x1 x 2 ) ( x1 x 2 ) x3
(1)
( x1 x 2 x3 ) ( x2 x3 ) ( x1 x3 ) x3
(2)
C hai (1) v (2) u l hi ca wffpc m mi mt trong s chng l tuyn ca cc
k hiu ch, trong cc bin v cc ph nh ca chng c gi l cc k hiu
ch. Ta ni rng cc wffpc thuc loi ny l dng chun hi. Hn na, nu mi
tuyn cha nhiu nht ba (tng ng hai) k hiu ch, ta ni rng wffpc ny l
dng chun 3-hi (tng ng 2-hi). Nh vy, (2) l dng chun 3-hi v (1)
dng chun 2-hi (ng thi cng dng chun 3-hi).
Ta k hiu ngn ng trn gm mi wffpc tho c dng chun hi l
CONSAT. Cc k hiu 3-CONSAT v 2-CONSAT c nh ngha tng t.
wffpc (1) thuc 2-CONSAT nhng wffpc (2) khng thuc 3-CONSAT v tuyt
nhin n khng l tho c. Ta c th thy iu nh l lun sau. Cu cui cng
ca (2) buc ta phi gn tr 0 cho x3. Do , cc cu th hai v th ba buc ta phi
gn tr 1 v 0 tng ng cho x2 v x1. Nhng vi cch gn tr ny, cu th nht
nhn gi tr 0.
R rng tnh tho c l mt tnh cht c th quyt nh c. Ta ch cn
kim tra qua tt c 2n cch gn tr chn l c th c i vi n bin. (Thc ra iu
ny cng chng khc g so vi k thut bng chn l quen thuc). Mt cch kim
tra vt cn nh th dng mt lng thi gian m (theo s bin hay di ca
wffpc cho trc). By gi ta m t mt cch ngn gn mt thut ton kim tra
tnh tho c da trn vic rt gn s bin. Ta gi thit rng d liu vo c cho
di dng chun hi. Thut ton ny bc l s khc nhau ng k gia cc dng
chun 2-hi v 3-hi.
Gi s rng l mt wffpc dng chun hi. Nh vy
= 1 2 k,
trong mi i l mt tuyn ca cc k hiu ch. Ta gi cc tuyn i l cc mnh
.
Bc 1: Bo m cho mi bin xut hin (hoc b ph nh hoc khng) nhiu nht
mt ln trong mi mnh . iu ny c thc hin bng cch bin i nh
sau. Mi mnh cha c x v x vi mt bin x no b b i khi . Nu x
(tng ng x ) xut hin mt s ln trong mt mnh no , nhng xut hin
ny c thay bng mt xut hin duy nht ca x (tng ng x ). Nu tt c b b
i, l tho c. (Thc t l n ng dng ng). Tri li, gi s l wffpc thu
c.
99

Bc 2: Thay bng mt wffpc khng cha mt mnh no ch c mt k


hiu ch (v cng tho mn iu kin c i hi i vi sau Bc 1). Thc
vy, nu x (tng ng x ) xut hin n c trong mt mnh no , ta b i
mi mnh cha x (tng ng x ) v tip loi b x (tng ng x) khi mi
mnh m trong n xut hin cng vi mt bin khc no ; nu x (tng
ng x) xut hin mt mnh trong mt mnh khc no , ta kt lun rng
khng l tho c. Lp li th tc ny cho ti khi thu c nh m t trn.
Bc 3: Nu khng c bin no xut hin trong va b ph nh v va khng
b ph nh, ta kt lun rng l tho c. Nu tri li, ta chn mt bin x no
m c x v x u xut hin trong . Ta tm mi mnh
( x 1 ),..., ( x m ), ( x 1 ),..., ( x n ),
trong x hay x xut hin. Gi s l hi ca mi mnh khc (nu cn). Khi
l tho c nu wffpc
(( 1 ... m ) ( 1 ... n ))
l tho c. Ta nhn thy rng mi mt trong s cc v cha t nht mt k
hiu ch v cha ng mt k hiu ch nu nguyn bn l dng chun 2-hi.
Nu mt trong s cc hay cha hn mt k hiu ch ta thay bng hai
wffpc

= 1 ... m v = 1 ... n ,
bo m c ln u khng cha cng mt mnh hai ln (bng cch b i
nhng xut hin khng cn thit) v quay v Bc 1. wffpc ban u l tho c
nu hay l tho c.
Nu mi v cha ng mt k hiu ch, ta thay bng wffpc
' ' ' = ( 1 1 ) ... ( 1 n ) ... ( m n ) ,
loi b nhng xut hin b lp li ca cng mt mnh v quay v Bc 1. ban
u l tho c nu l tho c.
n y ta kt thc vic m t thut ton. Chng ta c th d dng kim
nghim rng phng php ny c hiu lc. Mt s gii thch c cho trn.
iu ct yu l s lng bin thc s gim trc mi ln quay v Bc 1.
Xt cc t c dng:
0 # 1 # # k
trn b ch ci {1, 2, #} sao cho k1, mi l mt t khng rng trn b ch ci
{1, 2} v hn na, 0 bng tng ca mt s khc no khi cc t c xem
nh l cc s nguyn 2-adic. Ta k hiu KNAPSACK l ngn ng gm mi t nh
vy.
2.4. nh l: Ngn ng 2-CONSAT thuc lp P.
100

2.5. nh l: Ngn ng SAT l NP-y .


2.6. nh l: Ngn ng CONSAT l NP-y .
2.7. nh l: Ngn ng 3-CONSAT l NP-y .
2.8. nh l: Ngn ng KNAPSACK l NP-y .
2.9. nh l (J. Demetrovics V.. Thi, 1999): Cho s = (U, F) l mt s quan
h trn U. Gi s U={a1, , an} v F={A1B1, , AtBt}. K hiu Vs={A | A
U, A+ U} (ngha l Vs l tp cc tp con ca U m khng phi l kho) v m l
s nguyn dng, m |U|. Khi bi ton xc nh xem c tn ti mt phn t
AVs m m |U| hay khng l NP-y .
Chng minh: Chn tu mt tp A sao cho m |A|. Kim tra xem A+ U hay
khng. Vic kim tra ny l thc hin trong thi gian a thc, v thut ton xy
dng bao ng ca mt tp thuc tnh bt k ca s c thi gian tnh a thc. Nh
vy thut ton ca chng ta l bt nh v c phc tp tnh ton a thc. Vy bi
ton ca ta thuc lp NP.
Bi ton tp c lp sau ca Garey v Johnson (1979) l bi ton NP-y :
Cho trc s nguyn dng m v th G=(V, E), vi V l tp cc nh v E
l tp cc cung, E={(ai, aj) | ai, ajV}. Ta gi A l tp c lp ca th G nu A l
tp con ca V v vi mi a, bA th (a, b)E. Kim tra xem c tn ti tp c lp
A ca G m m |A| hay khng.
Ta s chng minh rng bi ton c lp trn l c chuyn a thc v bi
ton ca chng ta.
Cho G=(V, E) l th m m |V|. Xy dng s quan h s = (U, F) vi
U=V v F={{ai, aj}{a} | (ai, aj)E v aV \ {ai, aj}}. R rng s c xy dng
trong thi gian a thc theo kch thc ca G.
Theo nh ngha tp cnh, r rng E l mt siu th n trn V (nh
ngha v siu th v cc khi nim, tnh cht lin quan c th tm c bi bo
ca V c Thi Some results about hypergraph trong Tp ch Tin hc v iu
khin hc, tp 13, s 2, nm 1997). T iu ny, ta thy rng s l dng chun
BCNF. Do nh ngha kho ti thiu v nh ngha tp E nn c th thy nu
(ai, aj)E th {ai, aj} l mt kho ti thiu ca s. Ngc li, nu BKs th c {ai, aj}
sao cho {ai, aj}B. V B l mt kho ti thiu nn ta c {ai,aj}=B. Do Ks=E.
Nh vy A khng phi l kho ca s khi v ch khi {ai, aj}A vi mi
(ai,aj)E. Do A khng phi l kho ca s khi v ch khi A l mt tp c lp ca
th G.
2.10. nh ngha: Cho s = (U, F) l mt s quan h. Ph thuc hm A{a}
F+ c gi l ph thuc hm cc i ca s nu aA v vi mi AA, A{a}
F+ ko theo A=A.
101

t Ta={A | A{a} l ph thuc hm cc i ca s}. Ta c th thy {a} v


UTa v Ta l mt h Sperner trn U (h Sperner chnh l siu th n).
2.11. nh l (J. Demetrovics V.. Thi, 1994): Bi ton sau l NP-y : Cho
mt s quan h s = (U, F) v hai thuc tnh a, b, quyt nh xem c hay khng
ph thuc hm cc i A{a} sao cho bA.
Chng minh: Vi b, ta chn bt nh tu mt tp con A ca U sao cho bA. V
thut ton tnh bao ng ca A c phc tp tnh ton a thc v theo nh ngha
ca ph thuc hm cc i, ta xc nh c ATa hay khng. R rng rng thut
ton ny l bt nh c phc tp tnh ton a thc. Vy bi ton ny thuc lp
NP.
By gi ta cn ch ra rng bi ton trn l NP-kh, c ngha l c mt bi
ton NP-y chuyn v bi ton ca ta nh mt thut ton c phc tp tnh
ton a thc. C th thy rng bi ton di y v vic xc nh thuc tnh c bn
ca s quan h l NP-y .
Cho s quan h s = (U, F) v thuc tnh a. Xc nh c tn ti hay khng
mt kho ti thiu ca s cha a (a gi l thuc tnh c bn ca s).
Bi ton ny c a v bi ton ca ta nh mt thut ton c phc tp
tnh ton a thc nh c chng minh di y.
Gi s s = (P, F) l mt s quan h trn P. Khng mt tnh cht tng
qut, ta gi thit rng P khng l mt kho ti thiu ca s, c ngha l nu AKs
th AP. V vic tm mt kho ti thiu ca mt s quan h cho trc c gii
quyt bng mt thut ton a thc, ta c th tm mt kho ti thiu C ca s. By
gi ta xy dng s quan h s = (U, F) nh sau:
U = P{a}, y aP v F = FC{a}.
Hin nhin s c xy dng trong thi gian a thc theo kch thc ca P
v F. R rng CKs. Trn c s kin trc s v nh ngha ca kho ti thiu, ta
thy nu AKs th AKs. Ngc li, nu B l mt kho ti thiu ca s th do
C{a}F, ta c aB. Mt khc, do nh ngha ca kho ti thiu, ta c BKs.
Nh vy ta c Ks=Ks. V CKs v aU, nn nu B{a} l mt ph thuc hm
cc i ca s th BKs. C th thy rng nu AKs th A{a}F+. Ph hp vi
nh ngha ca ph thuc hm cc i, ta c A{a} l mt ph thuc hm cc i
ca s. Do b l mt thuc tnh c bn ca s khi v ch khi tn ti mt ph thuc
hm cc i A{a} ca s bA.
2.12. nh ngha: Bi ton A c gi l co-NP-y nu bi ton ph nh
ca A l NP-y .
Nhng khi nim kho ca file d liu v kho ca s quan h ng vai
tr rt quan trng trong vic x l d liu. Chng dng tm kim cc bn ghi v
102

nh c chng ngi ta mi tm cch tin hnh x l d liu c. Di y l mt


bi ton co-NP-y lin quan n vic so snh gia hai tp kho ca s quan
h v file d liu.
Gottlob v Libkin ch ra rng bi ton phn b gii hn cc tp con (SDCSubset delimiter complementarity) sau l co-NP-y .
2.13. nh l (G. Gottlob L. Libkin, 1990): Bi ton sau l co-NP-y : Cho
mt tp hu hn T, hai h P={P1, , Pn} v Q={Q1, , Qm} cc tp con ca T.
Kim tra xem vi mi AT c tn ti Pi PiA hoc c Qj AQj, vi 1in,
1jm.
Gottlob v Libkin cng chng minh rng nu Q1, , Qm l mt h Sperner
trn T th bi ton trn vn l co-NP-y .
Bi ton SDC ny s c chng t chuyn a thc v bi ton di y.
K hiu Lr v Ls tng ng l tp tt c cc kho ca quan h r v s
quan h s. Bi ton kim tra LrLs hay khng cng l co-NP-y .
2.14. nh l (J. Demetrovics V.. Thi, 1993): Bi ton sau l co-NP-y :
Cho quan h r v s quan h s = (U, F), kim tra xem Lr c l tp con ca Ls
hay khng.
Chng minh: i vi mi AU, ta kim tra rng A l hoc khng l mt kho
ca r bng mt thut ton a thc. T thut ton tm bao ng A+ v nh ngha
kho ca s quan h, ta cng c th kim tra trong thi gian a thc A l hoc
khng l kho ca s. Do ta chn tu mt tp con AU sao cho A l kho ca
r nhng khng l kho ca s. Nh vy, vn ca ta thuc co-NP.
Xt bi ton SDC vi tp hu hn T v hai h P={P1, , Pn}, Q={Q1, ,
Qm}, y Q l mt h Sperner trn T. K hiu
P = {PiP | khng tn ti Pj PjPi, 1i, jn}.
R rng P l tp cc phn t nh nht ca P v P l mt h Sperner trn T. T P
ta c th tnh P trong thi gian a thc theo |P| v |T|. D thy {T, P, Q} l mt
th hin tng ng ca {T, P, Q}. T ta c th gi thit rng P l mt h
Sperner trn T. Ta s chng minh rng bi ton SDC c dn v bi ton ca ta
bng mt thut ton thi gian a thc.
t U = T, s = (U, F), y F = {P1U, , PnU}.
t M = {Qi \ {a} | i=1, 2, , m v aU} = {M1, , Mt}. Xy dng quan
h r = {h0, h1, , ht} nh sau:
Vi mi aU, h0(a)=0; hi(a)=0 nu aMi v hi(a)=i trong trng hp ngc
li, vi i=1, 2, , t.
R rng r v s c xy dng trong thi gian a thc theo kch thc |T|, |P|
v |Q|. C th thy rng Fr v s = (U, F) l dng chun BCNF.
103

Do s l BCNF nn vi mi AU, ta c A+=A hoc A+=U. T nh ngha


ca kho, i vi mi kho A ca s u c mt Pi sao cho PiA, y 1in.
C th thy rng Q l tp phn kho ca r. Do Fr l BCNF nn vi mi
AU, HFr(A)=U hoc HFr(A)=A, y HFr(A)={aU | (A, {a})Fr}. T nh
ngha phn kho ca r, ta thy A l kho ca r khi v ch khi vi mi i=1, 2, , m,
AQi.
Vy LrLs khi v ch khi vi mi AT, vi mi i=1, 2, , m, AQi th c
mt Pj PjA. T y ta thy rng bi ton SDC c dn v bi ton ca ta
bng mt thut ton thi gian a thc.

104

TI LIU THAM KHO


[1] Phan nh Diu, L thuyt tmat v thut ton, NXB i hc v Trung hc
chuyn nghip, H Ni, 1977.
[2] c Gio, ng Huy Run, Vn phm v ngn ng hnh thc, NXB Khoa
hc v K thut, H Ni, 1991.
[3] c Gio, Ton ri rc, NXB i hc Quc Gia H Ni, H Ni, 2000.
[4] L Mnh Thnh, Nhp mn ngn ng hnh thc v tmat, NXB Gio dc,
Nng, 1998.
[5] V c Thi, Thut ton trong tin hc, NXB Khoa hc v K thut, H Ni,
1999.
[6] Bi Minh Tr, Ti u ho t hp, NXB Khoa hc v K thut, H Ni, 2003.
[7] Phan Th Ti, Trnh Bin Dch, NXB i hc Quc Gia TP. H Ch Minh,
TP. H Ch Minh, 2001.
[8] A.V. Aho, J.D. Ullman, The theory of parsing, Translation and compiling, Vol.
1, 2, Prentice-Hall, Englewood Cliffs, 1972.
[9] J.E. Hopcroft, J.D. Ullman, Formal languages and their ralation to automata,
Addison Wesley, Reading Mass. London, 1969.
[10] J.E. Hopcroft, J.D. Ullman, Introduction to formal language theory, Addison
Wesley, Reading Mass. London, 1979.
[11] K.H. Rosen, Discrete mathematics and its applications, Mc Graw-Hill, New
York, 1994.
[12] A. Salomaa, Formal languages, Academic Press, New York, 1973.

105

You might also like