You are on page 1of 4

Bi ton ci ti xch

Bi ton ci ti xch
Bi:
Khoa CNTT HSP KT Hng Yn

Bi ton
C n loi vt, mi loi c s lng khng hn ch. vt loi i, c
trng bi trng lng Wi v gi tr s dng Vi , vi mi i {1,..,n}.
Cn chn cc vt ny t vo mt chic ti xch c gii hn trng lng m, sao cho tng
gi tr s dng cc vt c chn l ln nht.

Phn tch v thit k thut ton :

Bi ton chic ti xch chuyn v bi ton sau :

Cho nn ta s kt hp nh gi nhnh cn trong qu trnh lit k cc li gii theo phng


php quay lui.
M hnh ban u c th s dng nh sau :
Try(i)
for(j = 1 -> t)
if(Chp nhn c)

1/4

Bi ton ci ti xch

{
Xc nh xi theo j;
Ghi nhn trng thi mi;
if(i==n)
Cp nht li gii ti u;
else
{
Xc nh cn trn g;
if( g(x1,..., xi) <= f*)
Try(i+1);
}
Tr li trng thi c cho bi ton;
}
o Cch chn vt :

Ta chn vt theo n gi gim dn.


Khng mt tnh tng qut, ta gi s cc loi vt cho theo th t gim dn ca n gi.
o nh gi cn trn :
Gi s tm c li gii b phn : (x1,,xi)

Khi :

2/4

Bi ton ci ti xch

- Gi tr ca ti xch thu c :
- Tng ng vi trng lng cc vt c xp vo chic ti :

- Do , gii hn trng lng ca chic ti cn li l :


Ta thy y l mt bi ton tm max. Danh sch cc vt c sp xp theo th t
gim ca n gi xt phn nhnh.
1. Nt gc biu din cho trng thi ban
u ca ba l, ta cha chn mt vt no. Tng gi tr (TGT) c chn TGT=0.
Cn trn ca nt gc CT = W * n gi ln nht.
2. Nt gc s c cc nt con
tng ng vi cc kh nng chn vt c n gi ln nht. Vi mi nt con ta tnh
li cc thng s:
TGT = TGT (c) + s vt c chn * gi tr mi
vt.
W = W (c) - s vt c chn * trng lng mi vt.

CT = TGT + W (mi) * n gi ca vt s xt k tip.


3. Trong cc nt con, ta s u tin phn nhnh cho nt con no c cn trn ln hn
trc. Cc con ca nt ny tng ng vi cc kh nng chn vt c n gi ln tip
theo. Vi mi nt ta li phi xc nh li cc thng s TGT, W, CT theo cng thc
ni trong bc 2.
4. Lp li bc 3 vi ch : i vi nhng nt c cn trn
nh hn hoc bng gi ln nht tm thi ca mt phng n c tm thy th ta
khng cn phn nhnh cho nt na.
5. Nu tt c cc nt u c phn
nhnh hoc b ct b th phng n c gi ln nht l phng n cn tm.
V d
: Vi bi ton ci ba l cho, sau khi tnh n gi cho cc vt v sp xp cc vt
theo th t gim dn ca n gi ta c bng sau.

Gi x1, x2, x3, x4 l s lng cn chn tng ng ca cc vt b, a, d, c.


Nt
gc A biu din cho trng thi ta cha chn bt c mt vt no. Khi tng gi tr
TGT =0, trng lng ca ba l W=37 (theo ra) v cn trn CT = 37*2.5 = 92.5, trong
3/4

Bi ton ci ti xch

37 l W, 2.5 l n gi ca vt b.
Vi vt b, ta c 4 kh nng: chn 3
vt b (X1=3), chn 2 vt b (X1=2), chn 1 vt b (X1=1) v khng chn vt b
(X1=0). ng vi 4 kh nng ny, ta phn nhnh cho nt gc A thnh 4 con B, C, D v
E.
Vi nt con B, ta c TGT = 0+ 3*25 = 75, trong 3 l s vt b c chn,
25 l gi tr ca mi vt b. W = 37- 3*10 = 7, trong 37 l trnh lng ban u
ca ba l, 3 l s vt b c, 10 l trng lng mi vt b. CT = 75 + 7*2 = 89, trong
75 l TGT, 7 l trng lng cn li ca ba l v 2 l n gi ca vt a. Tng t
ta tnh c cc thng s cho cc nt C, D v E, trong cn trn tng ng l 84, 79
v 74.
Trong cc nt B, C, D v E th nt B c cn trn ln nht nn ta s phn
nhnh cho nt B trc vi hy vng s c c phng n tt t hng ny. T nt B
ta ch c mt nt con F duy nht ng vi X2=0 (do trng lng cn li ca ba l l 7,
trong khi trng lng ca mi vt a l 15). Sau khi xc nh cc thng s cho nt F
ta c cn trn ca F l 85.5. Ta tip tc phn nhnh cho nt F. Nt F c 2 con G v H
tng ng vi X3=1 v X3=0. Sau khi xc nh cc thng s cho hai nt ny ta thy
cn trn ca G l 84 v ca H l 82 nn ta tip tc phn nhnh cho nt G. Nt G c hai
con l I v J tng ng vi X4=1 v X4=0. y l hai nt l (biu din cho phng
n) v vi mi nt th s cc vt c chn xong. Trong nt I biu din cho
phng n chn X1=3, X2=0, X3=1 v X4=1 vi gi 83, trong khi nt J biu din cho
phng n chn X1=3, X2=0, X3=1 v X4=01 vi gi 81. Nh vy gi ln nht tm
thi y l 83.
Quay lui ln nt H, ta thy cn trn ca H l 82<83 nn ct ta nt
H.
Quay lui ln nt C, ta thy cn trn ca C l 84>83 nn tip tc phn nhnh
cho nt C. Nt C c hai con l K v L ng vi X2=1 v X2=0. Sau khi tnh cc thng s
cho K v L ta thy n trn ca K l 83 v ca L l 75.25. C hai gi tr ny u khng
ln hn 83 nn c hai nt ny u b ct ta. Cui cng cc nt D v E cng b ct ta.
Nh vy tt c cc nt trn cy u c phn nhnh hoc b ct ta nn phng n
tt nht tm thi l phng n cn tm. Theo ta cn chn 3 vt loi b, 1 vt loi
d v mt vt loi c vi tng gi tr l 83, tng trng lng l 36.

4/4

You might also like