BÀI GIẢNG LÝ THUYẾT ĐỒ THỊ. TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

69 17 0
BÀI GIẢNG LÝ THUYẾT ĐỒ THỊ. TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN

Đ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

B GIAO THÔNG V N T I TR NG I H C HÀNG H I B MÔN: KHOA H C MÁY TÍNH KHOA: CƠNG NGH THƠNG TIN BÀI GI NG LÝ THUY T TH TÊN H C PH N : LÝ THUY T TH MÃ H C PH N : 17205 TRÌNH ÀO T O : I H C CHÍNH QUY DÙNG CHO SV NGÀNH : CÔNG NGH THÔNG TIN H I PHÒNG - 2014 c ng h c ph n Tên h c ph n: Lý thuy t đ th Mã HP: 17205 a S tín ch : 03 TC BTL AMH b n v gi ng d y: B mơn Khoa h c máy tính c Phân b th i gian: - T ng s (TS): 45 ti t - Lý thuy t (LT): 36 ti t - Th c hành (TH): ti t - Bài t p (BT): ti t - H ng d n BTL/ AMH (HD): ti t - Ki m tra (KT): ti t d i u ki n đ ng ký h c ph n: H c ph n đ c b trí sau h c ph n: Toán r i r c, K thu t l p trình e M c đích c a h c ph n: Ki n th c: - Các khái ni m đ nh ngh a c a đ th - Các toán gi i thu t đ K n ng: - N mđ - ph n c mô hình đ th c ki n th c c b n c a đ th ng d ng tin h c c a h c ph n Có kh n ng áp d ng lý thuy t đ cài đ t ch Thái đ ngh nghi p: - Hình thành nh n th c v ki n th c c b n c a đ ng trình th ng d ng ng d ng tin h c c a h c f Tóm t t n i dung h c ph n: Trình bày nh ng ki n th c c s c a đ th nh đ ng đi, chu trình, s liên thông c a đ th , ng d ng toán tin h c đ th bao g m ph ng pháp bi u di n đ th , thu t tốn tìm ki m c b n đ th , đ th Euler đ th Haminton, chu trình thu t tốn tìm khung nh nh t, thu t tốn tìm đ ng ng n nh t d ng đ th khác nhau, toán lu ng c c đ i m ng g Ng i biên so n: Ph m Tu n h N i dung chi ti t h c ph n: TÊN CH t – BM Khoa h c máy tính, Khoa CNTT NG M C Ch ng Các khái ni m c b n c a lý thuy t đ th 1.1 nh ngh a đ th 1.1.1 n đ th 1.1.2 Gi đ th 1.1.3 a đ th 1.2 Các thu t ng c n b n 1.3 ng đi, chu trình, đ th liên thơng 1.3.1 nh ngh a đ ng đi, chu trình 1.3.2 th liên thơng 1.4 M t s d ng đ th đ c bi t T h c: Tìm hi u tốn đ c mơ hình đ th Ch ng Bi u di n đ th máy vi tính 2.1 Ma tr n k , ma tr n tr ng s TS PHÂN LT 0,5 0,25 0,25 1 PH I S TI T BT TH HD 0 1 KT 2.2 Danh sách c nh (cung) 2.3 Danh sách k T h c: Cài đ t th t c xác đ nh ma tr n k /tr ng s cho đ th Ch ng Các thu t tốn tìm ki m đ th 3.1 Tìm ki m theo chi u sâu đ th 3.2 Tìm ki m theo chi u r ng đ th 3.3 Tìm đ ng ki m tra tính liên thơng T h c: Cài đ t th t c tìm ki m, đ ng ma tr n k c a đ th Ch ng th Euler đ th Hamilton 4.1 th Euler 4.1.1 nh ngh a đ th Euler 4.1.2 Các đ nh lý 4.2 th Hamilton 4.2.1 nh ngh a đ th Hamilton 4.2.2 Các đ nh lý T h c: Cài đ t th t c xác đ nh đ th Euler ho c Hamilton Ch ng Cây khung c a th 5.1 Cây tính ch t c b n c a 5.1.1 nh ngh a r ng, 5.1.2 Các tính ch t 5.2 Cây khung c a đ th 5.3 Xây d ng t p chu trình c b n c a đ th 5.4 Cây khung nh nh t c a đ th 5.4.1 Thu t toán Prim 5.4.2 Thu t toán Kruskal T h c: Cài đ t th t c tìm khung nh nh t Kruskal/ Prim Ch ng Bài toán đ ng ng n nh t 6.1 Các khái ni m m đ u 6.2 ng ng n nh t xu t phát t m t đ nh 6.2.1 ng ng n nh t xu t phát t m t đ nh 6.2.2 ng ng n nh t xu t phát t m t đ nh t i đ nh 6.3 ng ng n nh t đ th tr ng s không âm 6.4 ng đ th khơng có chu trình T h c: Cài đ t th t c tìm đ ng ng n nh t đ th có tr ng s khơng âm Ch ng Bài tốn lu ng c c đ i m ng 7.1 M ng Lu ng m ng Bài toán lu ng c c đ i 7.1.1 nh ngh a m ng, lu ng đ th 1 1 0 2,5 0,5 2,5 0,5 0,5 0 0,5 0.5 1 1,5 1,5 0 0,5 2,5 0,5 0 0 8 0,5 1 1,5 1,5 0,5 7.1.2 Bài toán lu ng c c đ i 0,5 7.2 Lát c t ng t ng lu ng nh lý Ford Fulkerson 7.2.1.Lát c t 0,5 7.2.2 nh lý 0,5 7.3 Gi i thu t lu ng c c đ i 2,5 7.4 M t s toán lu ng t ng quát 1,5 T h c: Cài đ t th t c tìm lu ng c c đ i đ th tr ng s không âm T ng s ti t: 45 36 0 i Mô t cách đánh giá h c ph n: Sinh viên ph i tham d t i thi u 75% s gi lên l p ph i đ t m thành ph n X1 , X2 t 4,0 tr lên (X1 m chuyên c n, X2 m trung bình ki m tra) i m h c ph n (Z) đ c tính theo cơng th c: Z = 0.3X + 0.7Y Trong đó: • X: m trình, b ng trung bình c ng c a X1 , X2 • Y: m ki m tra k t thúc h c ph n • Hình th c thi: tr c nghi m máy tính; th i gian: 60 phút Thang m đánh giá: A+, A, B+, B, C+, C, D+, D F k Giáo trình: Nguy n Thanh Hùng Nguy n c Ngh a, Giáo Trình Lý Thuy t Qu c Gia TPHCM, 2007 Th , NXB ih c l Tài li u tham kh o: Doãn Châu Long Lý thuy t quy ho ch n tính lý thuy t đ th NXB Giáo d c 1982 Kenneth Rosen Toán h c r i r c ng d ng tin h c NXB KHKT Hà n i 1998 m Ngày phê t: 30/06/2014 n C p phê t: Khoa CNTT P Tr Tr ng Khoa ng B môn Ng i biên so n TS Lê Qu c nh ThS Nguy n V n Th y ThS Ph m Tu n t o Ti n trình c p nh t c ng: C p nh t l n 1: ngày 18/06/2014 Ng i c p nh t N i dung: Rà soát theo k ho ch Nhà tr ng g m: - Ch nh s a, làm rõ M c c, e, i theo m c tiêu đ i m i c n Ph m Tu n t, Nguy n V n Th y b n P Tr ng B môn - M c h: b sung n i dung t h c cu i m i ch ng m c, chuy n m t s n i dung gi ng d y sang ph n t h c - B sung m c m, n, o Nguy n V n Th y M CL C CH NG CÁC KHÁI NI M C B N C A LÝ THUY T TH ……………….1 nh ngh a th ……………………………………………………………………1 1.1.1 n đ th ………………………………………………………………… 1.1.2 Gi đ th ……………………………………………………………………2 1.1.3 a đ th ………………………………………………………………… Các thu t ng c b n……………………………………………………………… Đ ng Chu trình Đ th liên thơng………………………………………………5 1.3.1 nh ngh a đ ng đi, chu trình…………………………………………… 1.3.2 th liên thông………………………………………………………… M t s d ng Đ th đ c bi t………………………………………………………….8 TH TRÊN MÁY VI TÍNH………………………… … 13 CH NG BI U DI N Ma tr n k Ma tr n tr ng s …………………………………………………… 13 2.2 Danh sách c nh cung……………………………………………………………….14 Danh sách k ……………………………………………………………………… 15 TH VÀ NG D NG… 18 CH NG CÁC THU T TỐN TÌM KI M TRÊN Tìm ki m theo chi u sâu Đ th ……………………………………………… 18 Tìm ki m theo chi u r ng Đ th ………………………………………………20 Tìm Đ ng ki m tra Tính liên thơng……………………………………… 22 TH EULER VÀ TH HAMILTON……………………………….24 CH NG 4 Đ th Euler…………………………………………………………………………24 4.1.1 nh ngh a đ th Euler………………………………………………… 24 4.1.2 Các đ nh lý…………………………………………………………………25 Đ th Hamilton 27 4.2.1 nh ngh a đ th Hamilton……………………………………………… 27 4.2.2 Các đ nh lý…………………………………………………………………28 TH 31 CH NG CÂY VÀ CÂY KHUNG C A Cây tính ch t c b n c a cây……………………………………………… 31 Cây khung c a Đ th ………………………………………………………………32 Xây d ng t p chu trình c b n c a cây…………………………………………….34 5.4 Cây khung nh nh t……………………………………………………………… 35 5.4 Thu t toán Kruskal………………………………………………………… 35 Thu t toán Prim………………………………………………………………37 NG I NG N NH T………………………………… 41 CH NG BÀI TOÁN Các khái ni m m đ u…………………………………………………………… 41 ng ng n nh t xu t phát t m t đ nh, t c p đ nh……………………….42 6.2.1 ng ng n nh t xu t phát t m t đ nh………………………………… 42 6.2.2 ng ng n nh t xu t phát t m t đ nh t i đ nh…………………… 43 ng ng n nh t đ th tr ng s không âm………………………………44 ng đ th khơng có chu trình………………………………………….47 CH NG BÀI TOÁN LU NG C C I……………………………………………….53 M ng Lu ng m ng Bài toán lu ng c c đ i……………………………… 53 7.1.1 nh ngh a m ng, lu ng đ th …………………………………………53 7.1.2 Bài toán lu ng c c đ i………………………………………………………53 Lát c t ng t ng lu ng nh lý Ford Fulkerson………………………………54 7.2.1 Lát c t……………………………………………………………………….54 7.2.2 nh lý………………………………………………………………………55 Gi i thu t lu ng c c đ i………………………………………………………… 57 M t s toán lu ng t ng quát…………………………………………………… CH NG I CÁC KHÁI NI M C B N C A LÝ THUY T TH Lý thuy t đ th m t lnh v c có t lâu có nhi u ng d ng hi n đ i Nh ng t t ng c b n c a lý thuy t đ th đ c đ xu t vào nh ng n m đ u c a th k 18 b i nhà toán h c l i l c ng i Th y S Lenhard Eurler Chính ơng ng i s d ng đ th đ gi i toán n i ti ng v c u thành ph Konigsberg th đ c s d ng đ gi i toán nhi u lnh v c khác Ch ng h n, đ th có th s d ng đ xác đ nh m ch vịng v n đ gi i tích m ch n Chúng ta có th phân bi t h p ch t hóa h c h u c khác v i công th c phân t nh ng khác v c u trúc phân t nh đ th Chúng ta có th xác đ nh hai máy tính m ng có th trao đ i thông tin đ c v i hay khơng nh mơ hình đ th c a m ng máy tính th có tr ng s c nh có th s d ng đ gi i tốn nh : Tìm đ ng ng n nh t gi a hai thành ph m ng giao thơng Chúng ta c ng cịn s d ng đ th đ gi i toán v l p lch, th i khóa bi u, phân b t n s cho tr m phát truy n hình… 1.1 NH NGH A TH th m t c u trúc r i r c bao g m đ nh c nh n i đ nh Chúng ta phân bi t lo i đ th khác b i ki u s l ng c nh n i hai đ nh c a đ th có th hình dung đ c t i l i c n đ n lo i đ th khác nhau, s nêu ví d s d ng chúng đ mô t m t m ng máy tính Gi s ta có m t m ng g m máy tính kênh n tho i (g i t t kênh tho i) n i máy tính Chúng ta có th bi u di n v trí đ t náy tính b i m kênh tho i n i chúng b i đo n n i, xem hình Hình S đ m ng máy tính Nh n th y r ng m ng hình 1, gi a hai máy b t k ch có nhi u nh t m t kênh tho i n i chúng, kênh tho i cho phép liên l c c hai chi u khơng có máy tính l i đ c n i v i S đ m ng máy cho hình đ c g i đ n đ th vô h ng Ta đ n đ nh ngh a sau 1.1.1 n đ th nh ngh a 1: n đ th vô h ng G = (V,E) bao g m V t p đ nh, E t p c p khơng có th t g m hai ph n t khác c a V g i c nh Trong tr ng h p gi a hai máy tính th ng xuyên ph i truy n t i nhi u thông tin ng i ta ph i n i hai máy nàu b i nhi u kênh tho i M ng v i đa kênh tho i gi a máy đ c cho hình Hình S đ m ng máy tính v i đa kênh tho i 1.1.2 Gi đ th nh ngh a 2: a đ th vô h ng G= (V, E) bao g m V t p đ nh, E t p c p th t g m hai ph n t khác c a V g i c nh Hai c nh e1 e2 đ c g i c nh l p n u chúng t ng ng v i m t c p đ nh Hình S đ m ng máy tính v i kênh tho i thông báo Rõ ràng m i đ n đ th đ u đa đ th , nh ng không ph i đa đ th c ng đ n đ th , đa đ th có th có hai (ho c nhi u h n) c nh n i m t c p đ nh Trong m ng máy tính có th có nh ng kênh tho i n i m t máy v i (ch ng h n v i m c đính thơng báo) M ng nh v y đ c cho hình Khi đa đ th khơng th mơ t đ c m ng nh v y, b i có nh ng khuyên (c nh n i m t đ nh v i nó) Trong tr ng h p nàychúng ta c n s d ng đ n khái ni m gi đ th vô h ng, đ c đ nh ngh a nh sau: nh ngh a 3: Gi đ th vô h ng G = (V, E) bao g m V t p đ nh E t p c p khơng có th t g m hai ph n t (không nh t thi t ph i khác nhau) c a V g i c nh C nh e đ c g i khuyên n u có d ng e = (u, u) Hình M ng máy tính v i kênh tho i m t chi u Các kênh tho i m ng máy tính có th ch cho phép truy n tin theo m t chi u Ch ng h n, hình máy ch Hà N i ch có th nh n tin t máy đ a ph ng, có m t s máy ch có th g i tin đi, cịn kênh tho i cho phép truy n tin theo c hai chi u đ c thay th b i hai c nh có h ng ng c chi u Ta đ n đ nh ngh a sau nh ngh a 4: n đ th có h ng G = (V, E) bao g m V t p đ nh E t p c p có th t g m hai ph n t khác c a V g i cung N u m ng có th có đa kênh tho i m t chi u, ta s ph i s d ng đ n khái ni m đa đ th có h ng: 1.1.3 a đ th nh ngh a 5: a đ th có h ng G = (V, E) bao g m V t p đ nh E t p c p có th t g m hai ph n t khác c a V g i cung Hai cung e1 , e2 t ng ng v i m t c p đ nh đ c g i cung l p Trong ph n ti p theo ch y u s làm vi c v i đ n đ th vô h ng đ n đ th có h ng Vì v y, đ cho ng n g n, ta s b qua tính t đ n nh c đ n chúng 1.2 CÁC THU T NG C B N Trong m c s trình bày m t s thu t ng c b n c a lý thuy t đ th Tr ta xét thu t ng mô t đ nh c nh c a đ th vô h ng c tiên, nh ngh a 1: Hai đ nh u v c a đ th vô h ng G đ c g i k n u (u,v) c nh c a đ th G N u e = (u, v) c nh c a đ th ta nói c nh liên thu c v i hai đ nh u v, ho c c ng nói n i đ nh u đ nh v, đ ng th i đ nh u v s đ c g i đ nh đ u c a c nh (u, v) có th bi t có c nh liên thu c v i m t đ nh, ta đ a vào đ nh ngh a sau: nh ngh a 2: Ta g i b c c a đ nh v đ th vơ h s ký hi u deg(v) th vơ h Hình ng s c nh liên thu c v i ng Thí d Xét đ th cho hình 1, ta có deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3, deg(d) = 1, deg(e) = 3, deg(g) = nh b c g i đ nh cô l p nh b c đ c g i đ nh treo Trong ví d đ nh g đ nh cô l p, a d đ nh treo B c c a đ nh có tính ch t sau: nh lý Gi s G = (V, E) đ th vô h đ nh b ng hai l n s c nh ng v i m c nh Khi t ng b c c a t t c Ch ng minh Rõ ràng m i c nh e = (u, v) đ c tính m t l n deg(u) m t l n deg(v) T suy t ng t t c b c c a đ nh b ng hai l n s c nh Thí d th v i n đ nh có b c có c nh? Gi i: Theo đ nh lý ta có 2m = 6n T suy t ng c nh c a đ th 3n H qu Trong đ th vô h ng, s đ nh b c l (ngh a có b c s l ) m t s ch n Ch ng minh Th c v y, g i O U t c a đ th Ta có 2m = deg( ) + ng ng t p đ nh b c l t p đ nh b c ch n deg( ) Do deg(v) ch n v i v đ nh U nên t ng th nh t s ch n T suy t ng th hai (chính t ng b c c a đ nh b c l ) c ng ph i s ch n, t t c s h ng c a s l , nên t ng ph i g m m t s ch n s h ng Vì v y, s đ nh b c l ph i s ch n Ta xét thu t ng t ng t cho đ th vô h ng nh ngh a 3: N u e = (u, v) cung c a đ th có h ng G ta nói hai đ nh u v k nhau, nói cung (u, v) n i đ nh u v i đ nh v ho c c ng nói cung kh i đ nh u vào đ nh v nh u(v) s đ c g i đ nh đ u (cu i) c a cung (u,v) T ng t nh khái ni m b c, đ i v i đ th có h vào c a m t đ nh ng ta có khái ni m bán b c bán b c nh ngh a 4: Ta g i bán b c (bán b c vào) c a đ nh v đ th có h s cung c a đ th kh i (đi vào nó) ký hi u deg+(v) (deg-(v)) Hình th có h ng ng Thí d Xét đ th cho hình Ta có deg-(a)=2, deg-(b)=2, deg-(c)=2, deg-(d)=2, deg-(e) = deg+(a)=3, deg+(b)=1, deg+(c)=1, deg+(d)=3, deg+(e)=2 Do m i cung (u, v) s đ c tính m t l n bán b c vào c a đ nh v m t l n bán b c c a đ nh u nên ta có: nh lý Gi s G = (V, E) đ th có h 2m = deg( ) + = ng Khi đó: deg( ) R t nhi u tính ch t c a đ th có h ng khơng ph thu c vào h ng cung c a Vì v y, nhi u tr ng h p s thu n ti n h n n u ta b qua h ng cung c a đ th th vô h ng thu đ c b ng cách b qua h ng cung đ c g i đ th vô h ng t ng ng v i đ th có h ng cho 1.3 1.3.1 NG I CHU TRÌNH TH LIÊN THƠNG nh ngh a đ ng đi, chu trình nh ngh a 1: ng đ dài n t đ nh u đ n đ nh v, n s nguyên d ng, đ th vô h ng G = (V, E) dãy x , x ,…, x n-1 , x n ; u = x , v = x n , (x i , x i+1 ) E, i = 0, 1, 2,…, n-1 ng nói cịn có th bi u di n d i d ng th minh ho PERT Hình Thêm vào đ th hai đ nh n+1 t ng ng v i hai s ki n đ c bi t: đ nh t ng ng v i công đo n l kh i cơng, ph i đ c th c hi n tr c t t c công đo n khác, đ nh n+1 t ng ng v i công đo n c t b ng khánh thành công trình, ph i đ c th c hi n sau công đo n, v i t[0]=t[n+1]=0 (trên th c t ch c n n i đ nh v i t t c đ nh có bán b c b ng n i t t c đ nh có bán b c b ng v i đ nh n+1) G i đ th thu đ c G Rõ ràng toán đ t d n v tốn tìm đ ng ng n nh t t đ nh đ n t t c đ nh l i đ th G Do đ th G rõ ràng khơng ch a chu trình, nên đ gi i tốn đ t có th áp d ng thu t tốn mơ t trên, ch c n đ i d u t t c tr ng s cung thành d u ng c l i, ho c đ n gi n h n ch c n đ i toán t Min thu t toán Critcal_Path thành toán t Max K t thúc thu t toán, thu đ c d[v] đ dài đ ng dài nh t t đ nh đ n đ nh v Khi d[v] cho ta th i m s m nh t có th b t đ u th c hi n cơng đo n v, nói riêng d[n+1] th i m s m nh t có th c t b ng khánh thành, t c th i m s m nh t có th hồn thành tồn b cơng trình Cây đ ng dài nh t c a tốn thí d tìm đ hình 6.5 c theo thu t tốn đ NG I NG N NH T GI A T T C CÁC C P c ch NH Rõ ràng ta có th gi i tốn tìm đ ng ng n nh t gi a t t c c p đ nh c a đ th b ng cách s d ng n l n thu t tốn mơ t m c tr c, ta s ch n s l n l t đ nh c a đ th Rõ ràng, ta thu đ c thu t tốn v i đ ph c t p O(n4 ) (n u s d ng thu t toán Ford_Bellman) ho c O(n3 ) đ i v i tr ng h p tr ng s khơng âm ho c đ th khơng có chu trình Trong tr ng h p t ng quát, s d ng thu t tốn Ford_Bellman n l n khơng ph i cách làm t t nh t ta s mơ t m t thu t tốn gi i toán v i đ ph c t p tính tốn O(n3 ): thu t tốn Floyd Thu t tốn đ c mơ t th t c sau đây: Procedure Floyd; (* Tìm đ ng ng n nh t gi a t t c c p đ nh u vào: th cho b i ma tr n tr ng s a[i,j], i, j =1, 2, ,n u ra: Ma tr n đ ng ng n nh t gi a c p đ nh d[i,j], i,j = 1, .,n Trong d[i,j] cho đ dài đ ng ng n nh t t đ nh i đ n đ nh j Ma tr n ghi nh n đ ng p[i,j], i, j = 1, , n Trong p[i,j] ghi nh n đ nh tr c đ nh j đ ng ng n nh t t i đ n j *) begin (* Kh i t o *) 50 for i:=1 to n for j:=1 to n begin d[i,j]:=a[i.j]; p[i.j]:=i; end; (* B c l p *) for k:=1 to n for i:=1 to n for j:=1 to n if d[i,j]>d[i,k]+d[k,j] then begin d[i,j]=d[i,k]+d[k,j]; p[i,j]=p[k,j]; end; end; Rõ ràng đ ph c t p tính tốn c a thu t toán O(n3 ) 51 BÀI T P CH NG Bài Vi t đo n ch ng trình tìm đ ng ng n nh t gi a m t c p đ nh đ th có chu trình nh ng t ng tr ng s khơng âm Bài Vi t đo n ch ng trình tìm đ ng ng n nh t gi a m t c p đ nh đ th có tr ng s không âm Bài Vi t đo n ch ng trình tìm đ ng ng n nh t gi a m t c p đ nh đ th khơng có chu trình tr ng s khơng âm 52 CH NG BÀI TỐN LU NG C C I TRONG M NG Bài toán lu ng c c đ i m ng m t s toán t i u đ th tìm đ c nh ng ng d ng r ng rãi th c t c ng nh nh ng ng d ng thú v lý thuy t t h p Bài toán đ c đ xu t vào đ u n m 1950, g n liên v i tên tu i c a hai nhà toán h c M Ford Fulkerson Trong ch ng chúng s trình bày thu t tốn Ford Fulkerson đ gi i toán đ t nêu m t sô ng d ng c a toán 7.1 M NG LU NG TRONG M NG BÀI TOÁN LU NG C C 7.1.1 I nh ngh a m ng, lu ng đ th nh ngh a Ta g i m ng đ th có h ng G=(V,E), nh t m t đ nh s khơng có cung vào g i đ nh phát, nh t m t đ nh t khơng có cung g i m thu m i cung e=(v,w) E đ c gán v i m t s không âm c(e) =c(v,w) g i kh n ng thông qua c a cung e thu n ti n cho vi c trình bày ta s qui thơng qua c(v,w) đ c gán b ng c r ng n u khơng có cung (v,w) kh n ng nh ngh a Gi s cho m ng G=(V,E) Ta g i m ng f m ng G=(V,E) ;là ánh x f: E R+ gán cho m i cung e=(v,w) E m t s th c không âm f(e)=f(v,w), g i lu ng cung e, tho mãn u ki n sau: Lu ng cung e E không v t kh n ng thông qua c a nó: ≤ f(e) ≤ c(e) i u ki n cân b ng lu ng m i đ nh c a m ng: T ng lu ng cung vào đ nh v b ng t ng lu ng cung kh i đ nh v, n u v#s, t: Div f (v) = ∑ f (w, v) - ∑ f (v, w) = w∈Γ − ( v ) w∈Γ + ( v ) Γ − (v ) - t p đ nh c a m ng mà t có cung đ n v, Γ + (v ) - t p đ nh c a m ng mà t v có cung đ n nó: Γ − (v ) = { w V : (w,v) E } , Γ + (v ) = { w V : (v,w) E } Giá tr c a lu ng f s Val(f) = ∑ f (s, w) = ∑ f (w, t ) w ∈Γ + ( s ) w∈Γ − ( t ) 7.1.2 Bài toán lu ng c c đ i Cho m ng G(V,E) Hãy tìm lu ng f* m ng v i giá tr lu ng val(f*) l n nh t Lu ng nh v y ta s g i lu ng c c đ i m ng Bài toán nh v y có th xu t hi n r t nhi u ng d ng th c t Ch ng h n c n xác đ nh c ng đ l n nh t c a dòng v n t i gi a hai nút c a m t b n đ giao thơng Trong ví d l i gi i c a toán lu ng c c đ i s ch cho ta đo n đ ng đông xe nh t chúng t o thành "ch h p" t ng ng v i dịng giao thơng xét theo hai nút đ c ch n M t ví d khác n u xét đ th t ng ng v i m t h th ng đ ng ng d n d u Trong ng t ng ng v i cung, m phát có th coi t u ch d u, m thu b ch a, nh ng m n i gi a ng nút c a đ th Kh n ng thông qua c a cung t ng ng v i ti t di n c a ng C n ph i tìm lu ng d u l n nh t có th b m t tàu ch d u vào b ch a 53 7.2 LÁT C T NG T NG LU NG NH LÝ FORD_FULKERSON 7.2.1 Lát c t nh ngh a Ta g i lát c t (X,X* ) m t cách phân ho ch t p đ nh V c a m ng thành hai t p X X* = V\X, s X, t X* Kh n ng thông qua c a lát c t (X,X* ) s : c(X,X* ) = c(v,w) v X w X* Lát c t v i kh n ng thông qua nh nh t đ c g i lát c t h p nh t B đ Giá tr c a lu ng f m ng nh h n ho c b ng kh n ng thông qua c a lát c t (X,X* ) b t k nó: Val(f) ≤ c(X,X* ) Ch ng minh C ng u ki n cân b ng lu ng Divf(v)=0 v i m i v có ∑( ∑ f(w, v) − v∈X w∈ − (v) X Khi ta ∑ f(v, w)) = − Val(f) v∈X w∈ + (v) T ng s g m s h ng d ng f(u,v) v i d u c ng ho c d u tr mà có nh t m t hai đ nh u,v ph i thu c t p X N u c hai đ nh u,v đ u t p X, f(u,v) xu t hi n v i d u c ng Divf(v) v i d u tr Divf(u), th , chúng tri t tiêu l n Do đó, sau gi n c s h ng nh v y v trái, ta thu đ c ∑ f(v, w) - ∑ f(v, w) = − Val(f) v∈X w∈X * v∈X * w∈X M t khác, t u ki n rõ ràng ∑ f(v, w) ≤ ∑ c(v, w) v∈X w∈X* v∈X* w∈X suy Val(f)≤c(X,X* ) B đ đ c ch ng minh H qu Giá tr lu ng c c đ i m ng không v h p nh t m ng t kh n ng thông qua c a lát c t Ford Fulkerson ch ng minh r ng giá tr lu ng c c đ i m ng b ng kh n ng thông qua c a lát c t h p nh t có th phát bi u ch ng minh k t qu chúng s c n thêm m t s khái ni m Gi s f m t lu ng m ng G = (V,E) T m ng G =(V,E) ta xây d ng đ th có tr ng s cung Gf = (V, Ef), v i t p cung Ef tr ng s cung đ c xác đ nh theo qui t c sau: N u e=(v,w) E v i f(v,w) =0, (v,w) 54 Ef v i tr ng s c(v,w); N u e=(v,w) N u e=(v,w) (v,w) (w,v) E v i f(v,w) =c(v,w), (w,v) Ef v i tr ng s f(v,w); E v i 0 s t ng ng v i cung (sa, v) (u, ta) v i kh n ng thông qua d(u,v) Gi m c(u,v) d(u,v) t c thay kh n ng thông qua c a cung (u,v) b i c(u,v) – d(u,v) c n d i c a đ t b ng Ngồi thêm vào cung (t,s) v i c(t,s) = 62 Hình M ng v i kh n ng thơng qua b ch n hai phía Hình 6(a) cho ví d m ng G v i kh n ng thông qua c a cung b ch n c hai phía th Ga t ng ng đ c cho hình 6(b) Ký hi u d* = ∑ d(u,v), d(u,v)>0 nh lý 1) N u lu ng l n nh t m ng Ga t sa đ n ta b ng d* t n t i lu ng t G ng thích 2) N u lu ng l n nh t m ng Ga t sa đ n ta khác d* khơng t n t i lu ng t ng thích G 63 BÀI T P CH NG Bài Vi t đo n ch ng trình tìm lu ng c c đ i đ th có tr ng s nguyên d m t đ nh phát m t đ nh thu Bài Vi t đo n ch ng trình tìm lu ng c c đ i đ th có tr ng s nguyên d nhi u đ nh phát, đ nh thu 64 ng, ng, ... ph n: Lý thuy t đ th Mã HP: 17205 a S tín ch : 03 TC BTL AMH b n v gi ng d y: B môn Khoa h c máy tính c Phân b th i gian: - T ng s (TS ): 45 ti t - Lý thuy t (LT ): 36 ti t - Th c hành (TH ): ti... thi; VH:={s} ; T:= ; d[s ]:= 0; near[s ]:= s For v V\VH Begin D[v ]:= c[s,v]; near[v ]:= s; End; (* buoc lap *) stop:=false; while not stop begin tim u V\VH thoa man: d[u] =min { d[v ]: u V\VH } ; VH:= VH... th c: Z = 0.3X + 0.7Y Trong đ? ?: • X: m q trình, b ng trung bình c ng c a X1 , X2 • Y: m ki m tra k t thúc h c ph n • Hình th c thi: tr c nghi m máy tính; th i gian: 60 phút Thang m đánh gi? ?: A+,

Ngày đăng: 02/08/2020, 12:04

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

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

Tài liệu liên quan