Bài giảng lý thuyết đồ thị chương 2 biểu diễn đồ thị

15 0 0
Bài giảng lý thuyết đồ thị   chương 2 biểu diễn đồ thị

Đ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

Chương BIỂU DIỄN ĐỒ THỊ Representations of Graphs Biểu diễn đồ thị • Có nhiều cách biểu diễn Việc lựa chọn cách biểu diễn phụ thuộc vào toán cụ thể cần xét, thuật toán cụ thể cần cài đặt • Có hai vấn đề cần quan tâm lựa chọn cách biểu diễn: – Bộ nhớ mà cách biểu diễn địi hỏi – Thời gian cần thiết để trả lời truy vấn thường xuyên đồ thị trình xử lý đồ thị: • Chẳng hạn: – Có cạnh nối hai đỉnh u, v ? – Liệt kê đỉnh kề đỉnh v ? Ma trận kề (Adjacency Matrix) • |V|  |V| ma trận A • Các đỉnh đánh số từ đến |V| theo thứ tự • A xác định bởi: • n = |V|; m = |E| Ma trận kề đồ thị vô hướng (u,v)  E A[u,v] = trái lại 1 0 1 0 1 1 0 1 0 0 0 0 Ma trận kề đồ thị có hướng (u,v)  E A[u,v] = trái lại 1 0 0 0 0 1 0 0 0 0 0 0 0 0 Tính chất ma trận kề – Gọi A ma trận kề đồ thị vơ hướng: • A ma trận đối xứng: A = AT (aij = aji) • deg(v) = Tổng phần tử dịng v A • Nếu ký hiệu Ak = (a(k)[u,v]) a(k)[u,v] số lượng đường từ u đến v qua không k-1 đỉnh trung gian – Khái niệm ma trận kề mở rộng để biểu diễn đa đồ thị vô hướng: auv – số lượng cạnh nối hai đỉnh u v Phân tích chi phí • Bộ nhớ (Space) – |V|2 bits – (|V|2 + |V|)/2 (nếu đồ thị vơ hướng, khó cài đặt) – Các thơng tin bổ sung, chẳng hạn chi phí cạnh, cần cất giữ dạng ma trận Một cách làm khác cất giữ trỏ đến thông tin • Thời gian trả lời truy vấn – Hai đỉnh i j có kề nhau? O(1) – Bổ sung loại bỏ cạnh O(1) – Bổ sung đỉnh: tăng kích thước ma trận – Liệt kê đỉnh kề v O(|V|) (ngay v đỉnh cô lập) Ma trận liên thuộc đỉnh cạnh • Xét G = (V, E), (V = {1, 2, , n}, E = {e1, e2, , em}), đồ thị có hướng, ma trận liên thuộc đỉnh cạnh A = (aij: i = 1, 2, , n; j = 1, 2, , m), có • Ma trận liên thuộc đỉnh cạnh cách biểu diễn hay số đơng tốn có liên quan đến đồ thị Ma trận liên thuộc đỉnh cạnh Ma trận trọng số • Trong đồ thị thay biểu diễn ma trận kề ta biểu diễn ma trận trọng số: • C = c[i, j], i, j = 1, 2, , n, • Trong  khơng có cạnh đồ thị thay biểu diễn 0, +, - 10 Danh sách kề • Danh sách kề (Adjacency Lists): Với đỉnh v cất giữ danh sách đỉnh kề – Là mảng Ke gồm |V| danh sách – Mỗi đỉnh có danh sách – Với u  V, Ke[u] bao gồm tất đỉnh kề u • Ví dụ: Đồ thị vơ hướng Đồ thị có hướng u v w v u w w u v x z y v z x t y a b b e c b c d e b f f 11 Danh sách kề đồ thị vô hướng Với v  V, Ke(v) = danh sách đỉnh u: (v, u)  E a B C A F D E b Danh sách đỉnh kề A B D B A C C B D E D A C E E C D F Bộ nhớ = a |V| + b |E| 12 Danh sách kề đồ thị có hướng Với v  V, Ke(v) = { u: (v, u)  E } a B C A F D E b A B B C C D D E D E E F Bộ nhớ = a |V| + b |E| 13 Yêu cầu nhớ • Tổng cộng nhớ: (|V|+|E|) • Thường nhỏ nhiều so với |V|2, đồ thị thưa (sparse graph) • Đồ thị thưa đồ thị mà |E| = k |V| với k < 10 • Chú ý: – Phần lớn đồ thị thực tế ứng dụng đồ thị thưa! – Cách biểu diễn sử dụng nhiều ứng dụng 14 Biểu diễn đồ thị • Thời gian trả lời truy vấn: – Thêm cạnh O(1) – Xoá cạnh Duyệt qua danh sách kề đầu mút – Thêm đỉnh Phụ thuộc vào cài đặt – Liệt kê đỉnh kề v: O() (tốt ma trận kề) – Hai đỉnh i, j có kề nhau? • Tìm kiếm danh sách: (degree(i)) Đánh giá tình tồi O(|V|) => khơng hiệu (tồi ma trận kề) 15

Ngày đăng: 30/08/2023, 14:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan