Professional Documents
Culture Documents
--------------------
IT
BI GING
PT
TON RI RC 1
H Ni 2013
LI GII THIU
Ton ri rc l lnh vc nghin cu v x l cc i tng ri rc. Ton ri rc
dng m, quan st, v x l mi quan h gia cc i tng trong cc tp hp khc
nhau. Bn cht tnh ton trn my tnh l ri rc. Chnh v vy, ton hc ri rc c xem
l mn hc kinh in cho sinh vin cc ngnh Cng ngh thng tin v in t Vin
thng. Ti liu hng dn mn hc ton hc ri rc c xy dng da trn c s kinh
nghim ging dy mn hc v k tha nhng ni dung t gio trnh Ton hc ri rc
ng dng trong tin hc ca Kenneth Rossen. Ti liu c trnh by thnh hai phn: L
thuyt t hp (Ton ri rc 1) v L thuyt th (Ton ri rc 2).
IT
Phn I trnh by nhng kin thc c bn v l thuyt t hp thng qua vic gii
quyt bn bi ton c bn l: Bi ton m, Bi ton tn ti, Bi ton lit k v Bi
ton ti u. Phn II trnh by nhng kin thc c bn v L thuyt th: khi nim, nh
ngha, cc thut ton trn th, th Euler, th Hamilton. Mt s bi ton c ng
dng thc tin quan trng khc ca l thuyt th cng c ch trng gii quyt l
Bi ton t mu th, Bi ton tm ng i ngn nht v Bi ton lung cc i trong
mng.
PT
MC LC
IT
BI TP CHNG 1...................................................................................... 19
CHNG 2. BI TON M........................................................................ 21
PT
BI TP CHNG 2...................................................................................... 43
CHNG 3. BI TON LIT K.................................................................. 45
3.1- Gii thiu bi ton .............................................................................................. 45
3.2. Thut ton v phc tp tnh ton .................................................................... 46
3.2.1. V d v nh ngha ..................................................................................... 46
BI TP CHNG 3...................................................................................... 70
CHNG 4. BI TON TI U ................................................................... 73
IT
PT
BI TP......................................................................................................... 109
IT
PT
c ngha l ngay k c vn c hay khng mt cu hnh cng cha bit. Nhng bi ton
ny thng l nhng bi ton kh. Do vy my tnh c xem l cng c hu hiu nht
gii quyt bi ton tn ti.
IT
H ni l th ca Vit nam.
PT
x+y=z
IT
Cc php ton : , ,
chn l sau:
pq
pq
p q
pq
pq
PT
pp
p p
p q
IT
PT
pq
Dng bng gi tr chn l chng minh tnh tng ng logic gia hai mnh
phc hp cho ta mt phng php trc quan d hiu. Tuy nhin, vi nhng mnh
logic phc hp c k mnh thnh phn th cn ti 2k t hp cc b gi tr chn l khc
nhau. Do , dng bng chn l chng minh tnh tng ng logic gia hai mnh
phc hp gp nhiu kh khn. Trong trng hp ny ta c th chng minh tnh tng
logic bng vic thay th mt mnh phc hp bng nhng tng ng logic c trc.
Bng phng php bng chn l, d dng chng minh c s tng ng ca
cc cng thc di y:
p q p q
pq (pq)(qp)
pTp
pFp
Lut nut
pTT
pFF
Lut lu ng
ppp
ppp
Lut ph nh kp
p p
pqqp
pqqp
Lut kt hp
(p q) r p ( q r)
(p q) r p ( q r)
IT
p ( q r) (p q ) (p r)
p ( q r) (p q) (p r)
p q
pq
p q
pq
Lut De Morgan
PT
V d: Chng minh p p q p q ?
Chng minh:
p pq p pq
p p q
p p p q
F p q
p q F
p q
p pq
mnh tuyn. Phng php bin i mt cng thc bt k v dng chun hi bng
cch p dng cc th tc sau:
p q r s .
Li gii.
p q r s p q r s
p q r s
p q r p q s
p q r s c a v
Nh vy cng thc
dng chun hi l
PT
p q r p q s .
IT
pq r s
1.3. V t v lng t
Trong ton hc hay trong cc chng trnh my tnh chng ta rt hay gp nhng
khng nh cha phi l mt mnh . Nhng khng nh u c lin quan n cc
bin. Chng hn khng inh:
P(x) = x > 3 khng phi l mt mnh nhng ti nhng gi tr c th ca x=x0
no th P(x0) li l mt mnh . Hoc trong nhng on chng trnh gp cu lnh:
if ( x > 3 ) then x:= x +1;
th chng trnh s t gi tr c th ca bin x vo P(x), nu mnh P(x) cho gi
tr ng x s c tng ln 1 bi cu lnh x:=x+1, P(x) c gi tr sai gi tr ca x c
gi nguyn sau khi thc hin cu lnh if.
Chng ta c th phn tch mi khng nh thnh hai phn ch ng v v ng (hay
v t), trong cu x ln hn 3 th x l ch ng, ln hn 3 l v ng. Hm P(x) c
gi l hm mnh . Mt hm mnh c th c mt hoc nhiu bin. Gi tr chn l
ca hm mnh ti nhng gi tr c th ca bin c xc nh nh nhng mnh
thng thng.
V d. Cho Q(x, y, z) l hm mnh xc nh cu x2 = y2 +z2 hy xc nh gi tr
chn l ca cc mnh Q (3, 2, 1), Q ( 5, 4, 3)?
10
Li gii.
t gi tr c th ca x , y , z vo Q(x,y,z) ta c :
Q(3,2,1) l mnh 32 = 22 + 12 l sai do Q(3,2,1) l mnh sai. Trong ,
Q (5, 4, 3) l mnh 52 = 42 + 32 l mnh ng.
Tng qut, gi s M l mt tp hp cc phn t no . M thng c gi l
trng hay min xc nh ca cc phn t thuc M. Khi , biu thc P(x) gi l v t
xc nh trn trng M nu khi thay x bi mt phn t bt k ca trng M th P(x) s tr
thnh mt mnh trn trng M.
Khi tt c cc bin ca hm mnh u c gn nhng gi tr c th, th mnh
to ra s xc nh gi tr chn l. Tuy nhin, c mt phng php quan trng khc
bin mt hm mnh thnh mt mnh m khng cn phi kim chng mi gi tr
chn l ca hm mnh tng ng vi cc gi tr ca bin thuc trng ang xt.
Phng php gi l s lng ho hay lng t. Chng ta xt hai lng t quan trng
l lng t vi mi (k hiu :), lng t tn ti (k hiu : ).
IT
PT
P(x) ng vi mi x
C mt gi tr ca x P(x) sai
x P(x)
C mt gi tr ca x P(x) ng
P(x) sai vi mi x
11
Dch nhng cu thng thng thnh biu thc logic: Dch mt cu c pht biu
bng ngn ng t nhin (cu hi thng thng) thnh mt biu thc logic c vai tr ht
sc quan trng trong xy dng cc ngn ng lp trnh, chng trnh dch v x l ngn
ng t nhin. Qu trnh dch mt cu t ngn ng t nhin thnh mt biu thc s lm
mt i tnh t nhin ca ngn ng v a s cc ngn ng u khng r rng, nhng mt
biu thc logic li rt r rng cht ch t c php th hin n ng ngha ca cu. iu
ny dn n phi c mt tp hp cc gi thit hp l da trn mt hm xc nh ng
ngha cu cu . Mt khi cu c chuyn dch thnh biu thc logic, chng ta c
th xc nh c gi tr chn l ca biu thc logic, thao tc trn biu thc logic, bin
i tng ng trn biu thc logic. Chng ta s minh ho vic dch mt cu thng
thng thnh biu thc logic thng qua nhng sau.
V d dch cu Bn khng c li xe my nu bn cao di 1.5 mt tr phi bn
trn 18 tui thnh biu thc logic.
Li gii.
: Bn c li xe my.
q l cu
: Bn cao di 1.5m.
r l cu
: Bn trn 18 tui.
IT
Ta gi p l cu
PT
12
A and B
A or B
A xor B
A = 13 =1100 B = 8=1000
1000
1101
0101
Thut ton cc php tnh s nguyn: Cc thut ton thc hin cc php tnh vi cc s
nguyn khi dng khai trin nh phn l ht sc quan trng trong b x l s hc ca my
tnh. Nh chng ta bit, thc cht cc s nguyn c biu din trong my tnh l cc
xu bt nh phn, do vy chng ta c th s dng biu din nh phn ca cc s thc
hin cc php tnh.
IT
PT
Xt bi ton cng hai s nguyn vit dng nh phn. Th tc thc hin vic cng cng
ging nh lm trn giy thng thng. Phng php ny tin hnh bng cch cng cc
bt nh phn tng ng c nh tnh tng hai s nguyn. Sau y l m t chi tit cho
qu trnh cng hai xu bt nh phn.
cng a vi b, trc ht ta cng hai bt phi nht, ngha l:
a0 + b0 = c0*2 + s0; trong s0 l bt phi nht ca s nguyn tng a + b, c0 l s
cn nh n c th bng 0 hoc 1. Sau ta cng hai bt tip theo v s nh:
a1 + b1 + c0 = c1*2 + s1; s1 l bt tip theo ca s a + b, c1 l s nh. Tip tc qu
trnh ny bng cch cng cc bt tng ng trong khai trin nh phn v s nh, giai
on cui cng : an-1 + bn-1 + cn-2 = cn-1 * 2 + sn-1. Bt cui cng ca tng l cn-1. Khi
khai trin nh phn ca tng a + b l (snan-1 . . .s1s0)2.
V d: cng a =(1110)2, b = (1011)2
Li gii:
Trc ht ly:
a0 + b0 = 0 + 1 = 0 * 2 + 1 c0=0, s0 = 1
Tip tc:
a1 + b1 + c0 = 1 + 1 + 0 = 1 * 2 + 0 c1=1, s1 = 0
a2 + b2 + c1 = 1 + 0 + 1 = 1 * 2 + 0 c2=1, s2 = 0
13
a3 + b3 + c2 = 1 + 1 + 1 = 1 * 2 + 1 c3=1, s3 = 1
Cui cng:
IT
s4 = c3 = 1 a + b = (11001)2
Thut ton cng:
void Cong(a , b: positive integer)
{
/*a = (an-1an-2 . . .a1a0)2 , b = (bn-1bn-2 . . .b1b0)2 */
c=0;
for (j=0 ; j n-1; j++) {
d= [( aj + bj + c)/ 2];
sj = aj + bj + c 2d;
c = d;
}
sn = c;
khai trin nh phn ca tng l (snan-1 . . .s1s0)2;
}
Thut ton nhn: nhn hai s nguyn n bt a, b ta bt u t vic phn tch:
a = (an-1an-2. . .a1a0), b = (bn-1bn-2. . .b1b0)
PT
Ta c th tnh a.b t phng trnh trn. Trc ht, ta nhn thy abj = a nu bj=1,
abj=0 nu bj=0. Mi ln tnh ta nhn vi 2 j hay dch chuyn sang tri j bt 0 bng cch
thm j bt 0 vo bn tri kt qu nhn c. Cui cng, cng n s nguyn abj 2j (j=0..n-1)
ta nhn c a.b. V d sau y s minh ho cho thut ton nhn:
V d: Tm tch ca a = (110)2, b= (101)2
Gii: Ta nhn thy
S dng thut ton tnh tng hai s nguyn a, b c biu din n bt ta nhn c(ta c th
thm s 0 vo u mi ton hng):
(0 110)2 + (0000)2 = (0110)2 ;
(0 0110)2 + (11000)2 = (11110)2 = ab.
Thut ton nhn hai s nguyn n bt c th c m phng nh sau:
void Nhan( a, b : Positive integer){
/* khai trin nh phn tng ng ca a = (an-1an-2. . .a1a0),
b = (bn-1bn-2. . .b1b0) */
for (j=0; j n-1; j++) {
if ( ( bj==1)
14
else
}
/*c0, c1.., cn-1 l nhng tch ring ca abj 2j(j=0..n-1 */
p=0;
for ( j=0 ; j n-1; j++)
p= p + cj;
/* p l gi tr ca tch ab */
}
IT
PT
15
IT
PT
16
A x | x A
nh ngha 6. Cho cc tp hp A1, A2, . ., An. Hp ca cc tp hp l tp hp cha tt c
cc phn t thuc t nht mt trong s cc tp hp Ai ( i=1, 2, . ., n). K hiu:
n
n
1
2
i 1
IT
PT
TN GI
Lut ng nht
A U = A (U l tp v tr)
AU=U
Lut nut
A=A
AA = A
Lut lu ng
AA=A
17
A =A
Lut b
AB=BA
AB=BA
Lut kt hp
A (B C) = (A B)C
A (B C) = (AB) C
A (B C) = (A B) (A C )
A (B C) = (A B) (A C)
Lut De Morgan
AB A B
AB A B
PT
IT
C nhiu cch khc nhau biu din tp hp trn my tnh, phng php ph
bin l lu tr cc phn t ca tp hp khng sp th t. Vi vic lu tr bng phng
php ny, ngoi nhng lng ph b nh khng cn thit, th qu trnh tnh hp, giao, hiu
cc tp hp gp nhiu kh khn v mt nhiu thi gian v mi php tnh i hi nhiu
thao tc tm kim trn cc phn t. Mt phng php lu tr cc phn t bng cch
biu din c th t ca cc phn t ca mt tp v tr t ra hiu qu hn rt nhiu trong
qu trnh tnh ton.
Gi s tp v tr U l hu hn gm n phn t(hu hn c hiu theo ngha cc
phn t ca U lu tr c trong b nh my tnh). Gi s ta mun biu din tp hp
A U. Trc ht ta chn mt th t tu no i vi cc phn t ca tp v tr U,
gi s ta c b c th t a1,a2, . ., an. Sau xy dng mt xu bt nh phn c di n,
sao cho nu bt th i c gi tr 1 th phn t aiA, nu ai =0 th aiA (i=1,2..,n). V d sau
s minh ho k thut biu din tp hp bng xu bt nh phn.
V d. Gi s U = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }. Hy biu din tp hp A U l
1- Tp cc s nguyn l A U.
2- Tp cc s nguyn chn BU.
3- Tp cc s nguyn nh hn 5 C U.
4- Tm A B
5- Tm AC . . .
Li gii. Trc ht ta coi th t cc phn t c sp xp theo th t tng dn tc
ai=i (i=1,2,..,10). Khi :
18
IT
Cc php ton hi, tuyn, tuyn loi, suy ra, ko theo ca logic mnh .
PT
BI TP CHNG 1
b) (p q) (q p)
c) (p q) (p q )
d) (p q) (p q )
e) (p q) (p q )
f) ( p q ) (pq)
g) ( p q) r
h) (p q) r
i) (p q) ( q r)
j) ( p q ) (qr)
19
IT
b) (XY)((XZ)(X(YZ)));
c) (XZ) ((YZ)((XY)Z)).
PT
a)
b)
c) ( X 1 X 2 X n
X1 X1 X n
X1 X 2 X n
X1 X 2 X n
d)
a)
A B C A B C
b) ( A B C ) ( A B)
c) ( A B) C ( A C )
d ) ( A C ) (C B )
e) ( B A) (C A) ( B C ) A
f)
A B A B
g ) ( A B) ( A B A
20
CHNG 2. BI TON M
Nguyn l b tr
Hon v v t hp
H thc truy hi
IT
Bn c c th tm hiu nhiu k thut m cao cp hn trong ti liu [1], [2] trong phn
tham kho ca ti liu ny.
PT
Gi s c hai cng vic. Vic th nht c th tin hnh bng n1 cch, vic th hai
c th tin hnh bng n2 cch v nu hai vic ny khng th tin hnh ng thi. Khi
s c n1 + n2 cch gii gii quyt mt trong hai vic trn.
Chng ta c th m rng qui tc cng cho trng hp nhiu hn hai cng vic.
Gi s cc vic T1, T2,.., Tm c th lm tng ng bng n1, n2, .., nm cch v gi s khng
c hai vic Ti, Tj no lm vic ng thi (i,j = 1, 2, .., m ; i j ). Khi , c n1 + n2 +..
+nm cch thc hin mt trong cc cng vic T1, T2, . ., Tm.
Qui tc cng c pht biu di dng ca ngn ng tp hp nh sau:
Nu A v B l hai tp ri nhau (A B = ) th : N(AB) = N(A) + N(B).
Nu A1, A2, .., An l nhng tp hp ri nhau th:
N(A1 A2 . . An ) = N(A1) + N(A2) +..+ N(An).
V d 1. Gi s cn chn hoc mt cn b hoc mt sinh vin tham gia mt hi
ng ca mt trng i hc. Hi c bao nhiu cch chn v i biu ny nu nh c 37
cn b v 63 sinh vin.
21
PT
k:=k+1
IT
k := 0
..........
for im:= 1 to nm
k:=k+1
Li gii. coi mi vng for l mt cng vic, do ta c m cng vic T1, T2, . ., Tm.
Trong Ti thc hin bi ni cch (i= 1, 2, .., m). V cc vng for khng lng nhau hay
cc cng vic khng thc hin ng thi nn theo nguyn l cng tng tt c cc cch
hon thnh T1, T2,.., Tm l k= n1 + n2 +.. + nm.
22
. .
for in =1 to nm
k:=k +1
IT
PT
2.2. Nguyn l b tr
IT
PT
N(A )
i
1 i n
N ( Ai A j )
N(A A
i
IT
N ( A1 A2 ...An )
1 i , j n
Ak
1 i j k n
... (1) n1 N ( A1 A2 .. An )
PT
25
IT
PT
N N N 1 N 2 ... ( 1) n N n
1 1
(1) n
n!
v N n!(1
k!
1! 2!
n!
T ta c xc xut cn tm l:
1
1 1
(1) n
e 1
1! 2!
n!
10
11
Dn
44
265
1845
14833
133496
1334961
4890741
26
2.3. m cc hon v v t hp
2.3.1. Chnh hp lp
nh ngha 1. Mt chnh hp lp chp k ca n phn t l b c th t gm k thnh phn
ly t n phn t ca tp cho.
Nh vy, mt chnh hp lp chp k ca n phn t c th xem l phn t ca tch
cc A vi A l tp cho. Theo nguyn l nhn, s cc tt c cc chnh hp lp chp k
ca n s l nk.
k
IT
PT
n!
( n k )!
27
2.3.3. Hon v
nh ngha 3. Ta gi cc hon v ca n phn t l mt cch xp c th t cc phn t .
S cc hon v ca tp n phn t c th coi l trng hp ring ca chnh hp khng lp
vi k = n.
IT
PT
2.3.4. T hp
nh ngha 4. Mt t hp chp k ca n phn t l mt b khng k th t gm k thnh
phn khc nhau ly t n phn t cho. Ni cch khc, ta c th coi mt t hp chp k
ca n phn t l mt tp con k phn t ly trong n phn t. S t hp chp k ca n phn
t k hiu l C(n,k).
28
P(n, k )
n!
k!
k!(n k )!
V d 1. Cho S = { a, b, c, d } tm C(4,2)?
Li gii. R rng C(4,2) = 6 tng ng vi 6 tp con {a, b}, {a, c}, {a, d}, {b,c},
{b, d} {c,d}.
V d 2. C n i bng thi u vng trn. Hi phi t chc bao nhiu trn u.
V d 3. Chng minh
a) C(n,k) = C(n, n-k)
b) C(n, 0) = C(n,n)= 1
IT
PT
Li gii
C (n 1, k 1) C (n 1, k )
( n 1)!
(n 1)!
(n 1)!
1
(n 1)!.n
1
C ( n.k )
k!( n k )!
29
( x y ) 8 x 8 8 x 7 y 28 x 6 y 2 56 x 5 y 3 70 x 4 y 4 56 x 3 y 5 28 x 2 y 6 8 xy 7 y 8
Trong trng hp y=1, tc khai trin (x+1)n ta c:
2.3.5. T hp lp
IT
PT
30
2.4.1. nh ngha v v d
IT
PT
nh ngha 1. H thc truy hi i vi dy s {an} l cng thc biu din an qua mt hay
nhiu s hng i trc ca dy, c th l a1, a2, .., an-1 vi mi nn0 nguyn dng. Dy
s c gi l li gii hay nghim ca h thc truy hi nu cc s hng ca n tho mn
h thc truy hi.
V d 1. Li kp. Gi s mt ngi gi 10000 la vo ti khon ca mnh ti
mt ngn hng vi li xut kp 11% mi nm. Hi sau 30 nm anh ta c bao nhiu tin
trong ti khon ca mnh?
Li gii. Gi Pn l tng s tin c trong ti khon sau n nm. V s tin c trong
ti khon sau n nm bng s tin c c trong n-1 nm cng vi li xut nm th n. Nn
dy {Pn} tho mn h thc truy hi :
Pn = Pn-1 + 0.11Pn-1 = 1.11Pn-1
Chng ta c th dng phng php lp tm cng thc trn cho Pn. D nhn thy
rng:
P0 = 10000
P1 = 1.11P0
P2 = 1.11P1 = (1.11)2P0
.....................
Pn = 1.11Pn-1 = (1.11)n-1P0
31
S cp th con
Tng s cp th
..
..
..
..
PT
IT
S thng
32
=2
D4 = (4 1 )( 1 + 2)
=9
D5 = (5 1 )( 9 + 2)
= 44
D6 = (6 1 )(9 + 44)
= 265
D7 = (7 1 )( 44 + 265)
= 1854
t Vn Dn nDn1 ta c:
IT
Dn (n 1)( Dn 1 Dn 2 ) Dn nDn 1 ( Dn 1 (n 1) Dn 2 )
PT
Dn
D
(1) n
n 1
. Cng cc h thc trn vi n = 1, 2, .., n ta c:
n! (n 1)!
n!
Dn
1 1
(1) n
1
. T thu li c cng thc c:
n!
1! 2!
n!
Dn n!(1
1 1
(1) n
)
1! 2!
n!
V d 3. Tnh h s t hp C(n,k).
Li gii. Chn phn t c nh a trong n phn t ang xt. Chia s cch chn tp
con k phn t ny thnh hai lp (lp cha a v lp khng cha a). Nu a c chn th ta
cn b xung k-1 phn t t n-1 phn t cn li, t lp cha a gm C(n-1, k-1) cch.
Nu a khng c chn, th ta phi chn k phn t t n-1 phn t cn li, t lp
khng cha a gm C(n-1, k) cch. Theo nguyn l cng ta c cng thc truy hi:
C(n, k) = C(n-1, k-1) + C(n-1,k) vi cc gi tr bin c suy ra trc tip:
C(n,0) = C(n,n) = 1.
Phng php ny c gi l phng php kh. Khng phi lc no cng d dng
kh c cng thc truy hi a v cng thc trc tip. Tuy nhin, trong mt s
trng hp c bit ta c th a ra phng php tng qut gii cng thc truy hi.
33
2.4.2. Gii cng thc truy hi tuyn tnh thun nht vi h s hng s
nh ngha 1. Mt h thc truy hi tuyn tnh thun nht bc k vi h s hng s l h
thc truy hi c dng:
a n c1a n1 c1a n 2 c k a n k
(1)
IT
PT
(2)
34
c1a n1 c2 a n 2
a1 C1 1 r1 2 r2
IT
a0 C 0 1 2
T phng trnh u ta c 2 = C0 - 1 th vo phng trnh th hai ta c:
C1 1 r1 (C 0 1 ) r2 1 ( r1 r2 ) C 0 r2 ; T y suy ra:
(C1 C 0 r2 )
(C C 0 r2 ) (C 0 r1 C1 )
; 2 C 0 1 C0 1
.
r1 r2
r1 r2
r1 r2
PT
Nh vy, khi chn nhng gi tr trn cho 1, 2 dy {an} vi a n 1 r1n 2 r2n tho
mn cc iu kin u. V h thc truy hi v cc iu kin u c xc nh duy nht
nn a n 1 r1n 2 r2n . nh l c chng minh.
V d 1. Tm nghim ca h thc truy hi an = an-1 +2an-2 vi a0 = 2, a1 = 7.
Li gii. Phng trnh c trng ca h thc truy hi c dng r2 - r - 2 =0. Nghim
ca n l r=2 v r = -1. Theo nh l 1, dy {an } l nghim ca h thc truy hi nu v
ch nu :
an = 12n +2(-1)n vi 1, 2 l cc hng s no . T cc iu kin u suy ra:
a0 = 2 = 1 +2
a1 = 7 = 12 +2(-1)
Gii ra ta c 1=3, 2=-1. Vy nghim ca biu thc truy hi vi iu kin u l dy
{an} vi an = 3.2n (-1)n.
V d 2. Tm cng thc hin ca cc s fibonaci.
Gii: Cc s fibonaci tho mn h thc fn = fn-1 + fn-2 v cc iu kin u f0 = 0,
f1=1. Cc nghim ca phng trnh c trng l:
35
1 5
1 5
; r2
r1
thc sau:
n
1 5
2
2
2 1 5 1
f1 1
2
2
1
5
; 2
1
5
do cc s fibonaci c cho
IT
1 1 5
1 1 5
fn
5 2
5 2
PT
a0 = 1=1
a1 = 6 = 13+23 1 =1, 2=1 vy nghim ca h thc truy hi v cc iu kin
u cho l:
an = 3n+n3n
nh l 1, nh l 2 khng dng c trong trng hp nghim ca phng trnh c
trng l nghim phc. Khi phng trnh c trng c nghim phc ta s dng nh l
sau.
nh l 3. Cho c1, c2 l cc hng s thc, c20. Gi s r2 c1r c2 = 0 c hai nghim phc
lin hp
36
r1 r cos i. sin
r2 r cos i.sin
Khi , dy {an} l nghim ca h thc truy hi an = c1an-1 + c2an-2 khi v ch khi
a n r n 1 cosn 2 sin n vi n = 1, 2, . . trong 1, 2 l nhng hng s.
V d. Tm nghim ca h thc truy hi sau an = 2an-1 - 4an-2, vi a0 = 4, a1 =4?
Li gii.
Bc 1. Tm nghim ca phng trnh c trng:
r 2cos / 3 i sin / 3
r 2 2r 4 0 1
r2 2cos / 3 i sin / 3
Bc 2. Xy dng cng thc tng qut cho an:
IT
PT
1
3
c2 4
2 c1
2
2
1 1; 2 3
3
1
4 2 c1 2 c 2 4
an 2 n cosn / 3 3 sin n / 3
37
IT
Mt trong nhng phng php gii quyt bi ton m phc tp l qui bi ton
ang xt v nhng bi ton nh hn. S phn chia ny c thc hin mt cch lin tip
cho ti khi nhn c li gii ca bi ton nh mt cch d dng. Tuy nhin iu ny
khng phi lc no cng thc hin c v n i hi mt s phn tch su sc cu hnh
cn m.
PT
Gi s rng c mt thut ton phn chia bi ton c n thnh a bi ton nh, trong
mi bi ton nh c c n/b( n gin ta gi s n chia ht cho b); trong thc t cc
bi ton nh thng c c l s nguyn gn nht vi n/b. Gi s tng cc php ton thm
vo khi thc hin phn chia bi ton c n thnh cc bi ton c nh hn l g(n). Khi
nu f(n) l s cc php ton cn thit gii bi ton cho th f tho mn h thc truy
hi sau:
n
f (n) af g (n) ; h thc ny c tn l h thc chia tr.
b
A1 ( a 2 n1 a 2 n 2 a n1 a n ) 2 ; A0 ( a n1 a n 2 a1a 0 ) 2
B1 (b2 n 1b2 n 2 bn 1bn ) 2 ; B0 (bn 1bn 2 b1b0 ) 2
Thut ton nhn nhanh c da trn ng thc:
ab ( 2 2 n 2 n ) A1 B1 2 n ( A1 A0 )( B0 B1 ) (2 n 1) A0 B0
38
f (2n) 3 f ( n) Cn
Ba php nhn cc s nh phn n bt cn 3f(n) php ton nh phn. Mi mt php
ton cng, tr, dch chuyn dng mt hng s nhn vi n ln chnh l Cn.
V d 2. Bi ton xp khch ca Lucas. C mt bn trn, xung quanh c 2n gh. Cn sp
ch cho n cp v chng sao cho cc ng ngi sen k cc b v khng c hai cp v chng
no ngi cnh nhau. Hi c tt c bao nhiu cch xp ?
Li gii. Gi s phi tm l Mn. Xp cho cc b trc(c xp mt gh th mt gh
trng dnh cho cc ng), s cch xp cho cc b l 2n! cch. Gi s cch xp cho cc ng
ng vi mt cch xp cc b l Un ta c s cch xp l
Mn = 2n! x Un .Vn cn li l tnh s Un.
(*)
PT
(i) i v (i)i+1
IT
39
IT
C (n k 1, k 1) C (n k , k )
n
C (n k , k )
nk
2n
C ( 2n k , k ) v s phn b Un c tnh bng
2n k
PT
g ( 2n, k )
U n n!
2n
2n
2n
C ( 2n 1,1)(n 1)!
C (2n 2,2)(n 2)! ( 1) n
C (2n, n)
2n 1
2n 2
n
10
Un
13
80
579
4783
43387
439792
40
IT
PT
...
n-1
...
5
41
ln
56
9408
16942080
PT
IT
42
BI TP CHNG 2
IT
PT
12. Tm h thc truy hi cho s hon v ca tp n phn t. Dng h thc truy hi tnh
hon v ca tp n phn t.
13. Mt my bn tem t ng ch nhn cc ng xu mt la v cc loi t tin 1 la
v 5 la.
a) Hy tm h thc truy hi tnh s cch t n la vo trong my bn hng, trong
th t cc ng xu, cc t tin l quan trng.
b) Tm cc iu kin u.
c) C bao nhiu cch t 10 la vo my mua mt b tem.
14. Gii cc h thc truy hi vi cc iu u sau:
vi n 2, a0 = 3, a1 = 6.
b) an = 7an-1 - 6an-2
vi n 2, a0 = 2, a1 = 1.
c) an = 6an-1 - 8an-2
vi n 2, a0 = 4, a1 = 10.
d) an = 2an-1 - an-2
vi n 2, a0 = 4, a1 = 1.
e) an = an-2
f) an = -6an-1 - 9an-2
g) an+2 = -4an+1 + 5an
IT
a) an = an-1 + 6an-2
vi n 2, a0 = 5, a1 = -1.
vi n 2, a0 = 3, a1 = -3.
vi n 0, a0 = 2, a1 = 8.
PT
44
IT
Bn c c th tm thy cch gii nhiu bi ton lit k trong cc ti liu [1] v [2]
trong ti liu tham kho.
PT
45
i qua l 7! = 5040 cch. Tuy nhin trong 5040 cch chng ta phi duyt ton b ch ra
mt hnh trnh l ngn nht.
C th ni phng php lit k l bin php cui cng nhng cng l bin php ph
dng nht gii quyt cc bi ton t hp. Kh khn chnh ca phng php ny l s
bng n t hp. xy dng chng 1 t cu hnh (con s ny khng phi l ln i vi
cc bi ton t hp nh s mt th t Dn, s phn b Un, s hnh vung la tinh ln), ta gi
s cn 1 giy lit k mt cu hnh th chng ta cng cn 31 nm mi gii quyt xong.
Tuy nhin vi s pht trin nhanh chng ca my tnh, bng phng php lit k, nhiu
bi ton kh ca l thuyt t hp c gii quyt v gp phn thc y s pht trin
ca nhiu ngnh ton hc.
IT
PT
46
Ngn ng hnh thc. Ngn ng hnh thc l phng tin giao tip trung
gian gia con ngi v h thng my tnh. V d ngn ng s khi, ngn
ng ta t nhin, ngn ng c t. c im chung ca cc loi ngn ng
ny l vic s dng n rt gn vi ngn ng t nhin v ngn ng my tnh.
Ghi ch. Trong cc phng php biu din thut ton, phng php biu din
bng ngn ng hnh thc c s dng rng di v n gn vi ngn ng t nhin v
khng ph thuc vo ngn ng my tnh.
V d 1. Biu din thut ton tm USCLN (a, b) bng ngn ng t nhin.
u vo (Input). Hai s t nhin a, b.
u ra (Output). S nguyn u ln nht a v b u chia ht cho u.
Thut ton (Euclide Algorithm):
IT
Bc 1. a vo hai s t nhin a v b.
PT
while (b 0 ) do
r = a mod b; a = b; b = r;
endwhile;
return(a);
Endactions.
V d 3. Biu din thut ton tm USCLN (a, b) bng ngn ng my tnh (C++).
Int
}
return(a);
}
IT
PT
Tng qut, cho hai hm f(x), g(x) xc nh trn tp cc s nguyn dng hoc tp cc s
thc vo tp cc s thc. Hm f(x) c gi l O(g(x)) nu tn ti mt hng s C>0 v
n0 sao cho:
|f(x)| C.|g(x)| v mi xn0.
48
f x a n x n a n 1 x n1 ... a1 x a 0
a n x n a n1 x n 1 ... a1 x a 0
a n x n a n1 x n ... a1 x n a0 x n
x n a n a n1 ... a1 a 0
C .x n O( x n ).
PT
IT
C a n a n1 ... a1 a 0
49
.....
IT
PT
Ghi ch. phc tp thut ton cng l s ln thc hin php ton tch cc. Php ton
tch cc l php ton thc hin nhiu nht i vi thut ton.
Mt s tnh cht ca phc tp thut ton:
Nu phc tp thut ton l hng s, ngha l thi gian tnh ton khng
ph thuc vo di d liu c k hiu l O(1).
50
O(1)
Hng s
O(lg lg n)
Log log
O(lg n)
Logarithm
O(n)
Tuyn tnh
O(n2)
Bc hai
O(n3)
Bc 3
O(nm)
a thc
O(mn)
Hm m
O(n!)
IT
Dng nh gi
Giai tha
PT
Ta li c :
51
x
C.g 1 x .C .g 2 x ...C.g n x
C n g n x O g n x
n
IT
f n x f 1 x . f 2 x ... f
(ii)
PT
(i)
Ta gi thut ton trong iu kin (ii) l thut ton sinh k tip. R rng thut ton ny
ch thc hin c khi c mt cu hnh c xc nh theo iu kin (i). Gi s mt bi
ton u tho mn cc iu kin trn, khi phng php sinh k tip c th c m t
bng th tc nh sau:
procedure Generation ( ){
<Xy dng cu hnh ban u>;
stop =false
while (! stop) {
<a ra cu hnh ang c>;
<Sinh ra cu hnh k tip>;
}
}
52
V d 1. Lit k tt c cc dy nh phn di n.
Li gii. Vit dy nh phn di dng b1b2..bn, trong bi{0, 1 }. Xem mi dy nh
phn b=b1b2..bn l biu din nh phn ca mt s nguyn p(b). Khi th t hin nhin
nht c th xc nh trn tp cc dy nh phn l th t t in c xc nh nh sau:
Ta ni dy nh phn b = b1b2..bn i trc dy nh phn b = b1b2..bn theo th t
t in v k hiu b<bnu p(b) <p(b).
V d vi n=4, cc xu nh phn di 4 c lit k theo th t t in l:
p(b)
p(b)
0000
1000
0001
1001
0010
1010
10
0011
1011
11
0100
0101
0110
0111
IT
12
1101
13
1110
14
1111
15
PT
1100
53
PT
IT
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
PT
IT
55
IT
PT
#define TRUE 1
#define FALSE 0
int n,k,X[MAX],OK=TRUE,dem=0;
void Init (void ){
}
void Result(void){
cout<<"\n Ket qua buoc "<<++dem<<":";
for (int i=1; i<=k; i++)
cout<<X[i]<<" ";
}
56
void Next_Combination(void) {
int i= k;
while (i>0 && X[i]==n-k+i)i--;
if (i > 0 ) {
X[i] = X[i] +1;
for (int j = i+1; j<=k; j++)
X[j] = X[i] + j - i;
}
else OK = FALSE;
}
int main() {
Init(); //Nhap n = 5, k = 3
IT
while (OK ){
Result();
Next_Combination();
}
PT
system("PAUSE");
return 0;
}
Kt qu thc hin chng trnh vi n = 5, k= 3.
Nhap n=5
Nhap k=3
Ket qua buoc 1:1 2 3
Ket qua buoc 2:1 2 4
Ket qua buoc 3:1 2 5
Ket qua buoc 4:1 3 4
Ket qua buoc 5:1 3 5
Ket qua buoc 6:1 4 5
Ket qua buoc 7:2 3 4
Ket qua buoc 8:2 3 5
Ket qua buoc 9:2 4 5
Ket qua buoc 10:3 4 5
V d 3. Lit k cc hon v ca tp n phn t. Cho X = { 1, 2, .., n }. Hy lit k cc
hon v t n phn t ca X.
Li gii : Mi hon v t n phn t ca X c th biu din bi b c th t n thnh phn
57
IT
PT
58
IT
s = s - 1;
PT
59
PT
IT
void Next_Permutation(void) {
int j= n-1;
while (j>0 && X[j]>X[j+1])j--;
if (j > 0 ) {
int k =n;
while(X[j]>X[k]) k--;
int t = X[j]; X[j]=X[k]; X[k]=t;
int r = j +1, s =n;
while (r<=s ) {
t = X[r]; X[r]=X[s]; X[s] =t;
r ++; s--;
}
}
else OK = FALSE;
}
int main()
{
Init(); //Nhap n = 4
while (OK ){
Result();
Next_Permutation();
}
system("PAUSE");
return 0;
}
Kt qu thc hin chng trnh vi n=3:
Nhap n=3
Ket
Ket
Ket
Ket
Ket
Ket
qua
qua
qua
qua
qua
qua
buoc
buoc
buoc
buoc
buoc
buoc
1:1
2:1
3:2
4:2
5:3
6:3
2
3
1
3
1
2
3
2
3
1
2
1
60
5
4
PT
IT
61
PT
IT
62
IT
PT
Try(i+1);
}
}
}
63
Kh nng chn x2
vi x1 chn
Kh nng chn x3 vi
IT
x1, x2 chn
Hnh 3.1. Cy lit k li gii theo thut ton quay lui.
PT
V d 1. Lit k cc xu nh phn di n.
000
001 010
0
1
011
0
100
1
101
110
111
64
PT
IT
#include <iostream.h>
#include <stdlib.h>
#define MAX 100
#define TRUE 1
#define FALSE 0
int n, X[MAX], dem=0;
void Init (void ){
cout<<"\n Nhap n=";cin>>n;
}
void Result(void){
cout<<"\n Ket qua buoc "<<++dem<<":";
for (int i=1; i<=n; i++)
cout<<X[i]<<" ";
}
void Try (int i) {
for (int j=0; j<=1; j++){
X[i] = j;
if (i==n) Result();
else Try(i+1);
}
}
int main(){
Init(); //Nhap n = 4
Try(1);system("PAUSE");return 0;
}
3
123
4
124
124 134
135
3
3
4
145
234
4
5
235
5
245
345
PT
IT
66
Gc
1
2
3
1,2,3
1
2
1,3, 2
3
3
2,1,3
2,3,1
2
3,1,2
1
3,2,1
PT
IT
67
PT
IT
Vic kim sot theo hng ngang l khng cn thit v trn mi hng ch xp ng
mt qun hu. Vic kim sot theo ct c ghi nhn nh dy bin logic chuaxetj vi qui
c chuaxetj=True nu ct j cn trng, ct chuaxetj= False nu ct j khng cn trng.
ghi nhn ng cho xui v ng cho ngc c chiu ti (i,j) hay khng, ta s dng
phng trnh i + j = const v i - j = const, ng cho th nht c ghi nhn bi dy
bin XUOIj, ng cho th 2 c ghi nhn bi dy bin NGUOCj vi qui c nu
ng cho no cn trng th gi tr tng ng ca n l True ngc li l False. Nh
vy, ct j c chp nhn khi c 3 bin chuaxetj, XUOIi+j, NGUOCi+j u c gi tr 1.
Cc bin ny phi c khi u gi tr True trc , gn li gi tr False khi xp xong
qun hu th i v tr li gi tr 1 khi a ra kt qu.
Di y l chng trnh bng thut ton quay lui.
#include <iostream.h>
#include <stdlib.h>
#define MAX 100
#define TRUE 1
#define FALSE 0
int X[MAX], XUOI[MAX], NGUOC[MAX], chuaxet[MAX];
int n, dem =0;
void Init (void ) {
cout<<"\n Nhap n ="; cin>>n;
for (int i=1; i<=n; i++) chuaxet[i]=TRUE;
for (int i=1; i<=(2*n-1); i++) {
XUOI[i] = TRUE; NGUOC[i]=TRUE;
}
}
void Result(void ) {
cout<<"\n Phuon an "<<++dem<<":";
for (int i=1; i<=n; i++)
cout<<X[i]<<" ";
}
68
IT
Hn
40
92
352
10
11
12
13
14
724
2680
14200
73712
365596
PT
69
BI TP CHNG 3
D x ( x1 , x 2 ,, x n : a j x j b,
x j Z , j 1,2,, n
j 1
IT
8 1 6
PT
3 5 7
4 9 2
1
4
7
5
12
Pht trin thut ton da trn thut ton quay lui ch ra vi gi tr ca n, k cho
trc bi ton c li gii hay khng. Nu c cu tr li ch cn a ra mt li gii.
70
5. Tm tp con di nht c th t tng dn, gim dn. Cho dy s a1, a2, . . ., an.
Hy tm dy con di nht c sp xp theo th t tng hoc gim dn. D liu
vo cho bi file tapcon.in, dng u tin ghi li s t nhin n (n100), dng k
tip ghi li n s, mi s c phn bit vi nhau bi mt hoc vi k t rng. Kt
qu ghi li trong file tapcon.out. V d sau s minh ha cho file tapcon.in v
tapcon.out.
tapcon.in
tapcon.out
5
5
7 1 3 8 9 6 12
1 3 8 9 12
PT
IT
71
PT
IT
72
CHNG 4. BI TON TI U
IT
Bn c c th tm thy phng php gii chi tit cho nhiu bi ton ti u quan trng
trong cc ti liu [1], [2].
PT
D X x1 , x 2 ,..., xn : ai xi b
i 1
IT
PT
Bi ton Ngi du lch. Mt ngi du lch mun i thm quan n thnh ph T1, T2, , Tn.
Xut pht t mt thnh ph no , ngi du lch mun i qua tt c cc thnh ph cn
li, mi thnh ph i qua ng mt ln, ri quay tr li thnh ph xut pht. Bit cij l chi
ph i t thnh ph Ti n thnh ph Tj (i,j = 1, 2, . ., n), hy tm hnh trnh vi tng chi
ph l nh nht cho ngi du lch (mt hnh trnh l mt cch i tho mn iu kin).
Khng hn ch tnh tng qut ca bi ton ta gi s ngi du lch lun xut pht
ti mt thnh ph c nh (gi s l thnh ph s 1). Khi , tp phng n v hm mc
tiu ca bi ton c xc nh nh sau.
Tp phng n ca bi ton: R rng, mi hnh trnh ca ngi du lch c dng
X = (x1, x2, .., xn, x1). X = (x1, x2, .., xn) l hon v ca 1, 2,..,n v x1 =1 v tr u tin v
cui cng v ta xem ngi du lch xut pht t thnh ph s 1 v sau ngi du lch
phi tr li im xut pht. Nh vy, ta ch c (n-1)! hnh trnh thc s. V vy, tp
phng n ca bi ton l
D X x1 , x 2 ,..., x n : x1 1; xi x j : i j; i, j 2,3,.., n.
Hm mc tiu ca bi ton: Chi ph ca mi hnh trnh ng vi mi XD l tng
chi ph i t thnh ph th i n thnh ph th j. Do vy hm mc tiu ca bi ton l:
74
n 1
IT
D J S : N k N p , k p J
PT
jJ
max{ f ( j ) : j D} .
Bi ton phn cng cng vic. C n cng vic v n th. Bit cij l chi ph cn tr th i
hon thnh cng vic th j (i, j = 1, 2, . . ., n ). Cn phi thu th sao cho cc cng vic
u hon thnh v mi th ch thc hin mt cng vic, mi cng vic ch do mt th
thc hin. Hy tm cch thu n nhn cng sao cho tng chi ph thu th l nh nht.
Tp phng n ca bi ton. R rng, mi phng n b tr th thc hin cc
cng vic tng ng vi mt hon v = ( (1), (2) , . . ., (n) ). Do vy, tp cc
phng n ca bi ton l tp cc hon v ca 1, 2,..,n.
Hm mc tiu ca bi ton. ng vi mi phng n, chi ph theo phng n l
f ( ) C (1),1 C ( 2), 2 C ( n),n .
Cng vic
Th thc hin
(1)
(2)
...
...
75
(n)
j 1
IT
PT
hin vic gia cng chi tit j (i, j = 1, 2, . . ., n). ngha ca h s cij c th c gii thch
nh sau: n l tng thi gian gin on (c tnh t khi bt u gia cng chi tit i) gy
ra bi chi tit j khi n c gia cng sau chi tit i trong lch gia cng. V vy, cij c th
tnh theo cng thc:
k 1
k
ti u t hp sau:
min { f() : }.
Trong thc t, lch gia cng cn phi tho mn thm nhiu iu kin khc na. V
nhng ng dng quan trng ca nhng bi ton loi ny m trong ti u ho t hp
hnh thnh mt lnh vc l thuyt ring v cc bi ton lp lch gi l l thuyt lp lch
hay qui hoch lch.
tnh giy, nu mi hon v cn lit k mt khong 100 php tnh, th ta cn khong thi
gian l 130767 giy ( ln hn 36 ting ng h). V vy, cn phi c bin php hn ch
vic kim tra hoc tm kim trn cc cu hnh t hp th mi c hy vng gii c cc bi
ton ti u t hp thc t. Tt nhin, a ra c mt thut ton cn phi nghin cu
k tnh cht ca mi bi ton t hp c th. Chnh nh nhng nghin cu , trong mt
s trng hp c th ta c th xy dng c thut ton hiu qu gii quyt bi ton
t ra. Tuy vy, cng cn phi ch rng nhiu bi ton ti u hin nay vn cha tm ra
c mt phng php hu hiu no ngoi phng php duyt ton b c cp
trn.
IT
PT
Bc 3 (Tr li kt qu):
Return(XOPT, FOPT);
F X 4 x1 6 x 2 3 x3 5 x 4 2 x5 max,
9 x1 8 x 2 5 x3 3 x4 2 x5 21,
x 0,1, j 1,2,3,4,5.
j
77
Hm mc tiu ca bi ton: f ( X ) i 1 ci xi .
Nhim v ca chng ta l tm phng n ti u XOPT v gi tr ti u FOPT. Kt
qu thc theo thut ton duyt ton b c th hin theo Bng 4.1 di y.
X=(x1,x2,x3,x4,x5)
XD = x1 , x 2 , x3 , x 4 , x 5 : ai xi 21
i 1
IT
021: XD
221: XD
321: XD
521: XD
521: XD
721: XD
821: XD
1021: XD
821: XD
1021: XD
1121: XD
1321: XD
1321: XD
1521: XD
1621: XD
1821: XD
921: XD
1121: XD
1221: XD
1421: XD
1421: XD
1621: XD
1621: XD
19>21: XD
1721: XD
1921: XD
2021: XD
22>21: XD
22>21: XD
24>21: XD
25>21: XD
PT
0, 0, 0, 0, 0
0, 0, 0, 0, 1
0, 0, 0, 1, 0
0, 0, 0, 1, 1
0, 0, 1, 0, 0
0, 0, 1, 0, 1
0, 0, 1, 1, 0
0, 0, 1, 1, 1
0, 1, 0, 0, 0
0, 1, 0, 0, 1
0, 1, 0, 1, 0
0, 1, 0, 1, 1
0, 1, 1, 0, 0
0, 1, 1, 0, 1
0, 1, 1, 1, 0
0, 1, 1, 1, 1
1, 0, 0, 0, 0
1, 0, 0, 0, 1
1, 0, 0, 1, 0
1, 0, 0, 1, 1
1, 0, 1, 0, 0
1, 0, 1, 0, 1
1, 0, 1, 1, 0
1, 0, 1, 1, 1
1, 1, 0, 0, 0
1, 1, 0, 0, 1
1, 1, 0, 1, 0
1, 1, 0, 1, 1
1, 1, 1, 0, 0
1, 1, 1, 0, 1
1, 1, 1, 1, 0
78
F(X)= ci xi ?
i 1
0
2
5
7
3
5
8
10
6
8
11
13
9
11
14
16
4
6
9
9
10
9
12
14
10
12
15
1, 1, 1, 1, 1
27>21: XD
XOPT=(0,1,1,1,1); FOPT = 16
IT
PT
(*)
phng n ca bi ton D(a1, a2, , ak) chc chn khng cha phng n ti u. Trong
79
trng hp ny ta khng cn phi pht trin phng n b phn (a1, a2, . . ., ak), ni cch
khc l ta c th loi b cc phng n trong tp D(a1, a2, . ., an) khi qu trnh tm kim.
Thut ton quay lui lit k cc phng n cn sa i li nh Hnh 4.2:
Procedure Try( k ){
/*Pht trin phng n b phn (a1, a2, . . ., ak-1 theo thut ton quay
lui c kim tra cn di Trc khi tip tc pht trin phng n*/
for ( ak Ak ) {
if ( chp nhn ak ){
xk = a k ;
if (k == n)
IT
PT
}
}
Try(1); //Thc hin thut ton quay lui trong Hnh 4.2
if ( f + )
< f l gi tr ti u , x l phng n ti u >;
else
< bi ton khng c phng n>;
}
80
IT
PT
D x ( x1 , x 2 , , x n : a j x j b, x j Z , j 1,2, , n .
j 1
n
a1 a 2
an
(2)
81
n
n
g * max c j x j : a j x j b, x j 0, j 1,2, , n .
j 1
j 1
(3)
x1
Chng minh. Thc vy, xt x = ( x1, x2, . ., xn) l mt phng n tu ca bi ton (3).
Khi t bt ng thc (3) v do xj 0, ta suy ra
c j x j (c1 / a1 )a j x j , j 1, 2, n .
suy ra:
n
c
j 1
n
j
xj (
j 1
c1
c n
c
)a j x j ( 1 ) a j x j 1 b g * . Mnh c chng minh.
a1
a1 j 1
a1
IT
ta c
PT
bk b c1u1 c 2 u 2 c k u k ,
max f ( x) : x D, x j u j , j 1,2, n
max k
jxj :
j k 1
j k 1
x j bk , x j Z , j k 1, k 2, , n
n
n
k max c j x j : a j x j bk , x j 0, j k 1, k 2, , n
j k 1
j k 1
c b
k k 1 k
a k 1
c k 1bk
)
a k 1
Vy ta c th tnh cn trn cho phng n b phn (u1, u2, . . ., uk) theo cng thc
g (u1 , u 2 , , u k ) k
c k 1bk
a k 1
82
IT
bi bi ai xi ;
}
}
PT
i i ci xi ;
Li gii. Qu trnh gii bi ton c m t trong cy tm kim trong Hnh 4.4. Thng tin
v mt phng n b phn trn cy c ghi trong cc trn hnh v tng ng theo th
t sau:
u tin l cc thnh phn ca phng n b phn th i : X =(x1,x2,..,xi);
Tip n l gi tr ca cc vt theo phng n b phn th i;
K tip l w tng ng vi trng lng cn li ca ti;
Cui cng l cn trn g.
83
PT
IT
84
Gc f
x1=1
x1=0
(1); =10;
w=3; g=15
x1=1
(1,1) =15;
w=0; g=15
(0) =0;
w=8; g=40/3
x2=0
(1, 0) =10;
w=3; g=14.5
x3=0
x4=0
PT
(1,1,0) =15;
w=0; g=15
IT
x x4(1=0
,1,0,0);
f 15;
Chng trnh gii bi ton ci ti theo thut ton nhnh cn c th hin nh sau:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#define MAX 100
int A[MAX], C[MAX], F[MAX][MAX];
int XOPT[MAX], X[MAX];
int n, b, ind;
float W, FOPT=-32000, cost, weight=0;
FILE *fp;
void Init(void){
fp = fopen("caitui1.in","r");
85
PT
IT
}
void Update_Kyluc(void){
if (cost>FOPT) { FOPT =cost;
for(int i=1; i<=n; i++)
XOPT[i] = X[i];
}
}
void Result(void) {
cout<<"\n Ket qua toi uu:"<<FOPT;
cout<<"\n Phuong an toi uu:";
for(int i=1; i<=n; i++)
cout<<XOPT[i]<<" ";
}
void Branch_And_Bound( int i) {
int j, t =(b-weight)/A[i];
for(j=t; j>=0; j--){
X[i] = j;
weight = weight+A[i]*X[i];
cost = cost + C[i]*X[i];
if (i==n) Update_Kyluc();
else if ( cost+C[i+1]*(b-weight)/A[i+1]>FOPT)
Branch_And_Bound(i+1);
weight = weight-A[i]*X[i];
cost = cost - C[i]*X[i];
}
}
void main(void) {
Init();
Branch_And_Bound(1);
Result();
}
86
V d 2. Bi ton Ngi du lch. Mt ngi du lch mun i thm quan n thnh ph T1,
T2, , Tn. Xut pht t mt thnh ph no , ngi du lch mun i qua tt c cc thnh
ph cn li, mi thnh ph i qua ng mt ln, ri quay tr li thnh ph xut pht. Bit
cij l chi ph i t thnh ph Ti n thnh ph Tj (i = 1, 2, . ., n), hy tm hnh trnh vi
tng chi ph l nh nht (mt hnh trnh l mt cch i tho mn iu kin).
Gii. C nh thnh ph xut pht l T1. Bi ton Ngi du lch c a v bi ton:
Tm cc tiu ca phim hm:
f ( x1 , x 2 , , x n ) c[1, x 2 ] c[ x 2 , x3 ] c[ x n 1 , x n ] c[ x n , x1 ] min
vi iu kin
c min min c[i, j ], i, j 1,2, , n; i j l chi ph i li gia cc thnh ph.
IT
V vy, chi ph phi tr theo hnh trnh b phn ny s l tng cc chi ph theo
tng node ca hnh trnh b phn.
PT
pht trin hnh trnh b phn ny thnh hnh trnh y , ta cn phi i qua nk thnh ph cn li ri quay tr v thnh ph T1, tc l cn phi i qua n-k+1 on ng
na. Do chi ph phi tr cho vic i qua mi trong n-k+1 on ng cn li u khng
nhiu hn cmin, nn cn di cho phng n b phn (u1, u2, . . ., uk) c th c tnh theo
cng thc
g(u1, u2, . . ., uk) = +(n - k +1) cmin.
3 14 18 15
4 22 20
17
0 16
12
9 15 11
87
g l cn di.
Kt thc thut ton, ta thu c phng n ti u ( 1, 2, 3, 5, 4, 1) tng ng vi phng
n ti u vi hnh trnh
T1 T2 T3 T5 T4 T1 v chi ph nh nht l 22 .
(2,3,4) =23;
g=29
(2,3,5) =11;
g=17
(2,3,4,5) =41;
g=44
(2,3,5,4) =16;
g=19
PT
IT
Cc nhnh ny b loi v c cn
di g> f 22
t f 22
88
PT
IT
void Read_Data(void){
int i, j;FILE *fp;
fp = fopen("dulich.in","r");
fscanf(fp,"%d", &n);
printf("\n So thanh pho: %d", n);
printf("\n Ma tran chi phi:");
for (i=1; i<=n; i++){
printf("\n");
for(j=1; j<=n; j++){
fscanf(fp,"%d",&C[i][j]);
printf("%5d", C[i][j]);
}
}
}
int Min_Matrix(void){
int min=1000, i, j;
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
if (i!=j && min>C[i][j])
min=C[i][j];
}
}
return(min);
}
void Init(void){
int i;
cmin=Min_Matrix();
fopt=32000;can=0; A[1]=1;
for (i=1;i<=n; i++)
B[i]=1;
}
void Result(void){
int i;
printf("\n Hanh trinh toi uu %d:", fopt);
printf("\n Hanh trinh:");
for(i=1; i<=n; i++)
printf("%3d->", XOPT[i]);
printf("%d",1);
}
void Swap(void){
int i;
for(i=1; i<=n;i++)
XOPT[i]=A[i];
89
PT
IT
}
void Update_Kyluc(void){
int sum;
sum=can+C[A[n]][A[1]];
if(sum<fopt) {
Swap();
fopt=sum;
}
}
void Try(int i){
int j;
for(j=2; j<=n;j++){
if(B[j]){
A[i]=j; B[j]=0;
can=can+C[A[i-1]][A[i]];
if (i==n) Update_Kyluc();
else if( can + (n-i+1)*cmin< fopt){
count++;
Try(i+1);
}
B[j]=1;can=can-C[A[i-1]][A[i]];
}
}
}
void main(void){
clrscr();Read_Data();Init();
Try(2);Result();
getch();
90
Hnh
khng
(i,j)
IT
Hnh trnh
cha (i,j)
trnh
cha
(Hnh 4.6)
PT
Vic phn nhnh s c thc hin da trn mt qui tc heuristic no cho php
ta rt ngn qu trnh tm kim phng n ti u. Sau khi phn nhnh v tnh cn di gi
tr hm mc tiu trn mi tp con. Vic tm kim s tip tc trn tp con c gi tr cn
di nh hn. Th tc ny c tip tc cho n khi ta nhn c mt hnh trnh y
tc l mt phng n cu bi ton. Khi ta ch cn xt nhng tp con cc phng n
no c cn di nh hn gi tr ca hm mc tiu ti phng n tm c. Qu trnh
phn nhnh v tnh cn trn tp cc phng n ca bi ton thng thng cho php rt
ngn mt cch ng k qu trnh tm kim do ta loi c rt nhiu tp con chc chn
khng cha phng n ti u. Sau y, l mt k thut na ca thut ton.
4.4.1.Th tc rt gn
R rng tng chi ph ca mt hnh trnh ca ngi du lch s cha ng mt phn
t ca mi dng v ng mt phn t ca mi ct trong ma trn chi ph C. Do , nu ta
cng hay tr bt mi phn t ca mt dng (hay ct) ca ma trn C i cng mt s th
di ca tt c cc hnh trnh u gim i v th hnh trnh ti u cng s khng b
thay i. V vy, nu ta tin hnh bt i cc phn t ca mi dng v mi ct i mt hng
s sao cho ta thu c mt ma trn gm cc phn t khng m m trn mi dng, mi ct
u c t nht mt s 0, th tng cc s tr cho ta cn di ca mi hnh trnh. Th tc
bt ny c gi l th tc rt gn, cc hng s tr mi dng (ct) s c gi l hng
91
IT
| r[i]
PT
93
13
33
77
42
21
16
45
17
36
16
28
16
39
90
80
56
28
46
88
33
25
25
88
18
46
92
15
75
30
58
30
17
12
29
12
12
32
83
58
49
92
21
48
85
35
89
IT
PT
Tp tt c cc
hnh trnh
Tp hnh trnh
cha cnh
(6,3)
Cn di = 81
Tp hnh trnh
khng cha
cnh (6,3)
(Hnh 4.7)
Cn di =81
Cn di = 129
30
27
30
30
17
12
10
30
17
12
29
12
29
12
12
32
83
49
32
83
10
49
21
21
85
35
89
93
IT
PT
beta = -;
for ( i = 1; i k; i++){
for (j = 1; j k; j++) {
if (A[i,j] == 0){
}
}
}
94
}
Trong ma trn rt gn 5 5 ca nhnh bn tri hnh 5.4, s khng v tr (4, 6) s cho
tng hng s rt gn l 32 ( theo dng 4 l 32, ct 6 l 0). y l h s rt gn c gi tr
ln nht i vi cc s khng ca ma trn ny. Vic phn nhnh tip tc s da vo cnh
(4, 6). Khi cn di ca nhnh bn phi tng ng vi tp hnh trnh i qua cnh (6,3)
nhng khng i qua cnh (4, 6) s l 81 + 32 = 113. Cn nhnh bn tri s tng ng vi
ma trn 4 4 (v ta phi loi b dng 4 v ct 6). Tnh hung phn nhnh ny c m t
trong Hnh 4.7.
Nhn thy rng v cnh (4, 6) v (6, 3) nm trong hnh trnh nn cnh (3, 4) khng th
i qua c na (nu i qua ta s c mt hnh trnh con t nhng thnh ph ny).
ngn cm vic to thnh cc hnh trnh con ta s gn cho phn t v tr (3, 4) gi tr .
PT
Cn di = 81
IT
Tp hnh trnh
qua cnh (6,3)
Cn di = 81
H. trnh cha
(6,3) khng cha
(4,6)
Cn di = 113
(Hnh 4.8)
Tng qut hn, khi phn nhnh da vo cnh (iu, iv) ta phi thm cnh ny vo danh sch
cc cnh ca node bn tri nht. Nu iu l nh cui ca mt ng i (i1, i2, . ., iu) v jv
l nh u ca ng i (j1, j2, . ., jk) th ngn nga kh nng to thnh hnh trnh con
ta phi ngn nga kh nng to thnh hnh hnh trnh con ta phi cm cnh (jk, i1).
tm i1 ta i ngc t iu, tm jk ta i xui t j1 theo danh sch cc cnh c kt np
vo hnh trnh.
95
Tp tt c cc
hnh trnh
Hnh trnh
khng cha cnh
(6,3)
Cn di = 81
Cn di= 129
Tp cc hnh
trnh cha (6,3)
Hnh trnh
khng cha (4,6)
Cn di = 81
Tp cc hnh
trnh cha (2,1)
Cn di = 84
Tp cc hnh
trnh cha (1, 4)
Cn
di=
Cn di= 101
PT
Cn di = 81
Hnh trnh
khng cha cnh
(2,1)
IT
Tp cc hnh
113
trnh cha (4,6)
Hnh trnh
khng cha cnh
(1,4)
Cn di= 112
Cn di = 84
Hnh trnh (1, 4, 6, 3, 5, 2, 1) di 104
96
30
21
28
20
IT
3
5
PT
Ch rng, sau khi chp nhn n-2 cnh vo hnh trnh th ma trn cn li s c kch
thc l 2 2. Hai cnh cn li ca hnh trnh s khng phi chn la na m c kt
np ngay vo chu trnh (v n ch cn s la chn duy nht). Trong v d trn sau khi
c cc cnh (6, 3), (4,6), (2, 1), (1,4) ma trn ca nhnh bn tri nht c dng:
2
97
if A[1, 1] = then
<Kt np cnh (u, x), (v, w)>
else
< Kt np cnh (u, w), ( v, x) >;
By gi tt c cc node c cn di ln hn 104 c th b loi b v chng khng
cha hnh trnh r hn 104. Trn hnh 5.4 chng ta thy ch c node c cn di l 101 <
104 l cn phi xt tip . Node ny cha cc cnh (6, 3), (4, 6) v khng cha cnh (2, 1).
Ma trn chi ph tng ng vi nh ny c dng:
2
30
13
26
21
IT
PT
Tp hnh trnh
qua (5,1)
Cn di = 101
Cn di = 127
Cn di = 103
2
11
Hnh trnh
cha (1, 4)
98
Hnh trnh
khng cha
(1, 4)
Cn di = 114
cost
IT
PT
if (cost <MinCost){
if (edges == n-2){
else {
IT
Hiu phng php nhnh cn, phng php xy dng cn v nhng vn lin
quan
PT
Hiu phng php rt gn ma trn trong gii quyt bi ton ngi du lch.
BI TP CHNG 4
5 x1 x 2 9 x3 3x 4 max,
4 x1 2 x 2 7 x3 3x 4 10,
x 0,1, j 1,2,3,4.
j
b)
7 x1 3 x 2 2 x3 x 4 max,
5 x1 3 x 2 6 x 3 4 x 4 12,
x 0,1, j 1,2,3,4
j
100
30 x1 19 x 2 13 x3 38 x 4 20 x5 6 x 6 8 x 7 19 x8 10 x9 11x10 max,
15 x1 12 x 2 9 x3 27 x 4 15 x 5 5 x 6 8 x 7 20 x8 12 x 9 15 x10 62
x 0,1, j 1,2 ,10.
j
31 15 23 10 17
16 24 07 12 12
34 03 25 54 25
15 20 33 50 40
PT
IT
16 10 32 03 23
18 20 13 28 21
101
03 93 13 33 09
04 77 42 21 16
45 17 36 16 28
39 90 80 56 07
PT
IT
28 46 88 33 25
03 88 18 46 92
102
CHNG 5. BI TON TN TI
IT
PT
Dd
Ba
Cc
Bc
Ca
Ad
Db
Cd
Bb
Dc
Aa
Da
Ac
Cb
Bd
Mt li gii vi n = 5 l
Aa
Bb
Cc
Dd
Ee
Cd
De
Ed
Ab
Bc
Eb
Ac
Bd
Ce
Da
Be
Ca
Db
Ec
Ad
Dc
Ed
Ae
Ba
Cb
103
PT
IT
15
9
13
IT
14
6
11
10
PT
18
12
17
16
19
105
IT
PT
Mt trong nhng cch gii bi ton tn ti l dng lp lun phn chng: gi thit iu
chng minh l sai, t dn n mu thun.
V d 1. Cho 7 on thng c di ln hn 10 v nh hn 100. Chng minh rng ta
lun lun tm c 3 on c th ghp li thnh mt tam gic.
Gii: iu kin cn v 3 on l cnh ca mt tam gic l tng ca hai cnh phi
ln hn mt cnh. Ta sp cc on thng theo th t tng dn ca di a1, a2, . . ., a7 v
chng minh rng dy xp lun tm c 3 on m tng ca hai on u ln hn
on cui. chng minh, ta gi s khng tm c ba on no m tng ca hai on
nh hn mt on, ngha l cc bt ng thc sau ng thi xy ra:
a1 + a 2 a 3
a3 20 (v a1 , a2 10 )
a2 + a 3 a 4
a4 30 (v a2 10 , a3 20)
a3 + a 4 a 5
a5 50 (v a3 20, a 4 30 )
a4 + a 5 a 6
a6 80 (v a4 30 , a5 50)
a5 + a 6 a 7
106
IT
k10 = x10 + x1 + x2 13
= 3 (x1+ + x2 + . . .+ x10)
= 3 ( 0 + 1 + 2 + . . . + 9)
PT
IT
V d 5. C nm loi hc bng khc nhau pht cho sinh vin. Hi phi c t nht bao
nhiu sinh vin chc chn c 5 ngi c nhn hc bng nh nhau.
Gii. S sinh vin t nht c 5 sinh vin cng c nhn mt loi hc bng l s n
tho mn n/5 > 5. S nguyn b nht tho mn iu kin trn l n = 25 + 1 = 26. Nh
vy phi c t nht 26 sinh vin c t nht 5 sinh vin cng c nhn mt loi hc
bng.
PT
108
BI TP
PT
IT
109
IT
PT
12.
a) Trnh by thut ton sinh hon v k tip ca 1, 2, .., n ?
b) Cho tp A = { 1, 2, 3, 4, 5, 6, 7, 8, 9}. S dng phng php sinh hon v theo
th t t in, tm 4 hon v lin k tip theo ca hon v 568397421 ?
c) p dng thut ton ti Mc a, vit chng trnh lit kt tt c cc hon v ca 1,
2, .., n ?
110
13.
a) Trnh by thut ton sinh hon v k tip ca 1, 2, .., n ?
b) Cho tp A = { 1, 2, 3, 4, 5, 6, 7, 8, 9}. S dng phng php sinh hon v theo
th t t in, tm 4 hon v lin k tip theo ca hon v 458796321 ?
c) p dng thut ton ti Mc a, vit chng trnh lit kt tt c cc hon v ca 1,
2, .., n ?
14.
a) Trnh by thut ton quay lui lit k cc hon v ca 1, 2, .., n ?
b) Kim nghim thut ton vi n=3 ?
c) p dng thut ton ti Mc a, vit chng trnh lit kt tt c cc hon v ca 1,
2, .., n ?
15 .
16.
PT
IT
19.
a) Trnh by thut ton quay lui lit k cc xu nh phn c di n?
b) Kim nghim thut ton vi n=3 ?
c) p dng thut ton ti Mc a, vit chng trnh lit kt tt c cc xu nh phn
c di n ?
20. C bao nhiu bin s xe bt u bng 2 hoc 3 ch ci in hoa v kt thc l 3 hoc 4
ch s, bit rng c 26 ch ci trong bng ch ci ting anh? (VD : RS 0912 l 1 bin
s).
21. C bao nhiu bin s xe bt u bng 3 hoc 4 ch ci in hoa v kt thc l 2 hoc 3
ch s, bit rng c 26 ch ci trong bng ch ci ting anh? (VD : ABZ 09 l 1 bin s).
22. C bao nhiu s nguyn trong khong t 1000 n 5000 chia ht cho 6 hoc 9 ?
IT
23. C bao nhiu s nguyn trong khong t 5000 n 9999 chia ht cho 8 hoc 12 ?
PT
PT
IT
31. Trong k thi tuyn sinh i hc khi A, cc th sinh thi trc nghim mn L v Ha,
mi mn thi c 40 cu hi. Mi cu hi c ng 5 phng n tr li v ch c la chn
ti a 1 phng n. Mi cu tr li ng c 0.25 im, cu tr li sai hoc khng tr
li th khng c im.
a) Hy cho bit c bao nhiu cch in phiu trc nghim mn Ha.
b) Cn c t nht bao nhiu th sinh tham gia c t nht 10 sinh vin c tng im L
v Ha bng nhau, bit rng im thi khng c lm trn.
32. Mt bi thi trc nghim c 30 cu hi, mi cu hi c 5 phng n tr li v ch c 1
phng n ng. Mi cu tr li ng c 3 im, tr li sai b tr 1 im, nu khng
tr li th cu nhn 0 im. Bit rng tng im thp nht l 0. Hy cho bit:
a) C bao nhiu cch in phiu trc nghim (mi cu ch c chn ti a 1 phng
n).
b) Cn bao nhiu sinh vin tham gia thi m bo c t nht 2 sinh vin c cng kt
qu thi.
33. Mt bi thi trc nghim c 35 cu hi, mi cu hi c 4 phng n tr li v ch c 1
phng n ng. Mi cu tr li ng c 3 im, tr li sai b tr 1 im, nu khng
tr li th cu nhn 0 im. Bit rng tng im thp nht l 0. Hy cho bit:
a) C bao nhiu cch in phiu trc nghim (mi cu ch c chn ti a 1 phng
n).
b) Cn bao nhiu sinh vin tham gia thi m bo c t nht 2 sinh vin c cng kt
qu thi.
113
38.
IT
39.
PT
114
41.
a) Gii h thc truy hi sau
a0 = 6, a1 = 7, an = an-1 + 6an-2 vi n2
b) Tm h thc truy hi tnh s cc xu nh phn di n, kt thc bng s 1 v
c cha 2 s 1 lin tip.
c) Tnh s xu nh phn tha mn iu kin cu b vi n = 6.
42.
43.
IT
44.
PT
115
46.
a) Gii h thc truy hi sau
a0 = 6, a1 = 9, an = 7an-1 - 12an-2 vi n2
b) Tm h thc truy hi tnh s cc xu nh phn di n, bt u bng s 0 v
c cha 2 s 0 lin tip.
c) Tnh s xu nh phn tha mn iu kin cu b vi n = 7.
47.
IT
PT
a) an = 3an-1 vi a0 =2.
b) an = -4an-1 - 4an-2
vi n2 v a0 =0 v a1 =1.
c) an = 14an-1 - 49an-2 vi n2 v a0 =3 v a1 = 35.
49. Hy tm nghim ca cng thc truy hi vi iu kin u di y:
a) an = an-1 + 2
vi a0 =3.
b) an = -4an-1 - 4an-2 vi n2 v a0 =0 v a1 =1.
c) an = 13an-1 - 22an-2 vi n2 v a0 =3 v a1 = 15.
50. Hy tm nghim ca cng thc truy hi vi iu kin u di y:
a) an = an-1 + 2n + 3 vi a0 =4.
b) an = -6an-1 - 9an-2
vi n2 v a0 =3 v a1 =-3.
vi a0 =1.
vi a0 =1.
116
vi n2 v a0 =0 v a1 =1.
IT
58.
PT
IT
PT
c) x1 1, x2 2, x3 3, x4 4, x5 5 , x6 6?
b) 1 x1 6, 4 x2 9; x3 4?
64.
5 x1 x 2 9 x3 3x 4 max,
4 x1 2 x 2 7 x3 3x 4 10,
x 0,1, j 1,2,3,4.
j
118
65.
a) Trnh by thut ton nhnh cn gii bi ton ci ti?
b) p dng thut ton nhnh cn gii bi ton ci ti di y, ch r kt qu theo
mi bc thc hin ca thut ton?
7 x1 3 x 2 2 x3 x 4 max,
5 x1 3 x 2 6 x 3 4 x 4 12,
x 0,1, j 1,2,3,4
j
66.
a) Trnh by thut ton nhnh cn gii bi ton ci ti?
IT
15 x1 12 x 2 9 x3 27 x 4 15 x 5 5 x 6 8 x 7 20 x8 12 x 9 15 x10 62
x 0,1, j 1,2 ,10.
j
PT
31 15 23 10 17
16 24 07 12 12
34 03 25 54 25
15 20 33 50 40
16 10 32 03 23
18 20 13 28 21
68. Gii bi ton ngi du lch vi ma trn chi ph nh sau:
03 93 13 33 09
04 77 42 21 16
45 17 36 16 28
39 90 80 56 07
28 46 88 33 25
03 88 18 46 92
119