Kỹ thuật thiết kế giải thuật

27 308 0
Kỹ thuật thiết kế giải thuật

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Collected by The_Wall (11/10/2005) M c tiêu Ki n th c c b n c n có h c ch ng Tài li u tham kh o có liên quan n ch ng N i dung: III.1 - Gi i thu t chia tr III.2 - Quy ho ch ng III.3 - K thu t "tham n" III.4 - K thu t quay lui III.5 - K thu t tìm ki m a ph ng V n nghiên c u c a trang k ti p Nói chung thi t k m t gi i thu t th ng d a vào m t s k thu t ó Ch ng s trình bày m t s k thu t quan tr ng thi t k gi i thu t nh : Chia tr (Divide-andConquer), quy ho ch ng (dynamic programming), k thu t tham n (greedy techniques), quay lui (backtracking) tìm ki m a ph ng (local search) Các k thu t c áp d ng vào m t l p ng toán, ó có nh ng toán n i ti ng nh tốn tìm ng i ng n nh t c a ng i giao hàng, toán ph t i ti u III.1- GI I THU T CHIA TR III.1.1- N i dung k thu t III.1.2- Nhìn nh n l i gi i thu t MergeSort QuickSort III.1.3- Bài toán nhân s nguyên l n III.1.4- X p l ch thi u th thao III.1.5- Bài toán cân b ng III.1.1- N i dung k thu t Có th nói r ng k thu t quan tr ng nh t, c áp d ng r ng rãi nh t thi t k gi i thu t có hi u qu k thu t "chia tr " (divide and conquer) N i dung c a là: gi i m t tốn kích th c n, ta chia tốn ã cho thành m t s tốn có kích th óc nh h n Gi i tốn r i t ng h p k t qu l i c l i gi i c a toán ban u i v i toán con, l i s d ng k thu t chia tr có c tốn kích th c nh h n n a Quá trình d n n nh ng toán mà l i gi i chúng hi n nhiên ho c dàng th c hi n, ta g i toán tốn c s Tóm l i k thu t chia tr bao g m hai trình: Phân tích tốn ã cho thành tốn c s ng h p k t qu t tốn c s có l i gi i c a toán ban u Tuy nhiên i v i t s tốn, q trình phân tích ã ch a ng vi c t ng h p k t qu ó n u ã gi i xong tốn c s tốn ban u c ng ã c gi i quy t Ng c l i có nh ng tốn mà q trình phân tích n gi n nh ng vi c t ng h p k t qu l i r t khó kh n Trong ph n ti p sau ta s trình bày m t s ví d th y rõ h n u thu t s cho m t gi i thu t quy mà vi c xác ph i gi i m t ph ng trình quy nh ch ng I ã trình bày Giáo trình mơn Phân tích Gi i Thu t – I nh ph c t p c a s C C N TH Trang 36 Collected by The_Wall (11/10/2005) III.1.2 Nhìn nh n l i gi i thu t MergeSort QuickSort Hai gi i thu t s p x p ã c trình bày ch ng tr c (MergeSort ch QuickSort ch ng II) th c ch t ã s d ng k thu t chia tr ng I i MergeSort, s p m t danh sách L g m n ph n t , chia L thành hai danh sách L1 L2 m i danh sách có n/2 ph n t S p x p L1, L2 tr n hai danh sách ã c s p c m t danh sách có th t Q trình phân tích ây q trình chia m t danh sách, q trình s d n n tốn s p x p m t danh sách có d b ng 1, ây tốn c s vi c s p p danh sách “không làm c ” Vi c t ng h p k t qu ây “tr ün danh sách ã cs p c m t danh sách có th t ” i QuickSort, s p x p m t danh sách g m n ph n t , ta tìm m t giá tr ch t phân ho ch danh sách ã cho thành hai danh sách “bên trái” “bên ph i “ S p x p “bên trái” “bên ph i” ta c danh sách có th t Q trình phân chia s d n n toán s p x p m t danh sách ch m m t ph n t ho c g m nhi u ph n t có khố b ng nhau, ó tốn c s , b n thân chúng ã có th t r i ây c ng khơng có vi c t ng h p k t qu m t cách t ng minh, vi c ó ã c th c hi n q trình phân ho ch III.1.3- Bài tốn nhân s nguyên l n Xét toán nhân hai s nguyên n ch s X Y Theo gi i thu t nhân hai s thơng th ng n n phép nhân n phép c ng nên t n O(n2) th i gian Áp d ng k thu t "chia tr " vào phép nhân s nguyên, ta chia m i s nguyên X Y thành s nguyên có n/2 ch s n gi n ta gi s n lu th a c a X = A10n/2 + B Y = C10n/2 + D Trong ó A, B, C, D s nguyên có n/2 ch s Ch ng h n v i X = 1234 A = 12 B = 34 b i X = 12 *102 + 34 Tích c a X Y có th c vi t thành: XY = AC10n+(AD + BC)10n/2 + BD (III.1) i m i s có n/2 ch s , l i ti p t c phân tích theo cách trên, q trình phân tích s n n toán c s nhân s nguyên ch g m m t ch s mà ta d dàng th c hi n Vi c t ng p k t qu th c hi n phép tốn theo cơng th c (III.1) Theo (III.1) ph i th c hi n phép nhân s nguyên n/2 ch s (AC, AD, BC, BD), sau ó t ng h p k t qu b ng phép c ng s nguyên n ch s phép nhân v i 10n 10n/2 Các phép c ng s nguyên n ch s d nhiên ch c n O(n) Phép nhân v i 10n có th th c hi n m t cách n gi n b ng cách thêm vào n ch s ó c ng ch l y O(n) G i T(n) th i gian nhân hai s nguyên, m i s có n ch s t (III.1) ta có: T(1) = T(n) = 4T(n/2) + cn (III.2) Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 37 Collected by The_Wall (11/10/2005) Gi i (III.1) ta c T(n) = O(n2) Nh v y ch ng c i ti n c chút so v i gi i thu t nhân hai s bình th ng c i thi n tình hình, có th vi t l i (III.1) thành d ng: XY = AC10n + [(A-B)(D-C) + AC + BD] 10n/2+ BD (III.3) Cơng th c (III.3) ch ịi h i phép nhân c a s nguyên n/2 ch s là: AC, BD (AB)(D-C), phép c ng tr phép nhân v i 10n Các phép toán u l y O(n) th i gian T (III.3) ta có ph ng trình quy: T(1) = T(n) = 3T(n/2) + cn ã Gi i ph ng trình quy ta c c i thi n r t nhi u Gi i thu t thô c nghi m T(n) = O(nlog3) = O(n1.59) Gi i thu t rõ ràng nhân hai s nguyên (d ng ho c âm) n ch s là: function Mult(x,y:integer; n:integer) : integer; var m1,m2,m3,A,B,C,D: integer; s:integer;{L u tr d u c a tích xy} begin s := sign(x)*sign(y); {Hàm sign có giá tr n u x d ng –1 n u x âm} x := ABS(x);{L y tr t i c a x} y := ABS(y); if n = then mult:=x*y*s else begin A := left( x, n DIV 2); B := right(x, n DIV 2); C := left(y, n DIV 2); D := right(y, n DIV 2); m1 := mult(A,C, n DIV 2); m2 := mult(A-B,D-C, n DIV 2); m3 := mult(B,D, n DIV 2); mult := (s * (m1 * 10n + (m1+m2+m3)* 10 n DIV + m3)); end end; III.1.4- X p l ch thi u th thao K thu t chia tr không nh ng ch có ng d ng thi t k gi i thu t mà nhi u nh v c khác c a cu c s ng Ch ng h n xét vi c x p l ch thi u th thao theo th th c u vòng tròn t cho n c u th M i c u th ph i u v i c u th khác, m i c u th ch u nhi u nh t m t tr n m i ngày Yêu c u x p m t l ch thi u cho s ngày thi u nh t Ta d dàng th y r ng ng s tr n u c a toàn gi i n(n-1)/2 Nh v y n u n m t s ch n ta có th s p n/2 c p thi u m t ngày ó c n nh t n-1 ngày Ng c l i n u n m t s l n-1 m t s ch n nên ta có th s p (n-1)/2 c p thi u m t ngày ó ta c n n ngày Gi s n = 2k n m t s ch n Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 38 Collected by The_Wall (11/10/2005) ó c n t i thi u n-1 ngày L ch thi u m t b ng n dòng n-1 c t Các dòng c ánh s t n n c t c ánh s t n n-1, ó dịng i bi u di n cho c u th i, c t j bi u di n cho ngày thi u j ô(i,j) ghi c u th ph i thi u v i c u th i ngày j Chi n l c chia tr xây d ng l ch thi u nh sau: s p l ch cho n c u th , ta s s p l ch cho n/2 c u th , s p l ch cho n/2 c u th , ta s s p l ch cho n/4 c u th Quá trình s d n n toán c s s p l ch thi u cho c u th Hai c u th s thi u m t tr n m t ngày, l ch thi u cho h th t d s p Khó kh n ch t l ch thi u cho hai c u th , ta t ng h p l i c l ch thi u c a c u th , c u th , Xu t phát t l ch thi u cho hai c u th ta có th xây d ng l ch thi u cho c u th nh sau: ch thi u cho c u th s m t b ng dòng, c t L ch thi u cho c u th ngày th l ch thi u c a hai c u th (bài toán c s ) Nh v y ta có Ơ(1,1) = “2” Ơ(2,1) = “1” ng t ta có l ch thi u cho c u th ngày th Ngh a Ô(3,1) =”4” Ô(4,1) = “3” (Ta c th th y r ng Ô(3,1) = Ô(1,1) + Ô(4,1) = Ô(2,1) + ) Bây gi hoàn thành l ch thi u cho c u th , ta l y góc bên trái c a b ng l p vào cho góc d i bên ph i l y góc d i bên trái l p cho góc bên ph i L ch thi u cho c u th m t b ng g m dịng, c t Góc bên trái l ch thi u ngày u c a c u th t n Các ô c a góc d i bên trái s b ng t ng ng c a góc bên trái c ng v i ây l ch thi u cho c u th 5, 6, ngày u Bây gi hoàn thành vi c s p l ch b ng cách l p y góc d i bên ph i b i góc bên trái góc bên ph i b i góc d i bên trái III.1.5- Bài toán cân b ng (Balancing Subproblems) i v i k thu t chia tr , nói chung s t t h n n u ta chia toán c n gi i thành toán có kích th c g n b ng Ví d , s p x p tr n (MergeSort) phân chia tốn thành hai tốn có kích th c n/2 ó th i gian c a ch O(nlogn) Ng c l i tr ng h p u nh t c a QuickSort, m ng b phân ho ch l ch th i gian th c hi n O(n2) Nguyên t c chung tìm cách chia tốn thành tốn có kích th hi u su t s cao h n III.2- QUY HO CH c x p x b ng NG Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 39 Collected by The_Wall (11/10/2005) III.2.1- N i dung k thu t III.2.2- Bài tốn tính s t h p III.2.1- N i dung k thu t Nh III.1 ã nói, k thu t chia tr th ng d n t i m t gi i thu t quy Trong gi i thu t ó, có th có m t s gi i thu t th i gian m Tuy nhiên, th ng ch có m t s a th c tốn con, u ó có ngh a chúïng ta ã ph i gi i m t s tốn ó nhi u l n tránh vi c gi i d th a m t s toán con, t o m t b ng l u t t c k t qu a toán c n ch c n tham kh o t i k t qu ã c l u b ng mà không c n ph i gi i l i tốn ó L p y b ng k t qu toán theo m t quy lu t ó nh n c k t qu c a toán ban u (c ng ã c l u m t ô ó c a b ng) c g i quy ho ch ng III.2.2- Bài tốn tính s t h p M t toán quen thu c v i tính s t h p ch p k c a n theo công th c: Ckn = n u k=0 ho c k = n Ckn = Ck-1n-1 + Ckn-1 n u < k < n Công th c ã g i ý cho m t gi i thu t quy nh sau: function Comb(n,k : integer) : Integer; begin if (k=0) or (k=n) then Comb := else Comb := Comb(n-1, k-1) + Comb(n-1,k); end; G i T(n) th i gian tính s t h p ch p k c a n, ta có ph ng trình quy: T(1) = C1 T(n) = 2T(n-1) + C2 Gi i ph ng trình ta c T(n) = O(2n), nh v y m t gi i thu t th i gian m , ch có m t a th c tốn u ó ch ng t r ng có nh ng tốn c gi i nhi u l n Ch ng h n tính Comb(4,2) ta ph i tính Comb(3,1) Comb(3,2) tính Comb(3,1) ta ph i tính Comb(2,0) Comb(2,1) tính Comb(3,2) ta ph i tính Comb(2,1) Comb(2,2) Nh v y tính Comb(4,2) ta ph i tính Comb(2,1) hai l n Hình 3-2 sau minh ho rõ u ó Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 40 Collected by The_Wall (11/10/2005) Áp d ng k thu t quy ho ch ng kh c ph c tình tr ng trên, ta xây d ng m t b ng g m n+1 dòng (t n n) n+1 c t (t n n) n giá tr cho O(i,j) theo quy t c sau: (Quy t c tam giác Pascal): O(0,0) = 1; O(i,0) =1; O(i,i) = v i < i ( n; O(i,j) = O(i-1,j-1) + O(i-1,j) v i < j < i £ n Ch ng h n v i n = ta có b ng bên O(n,k) Comb(n,k) ta có gi i thu t nh sau: function Comb(n, k : Integer) : Integer var C: array[0 n, n] of integer; i,j : integer; begin {1} C[0,0] := 1; {2} for i := to n begin {3} C[i,0] := 1; {4} C[i,i] := 1; {5} for j := to i-1 C[i,j] := C[i-1,j-1] + C[i-1,j]; end; {6} Comb := C[n,k]; end; Vòng l p {5} th c hi n i-1 l n, m i l n O(1) Vòng l p {2} có i ch y t T(n) th i gian th c hi n gi i thu t ta có: n n, nên n u g i III.3- K THU T "THAM N" III.3.1- Bài toán t i u t h p III.3.2- N i dung k thu t tham n III.3.3- Bài toán ng i c a ng i giao hàng III.3.4- Bài toán ba lơ Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 41 Collected by The_Wall (11/10/2005) III.3.1- Bài toán t i u t h p Là m t d ng c a tốn t i u, có d ng t ng quát nh sau: f(X) · Cho phi m hàm c g i hàm m c tiêu xác nh m t t p h u h n ph n t D Hàm · M i ph n t X D có d ng X= (x1, x2, xn) c g i m t ph · C n tìm m t ph ng án X D cho hàm f(X) i ph ng án t i u ng án t (max) Ph ng án X nh th c Ta có th tìm th y ph ng án t i u b ng ph ng pháp “vét c n” ngh a xét t t c ph ng án t p D (h u h n) xác inh ph ng án t t nh t M c dù t p h p D h u h n nh ng tìm ph ng án t i u cho m t tốn kích th c n b ng ph ng pháp “vét c n” ta có th c n m t th i gian m Các ph n ti p theo c a ch th i gian có th ch p nh n c ng s trình bày m t s k thu t gi i toán t i u t h p mà III.3.2- N i dung k thu t tham n K thu t tham n th ng c v n d ng gi i toán t i u t h p b ng cách xây d ng m t ph ng án X Ph ng án X c xây d ng b ng cách l a ch n t ng thành ph n xi c a X cho n hoàn ch nh ( n thành ph n) V i m i xi , ta s ch n xi t i u V i cách có th b c cu i ta khơng cịn ch n mà ph i ch p nh n m t giá tr cu i l i ta ch Áp d ng k thu t tham n s cho m t gi i thu t th i gian a th c, nhiên nói chung chúng t c m t ph ng án t t ch không ph i t i u Có r t nhi u tốn mà ta có th gi i b ng k thu t này, sau ây m t s ví d III.3.3- Bài toán ng i c a ng i giao hàng Chúng ta s xét m t tốn r t n i ti ng có tên tốn tìm ng i c a ng i giao hàng (TSP - Traveling Salesman Problem): Có m t ng i giao hàng c n i giao hàng t i n thành ph Xu t phát t m t thành ph ó, i qua thành ph khác giao hàng tr v thành ph ban u M i thành ph ch n m t l n, kho ng cách t m t thành ph n thành ph khác xác nh c Kho ng cách gi a hai thành ph có th kho ng cách a lý, có th c c phí di chuy n ho c th i gian di chuy n Ta g i chung dài Hãy tìm m t chu trình (m t ng i khép kín th a mãn u ki n trên) cho t ng dài c nh nh nh t Hay cịn nói tìm m t ph ng án có giá nh nh t Bài toán c ng c g i toán ng i du l ch V i ph ng pháp vét c n ta xét t t c chu trình, m i chu trình tính t ng dài c nh a r i ch n m t chu trình có t ng dài nh nh t Tuy nhiên c n xét t t c chu trình Th c v y, m i chu trình u i qua t t c nh (thành ph ) nên ta có th c nh m t nh nh ta có n-1 c nh t i n-1 nh khác, nên ta có n-1 cách ch n c nh u tiên c a chu trình Sau ã ch n c c nh u tiên, n-2 cách ch n c nh th hai, ó ta có (n-1)(n-2) cách Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 42 Collected by The_Wall (11/10/2005) ch n hai c nh C lý lu n nh v y ta s th y có (n-1)! cách ch n m t chu trình Tuy nhiên v i m i chu trình ta ch quan tâm n t ng dài c nh ch không quan tâm n h ïng i theo chi u d ng hay âm v y có t t c ph ng án ó m t gi i thu t th i gian m !!! thu t tham n áp d ng vào ây là: Tính dài c a t t c c nh (có t t c Xét c nh có M t c nh s dài t nh c nl n nh) a vào chu trình a vào chu trình n u c nh ó th a mãn hai · Khơng t o thành m t chu trình thi u (không i qua m t n u ki n sau: nh) · Không t o thành m t nh có c p (t c khơng c có nhi u h n hai c nh xu t phát nh, yêu c u c a toán m i thành ph ch c n m t l n: m t l n n m t l n i) L p l i b c cho n xây d ng c m t chu trình V i k thu t ta ch c n n(n-1)/2 phép ch n nên ta có m t gi i thu t c n O(n2) th i gian Ví d 3-1: Cho tốn TSP v i nh c cho b i t a nh sau: Do có nh nên có t t c 15 c nh ó c nh: ab, ac, ad, ae, af, bc, bd, be, bf, cd, ce, cf, de, df ef dài c nh ây kho ng cách Euclide Trong 15 c nh de = nh nh t, nên de c ch n vào chu trình K n c nh ab, bc ef u có dài C c nh u th a mãn hai u ki n nói trên, nên u c ch n vào chu trình C nh có dài nh k ti p ac = 7.08, nh ng không th a c nh vào chu trình s t o chu trình thi u (a-b-c-a) C nh df c ng b lo i lý t ng t C ûnh be c xem xét nh ng r i c ng b lo i t o nh b nh e có c p T ng t c ng lo i bd cd c nh ti p theo c xét c ch n Cu i ta có chu trình a-b-c-d-e-f-a v i t ng dài 50 Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 43 Collected by The_Wall (11/10/2005) ây ch m t ph Ph ng án t t ng án t i u chu trình a-c-d-e-f-b-a v i t ng dài 48.39 Gi i thu t s b nh sau: procedure TSP; begin {E t p c nh } {S p x p c nh E theo th t t ng c a Chu_Trinh := F; Gia := 0.0; while E F begin if c nh e có th ch n then begin Chu_Trinh := Chu_Trinh + e ; Gia := Gia + dài c a e; end; E := E-e; end ; dài } end; M t cách ti p c n khác c a k thu t tham n vào toán là: Xu t phát t m t nh b t k , ch n m t c nh có nh ó n nh k ti p T ki n nói nh k ti p ta l i ch n m t c nh có i n d nh k ti p L p l i b c cho n i t i dài nh nh t t t c c nh i t dài nh nh t i t nh n quay tr v nh tho mãn hai u nh xu t phát III.3.4- Bài toán ba lơ Cho m t ba lơ có th ng m t tr ng l ng W n lo i v t, m i v t i có m t tr ng l ng gi m t giá tr vi T t c lo i v t u có s l ng khơng h n ch Tìm t cách l a ch n v t ng vào ba lô, ch n lo i v t nào, m i lo i l y cho ng tr ng l ng không v t W t ng giá tr l n nh t Theo yêu c u c a tốn ta c n nh ng v t có giá tr cao mà tr ng l ng l i nh cho có th mang c nhi u “ quý”, s h p lý ta quan tâm n y u t “ n giá” c a t ng lo i v t t c t l giá tr /tr ng l ng n giá cao q T ó ta có k thu t greedy áp Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 44 Collected by The_Wall (11/10/2005) ng cho toán là: Tính n giá cho lo i Xét lo i V i m i v t v t theo th t v t n giá t l n c xét s l y m t s l n nh ng t i a mà tr ng l ng cịn l i c a ba lơ cho phép ch n Xác nh tr ng lu ng cịn l i c a ba lơ quay l i b c v t n a Ví d 3-2: Ta có m t ba lơ có tr ng l ng ng c cho b ng (hình 3-6) ng làì 37 lo i T b ng ã cho ta tính n giá cho lo i n giá gi m d n ta có b ng (hình 3-7) Theo ó th t u tiên ch n c cho n khơng cịn có th v t v i tr ng l v t s p x p lo i ng giá tr v t theo th t v t là B, A, D cu i C V tB c xét u tiên ta ch n t i a m i tr ng l ng m i 10 ba lơ có tr ng l ng 37 Sau ã ch n vât lo i B, tr ng l ng cịn l i ba lơ 37 - 3*10 = Ta xét n v t A, A có tr ng l ng 15 mà tr ng l ng cịn l i c a balơ ch cịn nên khơng th ch n v t A Xét v t D ta th y có th ch n v t D, ó tr ng l ng cịn l i c a ba lơ 7-4 = Cu i ta ch n c m t v t C Nh v y ã ch n lo i B, m t lo i D lo i C T ng tr ng l 3*10 + 1*4 + 1*2 = 36 t ng giá tr 3*25+1*6+1*2 = 83 ng Chú ý có m t s bi n th c a tốn ba lơ nh sau: M i v t i ch có m t s l t s l ng v t si Giáo trình mơn Phân tích Gi i Thu t – I ng si V i toán l a ch n v t i ta không cl y C C N TH Trang 45 Collected by The_Wall (11/10/2005) n n m t tr ng thái ph n ánh có m t ng i th ng cu c ho c m t tr ng thái mà c hai u th không th phát tri n c n c i c a mình, ta g i tr ng thái hịa c Ta tìm cách phân tích xem t m t tr ng thái ó s d n n u th s th ng v i u ki n c hai u th u có trình nh M t trò ch i nh v y có th c bi u di n b i m t cây, g i trò ch i M i m t nút c a bi u di n cho m t tr ng thái Nút g c bi u di n cho tr ng thái b t u c a cu c ch i M i nút bi u di n cho m t tr ng thái k t thúc c a trò ch i (tr ng thái th ng thua ho c hòa) N u tr ng thái x c bi u di n b i nút n c a n bi u di n cho t t c tr ng thái k t qu c a n c i có th xu t phát t tr ng thái x Ví d 3-5: Xét trị ch i carơ có ô Hai ng i thay phiên i X ho c O Ng i i c ô th ng hàng (ngang, d c, xiên) th ng cu c N u ã h t ô i mà ch a phân th ng b i hai u th hòa M t ph n c a trò ch i c bi u di n b i sau: Trong trò ch i trên, nút c tô n n vi n khung ôi d phân bi t v i nút khác Ta có th gán cho m i nút m t giá tr ph n ánh tr ng thái th ng thua hay hòa c a u th Ch ng h n ta gán cho nút giá tr nh sau: · n u t i ó ng i i X ã th ng, · -1 n u t i ó ng Giáo trình mơn Phân tích Gi i Thu t – i i X ã thua I C C N TH Trang 48 Collected by The_Wall (11/10/2005) · n u hai u th ã hòa Nh v y t m t tr ng thái b t k , n l t mình, ng i i X s ch n cho m t n c i cho d n n tr ng thái có giá tr l n nh t (trong tr ng h p 1) Ta nói X ch n n c i MAX, nút mà t ó X ch n n c i c a c g i nút MAX Ng i i O n l t s ch n m t n c i cho d n n tr ng thái có giá tr nh nh t (trong tr ng h p -1, ó X s thua ó O s th ng) Ta nói O ch n n c i MIN, nút mà t ó O ch n n c i c a c g i nút MIN Do hai u th luân phiên i n c c a nên m c trị ch i c ng luân phiên MAX MIN Cây trị ch i th cịn có tên MIN-MAX Ta có th a m t quy t c nh tr cho nút ph n ánh tình tr ng th ng thua hay hòa kh n ng th ng cu c c a hai u th N u m t nút nút tr c a giá tr ã c gán cho nút ó Ng c l i, n u nút nút MAX tr c a b ng giá tr l n nh t c a t t c tr c a c a N u nút nút MIN tr a giá tr nh nh t c a t t c tr c a c a Quy t c nh tr c ng g n gi ng v i quy t c nh tr cho bi u th c s h c, m khác bi t ây toán t hàm l y max ho c m i nút có th có nhi u Do v y ta có th dùng k thu t quay lui nh tr cho nút c a trị ch i cài t ta có m t s gi thi t sau: · Ta có m t hàm Payoff nh n vào m t nút cho ta giá tr c a nút ó · Các h ng - t ng ng tr Payoff l n nh t nh nh t · Khai báo ki u ModeType = (MIN, MAX) xác nh · M t ki u NodeType c khai báo m t cách thích h p ph n ánh m t tr ng thái c a cu c ch i · Ta có m t hàm is_leaf · Hàm max t xác nh tr cho nút MIN hay MAX bi u di n cho m t nút nh xem m t nút có ph i nút hay không? ng ng l y giá tr l n nh t giá tr nh nh t c a hai giá tr Gi i thu t vét c n nh tr trò ch i Hàm Search nh n vào m t nút n ki u mode c a nút ó (MIN hay MAX) tr v giá tr c a nút N u nút n nút tr v giá tr ã c gán cho nút Ng c l i ta cho n m t giá tr t m value - ho c tùy thu c n nút MAX hay MIN xét c a n Sau m t c a n có giá tr V t l i value = max(value,V) n u n nút MAX value = min(value,V) n u n nút MIN Khi t c c a n ã c xét giá tr t m value c a n tr thành giá tr c a function Search(n : NodeType; mode: ModeType): real; var C : NodeType ; { C m t nút c a nút n} Value : real; {Lúc u ta cho value m t giá tr t m, sau ã xét h t t t c c a nút n value giá Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 49 Collected by The_Wall (11/10/2005) tr c a nút n } begin if is_leaf(n) then return ( Payoff(n) ) else begin {Kh i t o giá tr t m cho n } if mode = MAX then value := - else value := ; {Xét t t c c a n, m i l n xác nh c giá tr c a m t nút con, ta ph i m value Khi ã xét h t t t c value giá tr c a n} t l i giá tr for v i m i C c a n if mode = MAX then Value := max(Value, Search(C, MIN) ) else Value := min(Value, Search(C, MAX) ); return (value); end; end; thu t c t t a Alpha-Beta (Alpha-Beta Pruning) Trong gi i thu t vét c n trên, ta th y nh tr cho m t nút ó, ta ph i nh tr cho t t c nút cháu c a nó, mu n nh tr cho nút g c ta ph i nh tr cho t t c nút S ng nút trò ch i h u h n nh ng khơng ph i Ch ng h n trị ch i ca rơ nói trên, n u ta có bàn c bao g m n có th có t i n! nút (trong tr ng h p 9!) i v i lo i c khác nh c vua ch ng h n, s l ng nút l n h n nhi u Ta g i m t bùng n t h p nút Chúng ta c g ng tìm m t cách cho nh tr m t nút khơng nh t thi t ph i cho t t c nút cháu c a Tr c h t ta có nh n xét nh sau: nh tr N u P m t nút MAX ta ang xét m t nút Q c a (d nhiên Q nút MIN) Gi s Vp m t giá tr t m c a P, Vq m t giá tr t m c a Q n u ta có Vp Vq ta khơng c n xét ch a xét c a Q n a Vì n u có xét giá tr c a Q c ng s nh h n ho c b ng Vq ó khơng nh h ng n Vp T ng t n u P nút MIN (t t nhiên Q nút MAX) Vp Vq ta c ng khơng c n xét n ch a xét c a Q n a Vi c không xét ti p ch a c xét c a nút Q i vi c c t t a Alpha-Beta c a nút Q Trên c s nh n xét ó, ta nêu quy t c nh tr cho m t nút không ph i nút nh sau: Kh i u nút MAX có giá tr t m - nút MIN có giá tr t m N u t t c nút c a m t nút ã thành giá tr c a c xét ho c b c t t a giá tr t m c a nút ó tr N u m t nút MAX n có giá tr t m V1 m t nút c a có giá tr V2 t giá tr m m i c a n max (V1,V2) N u n nút MIN t giá tr t m m i c a n (V1,V2) V n d ng quy t c c t t a Alpha-Beta nói Giáo trình mơn Phân tích Gi i Thu t – I h n ch s l ng nút ph i xét C C N TH Trang 50 Collected by The_Wall (11/10/2005) function cat_tia(Q: NodeType; mode: ModeType; Vp: real): real; var C : NodeType ; { C m t nút c a nút Q} Vq : real; {Vq giá tr t m c a Q, sau t t c c a nút Q ã xét ho c b c t t a Vq giá tr a nút Q} begin if is_leaf(Q) then return ( Payoff(Q) ) else begin { Kh i t o giá tr t m cho Q } if mode = MAX then Vq := - else Vq := ; {Xét c a Q, m i l n xác nh c giá tr c a m t nút c a Q, ta ph i t l i giá tr m Vq so sánh v i Vp có th c t t a hay không} Xét C trái nh t c a Q; while C c a Q DO if mode = MAX then begin Vq:= max(Vq, Cat_tia(C, MIN, Vq)); if Vp Vq then return(Vq); end else begin Vq := min(Vq, Cat_tia(C, MAX, Vq)); if Vp Vq then return(Vq); end; return (Vq); end; end; Ví d 3-6: V n d ng quy t c nh tr cho nút A trò ch i ví d 3-5 A nút MAX, lúc u có giá tr t m - , xét B c a A, B nút nên giá tr c a giá tr ã c gán 1, giá tr t m c a A bây gi max (- ,1) = Xét C c a A, C nút MIN, giá tr t m lúc u c a C Xét E c a C, E nút MAX, giá tr t m c a E - Xét I c a E, I nút nên giá tr c a Quay lui l i E, giá tr t m c a E bây gi max (- ,0) = Vì E ch có t I ã xét nên giá tr t m tr thành giá tr c a E Quay lui l i C, giá tr t m m i c a C ,0) = A nút MAX có giá tr t m 1, C c a A, có giá tr t m 0, 1>0 nên ta không c n xét F c a C n a Nút C có hai E F, ó E ã c xét, F ã b c t, v y giá tr t m a C tr thành giá tr c a Sau có giá tr c a C, ta ph i t l i giá tr t m c a A, nh ng giá tr m khơng thay i max (1,0) = Ti p t c xét nút D, D nút MIN nên giá tr t m , xét nút G c a D, G nút MAX nên giá tr t m c a - , xét nút J c a G Vì J nút nên có giá tr Quay lui l i G, giá tr t m c a G bây gi max (- ,0) = giá tr t m tr thành giá tr c a G G ch có m t J ã xét Quay lui v D, giá tr t m c a D bây gi ( ,0) = Giá tr t m c a D nh h n giá tr t m c a nút A MAX cha c a nên ta c t t a H ch a c xét c a D lúc D có giá tr Quay lui v A, giá tr t m c a v n không thay i, nh ng lúc c c a A u ã c xét nên giá tr t m tr thành giá tr c a A K t qu c minh h a hình sau: Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 51 Collected by The_Wall (11/10/2005) III.4.3-K thu t nhánh c n V i tốn tìm ph ng án t i u, n u xét h t t t c ph ng án m t r t nhi u th i gian, nh ng n u s d ng ph ng pháp tham n ph ng án tìm c ch a h n ã ph ng án t i u Nhánh c n k thu t xây d ng tìm ki m ph ng án t i u, nh ng khơng xây ng tồn b mà s d ng giá tr c n h n ch b t nhánh Cây tìm ki m ph ng án có nút g c bi u di n cho t p t t c ph ng án có th có, m i nút bi u di n cho m t ph ng án ó Nút n có nút t ng ng v i kh n ng có th l a ch n t p ph ng án xu t phát t n K thu t g i phân nhánh V i m i nút ta s xác nh m t giá tr c n Giá tr c n m t giá tr g n v i giá c a ph ng án V i toán tìm ta s xác nh n d i cịn v i tốn tìm max ta s xác nh n C n d i giá tr nh h n ho c b ng giá c a ph ng án, ng c l i c n giá tr l n h n ho c b ng giá c a ph ng án d hình dung ta s xét hai toán quen thu c tốn TSP tốn ba lơ Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 52 Collected by The_Wall (11/10/2005) Bài toán ng i c a ng i giao hàng Phân nhánh Cây tìm ki m ph ng án nh phân ó: · Nút g c nút bi u di n cho c u hình bao g m t t c ph ng án · M i nút s có hai con, trái bi u di n cho c u hình bao g m t t c ph ng án ch a t c nh ó, ph i bi u di n cho c u hình bao g m t t c ph ng án khơng ch a c nh ó (các c nh xét phân nhánh c thành l p tuân theo m t th t ó, ch ng h n th t t n) · M i nút s k th a thu c tính c a t tiên c a có thêm m t thu c tính m i (ch a hay khơng ch a m t c nh ó) · Nút bi u di n cho m t c u hình ch bao g m m t ph ng án · trình phân nhánh mau chóng t i nút lá, t i m i nút ta c n có m t quy t nh b sung d a nguyên t c m i nh chu trình u có c p không t o m t chu trình thi u Ví d 3-7: Xét tốn TSP có Các c nh theo th t t n nh v i dài c nh c cho hình 3-12 xét là: ab, ac, ad, ae, bc, bd, be, cd, ce de Nút g c A c a bao g m t t c ph ng án Hai c a A B C, ó B bao g m t tc ph ph ng án không ch a ab ng án ch a c nh ab, C bao g m t t Hai c a B D E Nút D bao g m t t c ph ng án ch a ac Vì ph ng án a ch a ab (k th a c a B) v a ch a ac nên nh a ã c p hai nên D không th ch a ad ae Nút E bao g m t t c ph ng án không ch a ac Ta c (ch a y Giáo trình mơn Phân tích Gi i Thu t – ) hình 3-13 I C C N TH Trang 53 Collected by The_Wall (11/10/2005) Trong ó ký hi u có ngh a khơng ch a c nh ab Tính c n d i ây tốn tìm nên ta s d ng n d i C n d i t i m i nút m t s nh h n ho c ng giá c a t t c ph ng án c bi u di n b i nút ó Giá c a m t ph ng án ây t ng dài c a m t chu trình tính c n d i c a nút g c, m i nh ta ch n hai c nh có c b ng t ng dài t t c c nh c ch n chia cho dài nh nh t C n d Ví d 3-8: V i s li u cho ví d 3-7 nói trên, ta tính c n d nh sau: · nh b ch n ba = 3, be = · nh c ch n ca = 4, cb = · nh d ch n da = 2, dc = · i c a nút g c A (hình 3-13) nh a ch n ad = 2, ab = · i c a nút nh e ch n eb = 3, ed = T ng dài c nh c ch n là= 35, c n d i c a nút g c A 35/2 = 17.5 i v i nút khác, ph i l a ch n hai c nh có bu c (ph i ch a c nh này, không ch a c nh kia) Ví d 3-9: Tính c n d không ch a ad,ae i cho nút D hình 3-13 dài nh nh t th a u ki n ràng u ki n ràng bu c ph i ch a ab, ac · nh a ch n ab = 3, ac = 4, hai c nh bu c ph i ch n · nh b ch n ba = 3, be = Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 54 Collected by The_Wall (11/10/2005) · nh c ch n ca = 4, cb = · nh d ch n de = 6, dc = 5, không · nh e ch n eb = 3, ed = T ng dài c nh c ch n 41, c n d thu t nhánh c n Bây gi ta s k t h p hai k thu t c ch n da nên ta ph i ch n de i c a nút D 41/2 = 20.5 xây d ng tìm ki m ph · Xây d ng nút g c, bao g m t t c ph ng án, tính c n d · Sau phân nhánh cho m i nút, ta tính c n d ng án Quy t c nh sau: i cho nút g c i cho c hai · N u c n d i c a m t nút l n h n ho c b ng giá nh nh t t m th i c a m t ph ng án ã c tìm th y ta khơng c n xây d ng cho nút n a (Ta g i c t t a c a nút ó) · N u c hai u có c n d i nh h n giá nh nh t t m th i c a m t ph c tìm th y nút có c n d i nh h n s c u tiên phân nhánh tr c ng án ã · M i l n quay lui xét nút ch a c xét c a m t nút ta ph i xem xét l i nút ó có th c t t a c a hay khơng có th m t ph ng án có giá nh nh t t m th i v a c tìm th y · Sau t t c ã c phân nhánh ho c b c t t a ph ph ng án tìm c ph ng án c n tìm ng án có giá nh nh t Trong q trình xây d ng có th ta ã xây d ng c m t s nút lá, nh ta bi t m i nút bi u di n cho m t ph ng án Giá nh nh t s giá c a ph ng án c g i giá nh nh t t m th i Ví d 3-10: Xét tốn TSP ví d 3-7 nói sung T p h p c nh xét phân nhánh ab, ac, ad, ae, bc, bd, be, cd, ce de u ki n b ây m i nh ph i c ch n hai c nh, b lo i hai c nh không c t o chu trình thi u Nút g c A bao g m t t c ph ng án, có c n d i 17.5 Phân nhánh cho A, xây d ng hai B C Tính c n d i cho hai nút c c n d i c a B 17.5 C 18.5 Nút B có c n i nh h n nên c phân nhánh tr c Hai c a B D E Các ràng bu c c a D E gi ng nh ta ã nói ví d c a ph n phân nhánh Tính c n cho D E, c c n d i c a D 20.5 a E 18 Nút E c xét tr c Phân nhánh cho nút E theo c nh ad, hai c a E F G F ch a ad G không ch a ad Do F k th a thu c tính c a E B, nên F t p h p ph ng án ch a ab, ad không ch a ac, nh a ã c p v y F không ch a ae T ng t G ch a ab, không ch a ac, không ch a ad nên ph i ch a ae Tính c n d i cho F G c c n d i c a F 18 c a G 23 Ti p t c xây d ng hai cho F theo c nh bc H I H ch a bc I không ch a bc Do H k th a thu c tính c a B, E F nên H ph ng án ch a ab, ad, không ch a ac ch a bc Nh v y Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 55 Collected by The_Wall (11/10/2005) nh a ã th a u ki n c ch n hai c nh (ab ad) b lo i hai c nh (ac ae), nh b ã c ch n c nh (ba bc) nên bd be b lo i nh c ã c ch n cb, b lo i ca, ta có th ch n cd ho c ce N u ch n cd s có m t chu trinh thi u a b c d a, nh v y cd b lo i nên ph i ch n ce nh d có db dc ã b lo i, da ã c ch n nên ph i ch n thêm de Lúc ó nh e c ng ã có hai c nh c ch n ec ed, hai c nh b lo i eb ea Tóm l i H t p ch bao g m m t ph ng án a b c e d a có giá 23 i v i I ta ã có I ch a ab, không ch a ac, ch a ad, không ch a ae không ch a bc ng lý lu n t ng t ta có I khơng ch a bd, ch a be, cd, ce không ch a de M t ph ng án m i a b e c d a v i giá 21 ây giá nh nh t t m th i m i c tìm th y Bây gi ta quay lui v E xét nút c a G Vì G có c n d nh t t m th i 21 nên c t t a c a G i 23 l n h n giá th p Quay lui v B xét nút D c a C n d i c a D 20.5 không l n h n 21 Nh ng dài c nh tốn ã cho s nguyên nên n u ta tri n khai c a D t i nút g m m t ph ng án Giá c a ph ng án ph i m t s nguyên l n h n 20.5 hay l n h n ho c b ng 21 V y ta c ng không c n xây d ng c a D n a Ti p t c quay lui n A xét C c a Phân nhánh C theo c nh ac thành hai J K Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 56 Collected by The_Wall (11/10/2005) J ch a ac có c n d i 18.5 K không ch a ac nên ph i ch a ad ae, c n d nh nh t t m th i nên c t t a c a K i c a K 21 b ng giá Hai c a J L M M không ch a ad, ab, ch a ac ae có c n d con.Hai c a L N O, N ch a bc O không ch a bc i 23.5 nên b c t t a Xét nút N ta có: nh a c ch n hai c nh ac ad, b lo i hai c nh ab ae nh b ã c ch n bc, b lo i ba, ta có th ch n bd ho c be N u ch n bd s có m t chu trình thi u a c b d a, y ph i lo i bd ch n be nh c ã c ch n ca, cb nên ph i lo i cd ce nh d ã c ch n da, b lo i db dc nên ph i ch n de Khi ó nh e có hai c nh c ch n eb, ed hai c nh b lo i ea ec V y N bao g m ch m t ph ng án a c b e d a v i giá 19 T ng t nút O bao g m ch m t ph T t c nút c a ã ng án a c e b d a có giá 23 c xét ho c b c t t a nên ph ng án c n tìm a c b e d a v i giá 19 Hình 3-14 minh h a cho nh ng u ta v a nói Bài tốn ba lơ Ta th y ây m t tốn tìm max Danh sách n giá xét phân nhánh v t c s p x p theo th t gi m c a Nút g c bi u di n cho tr ng thái ban u c a ba lơ, ó ta ch a ch n m t v t T ng giá c ch n TGT=0 C n c a nút g c CT = W * n giá l n nh t tr Nút g c s có nút t i nút ta tính l i thông s : · TGT = TGT (c ) + s · W = W (c ) - s ng ng v i kh n ng ch n v t v t · CT = TGT + W (m i) * v t có n giá l n nh t V i c ch n * giá tr m i v t c ch n * tr ng l ng m i v t n giá c a v t s xét k ti p Trong nút con, ta s u tiên phân nhánh cho nút có c n l n h n tr c Các c a nút t ng ng v i kh n ng ch n v t có n giá l n ti p theo V i m i nút ta i ph i xác nh l i thông s TGT, W, CT theo công th c ã nói b c L p l i b c v i ý: i v i nh ng nút có n nh h n ho c b ng giá l n nh t m th i c a m t ph ng án ã c tìm th y ta khơng c n phân nhánh cho nút ó n a ph N u t t c nút ng án c n tìm u ã c phân nhánh ho c b c t b ph ng án có giá l n nh t Ví d 3-11: V i tốn ba lơ ã cho ví d 3-2 , sau tính s p x p v t theo th t gi m d n c a n giá ta c b ng sau Giáo trình mơn Phân tích Gi i Thu t – I n giá cho v t C C N TH Trang 57 Collected by The_Wall (11/10/2005) G i x1, x2, x3, x4 s l ng c n ch n t ng ng c a v t b, a, d, c Nút g c A bi u di n cho tr ng thái ta ch a ch n b t c m t v t Khi ó t ng giá tr TGT =0, tr ng l ng c a ba lô W=37 (theo ra) c n CT = 37*2.5 = 92.5, ó 37 W, 2.5 n giá c a v t b V i v t b, ta có kh n ng: ch n v t b (X1=3), ch n v t b (X1=2), ch n v t b (X1=1) không ch n v t b (X1=0) ng v i kh n ng này, ta phân nhánh cho nút g c A thành B, C, D E V i nút B, ta có TGT = 0+ 3*25 = 75, ó s v t b c ch n, 25 giá tr c a i v t b W = 37- 3*10 = 7, ó 37 tr nh l ng ban u c a ba lô, s v t b c, 10 tr ng l ng mõi v t b CT = 75 + 7*2 = 89, ó 75 TGT, tr ng l ng cịn l i c a ba lơ n giá c a v t a T ng t ta tính c thơng s cho nút C, D E, ó c n t ng ng 84, 79 74 Trong nút B, C, D E nút B có c n l n nh t nên ta s phân nhánh cho nút B tr c i hy v ng s có c ph ng án t t t h ng T nút B ta ch có m t nút F nh t ng v i X2=0 (do tr ng l ng l i c a ba lô 7, tr ng l ng c a m i v t a 15) Sau xác nh thơng s cho nút F ta có c n c a F 85.5 Ta ti p t c phân nhánh cho nút F Nút F có G H t ng ng v i X3=1 X3=0 Sau xác nh thông s cho hai nút ta th y c n c a G 84 c a H 82 nên ta ti p t c phân nhánh cho nút G Nút G có hai I J t ng ng v i X4=1 X4=0 ây hai nút (bi u di n cho ph ng án) v i m i nút s v t ã c ch n xong Trong ó nút I bi u di n cho ph ng án ch n X1=3, X2=0, X3=1 X4=1 v i giá 83, nút J bi u di n cho ph ng án ch n X1=3, X2=0, X3=1 X4=01 v i giá 81 Nh v y giá l n nh t t m th i ây 83 Quay lui lên nút H, ta th y c n c a H 8283 nên ti p t c phân nhánh cho nút C Nút C có hai K L ng v i X2=1 X2=0 Sau tính thơng s cho K L ta th y n c a K 83 c a L 75.25 C hai giá tr u không l n h n 83 nên c hai nút u b c t t a Cu i nút D E c ng b c t t a Nh v y t t c nút u ã c phân nhánh ho c b t t a nên ph ng án t t nh t t m th i ph ng án c n tìm Theo ó ta c n ch n v t lo i b, t lo i d m t v t lo i c v i t ng giá tr 83, t ng tr ng l ng 36 Xem hình 3-16 Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 58 Collected by The_Wall (11/10/2005) III.5- K THU T TÌM KI M A PH NG III.5.1- N i dung k thu t III.5.2- Bài toán ph t i thi u III.5.3- Bài toán ng i c a ng i bán hàng III.5.1- N i dung k thu t K thu t tìm ki m a ph ng (local search) th gi i t i u Ph ng pháp nh sau: · Xu t phát t m t ph ph i lên ph · L p l i vi c áp d ng phép bi n c ph ng án n a Thơng th ng m t phép bi n Giáo trình mơn Phân tích Gi i Thu t – c áp d ng gi i tốn tìm l i ng án ó · Áp d ng m t phép bi n ng án ã có i thi n ng I ng án hi n hành i lên ph i ch thay c m t ph ng án hi n hành cho ng án m i t t h n n khơng cịn có th i m t b ph n ó c a ph ng án hi n hành C C N TH Trang 59 Collected by The_Wall (11/10/2005) c m t ph ng án m i nên phép bi n i c g i phép bi n i a ph ng ó ta có tên k thu t tìm ki m a ph ng Sau ây ta s trình bày m t s ví d áp d ng k thu t tìm ki m a ph ng III.5.2- Bài toán ph t i thi u Cho G = (V,E) m t th vơ h ng liên thơng, ó V t p nh E t p nh Các c nh c a th G u có tr ng s Cây T có t p h p nút V c g i ph (spaning tree) c a th G Cây ph t i thi u m t ph c a G mà t ng dài (tr ng s ) c nh nh nh t Bài toán ph t i thi u th ng c áp d ng vi c thi t k m t m ng l gi a thành ph hay thi t k m t m ng máy tính K thu t tìm ki m · Ph a ph ng án ban ng áp d ng vào toán nh sau: u m t ph ó · Thành l p t p t t c c nh theo th t ng d n c a có n i giao thơng dài (có nh iv i th nh) · Phép bi n i a ph ng ây là: Ch n m t c nh có dài nh nh t t p c nh ch a s d ng thêm vào Trong s có m t chu trình, lo i kh i chu trình c nh có dài l n nh t chu trình ó Ta c m t ph m i L p l i b c cho n khơng cịn c i thi n c ph ng án n a Ví d 3-12: Cho th G bao g m nh a, b, c, d,e dài c nh c cho hình 3- 17 T p h p c nh de, ae ce xét c thành l p theo th t t nh n l n ad, ab, be, bc, ac, cd, bd, Cây xu t phát v i giá 20 (Hình 3-18a) Thêm c nh ad = 2, b c nh cd = ta giá 17 (Hình 3-18b) Giáo trình mơn Phân tích Gi i Thu t – I c m i có C C N TH Trang 60 Collected by The_Wall (11/10/2005) L i thêm c nh ab = 3, b c nh bc = ta Thêm c nh be = 3, b c nh ae = ta Vi c áp d ng phép bi n c ph ng án i c có giá là16 (Hình 3-18c) c có giá 12 (Hình 3-18d) n ây d ng l i nêuú ti p t c n a c ng khơng c i thi n V y ph t i thi u c n tìm hình 3-18d ng III.5.3- Bài tốn ng i c a ng i bán hàng Ta có th v n d ng k thu t tìm ki m a ph ng i bán hàng (TSP) gi i tốn tìm ng i ng n nh t c a · Xu t phát t m t chu trình ó · B i hai c nh có o m t chu trình dài l n nh t không k nhau, n i · Ti p t c q trình bi n Ví d 3-13: Bài tốn TSP có Giáo trình mơn Phân tích Gi i Thu t – I i cho nh l i v i cho v n n khơng cịn c i thi n nh c nh có dài c ph ng án n a c cho hình 3-19 C C N TH Trang 61 Collected by The_Wall (11/10/2005) Ph ng án ban u chu trình (a b c d e a) có giá (t ng dài ) 25 (Hình 3-20a) B hai c nh có dài l n nh t khơng k ae cd, n i a v i d e v i c ta trình m i ( a b c e d a) v i giá = 23 (Hình 3-20b) c chu B hai c nh có dài l n nh t, khơng k ce ab, ta c chu trình m i (a c b e d a) có giá = 19 (Hình 3-20c) Quá trình k t thúc n u ti p t c giá s t ng lên Giáo trình mơn Phân tích Gi i Thu t – I C C N TH Trang 62

Ngày đăng: 29/09/2013, 11:20

Hình ảnh liên quan

tính Comb(4,2) ta phi tính Comb(2,1) ha il n. Hình 3-2 sau minh ho rõ u ó. - Kỹ thuật thiết kế giải thuật

t.

ính Comb(4,2) ta phi tính Comb(2,1) ha il n. Hình 3-2 sau minh ho rõ u ó Xem tại trang 5 của tài liệu.
Ví d 3-3: Bi u th c 5+ 2* 3-4 sc bi u d in bi cây trong hình 3-8: - Kỹ thuật thiết kế giải thuật

d.

3-3: Bi u th c 5+ 2* 3-4 sc bi u d in bi cây trong hình 3-8: Xem tại trang 11 của tài liệu.
th c. Trong hình 3-9, mi tên nét t minh ha quá trìn hi tìm nút lá và mi - Kỹ thuật thiết kế giải thuật

th.

c. Trong hình 3-9, mi tên nét t minh ha quá trìn hi tìm nút lá và mi Xem tại trang 12 của tài liệu.
d hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô. - Kỹ thuật thiết kế giải thuật

d.

hình dung t as xét hai bài toán quen th uc là bài toán TSP và bài toán cái ba lô Xem tại trang 17 của tài liệu.
· Nút gc là nút bi u d in cho cu hình bao mt tc các ph ng án. - Kỹ thuật thiết kế giải thuật

t.

gc là nút bi u d in cho cu hình bao mt tc các ph ng án Xem tại trang 18 của tài liệu.
Ví d 3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh  sau: - Kỹ thuật thiết kế giải thuật

d.

3-8: V is li u cho trong ví d 3-7 nói trên, ta tính cn di ca nút g cA (hình 3-13) nh sau: Xem tại trang 19 của tài liệu.
t lo id và vt lo ic vi t ng giá tr là 83, t ng tr ng l ng là 36. Xem hình 3-16. - Kỹ thuật thiết kế giải thuật

t.

lo id và vt lo ic vi t ng giá tr là 83, t ng tr ng l ng là 36. Xem hình 3-16 Xem tại trang 23 của tài liệu.
Ví d 3-12: Cho th G bao m5 nh a, b, c, d,e và dài các c nh c cho trong hình 3- - Kỹ thuật thiết kế giải thuật

d.

3-12: Cho th G bao m5 nh a, b, c, d,e và dài các c nh c cho trong hình 3- Xem tại trang 25 của tài liệu.
Li thêm c nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c).             Thêm c nh be = 3, b  c nh ae = 7 ta c cây có giá là 12 - Kỹ thuật thiết kế giải thuật

i.

thêm c nh ab =3, bc nh bc =4 t ac cây có giá là16 (Hình 3-18c). Thêm c nh be = 3, b c nh ae = 7 ta c cây có giá là 12 Xem tại trang 26 của tài liệu.
Ph ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a). - Kỹ thuật thiết kế giải thuật

h.

ng án ban u là chu trình (ab c de a) có giá (t ng dà i) là 25. (Hình 3-20a) Xem tại trang 27 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan