Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
708,5 KB
Nội dung
TOÁN RỜI RẠC ỨNG DỤNG TRONG TIN HỌC CÁC BÀI TỐN VỀ ĐƯỜNG ĐI Chu trình đường Euler Bài tốn Có thể xuất phát điểm thành phố, qua tất cầu, lần, trở điểm xuất phát không? Leonhard Euler tìm lời giải cho tốn vào năm 1736 Chương Các toán đường Leonhard Euler 1707 - 1783 Leonhard Euler (15/04/1707 – 18/9/1783) nhà toán học nhà vật lý học Thụy Sĩ Ông (cùng với Archimedes Newton) xem nhà toán học lừng lẫy Ông người sử dụng từ "hàm số" (được Gottfried Leibniz định nghĩa năm 1694) để miêu tả biểu thức có chứa đối số, y = F(x) Ông xem người dùng vi tích phân mơn vật lý Chương Các toán đường Leonhard Euler 1707 - 1783 Ông sinh lớn lên Basel, xem thần đồng toán học từ nhỏ Ơng làm giáo sư tốn học Sankt-Peterburg, sau Berlin, trở lại SanktPeterburg Ơng nhà toán học viết nhiều nhất: tất tài liệu ơng viết chứa đầy 75 tập Ơng nhà toán học quan trọng kỷ 18 suy nhiều kết cho mơn vi tích phân thành lập Ơng bị mù hồn tồn 17 năm cuối đời, khoảng thời gian lúc ơng cho nửa số ông viết Tên ông đặt cho miệng núi lửa Mặt Trăng cho tiểu hành tinh 2002 Chương Các toán đường Chu trình đường Euler Bài tốn Mơ hình hóa tốn Xây dựng đồ thị G Đỉnh: Các vùng đất sơ đồ Cạnh: cầu nối hai vùng đất Yêu cầu Tồn hay không chu trình đơn đa đồ thị G = (V, E) có chứa tất cạnh đồ thị? Chương Các tốn đường Chu trình đường Euler Định nghĩa Cho G=(V,E) đa đồ thị vơ hướng Chu trình Euler Đồ thị Euler Chu trình đơn chứa tất cạnh đồ thị G Đồ thị có chứa chu trình Euler Đường Euler Đường đơn chứa tất cạnh đồ thị G Chương Các toán đường Chu trình đường Euler Định nghĩa Ví dụ: Chỉ đường chu trình (nếu có) đồ thị sau đây? Chương Các tốn đường Chu trình đường Euler Trong đồ thị vô hướng Định lý chu trình Euler Một đa đồ thị liên thơng G=(V, E) có chu trình Euler đỉnh có bậc chẵn Chứng minh Chương Các tốn đường Chu trình đường Euler Trong đồ thị vơ hướng Thuật tốn Fleury Qui tắc 1: Xóa cạnh vừa qua Xóa đỉnh lập (nếu có) Qui tắc Tại đỉnh, ta theo cạnh cầu khơng có lựa chọn khác Chương Các toán đường Chu trình đường Euler Trong đồ thị vơ hướng Thuật tốn Fleury Ví dụ Chương Các toán đường 10 Bài toán đường ngắn Mở đầu Ví dụ Chương Các toán đường 34 Bài toán đường ngắn Thuật toán Dijkstra Ý tưởng Tìm độ dài đường đến đỉnh gần a nhất, đến đỉnh gần kế tiếp, Sử dụng tập hợp S chứa đỉnh xét xong Những đỉnh thuộc S đỉnh mà độ dài từ a đến xác định Ở bước, chọn đỉnh u ”gần” nhất, thêm vào tập S cập nhật độ dài đường qua cạnh từ u Chương Các toán đường 35 Bài toán đường ngắn Thuật toán Dijkstra Ý tưởng Nhãn đỉnh v: Li(v) Lưu trữ độ dài đường từ a đến v lần lặp thứ i Những đỉnh thuộc S có nhãn cố định Lk(v) = { Lk-1(v); Lk-1(u) + w(uv) } L(v) a L(u) u v w(uv) L(u) + w(uv) Chương Các toán đường 36 Bài toán đường ngắn Thuật toán Dijkstra Thuật toán Bước 1: Khởi tạo S=∅ Chọn u cho Đưa u vào tập S: L(u) = min{ L(v) | v ∉ S} S = S ∪ {u} Bước 4: Sửa nhãn L0(v) = ∞ (∀ v ≠ a); Bước 2: Nếu S = V kết thúc Bước 3: Cố định nhãn L0(a) = 0; Với đỉnh v kề với u L(v) = { L(v); L(u) + w(uv) } Bước 5: Quay lại Bước Chương Các toán đường 37 u a ∞ 10 u x 5 u y Chương Các toán đường a y v 14 x ∞ 10 9 x 13 ∞ v a y ∞ x 10 v 10 10 ∞ u ∞ a v y 38 Bài tốn đường ngắn Thuật tốn tìm đường ngắn Thuật toán Dijkstra Định lý Thuật tốn Dijkstra tìm đường ngắn đỉnh đơn đồ thị liên thông, có trọng số Nhận xét Chỉ cho đồ thị có trọng số khơng âm Nhãn sau đỉnh độ dài đường ngắn từ đỉnh xuất phát đến Chương Các toán đường 39 Bài toán đường ngắn Thuật tốn tìm đường ngắn Thuật toán Dijkstra Bài toán vận dụng Trên bàn cờ 8x8 có đặt mã Hãy tìm cách cho mã với số bước di chuyển từ vị trí đứng đến vị trí xác định bàn cờ Chương Các toán đường 40 Bài toán đường ngắn Thuật tốn tìm đường ngắn Thuật toán Dijkstra Bài toán vận dụng Cho dãy số gồm n số nguyên Hãy tìm dãy nhiều phần tử dãy cho mà tổng phần tử liên tiếp số nguyên tố Dãy dãy thu sau xóa số phần tử từ dãy số ban đầu Chương Các toán đường 41 Bài toán đường ngắn Thuật toán Hedetniemi Được công bố vào năm 1990 Ma trận ”liền kề” aii = aij = ∞ vivj ∉ E aij = w(vi, vj) i≠j Chương Các toán đường 42 Bài toán đường ngắn Thuật toán Hedetniemi Được công bố vào năm 1990 Ma trận ”liền kề” aii = aij = ∞ vivj ∉ E aij = w(vi, vj) i≠j Ví dụ Chương Các tốn đường a b c d e z ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 43 Bài toán đường ngắn Thuật toán Hedetniemi Phép cộng Hedetniemi Ký hiệu: A2 = A ; A = A2 Ak = Ak-1 A A Chương Các toán đường 44 Bài toán đường ngắn Thuật tốn Hedetniemi Phép cộng Hedetniemi Ví dụ Ví dụ ∞ 1 4 ∞ Chương Các toán đường ∞ 0 5 = 1 4 ∞ 5 0 45 Bài toán đường ngắn Thuật toán Hedetniemi Định lý Ak-1 ≠ Ak = Ak+1 ⇒ Ak[i,j] độ dài đường ngắn đỉnh vi vj Thuật toán A ma trận liền kề đồ thị Lần lượt tính A2, A3, , Ak thỏa Ak-1 ≠ Ak = Ak+1 Ak-1 ≠ Ak = Ak+1 Chương Các toán đường 46 Bài toán đường ngắn Thuật tốn Hedetniemi Ví dụ Tìm độ dài đường ngắn đỉnh a z? a Chương Các toán đường b c d e z 47 Bài toán đường ngắn Thuật tốn Hedetniemi Ví dụ Tìm độ dài đường ngắn đỉnh 4? Chương Các toán đường 48 ... Đường ngắn đường có trọng số nhỏ Chương Các toán đường 33 Bài toán đường ngắn Mở đầu Ví dụ Chương Các toán đường 34 Bài toán đường ngắn Thuật toán Dijkstra Ý tưởng Tìm độ dài đường. .. Ak-1 ≠ Ak = Ak+1 Ak-1 ≠ Ak = Ak+1 Chương Các toán đường 46 Bài toán đường ngắn Thuật toán Hedetniemi Ví dụ Tìm độ dài đường ngắn đỉnh a z? a Chương Các toán đường b c d e z 47 Bài toán đường. .. ∞ 43 Bài toán đường ngắn Thuật toán Hedetniemi Phép cộng Hedetniemi Ký hiệu: A2 = A ; A = A2 Ak = Ak-1 A A Chương Các toán đường 44 Bài toán đường ngắn Thuật toán Hedetniemi