1. Trang chủ
  2. » Luận Văn - Báo Cáo

Giáo trình toán rời rạc phần 2 đh sư phạm kỹ thuật nam định

95 12 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 95
Dung lượng 1,09 MB

Nội dung

Ch-ơng khái niệm lý thuyết đồ thị biểu diễn đồ thị máy tính 6.1 Các khái niệm lý thuyết đồ thị Lý thuyết đồ thị lĩnh vực đà đ-ợc nghiên cứu từ lâu có nhiều ứng dụng đại Chẳng hạn, đồ thị sử dụng để xác định mạch vòng vấn đề giải tích mạch điện Chúng ta phân biệt hai hợp chất hoá học có công thức phân tử nh-ng có cấu trúc khác nhờ đồ thị Chúng ta xác định xem hai máy tính mạng trao đổi thông tin đ-ợc với hay không nhờ mô hình đồ thị mạng máy tính Đồ thị với trọng số đ-ợc gán cho cạnh dùng để giải toán nh- toán tìm đ-ờng ngắn hai thành phố mạng giao thông Chúng ta sử dụng đồ thị để giải toán lập lịch, thời khoá biểu phân chia kênh cho đài truyền hình 6.1.1 Định nghĩa đồ thị Đồ thị 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 kiểu số l-ợng cạnh nối cặp đỉnh đồ thị Nhiều toán thuộc lĩnh vực khác giải đ-ợc mô hình đồ thị Chẳng hạn, ng-ời ta dùng đồ thị để biểu diễn kết thi ®Êu thĨ thao Chóng ta cịng sÏ chØ dùng đồ thị để giải toán nh- toán tính số tổ hợp khác chuyến bay hai thành phố mạng hàng không, hay để giải toán ng-ời du lịch, toán tìm số màu cần thiết để tô vùng khác đồ, Định nghĩa 6.1 Đơn đồ thị vô h-ớng G = (V, E) bao gồm tập không rỗng V tập đỉnh, tập E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh 101 Ví dụ 6.1 Giả sử mạng máy tính gồm máy tính đ-ờng điện thoại Ta biểu diễn vị trí máy tính điểm đ-ờng điện thoại cung nh- hình 6.1 Huế Hà nội TP HCM Nam Định Đà Nẵng Hải Phòng Thái Nguyên Hình 6.1 Trong mạng máy tính ta thấy có nhiều đ-ờng điện thoại hai máy, đ-ờng hoạt động theo hai chiều máy tính có đ-ờng điện thoại nối đến Do mạng mô hình đơn đồ thị vô h-ớng Định nghĩa 6.2 Đa đồ thị vô h-ớng G = (V, E) bao gồm V tập đỉnh, E họ cặp thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 đ-ợc gọi cạnh lặp chúng t-ơng ứng với cặp đỉnh Ví dụ 6.2 Với mạng máy tính ví dụ 6.1, tr-ờng hợp 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 nhiều kênh thoại Mạng với đa kênh thoại máy đ-ợc minh hoạ hình 6.2 Huế Hà Nội TP HCM Nam Định Hải Phòng Thái Nguyên Hình 6.2 102 Đà Nẵng Định nghĩa 6.3 Giả đồ thị vô h-ớng G = (V, E) bao gồm V tập đỉnh, E họ cặp thứ tự gồm hai phần tử (không thiết phải khác nhau) V gọi cạnh Cạnh e đ-ợc gọi khuyên có dạng e=(u, u) Ví dụ 6.3 Một mạng máy tính có đ-ờng điện thoại từ máy tính đến Đó mạng hình 6.3 Trong tr-ờng hợp ta có giả đồ thị vô h-ớng nh- hình 6.3 Huế Hà Nội TP HCM Nam Định Đà Nẵng Hải Phòng Thái Nguyên Hình 6.3 Định nghĩa 6.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 V gọi cung Ví dụ 6.4 Các đ-ờng điện thoại mạng máy tính hoạt động theo chiều Chẳng hạn hình 6.4 m¸y chđ ë TP HCM cã thĨ chØ nhËn liệu từ máy khác mà gửi liệu Các đ-ờng điện thoại chiều đ-ợc biểu diễn cặp cạch có chiều ng-ợc Khi ta có đơn đồ thị có h-ớng Huế Hà Nội Nam Định TP HCM Đà Nẵng Hải Phòng Thái nguyên Hình 6.4 Định nghĩa 6.5 Đa đồ thÞ cã h-íng G = (V, E) bao gåm V tập đỉnh, E họ cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1, e2 t-ơng ứng với cặp đỉnh đ-ợc gọi cung lặp 103 6.1.2 Các thuật ngữ Định nghĩa 6.6 Hai đỉnh u v đồ thị vô h-ớng G đ-ợc gọi kề (u, v) cạnh đồ thị G Nếu e =(u, v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v đ-ợc gọi đỉnh đầu cạnh (u, v) Định nghÜa 6.7 Ta gäi bËc cđa ®Ønh v ®å thị vô h-ớng số cạnh liên thuộc với nó, riêng khuyên đỉnh đ-ợc tính hai lần cho bậc Bậc đỉnh kí hiệu deg(v) Ví dụ 6.5 Bậc đỉnh đồ thị G H Hình 6.5 bao nhiªu a g b a c f e d b c f e H G Hình 6.5 Giải: Trong G, deg(a) = 1, deg(b) = deg(e) = deg(c) = 4, deg(f) =3, deg(g) = Trong H, deg(a) = 1, deg(b) = 6, deg(e) = deg(f) = 5, deg(c) = Đỉnh bậc gọi đỉnh cô lập Đỉnh bậc đ-ợc gọi đỉnh treo Định lý 6.1 Giả sử G =(V, E) đồ thị vô h-ớng với m cạnh Khi 2m= deg(V ) vV Chứng minh: Rõ ràng cạnh e = (u, v) đ-ợc tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh lần số cạnh Ví dụ 6.6 Có cạnh đồ thị vô h-ớng có n đỉnh, đỉnh có bậc Giải: Vì tổng tất bậc đồ thị 6.n, nên theo định lý suy 2.m = 6.n hay m = 3.n Vậy số cạnh đồ thị 3.n Định lý 6.2 Một đồ thị vô h-ớng có số chẵn đỉnh bậc lẻ 104 Chứng minh: Giả sử V1 V2 t-ơng ứng tập đỉnh bậc chẵn tập đỉnh bậc lẻ đồ thị vô h-ớng G = (V, E) ®ã: 2m   deg( v)   deg( v) vV vV1 Vì deg(v) chẵn với v  V1 nªn suy  deg( v) vV2  deg( v) chẵn Do 2m số vV1 chẵn, deg( v) chẵn, deg(v) lẻ với v V2 nên số đỉnh bậc lẻ vV2 số chẵn Định nghĩa 6.8 Nếu e = (u, v) cung đồ 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 nói cung khỏi đỉnh u vào đỉnh v Đỉnh u đ-ợc gọi đỉnh đầu, đỉnh v đ-ợc gọi đỉnh cuối cung (u, v) Đỉnh đầu đỉnh cuối khuyên trùng Vì cạnh đồ thị có h-ớng cặp có thứ tự, nên định nghĩa bậc đỉnh cần phải phản ánh đ-ợc số cạnh nhận đỉnh đỉnh đầu (ra khỏi đỉnh này) số cạnh nhận đỉnh đỉnh cuối (đi vào đỉnh này) Định nghĩa 6.9 Trong đồ thị có h-ớng ta gọi bậc đỉnh v kí hiệu deg+(v) số cung đồ thị khỏi nó, ta gọi bậc vào đỉnh v kí hiệu deg-(v) số cung đồ thị vào Ví dụ 6.7 Tìm bậc vào bậc đỉnh đồ thị có h-ớng cho hình 6.6 a b e d c Hình 6.6 Giải : deg+(a) = 3, deg+(b) = deg+(c) = deg+(d) = 1, deg+(e) = deg-(a) = 1, deg-(b) = 1, deg-(c) = 2, deg-(d) = 2, deg-(e) = Định lý 6.3 Giả sử G = (V, E) đồ thị có h-ớng Khi đó: deg vV (v)   deg  (v)  E vV 105 Chøng minh: Vì cung có đỉnh đầu đỉnh cuối nên tổng bậc vào tổng bậc tất đỉnh đồ thị có h-ớng số cạnh Một số tính chất đồ thị có h-ớng không phụ thuộc vào h-ớng cung Do đó, thuận lợi ta bỏ qua h-ớng cung đồ thị Đồ thị thu đ-ợc cách đ-ợc gọi đồ thị vô h-ớng t-ơng ứng Đồ thị có h-ớng đồ thị vô h-ớng t-ơng ứng có số cạnh 6.1.3 Đ-ờng đi, chu trình, đồ thị liên thông Định nghĩa 6.10 Đ-ờ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: x0, x1, …, xn-1, xn ®ã u = x0, v = xn, (xi, xi+1) E ; i=0, 1, 2, , n-1 Đ-ờng nói biểu diễn d-ới dạng dÃy cạnh (x 0, x1), (x1, x2),,(xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v đỉnh cuối đ-ờng Đ-ờng có đỉnh đầu trùng với đỉnh cuối (tức u = v) đ-ợc gọi chu trình Đ-ờng chu trình gọi qua đỉnh x0, x1, , xn-1, xn Đ-ờng hay chu trình đ-ợc gọi đơn không chứa cạnh lần Ví dụ 6.8 Trên đồ thị vô h-ớng cho h×nh 6.7 ta cã a, d, c, f, e đ-ờng đơn độ dài Còn d, e, c, a không đ-ờng , (e, c) cạnh đồ thị DÃy b, c, f, e, b chu trình độ dài §-êng ®i a, b, e, d, a, b cã ®é dài là đuờng đơn, cạnh (a, b) có mặt hai lần a b c Hình 6.7 d e f Khái niệm đ-ờng đồ thị có h-ớng đ-ợc định nghĩa hoàn toàn t-ơng tự nh- đồ thị vô h-ớng khác ta có ý đến h-ớng cung Định nghĩa 6.11 Đ-ờng độ dài n từ đỉnh u đến đỉnh v, n số nguyên d-ơng, đồ thị có h-ớng G = (V, E) dÃy x0, x1,, xn-1, xn 106 Trong u = x0, v = xn, (xi, xi+1)  E, i = 0, 1, 2,, n-1 Đ-ờng nói cã thĨ biĨu diƠn d·y c¸c cung: (x0, x1), (x1, x2),(xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đ-ờng Đ-ờng có đỉnh đầu trùng với đỉnh cuối (tức u = v ) đ-ợc gọi chu trình Đ-ờng hay chu trình đ-ợc gọi đơn không chứa cung lần Ví dụ 6.9 b a e c d Hình 6.8 Trên đồ thị cã h-íng cho h×nh 6.8 ta cã a, b, c, d đ-ờng đơn độ dài Còn a, b, c, d, b , a chu trình độ dài Đ-ờng a, b, e, c, a, b có độ dài là đ-ờng đơn, cung (a, b) có mặt lần Định nghĩa 6.12 Đồ thị vô h-ớng G = (V, E) đ-ợc gọi liên thông có đ-ờng cặp đỉnh phân biệt đồ thị Ví dụ 6.10 Trong hình 6.9: Đồ thị G liên thông, đồ thị H không liên thông Đồ thị H gồm thành phần liên thông H1, H2, H3 x y z a b g v w d c h k u t H1 G H×nh 6.9 i H2 H l H3 Định lý 6.4 Giữa cặp đỉnh phân biệt đồ thị vô h-ớng liên thông có đ-ờng đơn Chng minh: Giả sử u v hai đỉnh ph©n biệt ca mt th vô h-ớng liên thông G = (V, E) Vì G liên thông nên có nht đ-ờng u 107 v Gọi x0, x1, , xn, với x0=u xn=v, dÃy đỉnh đ-ờng i có d i ngắn nht DÃy đ-ờng đơn cần tìm Tht vy, gi s không l đ-ờng ®¬n, xi=xj với  i < j iu n y có ngha l nh u v v có đ-ờng i ngắn hn qua nh x0, x1, , xi-1, xj, , xn nhận cách xóa i cnh t-ơng ứng với dÃy đỉnh xi, , xj-1 Định nghĩa 6.13 Ta gọi đồ thị đồ thị G=(V, E) đồ thị H=(W, F) W V F E Một đồ th không liên thông l hp ca hai hay nhiu th liên thông, mi cp th n y nh chung Các th liên thông ri nh vy c gi l th nh phn liên thông ca th ang xét Nh- vậy, đồ thị l liên thông v ch ch có mt th nh phn liên thông Ví dụ 6.11 Đồ thị H hình 6.9 gồm thành phần liên thông H1, H2, H3 Trong mạng máy tính có máy (những kênh nối) mà hỏng hóc ảnh h-ởng đến việc trao đổi thông tin mạng Các khái niệm t-ơng ứng với tình đ-ợc đ-a định nghĩa sau Định nghĩa 6.14 Đỉnh v đ-ợc gọi đỉnh rẽ nhánh việc loại bỏ v với cạnh liên thuộc với khỏi đồ thị làm tăng số thành phần liên thông đồ thị Cạnh e đ-ợc gọi cầu việc loại bỏ khỏi đồ thị làm tăng số thành phần liên thông đồ thị Ví dụ 6.12 Trong đồ thị G hình 6.9, đỉnh u, x, v đỉnh rẽ nhánh cạnh (x, z) (v, w) cầu Đối với đồ thị có h-ớng có hai khái niệm liên thông phụ thuộc vào việc ta có xem xét đến h-ớng cung hay không Định nghĩa 6.15 Đồ thị có h-ớng G = (V, E) đ-ợc gọi liên thông mạnh tìm đựơc đ-ờng hai đỉnh Định nghĩa 6.16 Đồ thị có h-ớng G=(V, E) đ-ợc gọi liên thông yếu đồ thị vô h-ớng t-ơng ứng với đồ thị vô h-ớng liên thông 108 Rõ ràng muốn đồ thị liên thông mạnh liên thông yếu, nh-ng điều ng-ợc không ®óng, nh- chØ thÝ dơ d-íi ®©y VÝ dụ 6.13: Trong hình 6.10 đồ thị G liên thông mạnh, H liên thông yếu nh-ng không liên thông mạnh G H Hình 6.10 Vấn đề đặt định h-ớng cạnh đồ thị vô h-ớng liên thông để thu đ-ợc đồ thị có h-ớng liên thông mạnh Ta gọi đồ thị nh- đồ thị định h-ớng đ-ợc Định lý 6.5 Đồ thị vô h-ớng liên thông định h-ớng đ-ợc cạnh nằm chu trình Chứng minh Điều kiện cần Giả sử (u, v) cạnh đồ thị Từ tồn đ-ờng có h-ớng từ u đến v ng-ợc lại suy (u, v) phải nằm chu trình Điều kiện đủ Thủ tục sau cho phép định h-ớng cạnh đồ thị để thu đ-ợc đồ thị có h-ớng liên thông mạnh Giả sử C chu trình đồ thị Định h-ớng cạnh chu trình theo h-ớng vòng theo Nếu tất cạnh đồ thị đà đ-ợc định h-ớng kết thúc thủ tục Ng-ợc lại, chọn e cạnh ch-a định h-ớng có chung đỉnh với số cc cnh đ định hướng Theo gi thiết tìm chu trình C chứa cạnh e Định h-ớng cạnh ch-a đ-ợc định h-ớng ca C theo h-ớng dọc theo chu trình (không định h-ớng lại cạnh đà có h-ớng) Thủ tục đ-ợc lặp lại tất cạnh đồ thị đ-ợc định h-ớng Khi ta thu đ-ợc đồ thị có h-ớng liên thông mạnh 109 6.1.4 Một số dạng đồ thị đặc biệt Đồ thị đầy đủ Đồ thị đầy đủ n đỉnh, ký hiệu Kn, đơn đồ thị chứa cạnh nối cặp đỉnh phân biệt Đồ thị đầy đủ K n có tất n(n-1)/2 cạnh, đỉnh Kn có bậc n-1 Ví dụ 6.14 Các đồ thị K3, K4, K5 cho hình 6.11 đồ thị đầy đủ K3 K4 K5 Hình 6.11 Đồ thị vòng Đồ thị vòng Cn, n 3, gồm n đỉnh v1, v2, , cạnh (v1, v2), (v2, v3),(vn-1, vn), (vn, v1) Mỗi đỉnh Cn có bậc Ví dụ 6.15 Đồ thị vòng C3, C4, C5 cho hình 6.12 C3 C4 C5 Hình 6.12 Đồ thị bánh xe Đồ thị Wn thu đ-ợc từ Cn cách bổ xung vào đỉnh nối với tất đỉnh Cn Nh- vËy, ®å thi Wn cã n+1 ®Ønh, 2n cạnh, đỉnh bậc n n đỉnh bậc Ví dụ 6.16 Đồ thị bánh xe W3, W4, W5 W3 W4 Hình 6.13 110 W5 thúc luồng có mạng không tìm đ-ợc đ-ờng tăng luồng Hai thủ tục tìm đ-ờng tăng luồng tăng luồng mô tả nh- sau Procedure Find _part; {thủ tục gán nhÃn tìm đ-ờng tăng luồng p[v], (v) nhÃn đỉnh v; VT - danh sách đỉnh có nhÃn nh-ng ch-a xét ; c[u,v] -khả thông qua cung (u,v), u,v V ; f[u,v] - luång trªn cung (u,v) , (u,v  V) } Begin p[s]:=s; (s):=+  ; VT =V\{s}; Pastfound:= true; While VT   Begin u  VT; { LÊy u tõ V T } for v  V\VT begin if (c [u,v] >0 and (f(u,v) < c[u,v] ) then begin p[v] :=u; [v] :=min {[u], c[u,v] – f[u,v]} ; VT= VT {v}; (*nạp v vào danh sách đỉnh có nhÃn*) If v=t then exit ; end; If (c[u,v] > 0) and (f[u,v] > 0) then Begin p[v]= -u; [v] :=min {[u], f[u,v]}; VT=VT  {v}; (*n¹p v vào danh sách đỉnh có nhÃn *) If v = t then exit; end; end; PartFound :=false; 181 end; End; Procdure Inc_flow; (*tăng luồng theo đ-ờng tăng *) Begin V:=p[t] ; u=t; tang:=[t] ; While u  s Begin If v > then f[u,v]:=f[u,v] +tang Else Begin v:=-v; f[u,v]:=f[u,v] -tang; End; u:=v;v:=p[u]; End; End; ThuËt to¸n Ford Fulkerson đ-ợc thực nhờ thủ tục: Procedure Max Flow; (* Thuật toán Ford-Fulkerson *) Begin (* Khởi tạo - bắt đầu luồng với giá trị *) For u  v For v  V f [u,v] :=0; Stop :=false; While not stop Begin Find_Part; If PartFound then Inc_Flow else Stop :=true; End; 182 End; Giả sử khả thông qua tất cung đồ thị số nguyên Khi sau lần tăng luồng, giá trị luồng tăng lên Từ suy thuật toán Ford-Fulkerson dừng sau không val(f * ) lần tăng luồng cho ta luồng cực đại mạng §ång thêi râ rµng f * (u,v) sÏ lµ sè nguyên với cung (u,v) E Từ ta có kết nh- sau: Định lý 10.2 (Định lý Ford-Fullkerson) Luồng cực đại mạng khả thông qua lát cắt hẹp Định lý 10.3 (Định lý tính nguyên ) Nếu tất khả thông qua số nguyên tìm đ-ợc luồng cực đại với luồng cung số nguyên Tuy nhiên, khả thông qua số lớn giá trị luồng cực đại lớn thuật toán mô tả đòi hỏi thực nhiều b-ớc tăng luồng Hơn nữa, khả thông qua số vô tỷ ,ng-ời ta xây dựng đ-ợc ví dụ thuật toán không dừng ,và tệ dÃy giá trị luồng xây dựng theo thuật toán hội tụ không hội tụ đến giá trị luồng cực đại Nh- vậy, muốn thuật toán làm việc hiệu ,việc lựa chọn đ-ờng tăng luồng cần đ-ợc tiến hành cẩn thận Edmonds Karp đ-ờng tăng luồng đ-ợc chọn đ-ờng ngắn từ s đến t đồ thi Gf Điều thực thủ tục tìm đ-ờng tăng Find_Path mô tả trên, danh sách VT đ-ợc tổ chức d-ới dạng QUEUE (nghĩa ta thực tìm đ-ờng tăng bëi thđ tơc t×m kiÕm theo chiỊu réng) th× tht toán kết thúc sau không mn/2 lần sử dụng đ-ờng tăng luồng Nếu để ý rằng, tìm kiếm theo chiều rộng đồ thị đòi hỏi thời gian O(n+m), thuật toán thu đ-ợc có độ phức tạp tính toán O(nm ) Ví dụ 10.2 Ta kết thúc mục ví dụ minh hoạ cho thuật toán Ford_fulkerson sau Hình 10.3(a) cho mạng G với khả thông qua cung luồng giá trị 10 Hai số viết bên cạnh cung khả thông qua 183 cung (số ngoặc ) luồng cung Đ-ờng tăng luång cã d¹ng (s,v3,v ,v ,v ,v ,t) ta tính đ-ợc (t)=1,giá trị luồng tăng từ 10 lên 11 Hình 10.3(b) luồng thu đ-ợc sau tăng luồng theo đ-ờng tăng tìm đ-ợc 6(6) (a) v2 v4 0(2) v6 0(2) 4(4) 10(10) 0(3) s 0(1) 6(8) 4(5) t 4(9) 6(9) 0(2) v3 v5 10(10) v7 4(4) 6(6) (b) v2 v4 0(2) v6 0(2) 4(4) 10(10) 0(3) s 1(1) 5(8) 3(5) 3(9) 7(9) t 1(2) v3 10(10) v5 4(4) v7 Hình 10.3 Tăng luồng dọc theo đ-ờng tăng Luồng hình 3(b) đà cực đại Lát cắt hẹp X = {s, v2, v3, v5 }, X * = {v4, v6, v7, t } Giá trị luồng cực đại 11 10.4 Một số toán luồng tổng quát Trong phần ta nêu số toán luồng tổng quát mà việc giải chúng dẫn toán luồng cực đại trình bày a) Mạng với nhiều điểm phát điểm thu Xét mạng G với p điểm phát s ,s sp q điểm thu f ,f …fq.G¶i sư r»ng lng cã thĨ từ điểm phát đến tất điểm thu Bài toán tìm luồng cực đại từ điểm phát đến điểm thu đ-a toán 184 điểm phát điểm thu cách đ-a vào điểm phát giả s điểm thu giả t cạnh nối s với tất điểm phát cạnh nối t với tất điểm điểm thu Hình 10.4 minh hoạ cho cách đ-a mạng với nhiều điểm phát nhiều điểm thu mạng có điểm phát điểm thu Khả thông qua cung nối s với điểm phát sk + hạn chế l-ợng phát điểm phát sk, l-ợng phát sk hạn chế bk cung (s,sk) có khả thông qua bk Cũng nh- vậy, cung nối tk với điểm thu t, giá trị khả thông qua của(tk, t) giới hạn không giới hạn tuỳ theo l-ợng thu điểm thu có bị giới hạn hay không s s1 t1 s2 t2 sp t tq Hình 10.4 Mạng với nhiều điểm phát thu Trường hợp số điểm thu chØ nhËn ‚h¯ng ‚ tõ mét sè ®iĨm ph²t ta có bi toán nhiều luồng toán phức tạp nhiều so với toán luồng cực đại điểm phát s điểm thu t b)Bài toán với khả thông qua cung đỉnh Giả sử đồ thị G, khả thông qua cung c(u,v), đỉnh v V có khả thông qua đỉnh d(v), đòi hỏi tổng luồng vào đỉnh v không đ-ợc v-ợt d(v), tức f (w, v) d (v) wV Cần phải tìm luồng cực đại s t mạng nh- Xây dựng mng G cho ®Ønh v cða G t­¬ng øng víi hai ®Ønh v ,v- G, cung (u,v) G t-ơng øng víi cung (u-, v  ) G’ Ngoµi ra, cung (v ,v-) G có kh thông qua l d(v) ,tức l bng khả thông qua đỉnh v G 185 Do luồng vào đỉnh v phải qua cung (v+, v) với kh thông qua d(v), nên luồng cực ®³i G’ sÏ b´ng luång cùc ®³i G với kh thông qua cung đỉnh c) Mạng khả thông qua cung bị chặn hai phía Xét mạng G mà cung (u,v) có khả thông qua (cận luồng cung) c(u,v) cận d-ới luồng d(u,v) Bài toán đặt liệu có tồn hay không luồng t-ơng thích từ s đến t ,tức luồng {f(u,v): u,vV} thoả mÃn thêm ràng buộc d(u,v) f(u,v) c(u,v) (u,v) E Đ-a vào mạng G đỉnh phát giả sa, đỉnh thu giả ta xây dựng mạng Ga theo qui tắc: Mỗi cung (u,v) mà d(u,v) t-ơng ứng với hai cung(sa,v) (u,ta) với khả thông qua d(u,v) Giảm c(u,v) d(u,v) tức thay khả thông qua cung (u,v) c(u,v) d(u,v), cận d-ới đặt Ngoài thêm vào cung (t,s) với c(t,s) = Hình 10.5 (a) cho ví dụ mạng G với khả thông qua cung bị chặn hai phía Đồ thị Ga t-ơng ứng đ-ợc cho hình 10.5(b) u a) d(u,t),c(u,t) 0,c(s,u) 0,c(u,v ) s d(s,v),c(s,v) 0,c(v,t) v ta t d(u,t) d(s,v) u c(s,u) b) s c(u,t)-d(u,t) t d(u,v) c(s,v)-d(s,v)  c(v,t) v d(s,v) d(u,t) Sa H×nh 10.5 Mạng với khả thông qua bị chặn hai phía 186 Ký hiÖu d * =  d (u, v) d ( u , v ) 0 Khi ®ã, ng-ời ta chứng minh đ-ợc rằng: 1) Nếu luồng lớn mạng Ga từ sa đến ta d * tồn luồng t-ơng thích G 2) NÕu lng lín nhÊt m¹ng Ga tõ sa đến ta khác d * không tồn lng t-¬ng thÝch G 10.5 Mét sè øng dơng tổ hợp Bài toán luồng cực đại có nhiều ứng dụng việc giải nhiều toán tổ hợp Khó khăn phải xây dựng mạng t-ơng ứng cho việc tìm luồng cực đại t-ơng đ-ơng với toán tổ hợp đặt D-ới giới thiệu số toán nh- a) Bài toán đám c-ới vùng quê Có m chàng trai làng quê Đối với chàng trai ta biết cô gái mà võa ý Hái nµo cã thĨ tỉ chức đám c-ới chàng trai sánh duyên với cô gái mà vừa ý Ta xây dựng đồ thị với đỉnh biểu thị chàng trai cô gái cung biểu thị vừa ý chàng trai cô gái Khi ta thu đ-ợc đồ thị hai phía Đ-a thêm vào điểm phát s điểm thu t Nối s với tất đỉnh biểu thị chàng trai, nối t với tất đỉnh biểu thị cô gái Tất cung đồ thị có khả thông qua Bắt đầu từ luồng 0, ta tìm luồng cực đại mạng xây dựng đ-ợc theo thuật toán Ford Fulkerson Từ định lý tính nguyên, luồng cung số Rõ ràng luồng cực đại đồ thị có giá trị Vmax = m, toán có lời giải, cung với luồng cách tổ chức đám c-ới thoả mÃn điều kiện đặt Ng-ợc lại, toán có lời giải Vmax = m b) Bài toán hệ thống đại diện chung Cho tập m phần tử X = {z1, z2,,zm} Giả sử < A1,A2,,An> < B1, B2,,Bn> hai dÃy tập tập X DÃy gồm n phần tử khác X: < a1, a2,, an> đ-ợc gọi hệ thống đại diện chung hai dÃy đà cho 187 nh- tìm đ-ợc hoán vị tập {1,2,,n} cho < a1, a2,,an> hệ thống đại diện phân biệt hai dÃy , tức điều kiện sau đ-ợc tho¶ m·n :  Ai  B(i) , i= 1,2,,n Xây dựng mạng G = (V,E) với tập đỉnh V= {s,t}  {x1, x2,…, xn}  {u1, u2,…,um} {v1, v2,,vm} {y1, y2,,yn} Trong đỉnh xi t-ơng ứng với tập Ai, đỉnh yi t-ơng ứng với tập Bi, phần tử ui, vi t-ơng ứng với phần tử zi Tập cung mạng G đ-ợc xác định nhsau: E = {(s,xi):  i  n}  {(xi, uj): víi zj  Ai,  i  n, 1 j  m}   {(uj, yj): 1 j m}  {(vj, yj): víi zi  Bi,  i  n,  j  m}  {(yi, t): i n} Khả thông qua tất cung đ-ợc đặt Dễ dàng thấy hệ thống đại diện chung cđa hai d·y< A1, A2,…, An> vµ tån mạng G = (V,E) tìm đ-ợc luồng với giá trị n Để xét tån t¹i cđa lng nh- vËy cã thĨ sư dơng thuật toán tìm luồng cực đại từ s đến t mạng G = (V,E) c) Một toán tối -u rời rạc Trong mục ta trình bày thuật toán đ-ợc xây dựng dựa thuật toán tìm luồng cực giải toán tối -u rời rạc mô hình toán học cho số toán tối -u tổ hợp Xét toán tối -u rêi r¹c n f ( x1 , x2 , , xn )  max  xij  1i  m (1) j 1 víi ®iỊu kiƯn n a j 1 x  pi , i  1,2, , m, (2) aij ij xij = hc 1, j = 1, 2,…, n (3) Trong ®ã aij  {0,1}, i = 1, 2,…, m; j = 1, 2,…, n, pi nguyên d-ơng, i= 1, 2,,m Bài toán (1)-(3) mô hình toán học cho nhiều toán tối -u tổ hợp thực tế Ng-ời ta đà chứng minh đ-ợc việc giải toán (1)-(3) dẫn việc giải số hữu hạn toán luồng cực đại mạng D-ới vài ví dụ toán đ-a toán (1)-(3) Bài toán phân nhóm sinh hoạt Có m sinh viên n nhóm sinh hoạt chuyên đề Với sinh viªn i, biÕt aij = 1, nÕu sinh viªn i cã ngun väng tham gia vµo nhãm j 188 aij = 0, ng-ợc lại pi số l-ợng nhóm chuyên đề mà sinh viên i phải tham dự, i= 1,2,,m; j= 1,2,,n Trong số cách phân sinh viên vào nhóm chuyên đề mà họ có nguyện vọng tham gia đảm bảo sinh viên i phải tham gia pi nhóm, hÃy tìm cách phân phối với số ng-ời nhóm có nhiều sinh viên tham gia nhỏ đ-ợc Đ-a vào biến số xij = 1, sinh viên i tham gia vào nhóm j xij = 0, ng-ợc lại i= 1,2,, m, j = 1, 2,, n, mô hình toán học cho toán đặt toán (1)-(3) Bài toán lËp lÞch cho héi nghÞ Mét héi nghÞ cã m tiểu ban, tiểu ban cần sinh hoạt ngày phòng họp phù hợp với Có n phòng họp dành cho việc sinh hoạt tiểu ban Biết aij = 1, phòng họp i thÝch hỵp víi tiĨu ban j aij = 0, nÕu ng-ợc lại, i = 1, 2, , m; j = 1, 2,, n HÃy bố trí phòng họp cho tiểu ban cho hội nghị kết thúc sau ngày làm việc Đ-a vào biến số xij = 1, nÕu bè trÝ tiĨu ban i lµm viƯc phòng j xij = 0, ng-ợc lại i = 1, 2,…, m, j = 1, 2,…, n, dễ thấy mô hình toán học cho toán đặt toán (1) (3), ®ã pi = 1, i = 1, 2,…, m Ng-êi ta đà chứng minh đ-ợc n Bài toán (1)-(3) có ph-ơng án tối -u a j 1 189 ij  pi , i=1, 2, , m tập ch-ơng 10 Cho mạng nh- hình d-ới, với khả thông qua cung đ-ợc ghi vòng tròn, luồng (khởi đầu) đ-ợc ghi cung HÃy tìm luồng cực đại mạng v1 v5 4 6 s v2 5 12 v6 5 v3 t 1 4 v4 v7 Cho mạng sau, với khả thông qua cung đ-ợc ghi vòng tròn Tìm luồng cực đại mạng v1 v5 4 s v3 t 4 v4 v2 v6 Cho m¹ng sau, víi khả thông qua cung đ-ợc ghi vòng tròn, luồng (khởi đầu) đ-ợc ghi cung Tìm luồng cực đại mạng 10 s v1 8 28 15 10 10 16 20 v3 16 v2 v4 3 15 v6 v5 10 15 10 25 v7 0 v8 v9 190 v10 20 12 30 2 t MỤC LỤC Chƣơng MỘT SỐ KIẾN THỨC MỞ ĐẦU VỀ LÝ THUYẾT TỔ HỢP 1.1 Giới thiệu tổ hợp 1.2 Sơ lược lý thuyết tập hợp 1.2.1 Các khái niệm 1.2.2 Các phép toán 1.2.3 Các tính chất cho tập hợp 1.2.4 Quan hệ tương đương phân hoạch 1.2.5 Biểu diễn tập hợp máy tính 1.3 Một số nguyên lý 1.3.1 Nguyên lý cộng 1.3.2 Nguyên lý nhân 10 1.4 Các cấu hình tổ hợp đơn giản 11 1.4.1 Chỉnh hợp lặp 11 1.4.2 Chỉnh hợp khơng lặp 12 1.4.3 Hốn vị 13 1.4.4 Tổ hợp 13 Chƣơng BÀI TOÁN ĐẾM 2.1 Giới thiệu toán 17 2.2 Nguyên lý bù trừ 18 2.3 Qui toán đơn giản 22 2.4 Cơng thức truy hồi 25 2.4.1 Các ví dụ minh họa 25 2.4.2 Giải công thức truy hồi tuyến tính hệ số 27 2.5 Liệt kê 31 Chƣơng BÀI TOÁN TỒN TẠI 3.1 Giới thiệu toán 35 3.2 Phương pháp phản chứng 38 3.3 Nguyên lý Dirichlet 39 191 3.3.1 Giới thiệu nguyên lý 39 3.3.2 Các ví dụ minh họa 40 3.4 Hệ đại diện phân biệt 43 3.4.1 Khái niệm hệ đại diện phân biệt 43 3.4.2 Định lí Hall 44 Chƣơng 4: BÀI TỐN LIỆT KÊ 4.1 Giới thiệu tốn 48 4.2 Phương pháp sinh 49 4.2.1 Giới thiệu thuật tốn sinh 49 4.2.2 Các ví dụ 50 4.3 Thuật toán quay lui 57 4.3.1 Giới thiệu thuật toán 57 4.3.2 Các ví dụ 59 Chƣơng : BÀI TỐN TỐI ƢU 5.1 Giới thiệu toán 67 5.1.1 Phát biểu toán 67 5.1.2 Đưa toán tối ưu dạng tổng quát 67 5.2 Các thuật toán duyệt 71 5.2.1 Duyệt tồn 71 5.2.2 Thuật tốn nhánh cận 72 5.3 Thuật toán nhánh cận giải toán người du lịch 79 5.3.1 Thủ tục rút gọn 81 5.3.2 Thủ tục chọn cạnh phân nhánh 84 5.3.3 Thuật toán nhánh cận giải toán người du lịch 89 5.4 Bài tốn lập lịch gia cơng hai máy Thuật toán Jonhson 90 5.4.1 Bài toán lập lịch gia công hai máy 90 5.4.2 Định lý Jonhson 93 5.4.3 Thuật toán Jonhson 95 Chƣơng CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 192 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH 6.1 Các khái niệm lý thuyết đồ thị 100 6.1.1 Định nghĩa đồ thị 100 6.1.2 Các thuật ngữ 103 6.1.3 Đường đi, chu trình Đồ thị liên thơng 105 6.1.4 Một số dạng đồ thị đặc biệt 108 6.2 Biểu diễn đồ thị máy tính 109 6.2.1 Biểu diễn đồ thị danh sách cạnh 111 6.2.2 Biểu diễn đồ thị danh sách kề 112 6.2.3 Biểu diễn đồ thị ma trận kề 113 6.2.4 Sự đẳng cấu đồ thị 114 Chƣơng CÁC THUẬT TỐN TÌM KIẾM TRÊN ĐỒ THỊ VÀ ỨNG DỤNG 7.1 Tìm kiếm theo chiều sâu 121 7.1.1 Giới thiệu thuật tốn 121 7.1.2 Ví dụ minh họa 122 7.2 Tìm kiếm theo chiều rộng 123 7.2.1 Giới thiệu thuật tốn 123 7.2.2 Ví dụ minh họa 124 7.3 Tìm đường kiểm tra tính liên thơng 125 7.3.1 Bài tốn tìm đường hai đỉnh 125 7.3.2 Tìm thành phần liên thơng 126 Chƣơng ĐỒ THỊ EULER VÀ ĐỒ THỊ HAMILTON 8.1 Đồ thị Euler 130 8.1.1 Định nghĩa 130 8.1.2 Định lý Euler 131 8.1.3 Thuật toán Flor 133 8.2 Đồ thị Hamilton 134 193 8.2.1 Định nghĩa 135 8.2.2 Định lý (Dirak) 140 8.2.3 Thuật tốn liệt kê chu trình Hamilton đồ thị 141 Chƣơng CÂY VÀ CÂY KHUNG CỦA ĐỒ THỊ BÀI TOÁN ĐƢỜNG ĐI NGẮN NHẤT 9.1 Cây tính chất 144 9.2 Cây khung đồ thị 147 9.3 Bài toán khung nhỏ 149 9.3.1 Thuật toán Kruskal 150 9.3.2 Thuật toán Prim 153 9.4 Bài toán đường ngắn 158 9.4.1 Các khái niệm 158 9.4.2 Đường ngắn xuất phát từ đỉnh 160 9.4.3 Thuật toán Dijkstra 163 9.4.4 Đường ngắn tất cặp đỉnh 168 Chƣơng 10 BÀI TOÁN LUỒNG CỰC ĐẠI TRONG MẠNG 10.1 Bài toán luồng cực đại 176 10.1.1 Khái niệm mạng 176 10.1.2 Luồng mạng 176 10.1.3 Bài toán luồng cực đại mạng 177 10.2 Lát cắt Đường tăng luồng 177 10.2.1 Khái niệm lát cắt 177 10.2.2 Đường tăng luồng 179 10.3 Thuật tốn tìm luồng cực đại mạng 180 10.4 Một số tốn luồng tổng qt 185 10.5 Mét sè øng dơng tổ hợp 188 194 tài liệu tham khảo [1] KENNETH H ROSEN Toán rời rạc ứng dụng tin häc NXB Khoa häc vµ kü thuËt 2000 [2] Hoµng Tụy Đồ thị hữu hạn ứng dụng vËt trï häc NXB Khoa häc, Hµ Néi 1964 [3] Nguyễn Đức Nghĩa- Nguyễn Tô Thành Toán rời rạc NXB Giáo dục 2003 [4] Đặng Huy Ruận Lý thuyết đồ thị ứng dụng Nhà xuất Khoa học kỹ thuật.2004 [5] Đỗ Đức Giáo Toán rời rạc Nhà xuất Khoa học kỹ thuật 1999 [6] Đại học Khoa học-Đại học Huế Giáo trình Toán rời rạc 2003 195 ... giả Những thuật toán nh- gọi thuật toán tìm kiếm đồ thị Các thuật toán giữ vai trò quan trọng việc thiết kế thuật toán đồ thị Trong mục giới thiệu hai thuật toán tìm kếm đồ thị: thuật toán tìm... a b f g 140 c 8 .2. 2 Thuật toán liệt kê tất chu trình Hamilton đồ thị Thuật tốn sau xây dựng dựa sở thuật toán quay lui cho phép liệt kê tất chu trình Hamilton đồ thị Các chu trình Hamilton thu... cỡ nn -2 , rõ ràng thực đ-ợc với đồ thị với số đỉnh cỡ hàng chục Rất may toán khung nhỏ đà có thuật toán hiệu để giải chúng Chúng ta xét hai số thuật toán nhvậy: thuật toán Kruskal thuật toán Prim

Ngày đăng: 28/06/2021, 20:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. KENNETH H. ROSEN . Toán rời rạc ứng dụng trong tin học. NXB Khoa học và kỹ thuật. 2000 Khác
[2]. Hoàng Tụy. Đồ thị hữu hạn và các ứng dụng trong vật trù học. NXB Khoa học, Hà Nội. 1964 Khác
[3]. Nguyễn Đức Nghĩa- Nguyễn Tô Thành. Toán rời rạc. NXB Giáo dục. 2003 Khác
[4]. Đặng Huy Ruận. Lý thuyết đồ thị và ứng dụng. Nhà xuất bản Khoa học và kü thuËt.2004 Khác
[5]. Đỗ Đức Giáo. Toán rời rạc. Nhà xuất bản Khoa học và kỹ thuật. 1999 [6]. Đại học Khoa học-Đại học Huế. Giáo trình Toán rời rạc. 2003 Khác

TỪ KHÓA LIÊN QUAN

w