Bài giảng Giải thuật nâng cao: Giải thuật tham lam - TS. Ngô Quốc Việt
lượt xem 14
download
Chương này trang bị cho người học những kiến thức về giải thuật tham lam. Những nội dung chính trong chương này gồm có: giới thiệu chung về thuật giải tham lam, bài toán cây bao trùm tối thiểu (MST), huffman coding, phủ tập hợp. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Giải thuật nâng cao: Giải thuật tham lam - TS. Ngô Quốc Việt
- GIẢI THUẬT THAM LAM TS. NGÔ QUỐC VIỆT 2015
- Nội dung 1. Giới thiệu 2. Bài toán cây bao trùm tối thiểu (MST) 3. Huffman coding 4. Phủ tập hợp Giải thuật nâng cao-Lý thuyết số 2
- Giới thiệu • Thuật giải tham lam xây dựng giải pháp từng bước, trong đó chọn lời bước kế tiếp dựa trên tiêu chí có lợi & hiển nhiên nhất. • Cách tiếp cận có thể cho lời giải không đúng trong một số trường hợp, nhưng phần lớn đạt được kết quả tối ưu. • Bài giảng minh họa greedy với: MST, Huffman coding, phủ tập hợp. Giải thuật nâng cao-Lý thuyết số 3
- Cây bao trùm tối tiểu – Minimum spanning tree • Cho đồ thị G liên thông vô hướng, cây bao trùm (cây khung) được định nghĩa là đồ thị con dạng cây (không có chu trình) có mọi đỉnh của G và mọi đỉnh liên thông nhau. Một đồ thị có thể có nhiều cây bao trùm. Graph A Một số Spanning Trees từ A or or or 4
- Cây bao trùm tối tiểu • Số lượng cây bao trùm của đồ thị G 1 𝐺 𝑙à 𝑐â𝑦 𝑡 𝐺 = 𝑛 𝐺 đồ 𝑡ℎị 𝑣ò𝑛𝑔 𝐶𝑛 𝑛𝑛−2 𝐺 đồ 𝑡ℎị đầ𝑦 đủ 𝐾𝑛 • Đồ thị đầy đủ: mọi cặp đỉnh được nối bởi cạnh duy nhất. • Bigraph: tập đỉnh trong G chia thành hai tập rời nhau U, V. Mỗi cạnh chỉ nối giữa điểm trong U với điểm trong V. • Tìm cây bao trùm: theo chiều rộng, theo chiều sâu 5
- Cây bao trùm tối tiểu • Cây bao trùm nhỏ nhất là cây bao trùm có tổng trọng số các cạnh nhỏ hơn tất cả các cây bao trùm khác Complete Graph Minimum Spanning Tree 7 2 2 5 3 3 4 1 1 • Thuật giải tìm MST trên đồ thị có hoặc không có trọng số: Prim, Kruskal, Boruvka. 6
- MST-Thuật giải Prim • Tương tự thuật giải Dijkstra, với trọng số cạnh thay chiều dài đường đi 1. Tạo cây ban đầu với đỉnh bất kỳ thuộc graph. 2. Thêm cạnh vào cây : chọn cạnh có trọng số nhỏ nhất (chưa có trong cây đang tạo) nối với các đỉnh của cây và thêm vào cây 3. Lặp lại (đến khi mọi đỉnh trong cây) 7
- MST-Thuật giải Prim • Input: đồ thị trọng số không rỗng với tập đỉnh V và cạnh E (trọng số có thể âm). • Khởi tạo: Vnew = {x}, với x is là node bất kỳ(starting point) từ V, Enew = {} • Lặp đến khi Vnew = V: • Chọn cạnh {u, v} với minimal weight sao cho u thuộc Vnew và v không thuộc (nếu có nhiều cạnh cùng trọng số, chọn ngãu nhiên một cạnh) • Thêm v vào Vnew, và {u, v} to Enew • Output: Vnew và Enew chứa minimal spanning tree 8
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 9
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 10
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 11
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 12
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 13
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 14
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 15
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 16
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 17
- MST-Thuật giải Prim B 4 C 4 B 4 C 2 1 4 2 1 A 4 E 1 F A 4 E F 1 D 2 3 10 D 2 3 G 5 10 G 5 5 6 3 5 6 3 4 I 4 H I 3 H 2 J 2 3 J 18
- MST-Thuật giải Prim-Phân tích • Running Time: 𝑂(𝑚 + 𝑛 log 𝑛) (𝑚 = 𝑒𝑑𝑔𝑒𝑠, 𝑛 = 𝑛𝑜𝑑𝑒𝑠) • Nếu không dùng heap, the run time sẽ là 𝑂(𝑛2 ). • Không cần sắp xếp theo trọng số cạnh trước. • Vì xét theo đỉnh không cần xét khả năng tạo chu trình 19
- MST-Thuật giải Krusal 1. Sắp xếp tăng dần theo trọng số cạnh 2. Chọn cạnh có trọng số nhỏ nhất. Kiểm tra nếu không tạo thành chu trình, chọn nó. Ngược lại chọn cạnh khác có trọng số nhỏ và không tạo chu trình. 3. Lặp bước 2 đến khi có (𝑉 − 1) cạnh trong cây bao trùm 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình môn Kỹ thuật lập trình nâng cao
88 p | 392 | 180
-
Bài giảng Giải thuật nâng cao: Quy hoạch động - TS. Ngô Quốc Việt
33 p | 116 | 18
-
Bài giảng Phân tích và Thiết kế giải thuật nâng cao: Chương 3 - PGS.TS. Trần Cao Đệ
54 p | 105 | 16
-
Bài giảng Phân tích và Thiết kế giải thuật nâng cao: Phần 1 - PGS.TS. Trần Cao Đệ
79 p | 107 | 15
-
Bài giảng Giải thuật nâng cao: Quy hoạch tuyến tính - TS. Ngô Quốc Việt
58 p | 96 | 12
-
Bài giảng Phân tích và Thiết kế giải thuật nâng cao: Chương 4 - PGS.TS. Trần Cao Đệ
52 p | 118 | 11
-
Bài giảng Phân tích và Thiết kế giải thuật nâng cao: Chương 6 - PGS.TS. Trần Cao Đệ
25 p | 95 | 9
-
Bài giảng Giải thuật nâng cao: Quy hoạch động cho bài toán Sequence Alignment - TS. Ngô Quốc Việt
32 p | 111 | 7
-
Bài giảng Giải thuật nâng cao: Một số giải thuật trên số - TS. Ngô Quốc Việt
57 p | 104 | 6
-
Bài giảng Giải thuật nâng cao: Giải thuật xấp xỉ - TS. Ngô Quốc Việt
55 p | 108 | 6
-
Bài giảng Lập trình nâng cao: Bài 4 - Hoàng Thị Điệp
43 p | 60 | 6
-
Bài giảng Chương 10: Các giải thuật nâng cao
40 p | 57 | 5
-
Bài giảng Giới thiệu môn học và kế hoạch hoàn thành môn học Phân tích và thiết kế thuật toán - PGS.TS. Trần Cao Đệ
11 p | 72 | 5
-
Bài giảng Lập trình nâng cao: Bài 1 - Lý Anh Tuấn
44 p | 34 | 4
-
Bài giảng Kỹ thuật lập trình (Programming technique): Chương 3 - Vũ Đức Vượng
40 p | 22 | 4
-
Bài giảng Kỹ thuật lập trình: Hàm và việc tổ chức chương trình - GV. Hà Đại Dương
18 p | 80 | 3
-
Bài giảng Kỹ thuật lập trình nâng cao: Chương 2 - Trần Minh Thái
13 p | 59 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn