GVGD: Tr ng Ph c H i
(brand and bound)
Trang 2Ph ng pháp nhánh và c n
K thu t quay lui duy t t t c kh n ng theo mô hình cây phân c p đ tìm ra c u hình
Trang 3Ph ng pháp nhánh và c n
S d ng quay lui đ tìm c u hình t i u
ánh giá t t c c u hình đ tìm ra c u hình t i u: đi u này d n đ n s bùng n t h p
N u vi c ch n thành ph n xi không d n đ n c u hình t i u
s gây lãng phí tài nguyên đ tìm các thành ph n ti p theo
xi+1, xi+2,
C n t n d ng thông tin đã bi t đ s m lo i b c u hình
ch c ch n không th t i u
Trang 4Ph ng pháp nhánh và c n
K thu t nhánh và c n (g i t t nhánh c n) là m t
d ng c i ti n c a k thu t quay lui áp d ng cho bài toán t i u
ánh giá l i giá tr t i u c c b (c n) c a các nhánh sau
m i l n quay lui
S d ng c n đ lo i b nh ng nhánh d th a c a cây tìm
ki m nh m gi m chi phí: t a nhánh
ánh giá c n là v n đ khó kh n nh t trong vi c áp d ng
ph ng pháp nhánh c n
Trang 5Ph ng pháp nhánh và c n
Ý t ng
Kh i t o m t c u hình BEST cho bài toán: kh i t o c n
Tính chi phí c a các c u hình ngay trong quá trình xây
d ng
N u t t h n BEST: c p nh t c u hình t i u và ti p t c
Ng c l i quay lui đ tìm ph ng án khác
Trang 6Ph ng pháp nhánh và c n
Mô hình t ng quát c a k thu t nhánh c n đ c c i
ti n t mô hình đ quy nh sau
Try (i)
For (j t p kh n ng c a X[i])
If (ch p nh n j) Then
Ch n kh n ng j cho X[i]
If (X[i] là cu i c u hình) Then
<đánh giá l i c n t i u BEST>
<ghi nh n vi c th kh n ng j>
<b ghi nh n th kh n ng j>
Cu i Try
Trang 7Ph ng pháp nhánh và c n
Khi đó gi i thu t nhánh c n đ c th c hi n theo các b c sau
NhanhVaCan ()
<Kh i t o c u hình BEST>
BEST = + ;
Try(0);
If (BEST < + ) Then
<BEST là giá tr t i u>
<X’ là ph ng án t i u>
<Bài toán không có nghi m>
Cu i NhanhVaCan
Trang 8Ph ng pháp nhánh và c n
Bài toán ng i du l ch (TSP - Travelling Salesman Problem)
M t b n đ g m N thành ph đ c đánh s t 0 đ n N-1
M t du khách xu t phát t i thành ph 1 và mu n tham quan t t c thành ph , m i n i đ n đúng 1 l n r i tr v thành ph xu t phát
Bi t r ng gi a 2 thành ph có th l u thông tr c ti p s t n
m t chi phí nh t đ nh
Yêu c u xác đ nh hành trình du l ch v i chi phí nh nh t
Trang 9Ph ng pháp nhánh và c n
T ch c d li u
S d ng m ng 2 chi u g m N dòng, N c t đ bi u di n chi phí đi l i gi a các thành ph : ma tr n chi phí
C[i][j] = v: cho bi t vi c đi t thành ph i đ n tr c ti p thành ph j t n chi phí v
C[i][j] = +: cho bi t không có đ ng đi tr c ti p t thành ph i đ n thành ph j
S d ng m ng 1 chi u X[0], X[1], …, X[N] đ l u tr m t nghi m bài toán (th t thành ph th m trong hành trình)
Trang 10Ph ng pháp nhánh và c n
Ví d đ th bi u di n và ma tr n chi phí t ng ng
nh sau
1
3
2
1
3
1
Trang 11Ph ng pháp nhánh và c n
Nh n xét
x0 = 0 là thành ph xu t phát
Hành trình c n tìm có d ng (x0 = 0, x1, x2, , xN-1, xN = 0)
M t hành trình (x1, x2, , xN-1) là m t hoán v c a các thành ph {1, 2, …, N-1}
Trang 12Ph ng pháp nhánh và c n
Cây tìm ki m TSP theo k thu t quay lui
0
3
0
2
3
1
4
1
2
4
2
2
1
1
2
1
3
Trang 13Ph ng pháp nhánh và c n
Duy t quay lui
Ch n x1 là m t trong các TP có th đ n tr c ti p t x0
Ch n x2 là m t trong các TP ch a tham quan và có th đ n
tr c ti p t x3
…
Ch n xi là m t trong các TP ch a tham quan và có th đ n
tr c ti p t xi-1 (1 ≤ i ≤ N-1)
Trang 14Ph ng pháp nhánh và c n
Nhánh c n
Kh i t o c u hình BEST v i chi phí MAX = +∞
Ki m tra chi phí tính cho t i khi đ n xi < chi phí c a BEST
N u đúng thì ch n xi là thành ph th m ti p theo
Ng c l i thì th đi thành ph khác (c t nhánh)
Khi đ n xN, ki m tra n u có đ ng đi tr c ti p v x1 mà
t ng chi phí < chi phí c a BEST thì c p nh t l i BEST
Sau khi quay lui mà chi phí c a BEST v n là MAX thì bài toán không có l i gi i, ng c l i BEST là hành trình t t nh t
Trang 15Ph ng pháp nhánh và c n
Cây tìm ki m TSP theo k thu t nhánh c n
0
3
0
2
3
1
4
1
2
4
2
2
1
1
2
1
3
Trang 16Ph ng pháp nhánh và c n
B c 1: kh i t o cho hành trình
{
}
Trang 17Ph ng pháp nhánh và c n
B c 2: th t c Try tìm thành ph th m ti p theo
Try (i)
For (thành ph j {2, , n})
If (ch a tham quan thành ph j) Then
Tham quan thành ph j, tính chi phí
ánh đ u đã th m thành ph j
If (i = n) Then C p nh t hành trình
Else If (chi phí hi n t i < BEST) Then Try (i + 1);
B đánh đ u đã th m thành ph j
C u i Try
Trang 18Ph ng pháp nhánh và c n
B c 2: tìm đ ng đi ti p theo cho hành trình
{
Trang 19Ph ng pháp nhánh và c n
C p nh t hành trình t i u
{
//n u chi phí tr v < chi phí t i u
}