http://www.ebook.edu.vn
Bùi Thế Tâm VI.1 Quy hoch ri rc
Chương 6
THUT TOÁN NHÁNH CN
1. TƯ TƯỞNG CA THUT TOÁN NHÁNH CN
1.1. Trong các phương pháp gii bài toán qui hoch nguyên, phương pháp nhánh
cn là mt trong các phương pháp có hiu qu. Phương pháp nhánh cn được Land A.H
và Doig A.G xây dng năm 1960 gii bài toán qui hoch nguyên (trình bày Tiết 2), đến
1963 được Little J.D, Murty K.G, Sweeney D.W và Karen C s dng thành công gii
bài toán người du lch (trình bày trong Tiết 3). Năm 1979 Giáo sư Hoàng Ty đã ng
dng thành công phương pháp này vào gii bài toán qui hoch lõm. Đây là thut toán
ng dng rng rãi để gii các bài toán ti ưu khó.
Xét bài toán qui hoch ri rc
(
)
min ,ZfX= (1)
XG
( G là tp hu hn ) (2)
1.2. Tư tưởng ca phương pháp nhánh cn gm các phép xây dng sau cho phép
gim bt khi lượng la chn.
1. Tính cn dưới. Tìm cn dưới ca hàm mc tiêu
(
)
f
x trên tp các phương án
G (hoc trên tp con G nào đó ca G) tc là s
(
)
G
ζ
hay
(
)
G
ζ
sao cho:
(
)
(
)
f
xG
ζ
vi
x
G
( hay
(
)
(
)
f
xG
ζ
vi
x
G
).
2. Chia thành các tp con (r nhánh ). Chia dn dn tp phương án G thành
cây các tp con (các nhánh). Vic chia nhánh thc hin theo sơ đồ nhiu bước sau:
Bước 0. Đặt 0
GG. Bng mt cách nào đó 0
G được chia thành mt s hu
hn các tp con ( thường là không giao nhau) 1
11 1
12
, ,...., r
GG G.
Bước 1k. Có tp 12
, ,...., k
kk k
r
GG G cn chia nhánh. Ta chn tp
()
k
k
G
ϑ
theo mt
qui tc nào đó và chia thành mt s hu hn các tp con :
() () ()
,1 , 2 , ( )
, ,....,
kk k
kk ksk
GG G
ϑϑ ϑ
,
gm có
()
s
k tp. Khi đó, tp cn chia nhánh tiếp theo là
12 1 1
, ,...., , ,...,
kk k
kk k k k
r
GG G G G
ϑϑ
−+ ,
() () ()()
,1 ,2 ,
, ,....,
kk k
kk ksk
GG G
ϑϑ ϑ
Ta đánh s li là 1
11 1
12
, ,...., k
kk k
r
GG G
+
++ +
.
3. Tính li đánh giá
Nếu tp 12
GG thì
(
)
(
)
12
min min
XG XG
f
XfX
∈∈
.
Vì vy khi chia tp G thành 12
, ,....,
s
GG G
′′
sao cho
1
'
s
i
i
GG
=
= thì cn ca bt
kì tp i
G đều có
(
)
(
)
(
)
, 1,..,
i
GGis
ζζ
′′
≥=
. Trong các tình hung c th ta thường
nhn được các đánh giá tt , tc là đối vi mt i nào đó
(
)
(
)
.
i
GG
ζζ
http://www.ebook.edu.vn
Bùi Thế Tâm VI.2 Quy hoch ri rc
4. Tính phương án
Đối vi các bài toán c th có th ch ra các phương pháp khác nhau để tìm ra các
phương án trong các tp con được chia liên tiếp. Phương pháp này da trên đặc thù ca
mi bài toán c th. Nh phương án mi tìm được mi bước ta có th ci tiến cn trên
(ban đầu gán cho cn trên giá tr
+
) bng cách gán cho cn trên giá tr hàm mc
tiêu tt nht ti thi đim đó.
5. Tiêu chun ti ưu. Gi s
1
s
i
i
GG
=
= và phương án XG
ϑ
tha mãn điu
kin:
(
)
(
)
(
)
, 1,..,
i
f
XG G is
ϑ
ζζ
=≤ =
thì X là phương án ti ưu ca bài toán
(1)-(2). Qui tc này được ng dng giai đon chia nhánh .
6. Đánh giá độ chính xác ca li gii xp x. Gi s
()
1,..,
1
,min
s
ii
is
i
GG G
ζζ
=
=
==
.
Nếu X là mt phương án ca bài toán xut phát thì
(
)
(
)
min
xG
f
XfX
ζ
≤≤. Nếu
()
fX
ζ
đủ nh thì X có th ly làm li gii xp x vi đánh giá độ xp x
()
fX
ζ
∆= .
1.3. Lược đồ tng quát ca phương pháp nhánh cn. Chia tp phương án
G thành cây tp con.
Bước 0. Tính
()
(
)
0
GG
ζζ
=. Nếu tìm được phương án X sao cho
(
)
(
)
f
XG
ζ
= thì X là phương án ti ưu. Ngược li, chia 0
G = 1
11 1
12
.... r
GG G∪∪,
tc là chia thành các tp con (thường là không giao nhau).
Bước 1k. Tính các đánh giá
(
)
, 1,..,
k
ik
Gi r
ζ
=. Nếu tìm được phương án X,
k
r
XG sao cho
(
)
(
)
(
)
,
kk
ri
fX G G
ζζ
=≤ vi 1, 2,.., k
ir
= , thì X là phương án
ti ưu, quá trình kết thúc. Ngược li, chn
()
k
k
G
ϑ
để chia, theo tiêu chun
()
(
)
(
)
1,..,
min
k
kk
i
kir
GG
ϑ
ζζ
=
=. Ta chia tp
()
k
k
G
ϑ
thành mt s tp con
() () () ()()
,1 , 2 ,
....
kk k k
kk k ksk
GG G G
ϑϑ ϑ ϑ
=∪∪ .
Tp cn chia tiếp theo là
12 1 1
, ,...., , ,...,
kk k
kk k k k
r
GG G G G
ϑϑ
−+ ,
() () ()
,1 ,2 ,
, ,...., k
kk k
kk ks
GG G
ϑϑ ϑ
Sau đó ta đánh s li là 1
11 1
12
, ,...., k
kk k
r
GG G
+
+
++
và sang bước k+1.
http://www.ebook.edu.vn
Bùi Thế Tâm VI.3 Quy hoch ri rc
2. PHƯƠNG PHÁP LAND VÀ DOIG GII BÀI TOÁN QUI HOCH
NGUYÊN
2.1. Xét bài toán qui hoch nguyên tuyến tính sau:
()
1
min
n
jj
j
Z
fX cx
=
==
(3)
vi các điu kin ràng buc
ij
j=1
, 1,..,
n
jii
axRb i m=
(quan h th t
{
}
,,
i
R
≤≥= ) (4)
0 , 1,.., .
jj
x
djn≤≤ = (5)
j
x
nguyên 1
1,..,
j
n
=
1
nn
(6)
trong đó
j
d là cn trên ca biến
j
x
(có th j
d
=
+∞ ). Gi thiết tp tt c các đim
x
tha mãn (4)-(5) là b chn.
Nếu 1
nn=, ta có bài toán qui hoch nguyên hoàn toàn, còn nếu 1
nn< thì có bài
toán qui hoch nguyên b phn. Ngoài ra, bài toán tìm max có th qui v bài toán tìm
min bng cách đổi du hàm mc tiêu. Có nhiu phương pháp gii bài toán qui hoch
nguyên tuyến tính, trong đó có phương pháp nhánh cn. A.H Land và A.G Doig (1960)
là nhng người đầu tiên áp dng phương pháp nhánh cn để gii bài toán qui hoch
tuyến tính nguyên.
2.2. Ni dung phương pháp
1. Cho tp 0
GG xác định bi (4) - (6).
2. Cho các tp
()
k
k
G
ϑ
, 1,.., ,
k
r
ϑ
=
1, 2,....k
=
. xác định bi (4),(6) và ràng buc
b sung:
, 1,..,
jjj
kk
hxd jn
ϑϑ
 
≤≤ =
 
  . (7)
3. Tính cn. Đối vi 0
G ước lượng
()
(
)
0
0
GfX
ζ
= vi 0
X là li gii ca bài
toán qui hoch tuyến tính (3)-(5).
Đối vi k
G
ϑ
thì
()
kk
GfX
ϑ
ζ
ϑ


=



, trong đó k
X
ϑ



là li gii ca bài toán qui
hoch tuyến tính (3),(4) và (7).
Nếu
(
)
k
G
ϑ
=∅ thì
(
)
k
G
ϑ
ζ
=
+∞ .
4. Tính phương án. Nếu 0
X tha mãn điu kin nguyên (6), thì 0
X là nghim
ti ưu ca bài toán ban đầu, thut toán dng.
http://www.ebook.edu.vn
Bùi Thế Tâm VI.4 Quy hoch ri rc
Nếu k
X
ϑ



tha mãn điu kin nguyên (6) thì nó là phương án ti ưu ca bài toán
(3), (4), (7), (6) và nó cũng là mt phương án ca bài toán ban đầu. Ly k
X
ϑ



để ci
tiến cn trên.
5. Chia nhánh. Cn chia nhánh khi
()
k
Xk
ϑ



không tha mãn điu kin nguyên
(6). Gi s
()
1
,1
r
k
x
rn
k
ϑ

≤≤

 là mt thành phn không nguyên ca phương án này,
khi đó tp hp
()
k
k
G
ϑ
chia thành hai tp hp
() () ()
,1 ,2
kk k
kk k
GG G
ϑϑ ϑ
=, trong đó
() ()
()
() ()
()
,1
,2
|,
|, 1
kk
rr
kk
kk
rr
kk
k
GXXGxx
k
k
GXXGxx
k
ϑϑ
ϑϑ
ϑ
ϑ




=∈












=∈ +








Chú ý rng nếu tt c j
c trong (3) là nguyên vi 1
jn
1
0
j
ckhijn=≥ thì
cn dưới
(
)
k
G
ϑ
ζ
có th dùng đánh giá mnh hơn
(
)
(
)
kk
GfX
ϑϑ
ζ

=
, đây kí hiu
]
[
f
là s nguyên nh nht mà ln hơn hay bng
f
.
2.3. Gii ví d bng s
Xét bài toán qui hoch nguyên tuyến tính sau:
min -x1 -x2 (8)
2x1 + 11 x2
38
x1 + x2 7 (9)
4 x1 - 5x2
5
x1, x2 0 (10)
x1, x2 nguyên (11)
Bước 0. Gii bài toán (8)-(10), tìm được nghim 045
4,2
99
X
=

. Cn dưới
() ()
][
00
77GfX
ζ

===
 . Phương án 0
X không tha mãn điu kin nguyên
(11). Chúng ta chia 0
G thành hai tp hp 011
12
GGG=, trong đó
{
}
{}
10
11
10
21
|,4
|,5
GXXGx
GXXGx
=
∈≤
=
∈≥
http://www.ebook.edu.vn
Bùi Thế Tâm VI.5 Quy hoch ri rc
Bước 1. Gii hai bài toán quy hoch tuyến tính: cc tiu (8) trên hai tp hp 1
1
G
1
2
G. Trong bài toán đầu tiên cc tiu trên min 1
1
G đạt ti đim 8
4, 2 11



, do đó
(
)
1
1
8
66
11
G
ζ

=− =

. Tp 1
2
G là trng nên
(
)
1
2
G
ς
=
+∞ .
Chn 1
1
G để chia nhánh ta được:
{
}
{}
112
1,1 1 2 1
112
1,2 1 2 2
|,2
|,3
GXXGx G
GXXGx G
=∈
=∈
12
23
GG
=
=∅
Bước 2. Gii các bài toán qui hoch tuyến tính:
1) Tìm cc tiu (8) trên 2
1
G được
()
2
1
233
3,2 5 5
144
XG
ζ
 
=
⇒==
  


2) Tìm cc tiu (8) trên 2
2
G được
()
2
2
211
2,3 5 5
222
XG
ζ
 
=
⇒==
  


3) 12
23
GG==,
(
)
2
3
G
ζ
=
+∞
Chn 2
1
G để chia nhánh :
{
}
{}
223
1,1 1 1 1
223
1,2 1 1 2
|,3
|,4
GXXGx G
GXXGx G
=∈
=∈
Đánh s li 232 32323
1,1 1 1,2 2 2 3 3 4
,,,G GG GGGGG ≡=≡
Bước 3. Gii các bài toán qui hoch tuyến tính:
1) Tìm cc tiu (8) trên 3
1
G được
()
()
][
3
1
33, 2 5 5
1
XG
ζ

=
⇒==


2) 3
2
G=∅
(
)
3
2
G
ζ
⇒=+
3) Tìm cc tiu (8) trên 3
3
G được
()
3
3
32
11
2,3 5 5
32
22
XX G
ζ
 
== ==
  


4) 32
43
GG==
(
)
3
4
G
ζ
⇒=+