Toán RR(BT+bài giải) exercise9 circuit answer

17 309 2
Toán RR(BT+bài giải) exercise9 circuit answer

Đ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

Bài giải TRR1 ĐH bách khoa TPHCM

Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Bài tập chương 9 Đường đi và chu trình 1 Dẫn nhập Trong bài tập dưới đây, chúng ta sẽ làm quen với các lý thuyết liên quan tới đường đi và chu trình. Sinh viên cần ôn lại các lý thuyết liên quan được trình trong chương 9, trước khi làm bài tập bên dưới. 2 Bài tập mẫu Đồ thị G 1 như hình bên dưới đây. S A B C D E F G H (G 1 ) 10 10 14 11 6 8 5 2 7 3 2 4 4 8 6 Câu 1. Tìm đường đi ngắn nhất xuất phát từ S đến tất cả các đỉnh còn lại bằng thuật giải Dijkstra. Lời giải. Dijkstra: Giáo trình Toán Rời Rạc 1 Trang 1/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính i S A B C D E F G H π(0) 0 10 10 +∞ +∞ +∞ +∞ 14 +∞ π(1) 10 10 21 +∞ +∞ +∞ 14 +∞ π(2) 10 16 18 +∞ +∞ 14 +∞ π(3) 16 18 +∞ +∞ 14 20 π(4) 16 18 21 18 20 π(5) 18 21 18 20 π(6) 21 18 20 π(7) 21 20 π(8) 20 Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. • S → A • S → B • S → B → C • S → B → D • S → B → C → E • S → B → C → F • S → G • S → G → H ✷ Câu 2. Tìm đường đi ngắn nhất xuất phát từ S đến tất cả các đỉnh còn lại bằng thuật giải Bellman-Ford trong đồ thị G 1 . Lời giải. i S A B C D E F G H π(0) 0 +∞ +∞ +∞ +∞ +∞ +∞ +∞ +∞ π(1) 0 10 10 +∞ +∞ +∞ +∞ 14 +∞ π(2) 0 10 10 21 +∞ +∞ +∞ 14 +∞ π(3) 0 10 10 16 18 +∞ +∞ 14 +∞ π(4) 0 10 10 16 18 21 18 14 +∞ π(5) 0 10 10 16 18 21 18 14 25 π(6) 0 10 10 16 18 21 18 14 25 π(7) 0 10 10 16 18 21 18 14 20 Giáo trình Toán Rời Rạc 1 Trang 2/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. • S → A • S → B • S → B → C • S → B → D • S → B → C → E • S → B → C → F • S → G • S → G → H ✷ Câu 3. Xác định độ dài đường đi ngắn nhất xuất phát từ một đỉnh bất kỳ đến tất cả các đỉnh còn lại trong G 2 dưới đây bằng thuật giải Floyd-Warshall. A B C D (G 2 ) 2 6 1 4 5 4 2 3 1 Lời giải. k = 0 A B C D A 0 2 6 +∞ B 1 0 4 +∞ C 5 4 0 2 D +∞ 3 1 0 Giáo trình Toán Rời Rạc 1 Trang 3/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính k = 1 A B C D A 0 2 6 +∞ B 1 0 4 +∞ C 5 4 0 2 D +∞ 3 1 0 k = 2 A B C D A 0 2 6 +∞ B 1 0 4 +∞ C 5 4 0 2 D 4 3 1 0 k = 3 A B C D A 0 2 6 8 B 1 0 4 6 C 5 4 0 2 D 4 3 1 0 k = 4 A B C D A 0 2 6 8 B 1 0 4 6 C 5 4 0 2 D 4 3 1 0 ✷ 3 Bài tập cần giải Câu 4. Hãy xác định xem các đồ thị vô hướng sau (G 10 ), (G 11 ), (G 12 ) có chứa đường đi/chu trình Euler và Hamilton không? Nếu có, hãy vẽ ra. S A B C D E F G H (G 10 ) 10 10 14 11 6 8 5 2 7 3 2 4 4 8 6 Giáo trình Toán Rời Rạc 1 Trang 4/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính G F E A B C D (G 11 ) G F E A B C D (G 12 ) Lời giải. 1. (G 10 ) • Chu trình Euler: không có, vì tồn tại đỉnh S có số bậc là lẻ (bằng 3). • Đường đi Euler: không có, vì tồn tại 3 đỉnh S, B, H có số bệc là lẻ (đều bằng 3). • Chi trình Hamilton: B → S → A → C → E → H → G → F → D → B. • Đường đi Hamilton: S → A → C → B → D → F → E → H → G. 2. (G 11 ) • Chu trình Euler: All of the vertices have even degree except B (degree 3) and D (degree 3). According to Euler’s Theorems, there is no Euler circuit for this graph. • Đường đi Euler: there is an Euler path, starting at one of the odd vertices and ending at the other. B → A → G → F → A → D → C → F → E → C → B → D. • Chi trình Hamilton: One possible solution: A → G → F → E → C → D → B → A. • Đường đi Hamilton: A → G → F → E → C → D → B. 3. (G 12 ) • Chu trình Euler: Since there are no odd vertices, there is an Euler circuit. One possible solution: A → G → F → A → D → C → F → E → C → B → A. • Đường đi Euler: B → A → G → F → E → C → F → A → D → C → B (cũng là chu trình). • Chi trình Hamilton: There is no Hamilton circuit. Giáo trình Toán Rời Rạc 1 Trang 5/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính • Đường đi Hamilton: B → A → D → C → E → F → G. 4. Ghi nhớ: odd: lẻ, even: chẵn Trong cả hai loại Euler và Hamilton: Có chu trình thì chắc chắn có đường đi, ngược lại không đúng. Có đường đi thì chưa chắc có chu trình. Không có chu trình nhưng có thể có đường đi. ✷ Câu 5. Hãy dùng thuật giải Dijsktra, Bellman-Ford, Floyd-Warshall để tìm đường đi ngắn nhất của đỉnh E đến một đỉnh bất kỳ khác trong đồ thị G 1 3 như sau. A B C D E (G 13 ) 6 3 3 1 1 4 2 2 Câu 6. Hãy dùng thuật giải Dijsktra để tìm đường đi ngắn nhất của đỉnh A đến một đỉnh bất kỳ khác trong đồ thị G 3 như sau. Lời giải. Dựa theo thuật giải Dijkstra, chúng ta cần xây dựng bảng sau. Giáo trình Toán Rời Rạc 1 Trang 6/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính A B C D E F (G 3 ) 4 1 2 6 6 7 2 4 5 5. i A B C D E F π(0) 0 4 1 +∞ +∞ +∞ π(1) 4 1 7 +∞ 8 π(2) 4 6 10 8 π(3) 6 8 8 π(4) 8 8 π(5) 8 Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. • A → B • A → C • A → B → D • A → B → D → E • A → C → F Diễn giải: • Tại mỗi lần lặp (mỗi bước π) giải thuật đi thêm một bước. • Bước π(0) start từ đỉnh A đề bài yêu cầu, đi một bước tới được B, C với trọng số lần lượt là 4, 1. Đỉnh đầu là A, và từ A đến A có trọng số bằng 0. Do đó π(0) là 0, 4, 1, +∞, +∞ , +∞. Và trong dãy này 0 (starting) là nhỏ nhất, đánh dấu 0. • Bước π(1), chọn số nhỏ nhất (mà chưa từng được chọn) trong bước π(0) (nếu có 2 số bằng nhau thì chọn từ trái sang). Do đó 1 được chọn, và là vị trí đỉnh C, đánh dấu số 1. Từ đỉnh C được chọn này có thể đi một bước đến các đỉnh D và F với trọng số là 6 Giáo trình Toán Rời Rạc 1 Trang 7/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính và 7. Do đó đường đi từ A → C đến D là 1 + 6 = 7 < +∞ => cập nhật lại +∞ thành 7 , từ A → C đến F là 1 + 7 = 8 < +∞, do đó cập nhật lại +∞ thành 8. Cột nào đã được đánh dấu trước đó thì không cập nhật nữa, ví dụ số 0 ớ bước π(0). • Bước π(2), chọn số nhỏ nhất (mà chưa từng được chọn) trong bước π(1) và π(0), ở đây π(1) có 4, 1, 7, 8 trong đó 1 đã được đánh dấu do đó không tính. Chọn 4, đánh dấu 4. Chọn 4 tức là đang ở B, B có thể đi một bước đến E và D với trọng số lần lượt là 6 và 2. Do đó đường đi từ A → B đến D là 4 + 2 = 6 < 7 => cập nhật lại 7 thành 6 , từ A → B đến E là 4 + 6 = 10 < +∞, do đó cập nhật lại +∞ thành 10. Tại sao biết là từ A → B ở bước này? Backtracking, để track lại đường đi, đỉnh 4 ở đây đang là B ở π(2), từ chỗ này nhìn thẳng lên thấy hàng nào B đổi số thì lùi xuống một hàng và gióng sang trái để biết đi từ đỉnh nào đến B. Ở đây từ 4 của π(2) nhìn thẳng lên π(1) và π(0), không thấy chỗ nào B đổi số, thì nhìn vào hàng cuối là π(0), nhìn sang trái thấy số nào được đánh dấu (gạch dưới) thì nghĩa là đi từ đỉnh đó đến B, ở đây ta thấy 0 bị gạch dưới tức là đi từ A đến B. • Tại π(3): Chọn số nhỏ nhất ở π(2) mà chưa bị gạch dưới, tức là 6 và là D, từ D có thể đi một bước đến E và F với trọng số lần lượt là 2 và 4. Do đó đường đi từ A → B → D đến E là 4 + 2 + 2 = 8 < 10, cập nhật lại tại E là 8. Đường đi từ A → B → D đến F là 4 + 2 + 4 = 10 > 8, không cập nhật. Do đó π(3) là 6, 8, 8. Tại sao biết track ở đây là A → B → D? Backtracking: 6 được chọn tức là D, nhìn thẳng lên chỗ đổi số gần nhất là π(1) (tại π(1), D có số 7, không phải số 6) thì lùi xuống một hàng là π(2), nhìn sang trái số bị gạch dưới là 4, tức là B (vậy là B qua D), từ B này ở π(2), nhìn thẳng lên tìm chỗ số bị đổi, không có thì chọn π(0), nhìn sang trái thấy A bị gạch dưới, tức là A qua B. Vậy là A → B → D. • Tại π(4): Chọn số nhỏ nhât trong dãy π(3) là 8 tại E, từ E đi một bước đến được F với trọn số 5. Từ A → B → D → E tới F là 4 + 2 + 2 + 5 = 13 > 8, do đó không cập nhật. Tại sao biết là A → B → D → E ở đây? Backtracking: từ 8 của E ở π(4), nhìn thẳng lên thấy tại π(2) đổi số, lùi 1 hàng xuống π(3), nhìn sang trái thấy 6 của D bị gạch dưới, vậy là D → E. Tại 6 của D ở π(3), nhìn thẳng lên thấy tại π(1) đổi số, lùi xuống một hàng là π(2), nhìn sang trái thấy 4 của B bị gạch dưới, vậy B → D. Tương tự, ta có A → B → D → E. • Từ F nhìn thẳng lên thấy tại π(0) đổi số, lùi xuống một hàng là π(1), nhìn sang trái thấy 1 của C bị gạch dưới, vậy là C → F . Từ C này của π(1), nhìn thẳng lên không Giáo trình Toán Rời Rạc 1 Trang 8/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính thấy chổ đổi số thì chọn hàng cuối là π(0), nhìn sang trái thấy A bị gạch dưới. Vậy đường đi ngắn nhất từ A đến F là A → C → F ✷ Câu 7. Hãy dùng thuật giải Bellman-Ford để tìm đường đi ngắn nhất của đỉnh A đến một đỉnh bất kỳ khác trong đồ thị G 7 như bên dưới. A B C D E F G H (G 7 ) 7 5 9 8 1 -3 2 2 5 8 1 -6 -4 10 3 Lời giải. i A B C D E F G H π(0) 0 +∞ +∞ +∞ +∞ +∞ +∞ +∞ π(1) 0 7 +∞ 5 +∞ +∞ 9 +∞ π(2) 0 7 15 5 +∞ +∞ 9 +∞ π(3) 0 7 15 5 17 +∞ 9 +∞ π(4) 0 7 15 5 7 +∞ 9 10 π(5) 0 7 15 5 7 15 9 8 π(6) 0 7 9 5 7 15 9 8 π(7) 0 7 9 5 7 15 9 8 Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. • A → B • A → D → E → F → C • A → D • A → D → E • A → D → E → F Giáo trình Toán Rời Rạc 1 Trang 9/17 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính • A → G • A → D → E → H Diễn giải: • Do giải thuật áp dụng được cho đồ thị có trọng số âm nên giải thuật không chọn số nhỏ nhất tại mỗi bước như của Dijkstra, mà thay vào đó, giải thuật này sẽ chọn từ trái sang phải. Do đó việc sắp thứ tự các cột khác nhau sẽ cho ra các table khác nhau nhưng kết quả cuối cùng là như nhau, tức là đường đi ngắn nhất là duy nhất (trừ phi có 2 cách đi đến cùng một đỉnh với tổn trọng số bằng nhau) • Tại bước π(0), đỉnh start bắt đầu là 0, các đỉnh còn lại là +∞ (khác với Dijkstra). • Tại bước π(1), chọn A, từ A đi một bước đến được B, D, G với trọng số lần lượt là 7, 5, 9 đêu nhỏ hơn +∞ nên câp nhật lại table. • Tại bước π(2), chọn B (7), do chọn từ trái sang phải. Từ B đi một bược tới được C và D với trọng số là 8 và 1. Do đó A → B → C = 15 < +∞ => cập nhật lại, A → B → D = 8 > 5 => khộng câp nhật. • Tại bước π(3), chọn C(15), do chọn từ trái sang phải. Từ C đi một bược tới được D và E với trọng số là -3 và 2. Do đó A → B → C → D = 12 > 5 => không cập nhật, A → B → C → E = 17 < +∞ => cập nhật lại. • Tại bước π(4), chọn D(5), do chọn từ trái sang phải. Từ D đi một bược tới được E và H với trọng số là 2 và 5. Do đó A → D → E = 7 < 17 => cập nhật lại, A → D → H = 10 < +∞ => cập nhật lại. Backtracking: Tương tự trong diễn giải Dijkstra. Tại sao biết là A → D ở đây? Backtracking: Tương tự trong diễn giải Dijkstra. Từ D là số 5 ở π(4), nhìn thẳng lên tìm hàng đổi số đầu tiên, ở đây là π(0), lùi xuống 1 hàng là π(1), nhìn sang trái số bị gạch dưới là A (0). Do đó đường đi là A → D. • Tại bước π(5), chọn E(7), do chọn từ trái sang phải. Từ E đi một bược tới được F và H với trọng số là 8 và 1. Do đó A → D → E → F = 15 < +∞ => cập nhật lại, A → D → E → H = 8 < 10 => cập nhật lại. Backtracking: Tương tự trong diễn giải Dijkstra. Tại sao biết là A → D → E ở đây? Backtracking: Tương tự trong diễn giải Dijkstra. Từ E là số 7 ở π(5), nhìn thẳng lên thấy đổi số ở π(3) (từ 7 sang 17), lùi xuống một hàng là π(4), nhìn sang trái thấy 5 bị gạch dưới là D, vậy là D → E . Từ D là số 5 ở π(4), nhìn thẳng lên tìm hàng đổi số đầu tiên, ở đây là π(0), lùi xuống 1 hàng là π(1), nhìn sang trái số bị gạch dưới là A (0). Do đó đường đi là A → D → E. Giáo trình Toán Rời Rạc 1 Trang 10/17 . (degree 3) and D (degree 3). According to Euler’s Theorems, there is no Euler circuit for this graph. • Đường đi Euler: there is an Euler path, starting at. (G 12 ) • Chu trình Euler: Since there are no odd vertices, there is an Euler circuit. One possible solution: A → G → F → A → D → C → F → E → C → B → A. •

Ngày đăng: 24/02/2014, 22:39

Hình ảnh liên quan

Đồ thị G1 như hình bên dưới đây. - Toán RR(BT+bài giải) exercise9 circuit answer

th.

ị G1 như hình bên dưới đây Xem tại trang 1 của tài liệu.
Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. - Toán RR(BT+bài giải) exercise9 circuit answer

b.

ảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại Xem tại trang 2 của tài liệu.
Lời giải. Dựa theo thuật giải Dijkstra, chúng ta cần xây dựng bảng sau. - Toán RR(BT+bài giải) exercise9 circuit answer

i.

giải. Dựa theo thuật giải Dijkstra, chúng ta cần xây dựng bảng sau Xem tại trang 6 của tài liệu.
Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. - Toán RR(BT+bài giải) exercise9 circuit answer

b.

ảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại Xem tại trang 7 của tài liệu.
Từ bảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại. - Toán RR(BT+bài giải) exercise9 circuit answer

b.

ảng trên, ta có thể xác đinh đường đi ngắn nhất từ A đến các đỉnh còn lại Xem tại trang 9 của tài liệu.