Chương 3 các bài TOÁN ĐƯỜNG đi

74 476 0
Chương 3   các bài TOÁN ĐƯỜNG đi

Đ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

CÁC BÀI TOÁN ĐƯỜNG ĐI ntsonptnk@gmail.com NỘI DUNG  Đường ngắn Bài toán Nguyên lý Bellman Thuật toán Dijkstra Thuật toán Floyd Thuật toán Ford-Bellman  Đồ thị Euler  Đồ thị Hamilton Lý thuyết đồ thị , chương - Nguyễn Thanh Sơn A 8 B 2 C E D F ĐƯỜNG ĐI NGẮN NHẤT Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn BÀI TOÁN Cho đồ thị có hướng có trọng G=(X, E) hai đỉnh s, t ∈X, gọi P đường từ đỉnh s đến đỉnh t, trọng lượng (hay giá) đường P định nghĩa là: L(P) = ∑(e∈P)L(e) Bài toán: tìm đường từ s đến t có trọng lượng nhỏ Lý thuyết đồ thị - Nguyễn Thanh Sơn NHẬN XÉT  Bài toán phát biểu cho đồ thị có hướng có trọng, thuật toán trình bày áp dụng cho đồ thị vô hướng có trọng cách xem cạnh đồ thị vô hướng hai cạnh có trọng lượng nối cặp đỉnh có chiều ngược  Khi tìm đường ngắn bỏ bớt cạnh song song chừa lại cạnh có trọng lượng nhỏ  Đối với khuyên có trọng lượng không âm bỏ mà không làm ảnh hưởng đến kết toán Đối với khuyên có trọng lượng âm đưa đến toán đường ngắn lời giải Lý thuyết đồ thị - Nguyễn Thanh Sơn ĐIỀU KIỆN TỒN TẠI LỜI GiẢI P đường từ s đến t, giả sử P có chứa mạch µ Nếu L(µ) ≥ cải tiến đường P cách bỏ mạch µ Nếu L(µ) < không tồn đường ngắn từ đỉnh s đến đỉnh t quay vòng µ nhiều vòng trọng lượng đường P nhỏ đi, tức L(P)→ -∞ k t s µ Lý thuyết đồ thị - Nguyễn Thanh Sơn DỮ LIỆU NHẬP  Ma trận trọng lượng LNxN định nghĩa: Lij = trọng lượng cạnh nhỏ nối i đến j có, Lij = ∞ cạnh nối i đến j  Khi cài đặt thuật toán dùng thay cho ∞ cách đưa thêm số kiểm tra thích hợp 12 A C B 15 16 14 D  12 ∞     ∞ 15 14  ∞ ∞ ∞    5 ∞ ∞ 0   Lý thuyết đồ thị - Nguyễn Thanh Sơn s P1 k P2 t P1 ’ NGUYÊN LÝ BELLMAN Lý thuyết đồ thị - Nguyễn Thanh Sơn NGUYÊN LÝ BELLMAN  Gọi P đường ngắn từ đỉnh s đến đỉnh t; k ∈ P Giả sử P=P1⊕P2 với P1 đường P từ s đến k P2 đường P từ k đến t Khi P1 đường ngắn từ s đến k s P1 k P2 t P1 ’ L(P1’) < L(P1) ⇒ L(P1’⊕P2) < L(P1⊕P2)=L(P) Lý thuyết đồ thị - Nguyễn Thanh Sơn A B E C D F TÌM ĐƯỜNG ĐI NGẮN NHẤT TRÊN ĐỒ THỊ CÓ TRỌNG SỐ DƯƠNG THUẬT TOÁN DIJKSTRA Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 10 ĐỊNH NGHĨA  DÂY CHUYỀN EULER: dây chuyền qua tất cạnh đồ thị, cạnh lần  CHU TRÌNH EULER: dây chuyền Euler có đỉnh đầu trùng với đỉnh cuối  ĐƯỜNG ĐI EULER: đường qua tất cạnh đồ thị, cạnh lần  MẠCH EULER: đường Euler có đỉnh đầu trùng với đỉnh cuối  ĐỒ THỊ EULER VÔ HƯỚNG: đồ thị vô hướng có chứa chu trình Euler  ĐỒ THỊ EULER CÓ HƯỚNG: đồ thị có hướng có chứa mạch Euler Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 60 ĐỊNH LÝ EULER Đồ thị vô hướng G=(X, E) G đồ thị Euler ⇔ G liên thông d(x) chẵn ∀x∈X G có chứa dây chuyền Euler không chứa chu trình chu trình Euler ⇔ G liên thông có chứa hai đỉnh bậc lẻ Đồ thị có hướng G=(X, E) G đồ thị Euler ⇔ G liên thông d+(x)=d-(x) ∀x ∈ X Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 61 VÍ DỤ a e a d b c (G1) Liên thông có đỉnh bậc lẻ  có dây chuyền Euler: bacdaedbc e c b d (G2) có đường Euler: bacbd a d b c (G3) Liên thông đỉnh có bậc chẵn  có chu trình Euler: bacdaedbcb Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 62 GIẢI THUẬT FLEURY  Cạnh e đồ thị G gọi CẦU xóa e khỏi đồ thị làm tăng số thành phần liên thông G Giải thuật Gọi chu trình cần tìm C Khởi tạo: Chọn đỉnh cho vào C Lặp G cạnh Chọn cạnh e nối đỉnh vừa chọn với đỉnh kề với theo nguyên tắc: chọn cầu không cạnh khác để chọn Bổ sung e đỉnh cuối vào C Xóa e khỏi G Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 63 VÍ DỤ 5 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 64 GiẢI THUẬT XÁC ĐỊNH CÁC CHU TRÌNH THÀNH PHẦN Input: đồ thị Euler G(X, E) Output: chu trình Euler C G Chọn đỉnh v ∈ X; C = {v} Lặp G cạnh Chọn đỉnh v ∈ C cạnh G Tìm chu trình C’ xuất phát từ v Ghép C’ vào C Loại bỏ cạnh C’ khỏi G Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 65 VÍ DỤ 5 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 66 Sir William Rowan Hamilton (1805-1865) ĐỒ THỊ HAMILTON Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 67 BÀI TOÁN KHỞI ĐIỂM “Xuất phát từ đỉnh khối thập nhị diện đều, dọc theo cạnh khối cho qua tất đỉnh khác, đỉnh qua lần, sau trở đỉnh xuất phát” Bài toán nầy nhà toán học Hamilton đưa vào năm 1859 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 68 ĐỊNH NGHĨA Đồ thị vô hướng G(X, E)  DÂY CHUYỀN HAMILTON: dây chuyền qua tất đỉnh đồ thị đỉnh lần  CHU TRÌNH HAMILTON: dây chuyền Hamilton cạnh đồ thị nối đỉnh đầu dây chuyền với đỉnh cuối  ĐỒ THỊ HAMILTON: đồ thị có chứa chu trình Hamilton Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 69 MỘT SỐ KẾT QUẢ  Đồ thị đủ đồ thị Hamilton Với n lẻ ≥ Kn có (n-1)/2 chu trình Hamilton đôi cạnh chung  Đồ thị lưỡng phân G với hai tập đỉnh X1, X2 X1=X2=n Nếu d(x)≥n/2 ∀x G G đồ thị Hamilton  Đồ thị vô hướng đơn G gồm n đỉnh m cạnh Nếu m≥(n2-3n+6)/2 G đồ thị Hamilton Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 70  Đồ thị vô hướng đơn G gồm n đỉnh với n≥3 Nếu d(x)≥n/2 ∀x G G đồ thị Hamilton Nếu d(x)≥(n-1)/2 ∀x G G có dây chuyền Hamilton Nếu d(x)+d(y)≥n với cặp đỉnh x, y không kề G G đồ thị Hamilton Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 71 QUI TẮC XÁC ĐỊNH Nếu G có đỉnh bậc < G chu trình Hamilton Nếu đỉnh có bậc cạnh kề với phải nằm chu trình Hamilton Các cạnh thừa (ngoài cạnh chọn chu trình Hamilton) phải bỏ trình xác định chu trình Nếu trình xây dựng tạo nên chu trình đồ thị chu trình Hamilton Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 72 VÍ DỤ Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 73 BÀI TẬP Chứng minh nguyên lý Bellman Chứng minh tính đắn thuật toán Dijkstra, Floyd, Bellman Cài đặt thuật toán xác định chu trình Euler Xác định “nét” Đồ thị K nét Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 74 [...]... Sơn 3 32 VÍ DỤ t=2 u=4 v =3 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 33 VÍ DỤ t =3 u=1 v=2 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 34 VÍ DỤ t =3 u=1 v=4 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 35 VÍ DỤ t =3 u=2... chương 3 - Nguyễn Thanh Sơn 3 29 VÍ DỤ t=1 u =3 v=4 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 ∞ -1 5 1 8 3 14 1 13 ∞8-11 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 30 VÍ DỤ t=2 u=1 v =3 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 ∞ -1 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 31 VÍ DỤ t=2 u =3 v=x 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn... chương 3 - Nguyễn Thanh Sơn 26 VÍ DỤ Xác định đường đi ngắn nhất giữa các cặp đỉnh trên đồ thị gồm 4 đỉnh 6 cạnh 2 9 3 1 8 4 4 1 3 5 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 27 VÍ DỤ 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 ∞ -1 5 1 8 3 ∞ -1 13 ∞ -1 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 28 VÍ DỤ t=1 u =3 v=2 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 ∞ -1 5 1 8 3 14 ∞ -11 13 ∞ -1 Lý thuyết đồ thị - chương. .. thị - chương 3 - Nguyễn Thanh Sơn 19 GIÁ TRỊ CÁC BIẾN D, Labels D 0 3 1 2 0 ∞ ∞ ∞ ∞ ∞ ∞ 1 9 ∞ 2 7 4 3 7 4 7 5 Labels 4 3 5 6 7 1 2 3 4 5 6 7 0 -1 -1 -1 -1 -1 -1 -1 ∞ ∞ 6 1 1 -1 1 -1 -1 1 11 ∞ 6 2 4 9 ∞ 6 3 4 3 -1 1 9 ∞ 4 4 3 -1 9 ∞ 5 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 4 4 -1 1 3 -1 20 VÍ DỤ A 8 B 2 8 7 E 2 8 1 ∞ 2 7 C 3 0 2 4 5 B 9 F 2 7 5 E C 3 5 3 B 2 7 2 7 Lý thuyết đồ thị - chương 3 -... 8 C 3 0 2 3 5 F A 5 E 0 9 8 D 11 8 2 4 1 A 8 D F A 5 E 4 9 8 B 2 3 ∞ 2 C 0 4 1 9 D 8 F 3 5 21 VÍ DỤ A 8 B 2 2 7 7 C 3 5 E 0 2 4 1 D 9 8 F 3 5 A 8 B 2 2 7 7 C 3 5 E Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 0 2 4 1 9 D 8 F 3 5 22 THUẬT TOÁN DIJKSTRA – CÀI ĐẶT Graph Graph::Dijkstra(int s, int t) { //Tìm đường đi ngắn nhất từ s đến t } Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 23 THUẬT TOÁN... 12 6 ∞ -1 5 5 9 3 17 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 17 VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 7 4 2 9 8 4 0 -1 1 1 3 6 6 7 1 4 3 4 4 3 1 2 8 4 12 6 ∞ -1 5 5 9 3 17 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 18 VÍ DỤ ĐĐNN từ 1 đến 5 có trọng lượng D[5]=9: 5  3  4  1 7 4 2 9 8 4 0 -1 1 1 3 6 6 7 1 4 3 4 4 3 1 2 8 4 5 12 9 3 17 6 26 5 5 Lý... 3 1 2 8 4 12 6 ∞ -1 5 5 ∞ -1 17 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 15 VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 7 4 2 9 8 4 0 -1 1 1 3 6 6 7 1 4 3 4 4 3 1 2 8 4 12 6 ∞ -1 5 5 11 4 17 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 16 VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 7 4 2 9 8 4 0 -1 1 1 3 6 6 7 1 4 3 4 4 3. .. 1 6 3 1 3 4 2 8 5 4 7 12 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 5 17 6 13 VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá ∞ -1 2 9 0 -1 8 4 1 1 3 6 ∞ 7 -1 ∞ 3 -1 4 ∞ -1 2 8 4 12 6 ∞ -1 5 5 ∞ -1 17 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 14 VÍ DỤ V: đỉnh chưa bị tô màu; D[k]: số có màu đỏ; Labels[k]: số có màu xanh lá 9 1 2 9 8 4 0 -1 1 1 3 6 6 7 1 ∞ 3 -1... int temp[MAX]; int dem = 0; //In đường đi ngắn nhất từ s đến t dựa vào Labels while(Labels[t] != -1) { temp[dem++]=t; t=Labels[t]; } temp[dem++]=s; while (dem > 0) printf(“%d “, temp[ dem]); } Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 24 TÌM ĐƯỜNG ĐI NGẮN NHẤT GIỮA CÁC CẶP ĐỈNH TRÊN ĐỒ THỊ THUẬT TOÁN FLOYD Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 25 THUẬT TOÁN FLOYD Input: N, L – số đỉnh,... t =3 u=1 v=4 2 2 9 4 ∞ 2 -1 4 3 -1 ∞ 1 ∞ -1 4 17 2 5 1 8 3 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 35 VÍ DỤ t =3 u=2 v = 1, 4 2 2 9 3 4 13 2 4 3 -1 ∞ 1 16 3 8 3 4 17 2 5 1 14 1 13 81 Lý thuyết đồ thị - chương 3 - Nguyễn Thanh Sơn 3 36 ... v = 1, 13 3 16 4 14 13 81 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 39 VÍ DỤ t=4 u =3 v = 1, 2 13 3 16 4 12 13 81 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 40 k s t µ TÌM ĐƯỜNG ĐI NGẮN NHẤT... 36 VÍ DỤ t =3 u=4 v = 1, 2 13 3 16 17 14 13 81 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 37 VÍ DỤ t=4 u=1 v = 2, 13 3 16 4 14 13 81 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 38 VÍ DỤ t=4... chương - Nguyễn Thanh Sơn 32 VÍ DỤ t=2 u=4 v =3 2 ∞ -1 -1 ∞ ∞ -1 17 14 13 81 Lý thuyết đồ thị - chương - Nguyễn Thanh Sơn 33 VÍ DỤ t =3 u=1 v=2 2 ∞ -1 -1 ∞ ∞ -1 17 14 13 81 Lý thuyết đồ thị - chương

Ngày đăng: 07/12/2015, 13:54

Từ khóa liên quan

Mục lục

  • CÁC BÀI TOÁN ĐƯỜNG ĐI

  • NỘI DUNG

  • ĐƯỜNG ĐI NGẮN NHẤT

  • BÀI TOÁN

  • NHẬN XÉT

  • ĐIỀU KIỆN TỒN TẠI LỜI GiẢI

  • DỮ LIỆU NHẬP

  • NGUYÊN LÝ BELLMAN

  • Slide 9

  • THUẬT TOÁN DiJKSTRA

  • THUẬT TOÁN DIJKSTRA

  • VÍ DỤ

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • GIÁ TRỊ CÁC BIẾN D, Labels

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

Tài liệu liên quan