Bài giảng Lý thuyết đồ thị: Chương 5 - Nguyễn Trần Phi Phượng
Số trang: 20
Loại file: pdf
Dung lượng: 457.09 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 5 - Bài toán đường đi ngắn nhất của Nguyễn Trần Phi Phương sau đây bao gồm những nội dung về đồ thị có trọng số - bài toán đường đi ngắn nhất; thuật toán Ford-Bellman; thuật toán Dijkstra; thuật toán Floyd – đường đi ngắn nhất giữa tất cả các cặp đỉnh.
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 5 - Nguyễn Trần Phi PhượngChương 5 BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT5.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Bài toán: Cho G = là đồ thị có trọng số. s và t là 2 đỉnh của đồ thị. Hãy tìm đường đi có tổng trọng số nhỏ nhất từ s đến t. 20 VD: 5 15 15 3 9 9 5 5 Đường đi ngắn nhất từ Etna đến Oldtown là: Etna – Bangor – Orono – OldTown Đường đi ngắn nhất từ Hermae đến Etna là: Hermae – Hampdea – Bangor - Etna09/04/2011 Lý thuyết đồ thị 25.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất 1 10 2 5 7 20 9 -6 9 4 3 4 5 Tìm đường đi ngắn nhất từ đỉnh 3 đến đỉnh 5 – Trả lời: 3 – 1 – 2 – 5 ??? Độ dài 11 là ngắn nhất ??? – Đường đi này thì sao? Độ dài là bao nhiêu? 3–1–2–5–2–5 – Đường đi trên đã ngắn nhất chưa???09/04/2011 Lý thuyết đồ thị 35.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Điều kiện để bài toán có lời giải: – Phải tồn tại đường đi từ s đến t: • Đồ thị vô hướng liên thông • Đồ thị có hướng liên thông mạnh • Đồ thị vô hướng, s và t nằm trong cùng một thành phần liên thông • Đồ thị có hướng, có tồn tại đường đi từ s đến t – Trong đồ thị không tồn tại chu trình âm 1 5 2 7 3 • Đồ thị có hướng: không tồn tại chu trình âm. ‐ 3 6 2 8 • Đồ thị vô hướng: không tồn tại cạnh âm. 4 1 5 609/04/2011 Lý thuyết đồ thị 45.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Nhận xét: – Nếu v là đỉnh trung gian trên đường đi ngắn nhất từ s đến t thì đường đi từ s đến v phải là ngắn nhất và đường đi từ v đến t cũng phải là ngắn nhất. s … v t X … … – Do đó, để tối ưu, người ta mở rộng bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh còn lại của đồ thị.09/04/2011 Lý thuyết đồ thị 55.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Ý tưởng chung của các thuật toán tìm đường đi ngắn nhất – Dò tìm bằng cách thử đi qua các đỉnh trung gian – Nếu phát hiện đường đi qua đỉnh trung gian ngắn hơn đường đi hiện tại thì sẽ cập nhật đường đi mới, đồng thời chỉnh sửa các thông tin liên quan. – Sử dụng hai mảng để lưu trữ tạm thời: • Mảng d[v]: Lưu trữ độ dài đường đi ngắn nhất hiện tại từ s đến v. • Mảng T[v]: Lưu trữ đỉnh nằm trước v trên đường đi ngắn nhất hiện tại.09/04/2011 Lý thuyết đồ thị 65.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Truoc[v] d[v] s X … v … c[u,v] d[u] u if (d[v] > d[u] + c[u,v]) { d[v] = d[u] + c[u,v]; Truoc[v] = u; }09/04/2011 Lý thuyết đồ thị 75.2 Thuật toán Ford-Bellman //Khởi tạo for v ∈ V { d[v]=c[s,v]; Truoc[v]=s; } //Bắt đầu d[s]=0; k 1 2 3 4 5 for (k=1; k d[u] +c[u,v]) 1 0,1 1,1 4,2 4,2 -1,3 { 2 0,1 1,1 4,2 3,5 -1,3 d[v]=d[u]+c[u,v]; Truoc[v]=u; 3 0,1 1,1 4,2 3,5 -1,3 }09/04/2011 Lý thuyết đồ thị 85.2 Thuật toán Ford-Bellman Cây kết quả: 1 2 3 k 1 2 3 4 5 5 0,1 1,1 ∞ ,1 ∞ ,1 3,1 1 0,1 1,1 4,2 4,2 -1,3 4 2 0,1 1,1 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 5 - Nguyễn Trần Phi PhượngChương 5 BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT5.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Bài toán: Cho G = là đồ thị có trọng số. s và t là 2 đỉnh của đồ thị. Hãy tìm đường đi có tổng trọng số nhỏ nhất từ s đến t. 20 VD: 5 15 15 3 9 9 5 5 Đường đi ngắn nhất từ Etna đến Oldtown là: Etna – Bangor – Orono – OldTown Đường đi ngắn nhất từ Hermae đến Etna là: Hermae – Hampdea – Bangor - Etna09/04/2011 Lý thuyết đồ thị 25.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất 1 10 2 5 7 20 9 -6 9 4 3 4 5 Tìm đường đi ngắn nhất từ đỉnh 3 đến đỉnh 5 – Trả lời: 3 – 1 – 2 – 5 ??? Độ dài 11 là ngắn nhất ??? – Đường đi này thì sao? Độ dài là bao nhiêu? 3–1–2–5–2–5 – Đường đi trên đã ngắn nhất chưa???09/04/2011 Lý thuyết đồ thị 35.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Điều kiện để bài toán có lời giải: – Phải tồn tại đường đi từ s đến t: • Đồ thị vô hướng liên thông • Đồ thị có hướng liên thông mạnh • Đồ thị vô hướng, s và t nằm trong cùng một thành phần liên thông • Đồ thị có hướng, có tồn tại đường đi từ s đến t – Trong đồ thị không tồn tại chu trình âm 1 5 2 7 3 • Đồ thị có hướng: không tồn tại chu trình âm. ‐ 3 6 2 8 • Đồ thị vô hướng: không tồn tại cạnh âm. 4 1 5 609/04/2011 Lý thuyết đồ thị 45.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Nhận xét: – Nếu v là đỉnh trung gian trên đường đi ngắn nhất từ s đến t thì đường đi từ s đến v phải là ngắn nhất và đường đi từ v đến t cũng phải là ngắn nhất. s … v t X … … – Do đó, để tối ưu, người ta mở rộng bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh còn lại của đồ thị.09/04/2011 Lý thuyết đồ thị 55.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Ý tưởng chung của các thuật toán tìm đường đi ngắn nhất – Dò tìm bằng cách thử đi qua các đỉnh trung gian – Nếu phát hiện đường đi qua đỉnh trung gian ngắn hơn đường đi hiện tại thì sẽ cập nhật đường đi mới, đồng thời chỉnh sửa các thông tin liên quan. – Sử dụng hai mảng để lưu trữ tạm thời: • Mảng d[v]: Lưu trữ độ dài đường đi ngắn nhất hiện tại từ s đến v. • Mảng T[v]: Lưu trữ đỉnh nằm trước v trên đường đi ngắn nhất hiện tại.09/04/2011 Lý thuyết đồ thị 65.1 Đồ thị có trọng số - Bài toán đường đi ngắn nhất Truoc[v] d[v] s X … v … c[u,v] d[u] u if (d[v] > d[u] + c[u,v]) { d[v] = d[u] + c[u,v]; Truoc[v] = u; }09/04/2011 Lý thuyết đồ thị 75.2 Thuật toán Ford-Bellman //Khởi tạo for v ∈ V { d[v]=c[s,v]; Truoc[v]=s; } //Bắt đầu d[s]=0; k 1 2 3 4 5 for (k=1; k d[u] +c[u,v]) 1 0,1 1,1 4,2 4,2 -1,3 { 2 0,1 1,1 4,2 3,5 -1,3 d[v]=d[u]+c[u,v]; Truoc[v]=u; 3 0,1 1,1 4,2 3,5 -1,3 }09/04/2011 Lý thuyết đồ thị 85.2 Thuật toán Ford-Bellman Cây kết quả: 1 2 3 k 1 2 3 4 5 5 0,1 1,1 ∞ ,1 ∞ ,1 3,1 1 0,1 1,1 4,2 4,2 -1,3 4 2 0,1 1,1 ...
Tìm kiếm theo từ khóa liên quan:
Lý thuyết đồ thị Bài giảng Lý thuyết đồ thị Bài toán đường đi ngắn nhất Đồ thị có trọng số Thuật toán Ford-Bellman Thuật toán DijkstraGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Lý thuyết đồ thị (Graph Theory)
13 trang 202 0 0 -
Bài giảng Lý thuyết đồ thị - Bài 1: Đại cương về đồ thị
39 trang 108 0 0 -
Bài giảng Lý thuyết đồ thị: Chương 3 - Các thuật toán tìm kiếm trên đồ thị
18 trang 96 0 0 -
Giáo trình Lý thuyết đồ thị: Phần 1 - PGS. Nguyễn Cam, PTS. Chu Đức Khánh
98 trang 62 0 0 -
Một số đánh giá hình học mạng lưới tàu điện đô thị Hà Nội theo lý thuyết đồ thị
9 trang 50 0 0 -
Bài giảng Lý thuyết đồ thị - Chương 2: Biểu diễn đồ thị
15 trang 42 0 0 -
Thực hành Toán rời rạc - Chương 7: Đồ thị và các tính chất của đồ thị
10 trang 42 0 0 -
Bài giảng Lý thuyết đồ thị: Chương 1 - Tôn Quang Toại
37 trang 42 0 0 -
Chuyên đề Toán 11 - Cùng khám phá
90 trang 40 0 0 -
Giáo trình Toán rời rạc và lý thuyết đô thị
226 trang 37 0 0