Toán rời rạc - Chương 5: Các khái niệm cơ bản của lý thuyết đồ thị - Phần 2: Chu trình và đường đi euler chu trình và đường đi Hamilton thuật toán Dijkstra

Chu trình và đường đi Euler

Bài toán

Có thể xuất phát tại một điểm nào đó trong thành phố, đi qua tất cả 7 cây cầu, mỗi cây một lần, rồi trở về điểm xuất phát được không?

Leonhard Euler đã tìm ra lời giải cho bài toán vào

năm 1736

 

ppt 47 trang dienloan 23980
Bạn đang xem 20 trang mẫu của tài liệu "Toán rời rạc - Chương 5: Các khái niệm cơ bản của lý thuyết đồ thị - Phần 2: Chu trình và đường đi euler chu trình và đường đi Hamilton thuật toán Dijkstra", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Toán rời rạc - Chương 5: Các khái niệm cơ bản của lý thuyết đồ thị - Phần 2: Chu trình và đường đi euler chu trình và đường đi Hamilton thuật toán Dijkstra

Toán rời rạc - Chương 5: Các khái niệm cơ bản của lý thuyết đồ thị - Phần 2: Chu trình và đường đi euler chu trình và đường đi Hamilton thuật toán Dijkstra
 CHƯƠNG 5: CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THỊ 
PHẦN 2: 
 Chu trình và đường đi Euler 
 Chu trình và đường đi Hamilton 
 Thuật toán Dijkstra 
1 
2 
Chu trình và đường đi Euler 
Bài toán 
Có thể xuất phát tại một điểm nào đó trong thành phố, đi qua tất cả 7 cây cầu, mỗi cây một lần, rồi trở về điểm xuất phát được không? 
Leonhard Euler đã tìm ra lời giải cho bài toán vào năm 1736 
3 
Leonhard Euler1707 - 1783 
Leonhard Euler (15/04/1707 – 18/9/1783) là một nhà toán học và nhà vật lý học Thụy Sĩ. Ông (cùng với Archimedes và Newton) được xem là một trong những nhà toán học lừng lẫy nhất. Ông là người đầu tiên sử dụng từ "hàm số" (được Gottfried Leibniz định nghĩa trong năm 1694) để miêu tả một biểu thức có chứa các đối số, như y = F(x). Ông cũng được xem là người đầu tiên dùng vi tích phân trong môn vật lý. 
4 
Leonhard Euler1707 - 1783 
Ông sinh và lớn lên tại Basel, và được xem là thần đồng toán học từ nhỏ. Ông làm giáo sư toán học tại Sankt-Peterburg, sau đó tại Berlin, rồi trở lại Sankt-Peterburg. Ông là nhà toán học viết nhiều nhất: tất cả các tài liệu ông viết chứa đầy 75 tập. Ông là nhà toán học quan trọng nhất trong thế kỷ 18 và đã suy ra nhiều kết quả cho môn vi tích phân mới được thành lập. Ông bị mù hoàn toàn trong 17 năm cuối cuộc đời, nhưng khoảng thời gian đó là lúc ông cho ra hơn nửa số bài ông viết. 
Tên của ông đã được đặt cho một miệng núi lửa trên Mặt Trăng và cho tiểu hành tinh 2002. 
5 
Chu trình và đường đi Euler 
Bài toán 
Mô hình hóa bài toán 
Xây dựng đồ thị G 
Đỉnh: Các vùng đất trong sơ đồ 
Cạnh: các cây cầu nối giữa hai vùng đất 
Yêu cầu 
Tồn tại hay không một chu trình đơn trong đa đồ thị G = (V, E) có chứa tất cả các cạnh của đồ thị? 
6 
Chu trình và đường đi Euler 
Định nghĩa 
Cho đồ thị G=(V,E) liên thông 
Chu trình Euler 
Chu trình đơn chứa tất cả các cạnh của đồ thị G. 
Đồ thị Euler 
Đồ thị có chứa một chu trình Euler 
Đường đi Euler 
Đường đi đơn chứa tất cả các cạnh của đồ thị G 
7 
Chu trình và đường đi Euler 
Định nghĩa 
Ví dụ: Chỉ ra đường đi và chu trình Euler (nếu có) trong các đồ thị sau đây? 
8 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Định lý về chu trình Euler 
Một đồ thị liên thông G=(V, E) có chu trình Euler khi và chỉ khi mỗi đỉnh của nó đều có bậc chẵn. 
Áp dụng định lý trên tìm lời giải cho bài toán mở đầu? 
9 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Các thuật toán tìm chu trình Euler: 
 1. Thuật toán Euler 
 Ký hiệu: C – chu trình Euler cần tìm của đồ thị G. 
 Bước 1: Đặt H := G, k :=1, C := . Chọn đỉnh v bất kỳ của G. 
 Bước 2: Xuất phát từ v, xây dựng chu trình đơn bất kỳ C k trong H. 
 	 Nối C k vào C, C := C  C k . 
 Bước 3: Loại khỏi H chu trình C k . Nếu H chứa các đỉnh cô lập thì 	 loại chúng ra khỏi H. 
 Bước 4: Nếu H =  thì kết luận C là chu trình Euler cần tìm, kết 	 thúc. 
	 Nếu H  thì chọn v là đỉnh chung của H và C. Đặt k:= k+1, 	 quay lại bước 2. 
10 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Các thuật toán tìm chu trình Euler: 
 1. Thuật toán Euler 
 Ví dụ: Tìm chu trình Euler 
11 
Chu trình và đường đi Euler 
 Ví dụ: Tìm chu trình Euler 
i 
g 
12 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Các thuật toán tìm chu trình Euler: 
 2. Thuật toán Fleury: Xuất phát từ một đỉnh bất kỳ của đồ thị và tuân theo hai quy tắc sau 
Qui tắc 1: Mỗi khi đi qua một cạnh nào thì 
Xóa cạnh vừa đi qua 
Xóa đỉnh cô lập (nếu có) 
Qui tắc 2: 
Tại mỗi đỉnh, ta chỉ đi theo một cạnh là cầu nếu không có sự lựa chọn nào khác. 
a 
b 
c 
d 
e 
f 
g 
h 
abcfdcefghbga 
13 
Chu trình và đường đi Euler 
2. Thuật toán Fleury: 
 Ví dụ: 
14 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Định lý về đường đi Euler 
Đồ thị liên thông G có đường đi Euler, không có chu trình Euler khi và chỉ khi G có đúng 2 đỉnh bậc lẻ 
15 
Chu trình và đường đi Euler 
Trong đồ thị vô hướng 
Định lý về đường đi Euler 
Ví dụ: Đồ thị nào có đường đi Euler? 
16 
Chu trình và đường đi Euler 
Trong đồ thị có hướng 
Định lý về chu trình Euler 
Đồ thị có hướng G=(V, E) có chu trình Euler khi và chỉ khi 
G liên thông mạnh 
deg + (v) = deg - (v),  v V 
17 
Chu trình và đường đi Euler 
Trong đồ thị có hướng 
Định lý về chu trình Euler 
Ví dụ: Đồ thị nào có chu trình Euler? 
18 
Chu trình và đường đi Euler 
Trong đồ thị có hướng 
Định lý về đường đi Euler 
G = (V, E) là đồ thị có hướng 
G có đường đi Euler nhưng không có chu trình Euler khi và chỉ khi 
G liên thông yếu 
 s V : deg + ( s ) = deg - ( s ) + 1 
 t V : deg + ( t ) = deg - ( t ) - 1 
deg + ( v ) = deg - ( v ),  v V \ {s, t} 
19 
Chu trình và đường đi Euler 
Trong đồ thị có hướng 
Định lý về đường đi Euler 
Ví dụ 
20 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Định nghĩa 
Chu trình Hamilton 
Chu trình bắt đầu từ một đỉnh v nào đó qua tất cả các đỉnh còn lại mỗi đỉnh đúng một lần rồi quay trở về v đ ư ợc gọi là chu trình H amilton 
Đồ thị Hamilton 
Đồ thị có chứa chu trình Hamilton 
21 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Điều kiện đủ 
Định lý Ore (1960) 
Cho G = (V, E) là một đơn đồ thị liên thông 
|V| = n 3 
deg(v) + deg(w) n, với mọi cặp đỉnh không liền kề v, w 
Khi đó G có chu trình Hamilton 
22 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Điều kiện đủ 
Hệ quả (Định lý Dirac-1952) 
Cho G = (V, E) là một đơn đồ thị 
|V| = n 3 
deg(v) n/2, v V 
Khi đó G có chu trình Hamilton 
23 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Điều kiện đủ 
Định lý Pósa 
Cho G = (V, E) là một đơn đồ thị, |V| = n 3 
|{v V: deg(v) k}| k-1  k [1, (n-1)/2) 
|{v V: deg(v) (n-1)/2}| (n-1)/2, nếu n lẻ 
Khi đó G có chu trình Hamilton 
24 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Điều kiện đủ 
Ví dụ 
25 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Phương pháp tìm chu trình Hamilton 
Qui tắc 1: Nếu tồn tại một đỉnh v của G có d(v)<=1 thì đồ thị G không có chu trình Hamilton. 
Qui tắc 2: Nếu đỉnh v có bậc là 2 thì cả 2 cạnh tới v đều phải thuộc chu trình Hamilton. 
Qui tắc 3: Chu trình Hamilton không chứa bất kỳ chu trình con thực sự nào. 
Qui tắc 4: Trong quá trình xây dựng chu trình Hamilton, sau khi đã lấy 2 cạnh tới một đỉnh v đặt vào chu trình Hamilton rồi thì không thể lấy thêm cạnh nào tới v nữa, do đó có thể xóa mọi cạnh còn lại tới v. 
26 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Phương pháp tìm chu trình Hamilton 
Ví dụ 1: Tìm một chu trình Hamilton 
a 
b 
c 
g 
h 
i 
d 
e 
f 
27 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Phương pháp tìm chu trình Hamilton 
Ví dụ 2: Đồ thị sau có chu trình Hamilton không? 
28 
Chu trình & đường đi Hamilton 
Chu trình Hamilton 
Phương pháp tìm chu trình Hamilton 
Ví dụ 3: Đồ thị sau có chu trình Hamilton không? 
D 
A 
B 
C 
F 
E 
H 
G 
I 
J 
K 
29 
Chu trình & đường đi Hamilton 
Đường đi Hamilton 
Định nghĩa 
Đường đi sơ cấp đi qua tất cả các đỉnh của đồ thị G (đi qua mỗi đỉnh đúng một lần). 
Ví dụ: 
v 1 v 3 v 5 v 6 v 2 v 4 
v 5 
v 6 
u 5 
u 6 
u 7 
Không có đường đi Hamilton 
30 
Chu trình & đường đi Hamilton 
Đường đi Hamilton 
Định lý K önig 
Mọi đồ thị có hướng đầy đủ (đồ thị vô hướng tương ứng là đầy đủ) đều có đường đi Hamilton. 
Chứng minh (xem tài liệu) 
31 
Bài toán đường đi ngắn nhất 
Mở đầu 
Nhiều bài toán không chỉ quan tâm tồn tại hay không đường đi giữa 2 đỉnh 
Lựa chọn đường đi với chi phí ít nhất 
Khoảng cách (dặm) 
32 
Bài toán đường đi ngắn nhất 
Mở đầu 
Mô hình hóa bài toán về đồ thị có trọng số 
Đồ thị có hướng G = ( V , E ) với hàm trọng số W : E ® R ( gán các giá trị thực cho các cạnh) 
Trọng số của đường đi p = v 1 ® v 2 ®  ® v k là 
Đường đi ngắn nhất là đường đi có trọng số nhỏ nhất 
33 
34 
Bài toán đường đi ngắn nhất 
Mở đầu 
Ví dụ: Đường đi ngắn nhất giữa đỉnh 1 và 4: 
35 
Bài toán đường đi ngắn nhất 
Thuật toán Dijkstra 
Ý tưởng 
Ở mỗi lần lặp thì thuật toán sẽ tìm ra 1 đỉnh với đường đi ngắn nhất từ a tới đỉnh này là xác định 
36 
Bài toán đường đi ngắn nhất 
Thuật toán Dijkstra 
Ký hiệu: 
Nhãn của đỉnh v : L( v ) 
Lưu trữ độ dài đường đi ngắn nhất từ a đến v được biết cho đến thời điểm hiện tại 
Tập S: tập các đỉnh mà đường đi ngắn nhất từ a đến chúng đã xác định 
37 
Bài toán đường đi ngắn nhất 
Thuật toán Dijkstra 
Thuật toán (Tìm đường đi ngắn nhất từ a đến z) 
Bước 1: Khởi tạo 
L(a) = 0; L(v)=vo cung lon, S =  
Bước 2: Nếu z S thì kết thúc 
Bước 3: Chọn đỉnh 
Chọn u sao cho: 	L(u) = min { L(v) | v  S} 
Đưa u vào tập S: 	S = S  {u} 
Bước 4: Sửa nhãn 
Với mỗi đỉnh v ( v S) kề với u 
L(v) = min { L(v); L(u) + w(uv) } (ký hiệu w(uv)=trọng số cạnh uv) 
Bước 5: Quay lại Bước 2 
38 
Bài toán đường đi ngắn nhất 
Thuật toán Dijkstra 
Ví dụ 
Tìm độ dài đường đi ngắn nhất giữa đỉnh a và z ? 
Đáp án: đường đi ngắn nhất: abedz, độ dài 7. 
39 
Bài giải: Thuật toán Dijkstra cho bài toán được trình bày trong bảng sau 
Đáp số: đường đi ngắn nhất: abedz, độ dài 7. 
Nếu hỏi độ dài ngắn nhất đi từ a đến d thì đáp số là?? Và đường đó là. 
40 
Ví dụ 
Cho ma trận kề của đơn đồ thị có trọng số G có dạng 
Vẽ đồ thị G 
Dùng thuật toán Dijkstra: 
b) Tìm độ dài đường đi ngắn nhất từ đỉnh a đến các đỉnh còn lại của G? Chỉ ra các đường đi đó. 
41 
42 
43 
Bài toán đường đi ngắn nhất 
Thuật toán tìm đường đi ngắn nhất 
Thuật toán Dijkstra 
Định lý 
Thuật toán Dijkstra tìm được đường đi ngắn nhất giữa 2 đỉnh trong đơn đồ thị liên thông, có trọng số. 
Nhận xét 
Chỉ đúng cho đồ thị có trọng số không âm 
Nhãn sau cùng của mỗi đỉnh là độ dài đường đi ngắn nhất từ đỉnh xuất phát đến nó. 
44 
45 
46 
47 

File đính kèm:

  • ppttoan_roi_rac_chuong_5_cac_khai_niem_co_ban_cua_ly_thuyet_do.ppt