Bài giảng lý thuyết đồ thị chương 2 ts lê nhật duy

26 1 0
Bài giảng lý thuyết đồ thị chương 2   ts  lê nhật duy

Đ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 2: Biểu diễn đồ thị Nội dung I Các cách biểu diễn đồ thị II Sự đẳng cấu đồ thị III Hướng dẫn cài đặt Chương – Biểu diễn đồ thị Lý thuyết đồ thị I Các cách biểu diễn đồ thị Các cách biểu diễn đồ thị Ma trận kề Danh sách cạnh Ma trận trọng số Danh sách cung Chương – Biểu diễn đồ thị Danh sách kề Ma trận liên thuộc Lý thuyết đồ thị I.1 Ma trận kề (đơn đồ thị vô hướng) ™ Định nghĩa ƒ Đơn đồ thị G = (V,E) với tập đỉnh V = {0,…,n-1}, tập cạnh E = {e0,e1,…em-1} Ta gọi ma trận kề G ƒ A = {ai,j , i,j = 0,…,n-1}, với: ai, j ⎧ , if ( i , j ) ∉ E = ⎨ ⎩ 1, if ( i , j ) ∈ E Chương – Biểu diễn đồ thị 0 1 1 1 1 0 0 0 1 0 I.1 Ma trận kề (đơn đồ thị có hướng) ™ Định nghĩa ƒ Giống đơn đồ thị có hướng ƒ E tập cung ai, j ⎧ , if ( i , j ) ∉ E = ⎨ ⎩ 1, if ( i , j ) ∈ E Chương – Biểu diễn đồ thị 0 0 0 1 0 0 0 0 0 I.1 Ma trận kề (Đa đồ thị) ™ Định nghĩa ƒ E tập cạnh/cung ƒ Ai,j số cạnh nối đỉnh i đỉnh j Chương – Biểu diễn đồ thị 0 1 1 1 1 0 0 1 1 1 0 1 I.1 Ma trận kề (Đa đồ thị) ™Một số tính chất ma trận kề ƒ Ma trận kề đồ thị vô hướng đối xứng a[i,j] = a[j,i] Ngược lại, ma trận đối xứng (0,1), có đường chéo 0, bậc n tương ứng với đơn đồ thị vô hướng n đỉnh ƒ Nếu đồ thị vơ hướng: Tổng dịng thứ i = Tổng cột thứ i = deg(i) ƒ Nếu đồ thị có hướng: Tổng dịng i = deg+(i), Tổng cột i = deg -(i) Ưu điểm hạn chế ma trận kề? Chương – Biểu diễn đồ thị I.2 Ma trận trọng số (đơn đồ thị) ™Định nghĩa ƒ Đơn đồ thị G = (V,E) với tập đỉnh V = {0,…,n-1}, tập cạnh E = {e0,e1,…em-1} ƒ Ta gọi ma trận kề trọng số G • A = {ai,j , i,j = 0,…,n-1}, với: a i, j ⎧ b , if ( i , j ) ∉ E = ⎨ ⎩ c k , if ( i , j ) ∈ E Ck giá trị quy định trước (0, -1, ∞, -∞, ) Chương – Biểu diễn đồ thị 0 3 0 0 5 0 I.3 Danh sách cạnh ƒ Đối với đồ thị thưa n đỉnh, m cạnh (m < 6n) người ta thường dùng cách biểu diễn danh sách cạnh để tiết kiệm không gian lưu trữ ƒ Lưu cạnh e=(u, v) đồ thị danh sách ƒ Danh sách cài đặt mảng chiều danh sách liên kết Chương – Biểu diễn đồ thị Cạnh Đầu Đầu 0 1 4 I.3 Danh sách cạnh Cài đặt mảng chiều Cạnh Đầu Đầu 0 1 4 typde struct tagNode { Cài đặt danh sách liên kết int diemdau1, diemdau2; } Canh; Chương – Biểu diễn đồ thị 10 I.4 Danh sách kề ƒ Tương ứng với đỉnh v đồ thị, ta có tương ứng danh sách để lưu đỉnh kề với ƒ Danh sách: mảng chiều, danh sách liên kết Đỉnh V Các cạnh kề 1, 2, 0, 2, 0, 1, 3 2, 4, 0, 1, 3, 5 3, Cài đặt mảng: Ke[] = {1, 2, 4, 0, 2, 4, 0, 1, 3, 2, 4, 5, 0, 1, 3, 5, 3, } ViTri[] = {0, 3, 6, 9, 12, 16} Chương – Biểu diễn đồ thị 12 I.4 Danh sách kề ƒ Cài đặt danh sách kề liên kết Chương – Biểu diễn đồ thị 13 Đỉnh V Các cạnh kề 1, 2, 0, 2, 0, 1, 3 2, 4, 0, 1, 3, 5 3, I.4 Danh sách kề ƒ Thuật toán xây dựng danh sách kề liên kết # include # include const maxV = 99; typedef struct Node { int v; struct Node*next; }node; int j, x, y, m, n, v ; node *p, *ke[maxV]; Chương – Biểu diễn đồ thị 14 I.4 Danh sách kề ƒ Thuật toán xây dựng danh sách kề liên kết int main(int argc, char* argv[]) { coutm>>n; for(j=0;jnext = ke[x]; ke[x]=p; } } Chương – Biểu diễn đồ thị 15 I.4 Danh sách kề ƒ Ví dụ Chương – Biểu diễn đồ thị 16 Đỉnh V Các cạnh kề 1, 2, 0, 2, 0, 1, 3 2, 4, 0, 1, 3, 5 3, I.5 Ma trận liên thuộc (đồ thị vô hướng) ™Định nghĩa ƒ Đồ thị vô hướng G=(V, E) Tập đỉnh V={0, 1, 2, …, n1)} Tập cạnh E={e1, e2, …, em-1 } Ta gọi ma trận liên thuộc G B = {bi, j, i = 0, ,n-1, j = 0, m-1} Trong • bi,j = đỉnh i kề cạnh j • bi, j = đỉnh i không kề cạnh j Chương – Biểu diễn đồ thị 17 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 I.5 Ma trận liên thuộc (đồ thị vơ hướng) ™Tính chất ƒ Mỗi cột chứa hai số hai đầu cạnh tương ứng với đỉnh ứng với cột Cột ứng với khuyên chứa số ƒ Các cột ứng với cạnh lặp giống ƒ Nếu đồ thị khơng có khun tổng hàng i bậc đỉnh Chương – Biểu diễn đồ thị 18 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 I.5 Ma trận liên thuộc (đồ thị có hướng) ™ Định nghĩa ƒ Đơn đồ thị có hướng G=(V, E) Tập đỉnh V={0, 1, 2, …, n-1)} Tập cung E={e1, e2, …, em-1 } Ta gọi ma trận liên thuộc G B = {bi, j, i = 0, ,n-1, j = 0, m-1} Trong • bi,j = đỉnh i đỉnh đầu cung j • bi,j = -1 đỉnh i đỉnh cuối cung j • bi, j = đỉnh i không đầu mút cung j Chương – Biểu diễn đồ thị 19 (1,2) (4,1) (1,3) (3,4) (2,4) 1 -1 0 -1 0 0 -1 -1 -1 I Các cách biểu diễn đồ thị ) n2 Đơn vị nhớ ) Dễ kiểm tra đ/k kề Các cách biểu diễn đồ thị Ma trận kề Danh sách cạnh Danh sách kề Ma trận liên thuộc ) 2m Đơn vị nhớ ) Đồ thị thưa ) Khó kiểm tra đ/k kề ) 2m+n Đơn vị nhớ ) Dễ dàng việc thêm bớt cạnh, đỉnh ) m*n Đơn vị nhớ ) Dễ dàng việc thêm bớt cạnh, đỉnh Chương – Biểu diễn đồ thị 20 20 Nội dung I Các cách biểu diễn đồ thị II Sự đẳng cấu đồ thị III Hướng dẫn cài đặt Chương – Biểu diễn đồ thị 21 Lý thuyết đồ thị II Sự đẳng cấu đồ thị ™Định nghĩa ƒ Các đồ thị đơn G1 = (V1,E1) G2 = (V2, E2) đẳng cấu có hàm song ánh : f : V1 Ỉ V2 cho ∀ đỉnh a & b kề G1 Ù f(a) & f(b) kề G2 ƒ Ỵ Tồn phép tương ứng – đỉnh hai đồ thị đồng thời đảm bảo quan hệ liền kề f(1) = a, f(2) = b f(3) = d, f(4) = b Chương – Biểu diễn đồ thị 22 II Sự đẳng cấu đồ thị ™Tính bất biến ƒ Hai đồ thị đẳng cấu có tính chất giống (số đỉnh, số cạnh, bậc đỉnh,…) Người ta gọi tính bất biến đồ thị đẳng cấu Chương – Biểu diễn đồ thị 23 II Sự đẳng cấu đồ thị ™Chứng minh đồ thị đẳng cấu ƒ Tìm ánh xạ f tương ứng – đỉnh ƒ So sánh ma trận liền kề tạo dựa ánh xạ f Chương – Biểu diễn đồ thị 24 Nội dung I Các cách biểu diễn đồ thị II Sự đẳng cấu đồ thị III Hướng dẫn cài đặt Chương – Biểu diễn đồ thị 25 Lý thuyết đồ thị III Hướng dẫn cài đặt ƒ Khai báo file ƒ Kết nối biến file với tên thực file đĩa (floppy or hard disk) ƒ Mở file, đóng file ƒ Đọc thơng tin từ file ghi thông tin vào file ƒ Để hiểu tốt danh sách kề liên kết cần tham khảo phần biến trỏ tài liệu lập trình Chương – Biểu diễn đồ thị 26

Ngày đăng: 25/07/2023, 16:02

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

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

Tài liệu liên quan