Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,52 MB
Nội dung
GIỚI THIỆU • Đồ thị cấu trúc liệu trừu tượng dựa khái niệm toán học đồ thị • Đồ thị xem tổng quát hóa cấu trúc Tuy nhiên, đồ thị có mối quan hệ phức tạp quan hệ cha-con cấu trúc • Đồ thị sử dụng nhiều ứng dụng gia phả, mạng quản lý chuyến bay v.v… KHOA CÔNG NGHỆ THÔNG TIN GIỚI THIỆU • Một đồ thị G tập hợp khơng có thứ tự (V, E), V : đỉnh đồ thị E : cạnh (cung) biểu diễn mối quan hệ đỉnh A D B E KHOA CÔNG NGHỆ THÔNG TIN C V(G) = {A, B, C, D, E} E(G) = {(A, B), (A, D), (B, C}, (B, D), (C, E), (D, E)} GIỚI THIỆU • Một đồ thị G có hướng vơ hướng • Nếu đồ thị có hướng cạnh nối hai đỉnh có mũi tên đại diện cho hướng nối Đồ thị có hướng Đồ thị vơ hướng A D B E KHOA CÔNG NGHỆ THÔNG TIN C A D B C E BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG MA TRẬN KỀ • Hai đỉnh kề có cạnh nối chúng • Ta dùng ma trận với dòng, cột biểu diễn cho đỉnh đồ thị • Biểu diễn cạnh ma trận kề Nếu đỉnh i kề đỉnh j Ngược lại 𝑎𝑖𝑗 = KHOA CÔNG NGHỆ THÔNG TIN BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG MA TRẬN KỀ A B D C E A B D A B C D E A 1 B 1 C D 1 E 0 C E A B C D E A 1 0 B 0 0 C 0 0 D 0 0 1 E 0 0 KHOA CÔNG NGHỆ THÔNG TIN BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG MA TRẬN KỀ Đồ thị có trọng số đồ thị mà có gán liệu cạnh A C D Biểu diễn đồ thị có trọng số KHOA CÔNG NGHỆ THÔNG TIN B E A B C D E A B 0 C 0 D 0 0 E 0 0 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG MA TRẬN KỀ • Đối với đồ thị đơn (khơng có vịng), ma trận kề có đường chéo mang giá trị A B C • Ma trận kề đồ thị vơ hướng đối xứng • Bộ nhớ ma trận kề O(n2), n số đỉnh đồ thị KHOA CÔNG NGHỆ THÔNG TIN D E A B C D E A B 0 C 0 D 0 0 E 0 0 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG DANH SÁCH KỀ • Danh sách kề gồm đỉnh đồ thị V(G) • Mỗi đỉnh vi danh sách liên kết lưu trữ đỉnh vj , vj+1, … nối tới vi • Thường dùng để lưu đồ thị nhỏ vừa • Biểu diễn đồ thị thưa (có cạnh nối) nhớ máy tính KHOA CÔNG NGHỆ THÔNG TIN 10 BIỂU DIỄN ĐỒ THỊ TRÊN MÁY TÍNH SỬ DỤNG DANH SÁCH KỀ • Danh sách kề biểu diễn đồ thị vô hướng A D B E KHOA CÔNG NGHỆ THÔNG TIN A B D NULL B A C NULL C B E NULL D A B NULL E C D NULL C 11 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG • Duyệt theo chiều rộng (Breadth-First Search) đồ thị vô hướng A D B C Xuất phát từ đỉnh A E KHOA CƠNG NGHỆ THƠNG TIN 12 THUẬT TỐN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG • Duyệt theo chiều rộng (Breadth-First Search) đồ thị vô hướng A B B1: Xuất phát từ đỉnh A B2: Đi qua đỉnh B, D D KHOA CƠNG NGHỆ THƠNG TIN 13 THUẬT TỐN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG • Duyệt theo chiều rộng (Breadth-First Search) đồ thị vô hướng A B D KHOA CÔNG NGHỆ THÔNG TIN C B1: Xuất phát từ đỉnh A B2: Đi qua đỉnh B, D B3: Xuất phát từ đỉnh B B4: Đi qua đỉnh C 14 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG • Duyệt theo chiều rộng (Breadth-First Search) đồ thị vơ hướng A B D KHOA CƠNG NGHỆ THƠNG TIN C B1: Xuất phát từ đỉnh A B2: Đi qua đỉnh B, D B3: Xuất phát từ đỉnh B B4: Đi qua đỉnh C B5: Xuất phát từ đỉnh D 15 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG • Duyệt theo chiều rộng (Breadth-First Search) đồ thị vô hướng A B C B1: Xuất phát từ đỉnh A B2: Đi qua đỉnh B, D B3: Xuất phát từ đỉnh B D E B4: Đi qua đỉnh C B5: Xuất phát từ đỉnh D B6: Đi qua đỉnh E Dừng thuật tốn KHOA CƠNG NGHỆ THƠNG TIN 16 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG GIẢI THUẬT : Duyệt theo chiều rộng (BFS) procedure BFS(G: đồ thị với đỉnh v1, v2, …, vn) T := chứa đỉnh ban đầu v1 L := danh sách rỗng dùng để chứa đỉnh qua Đặt đỉnh v1 vào danh sách L while L không rỗng remove đỉnh v1 từ L for đỉnh kề w với đỉnh v1 if w L and khơng có T then add w vào L add w and cạnh {v1, w} vào T KHOA CƠNG NGHỆ THƠNG TIN 17 THUẬT TỐN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG Độ phức tạp khơng gian • Tất đỉnh mức xét lưu đỉnh kề qua • Độ phức tạp khơng gian tỉ lệ thuận với số đỉnh mức sâu đồ thị • Cho đồ thị có b số đỉnh kề đỉnh chiều sâu d Độ phức tạp không gian số đỉnh mức sâu O(bd) KHOA CƠNG NGHỆ THƠNG TIN 18 THUẬT TỐN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG Độ phức tạp thời gian Trường hợp xấu nhất, BFS phải duyệt tất đường tới đỉnh Độ phức tạp thời gian xấp xỉ O(bd) Tính đầy đủ BFS có tính đầy đủ tìm tất đỉnh khơng phân biệt loại đồ thị (vơ hướng, có hướng, có trọng số…) KHOA CƠNG NGHỆ THƠNG TIN 19 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU SÂU Duyệt theo chiều sâu (Depth-First Search) đồ thị vô hướng A D B C Xuất phát từ đỉnh A E KHOA CÔNG NGHỆ THÔNG TIN 20 ...GIỚI THIỆU • Đồ thị cấu trúc liệu trừu tượng dựa khái niệm toán học đồ thị • Đồ thị xem tổng quát hóa cấu trúc Tuy nhiên, đồ thị có mối quan hệ phức tạp quan hệ cha-con cấu trúc • Đồ thị sử dụng... đỉnh B D E B4: Đi qua đỉnh C B5: Xuất phát từ đỉnh D B6: Đi qua đỉnh E Dừng thuật tốn KHOA CƠNG NGHỆ THƠNG TIN 16 THUẬT TOÁN DUYỆT ĐỒ THỊ DUYỆT THEO CHIỀU RỘNG GIẢI THUẬT : Duyệt theo chiều rộng... v1 vào danh sách L while L không rỗng remove đỉnh v1 từ L for đỉnh kề w với đỉnh v1 if w khơng có L and khơng có T then add w vào L add w and cạnh {v1, w} vào T KHOA CƠNG NGHỆ THƠNG TIN 17 THUẬT