Bài giảng Lý thuyết đồ thị (Graph theory) - Chương 1: Giới thiệu tổng quan

18 2 0
Bài giảng Lý thuyết đồ thị (Graph theory) - Chương 1: Giới thiệu tổng quan

Đ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

29/09/2014 Chương 1: Giới thiệu tổng quan Bài giảng        LÝ THUYẾT ĐỒ THỊ (GRAPH THEORY) Trần Quốc Việt Tài liệu tham khảo: Khái niệm đồ thị, số lĩnh vực ứng dụng đồ thị Định nghĩa Một số đồ thị đặc biệt Biểu diễn đồ thị Đường chu trình Liên thông thành phần liên thông Một số vấn đề liên quan đến cài đặt đồ thị • Nguyễn Cam, Chu Đức Khánh, Lý thuyết Đồ thị, 1998 • Kenneth H Rosen, Discrete Mathematics and Its Applications Khái niệm  Một số lĩnh vực ứng dụng Một đồ thị hiểu đơn giản cấu trúc rời rạc gồm tập đỉnh, tập cạnh nối đỉnh Ví dụ: Trong thực tế, nhiều toán thuộc lĩnh vực khác giải đồ thị:  Lĩnh vực mạng máy tính: Biểu diễn mạng máy tính Đỉnh a d e b cạnh Đồ thị vô hướng c Xác định máy liên lạc vơi mạng,… Đồ thị có hướng 29/09/2014 Một số lĩnh vực ứng dụng  Lĩnh vực giao thơng: Tìm đường đi, đường ngắn hai thành phố mạng giao thông,… e2 e1 e7 e9 12 e3 e4  e8  Tỉnh E e6 Giải tốn lập lịch, thời khóa biểu, phân bố tần số cho trạm phát truyền hình … Tỉnh A  Tỉnh F  Tỉnh D    Tỉnh C    20 e5  Mỗi đỉnh: tỉnh Mỗi cạnh nối đỉnh u,v: Có đường trực tiếp tỉnh u,v Con số cạnh: Độ dài đường trực tiếp tỉnh  Tìm đường ngắn từ tỉnh đến tỉnh khác (chẳng hạn từ A đến F)?  Một số lĩnh vực ứng dụng Yêu cầu: Ví dụ: Bài tốn cầu Konigsberg: Một số định nghĩa  Đồ thị vô hướng (undirected graph ):  Đồ thị vô hướng G=(V,E) với:  V tập đỉnh  E: Là đa tập hợp với phần tử có dạng (u,v) với u,vV khơng có thứ tự, gọi cạnh đồ thị  Biểu diễn biểu đồ:  Mỗi đỉnh  điểm  Mỗi cạnh (u,v)  cạnh vơ hướng nối u v Tìm cách qua bảy cầu, sau điểm xuất phát, cầu qua lần ? Giải đồ thị Ví dụ: Cho đồ thị G với Tập đỉnh V ={1,2,3,4} tập cạnh E ={(1,2), (2,3), (3,4), (2,4)}  Kí hiệu: G = (V,E) 29/09/2014 Một số định nghĩa Một số định nghĩa  Cho đồ thị vô hướng G=(V,E)  Cho đồ thị vô hướng G=(V,E):  Với cạnh e=(u,v)E, u,v gọi đỉnh kề nhau, e gọi cạnh liên thuộc với đỉnh u,v  Hai cạnh e1, e2 liên kết cặp đỉnh khác gọi cạnh song song (paralell edges)  Một cạnh đỉnh gọi khuyên (loop) Ví dụ: Đỉnh kề với đỉnh e2 e1 Đỉnh kề với đỉnh e3 Đỉnh kề với đỉnh Đỉnh không kề với đỉnh e4 … e6 e5 e7 e3, e4: Các cạnh song song e8: Khuyên e9 e8  G đồ thị đơn (Simple graph) G khơng có khun khơng có cạnh song song  G gọi đa đồ thị (multigraphs)nếu G khơng có khun có cạnh song song  G gọi giả đồ thị (pseudographs) G có khuyên cạnh song song             Đa đồ thị Giả đồ thị Đơn đồ thị 10 Một số định nghĩa Một số định nghĩa  Bậc đỉnh đồ thị vô hướng: Bậc đỉnh v đồ thị vô hướng số cạnh liên thuộc với v, kí hiệu deg(v)  Đồ thị có hướng (directed graph) Đồ thị có hướng G = (V,E), V tập đỉnh, E tập cặp (u,v) có thứ tự V gọi cung  Với (u,v)E, u gọi đỉnh đầu, v gọi đỉnh cuối cung (u,v) v gọi đỉnh kề u  Hai cung e1, e2 liên kết cặp đỉnh gọi cung song song (paralell edges)  Cung từ đỉnh đến gọi khuyên (loop)  Đỉnh có bậc gọi đỉnh lập (isolated vertex)  Đỉnh có bậc gọi đỉnh treo (pendant vertex) Ví dụ: deg(1)=deg(5)=2,deg(4)=3, deg(3)=1, deg(6)=0 e1 A 3: Đỉnh treo, 6: Đỉnh cô lập e7 11 B e2 e8 e4 D e3 C e6 A,B,C,D: Các đỉnh e1,e2,e3,e4,e5,e6,e7,e8: Các cung e1,e2: Song song ngược chiều e7,e8: Song song chiều e6: Khuyên 12 e5 29/09/2014 Một số định nghĩa Một số định nghĩa  Cho đồ thị có hướng G=(V, E)  G đơn đồ thị có hướng (Simple directed Graphs) G khơng có khun khơng có cạnh song song chiều  G đa đồ thị có hướng (Directed multigraphs) G có khuyên, cạnh song song chiều  Đồ thị hỗn hợp (Mixed Graph): đồ thị Tóm tắt số thuật ngữ mà có chứa cạnh vơ hướng cạnh có hướng Ví dụ Đơn đồ thị có hướng 13 Một số định nghĩa Một số định nghĩa  Bậc đỉnh đồ thị có hướng: Cho đồ thị có hướng G = (V,E) vV  Nửa bậc v, kí hiệu deg-(v) số cung đến đỉnh v  Nửa bậc ngồi v, kí hiệu deg+(v) số cung xuất phát từ v e1 Ví dụ: Cho đồ thị e7 e2 e8 e3 e4 e5 e6  Đồ thị (subgraph ): Cho đồ thị (cùng có hướng vơ hướng) G=(V,E) H=(X,U) H gọi đồ thị G XV U  E Kí hiệu HG Ví dụ: b deg+(1)=? 14 deg-(1)=? deg+(2)=? deg-(2)=? deg+(4)=? deg-(4)=? deg(1)? deg(2)? 15 b d a e c G a d c H H đồ thị G 16 29/09/2014 Một số định nghĩa Một số đồ thị đặc biệt  Đồ thị khung (spanning subgraph): Cho đồ thị G=(V,E) H=(X,U), HG Nếu X=V H gọi đồ thị khung G Ví dụ: b b d a e c G Ví dụ: d a c  Đồ thị đủ (Complete Graph): Một đơn đồ thị vô hướng G=(V,E) với |V|=n, gọi đồ thị đủ cấp n(kí hiệu Kn) với cặp đỉnh khác kề e K1 H H đồ thị khung G K2 K3 K4 K5 Một số đồ thị Kn (n=1,2,…,5)  Một đồ thị đủ cấp n có số cạnh n(n-1)/2 17 Một số đồ thị đặc biệt 18 Một số đồ thị đặc biệt  Đồ thị vòng (Cycles): Đơn đồ thị n đỉnh v1, v2, , (n3) với n cạnh (v1,v2), (v2,v3), , (vn-1,vn), (vn,v1) gọi đồ thị vòng, ký hiệu Cn  Đồ thị lưỡng phân (Bipartite Graphs): Đơn đồ thị G=(V,E) gọi lưỡng phân V=V1V2, với V1V2=, V1, V2 cạnh E nối đỉnh V1 với đỉnh V2 V1  Như vậy, đỉnh Cn có bậc 19 V2 20 29/09/2014 a Kiểm tra G lưỡng phân? Một số đồ thị đặc biệt V1 a  c b e F C E G b d e a b a c b d e f a c b d e f g V1 V2 R={a}, W={c} V1 R={a,b}, W={c} V2 22 c d e f V2 R={a}, W= 21 V2 g V1 H c f g D a d B A G f g dùng màu khác cho trước để gán cho đỉnh cho khơng có đỉnh kề có chung màu d e  Định lý: Một đơn đồ thị lưõng phân Ví dụ: Đồ thị sau lưỡng phân?  c  b f g g V1 V1 V2 V2 R={a,b,g}, W={c,d} R={a,b}, W={c,d} a c b d e f g a b c d e f g V1 V2 R={a,b,g,e}, W={c,d} V1 V2 R={a,b,g,e}, W={c,d,f} 23 24 29/09/2014 Một số đồ thị đặc biệt Một số đồ thị đặc biệt  Đồ thị lưỡng phân đủ (Complete Bipartite Graphs): Đồ thị lưỡng phân G=(X1X2,E) với |V1|=m, |V2|=n lưỡng phân đủ, kí hiệu Km,n đỉnh V1 kề với đỉnh V2 V1  Đồ thị bánh xe (Wheels): Kí hiệu Wn , nhận từ đồ thị Cn (n≥3) cách thêm đỉnh bổ sung cạnh nối đỉnh vừa thêm với đỉnh Cn  Ví dụ: V2 Một số đồ thị Wn, (3≤n ≤6) 25 26 Định lý bắt tay (The handshaking Theorem) Một số đồ thị đặc biệt  Đồ thị lập phương (n-Cubes): Đồ thị lập phương n đỉnh (kí hiệu Qn)là đồ thị với đỉnh biểu diễn 2n xâu nhị phân độ dài n Hai đỉnh gọi kề hai xâu nhị phân tương ứng khác bit  Ví dụ:  Định lý: Cho đồ thị vơ hướng G=(V,E) với m cạnh, Ta có: 2m   deg(v) vV C/m:????  Ví dụ: Đồ thị G có đỉnh tất đỉnh có bậc Tính số cạnh G? 27 28 29/09/2014 Định lý 1: Định lý bắt tay Định lý Hệ quả: i) Tổng bậc đỉnh bậc lẻ đồ thị vô hướng G số chẵn ii) Mọi đồ thị vơ hướng có số chẵn đỉnh bậc lẻ iii) Đồ thị Kn có n(n  1) cạnh  Định lý: G=(V,E) đồ thị vơ hướng có m cung, ta có: m   deg  (v)   deg  (v) vV Ví dụ: e1 C/m:??? e7 m=|E|=8 e2 e8 vV  deg  (v )  deg  (1)  deg  ( 2)  deg  (3)  deg  ( 4) vV   1  e3 e4 e5 e6  deg  (v )  deg  (1)  deg  (2)  deg  (3)  deg  (4) vV  1   29 Biểu diễn đồ thị ma trận kề (Adjacency Matrix) Biểu diễn đồ thị danh sách kề  G=(V,E) khơng có cạnh song song (G khơng có cạnh song song chiều G có hướng) G biểu diễn cách liệt kê tất đỉnh G, đỉnh liệt kê đỉnh kề với Ví dụ: b d a c e Đỉnh Các đỉnh kề a b,d,e,c b a,c,d c a,b,d d a,b,c e a 30 Cho đồ thị G=(V,E), tập đỉnh V={v1, v2, …, vn} tập cạnh/cung E={e1, e2,…, em} Ma trận kề G ứng với thứ tự đỉnh v1, v2, …, ma trận vuông cấp n định nghĩa sau: A  (aij )1i , j n  Biểu diễn danh sách kề cồng kềnh, đặc biệt G có nhiều cạnh dùng thuật toán đồ thị 31 Với aij=số cạnh/cung nối từ đỉnh vi đến đỉnh vj  Nếu G đồ thị vơ hướng A đối xứng 32 29/09/2014 Biểu diễn đồ thị ma trận kề (tt) Biểu diễn đồ thị ma trận kề (tt) Ví dụ: Ma trận kề B A F E 0 1 1 0 0 0 0 1  1 1 0 Ví dụ: Cho G=(V,E) với ma trận kề sau: A B C D E A 0 0  B  0  M= C 1 0    D0 0    0 1 E A B C D E F C D 0 0  1  0 0 A 0 B 0 C 0  D 1 E 0  F 0 0 0 0 0 0 0 0  1 0 0 0 1  0 0 0 - Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh A có bậc B có bậc C có bậc D có bậc E có bậc 33 Biểu diễn đồ thị ma trận kề (tt) 34 Biểu diễn đồ thị ma trận liên thuộc (Incidence Matrix) Cho đồ thị vô hướng G=(V,E),V={v1,v2,…,vn},E={e1,e2,…,em} Ma trận liên thuộc G ma trận cấp nm định nghĩa Sau: M  ( mij )1i  n ,1 j  m m = ej liên thuộc với vi ij Ví dụ: e1 e2 e1 e3 35 ej không liên thuộc với vi e7 e2 e4 e5 e6 1  3  4 5   e3 e4 e5 0 e6 1 0 0 0 0 1 1 0 0 e7 0 0 0  0 1   36 29/09/2014 Biểu diễn đồ thị ma trận liên thuộc (tt) Đồ thi Biểu diễn đồ thị ma trận liên thuộc (tt)  Cho đồ thị có hướng G=(V,E),V={v1,v2,…,vn}, E={e1, e2,…, em} Ma trận liên thuộc G ma trận cấp nm xác định sau: Ma trận liên thuộc M  ( mij )1i  n ,1 j  m e4 e1 e1 e2 e7 e4 G3 D e7 e5 e4 C e6 e2 e2 E H e3 e7 E e e7 e8 G1 e1 B e3 e2 C G2 e1 e1 e3 e5 A e6 e5   1 0  0 1 0   1  1  38  Định nghĩa: Hai đồ thị G1=(V1,E1) G2=(V2,E2) gọi đẳng cấu với tồn song ánh f:V1  V2 cho:  Biểu diễn đồ thị sau ma trận kề, ma trận liên thuộc A B e e2 Đồ thị đẳng cấu (Graph Isomorphism) Bài tập ej không liên thuộc với vi e e2 e e e  1  e3 37 mij= -1 ej đến đỉnh i Ví dụ: 1 ej rời khỏi đỉnh i F e6 e H e9 D e4 e8 e6 e5 i,jV1, (i,j)E1  (f(i), f(j))E2 Nghĩa là: f bảo tồn tính chất kề đỉnh Hơn nữa, bảo tồn bậc đỉnh Ví dụ: f xác định C f:{1,2,3,4}{A,B,C,D} Với: f(1)=C; f(2)=B; A G1 f(3)=D; f(4)=A f bảo tồn tính chất kề đỉnh  G1, G2 đẳng cấu D G2 B G4 39 40 10 29/09/2014 Đồ thị đẳng cấu (tt) Đường chu trình Ví dụ: Các cặp đồ thị sau có phải đẳng cấu khơng? a) G1 c) A b) B E F G H C G2 d)  D G1 B C A G2 Đường (Path) có độ dài k từ đỉnh u đến đỉnh v đồ thị G=(V,E) dãy đỉnh x0,x1,x2,…,xk, x0=u, xk=v (xi, xi+1) cạnh/cung G Có thể biểu diễn đường dãy đỉnh cạnh/cung liên tiếp: Với: A e1 D E G H G1 G2 e4 e5 B •(A,e1,B,e4,C,e6,D) đường có độ dài từ đỉnh A đỉnh D C e3 P=(x0, e1, x1, e2,…,xk-1, ek, xk) x0=u, xk=v, ei=(xi-1,xi)E e8 e2 E e6 e7 •(E,e7,D,e6,C,e4,B,e1,A) đường từ E đến A có độ dài D 41 Đường chu trình (tt) 42 Đường chu trình (tt)  Đường khơng có lặp lại cạnh/cung gọi đường đơn  Đường lặp lại đỉnh gọi đường sơ cấp  Chu trình Đường có đỉnh đầu trùng với đỉnh cuối gọi chu trình • Chu trình gọi đơn khơng có lặp lại cạnh (hay cung) Ví dụ:  (A,e1,B,e4,C,e6,D) đường sơ cấp có độ dài từ đỉnh A đỉnh D (A,e1,B,e5,D,e5,B,e4,C) đường đơn  (A,e1,B,e4,C,e3,B,e5,D) đường đơn từ A đến D là đường sơ cấp  Mọi đường sơ cấp đường đơn 43 • Chu trình gọi sơ cấp khơng có lặp lại đỉnh  Định lý: Cho đồ thị G=(V,E) có ma trận kề A Số đường khác có độ dài r từ đỉnh i đến đỉnh j đơn đồ thị G giá trị phần tử aij ma trận Ar 44 11 29/09/2014 Đường chu trình (tt) 10 Sự liên thơng – thành phần liên thơng Ví dụ: Cho đồ thị G hình Số đường có độ dài từ A đến D?  Định nghĩa: Đồ thị vô hướng G=(V,E) gọi liên thông tồn đường đỉnh u, v V A e1 e4 B C e3 e5 e8 e2 E e6 e7 0 1  A  0  1 0 1 0 0  1  1 1 1 0 D G2: Không liên thông G1: Liên thông 45 46 Sự liên thông–thành phần liên thông (tt) Sự liên thông–thành phần liên thông (tt)  Định nghĩa: Cho đồ thi vô hướng G=(V,E) Trên V ta định nghĩa quan hệ  sau: x,yV, xy  có đường x y Ta có:  quan hệ tương đương V lớp tương đương gọi thành phần liên thơng G  Đồ thi có hướng G gọi liên thông yếu (Weakly connected) đồ thị vơ hướng tương ứng liên thơng Ví dụ:  Đồ thi có hướng G gọi liên thông mạnh (strongly connected) với cặp đỉnh khác u,v ln có đường từ đỉnh x đến đỉnh y ngược lại Ví dụ: u v w u v w y s t x G1: có thành phần liên thơng G2: có thành phần liên thơng y G3: có thành phần liên thơng 47 s t G:liên thông mạnh x G’ liên thông yếu (không lt mạnh) 48 12 29/09/2014 Sự liên thông–thành phần liên thông (tt)  Một thành phần liên thơng mạnh đồ thi có hướng G đồ thị liên thông mạnh G không đồ thị đồ thi liên thơng mạnh khác G Ví dụ: Tìm thành phần liên thông mạnh đồ thị có hướng sau: Sự liên thơng–thành phần liên thơng (tt)  Định nghĩa: Cho G liên thông  Cạnh e G gọi cầu sau loại bỏ e, G khơng cịn liên thơng  Đỉnh v G gọi đỉnh nối (đỉnh cắt/vertex cut) sau loại bỏ v với cạnh liên thuộc với G khơng cịn liên thơng Ví dụ: e2 e1 e4 e3 e5 e7 e6 e8 Các đỉnh 4,5 đỉnh nối Cạnh e4 cầu 49 50 Sự liên thông–thành phần liên thông (tt) 11 Duyệt đồ thi  Mệnh đề: Giữa cặp đỉnh phân biệt đồ thị vơ hướng liên thơng ln có đường sơ cấp  Mệnh đề: Mọi đơn đồ thị vô hướng n đỉnh (n  2) có tổng bậc hai đỉnh tuỳ ý không nhỏ n đồ thị liên thông Hệ quả: Đơn đồ thị mà bậc đỉnh khơng nhỏ nửa số đỉnh đồ thị liên thông  Mệnh đề: Nếu đồ thị có hai đỉnh bậc lẻ hai đỉnh phải liên thơng, tức có đường nối chúng  Mệnh đề: Cho G=(V,E) đồ thị liên thơng Khi đỉnh G điểm khớp G tồn hai đỉnh u v cho đường nối u v phải qua đỉnh  thăm qua tất đỉnh đồ thị  Thường dùng cách để duyệt đồ thị liên thông: 51  Duyệt theo chiều sâu (DFS)  Duyệt theo chiều rộng (BFS) Ví dụ: Duyệt đồ thi sau đỉnh 52 13 29/09/2014 Duyệt đồ thị theo chiều sâu (DFS: Depth First Search) Duyệt đồ thị theo chiều sâu (DFS: Depth First Search)  Duyệt theo chiều sâu 2 2 3 7 4 7 53 54 Duyệt đồ thị theo chiều sâu (DFS: Depth First Search) 2 3 1 4 Duyệt đồ thị theo chiều sâu (DFS: Depth First Search) 55 56 14 29/09/2014 Duyệt đồ thị theo chiều rộng (BFS: Breadth First Search) Thuật toán duyệt đồ thị theo chiều  Duyệt theo chiều rộng Procedure visited(u) Begin visited[u]:=True; for each vertex v adjacent to u if not vistited[v] then DFS(v); End Procedure DFS begin for each vertex u in V visited[u]=false; for each vertex u in V If not visited[u] then DFS(u); End 2 3 6 57 Thuật toán duyệt đồ thị theo chiều rộng Duyệt đồ thị theo chiều rộng (BFS: Breadth First Search)  Duyệt theo chiều sâu 58 59 Procedure visit(u) Begin Queue:=; Queue.push(u); visited[u]:=True; While Queue Begin v=Queue.pop(); visit(v); for each vertex w adjacent to v If not visited[w] then Begin Queue.push(w); visited[w]=true; End; End; End; 60 15 29/09/2014 Bài tập chương 01 Procedure BFS Begin for each vertex u in V visited[u]=false; for each vertex u in V If not visited[u] then BFS(u); End 1) Viết ma trận kề mà trận liên thuộc đồ thị sau: H1 H2 H3 H4 61 Bài tập chương 01 62 Bài tập chương 01 Với đồ thị vô hướng sau đây, tính bậc đỉnh, đỉnh treo, đỉnh lập, sau tính tổng bậc tất đỉnh, áp dụng định lý bắt tay tính số cạnh đồ thị: 2) Tìm số đỉnh đồ thị vô hướng G Biết: a) G có 12 cạnh đỉnh có bậc b) G có 15 cạnh, đỉnh bậc đỉnh lại bậc c) G có cạnh đỉnh có bậc 3) Một đồ thị vơ hướng G có 19 cạnh đỉnh có bậc >=3 G có tối đa đỉnh? 4) Biết đỉnh đồ thị vơ hướng G có bậc số lẻ p Cmr, số cạnh G bội số p 63 64 16 29/09/2014 Bài tập chương 01 Bài tập chương 01 Với đồ thị có hướng sau đây, tính bậc trong, bậc ngồi đỉnh, tính số cung đồ thị: Với đồ thị có hướng sau đây, tính bậc trong, bậc ngồi đỉnh, tính số cung đồ thị: 65 Bài tập chương 01 66 Bài tập chương 01 Các đồ thi sau đây, đồ thị lưỡng phân 5) Cho G={V,E} đơn với V={v1,v2,…,vn} (n≥2) Và E = {(i,j), 1≤i,j≤n, i≠j, i+j chẵn} CMR: G không liên thơng? xác định số thành phần liên thơng 6) Có thể có nhóm người người quen biết người khác nhom hay khơng 7) CMR, đồ thị liên thơng có n đỉnh có n-1 cạnh 8) CMR, đồ thị đơn tồn đường từ đỉnh bậc lẻ tới đỉnh bậc lẻ khác 67 68 17 29/09/2014 Thực hành chương  Cài đặt đồ thị (vơ hướng/ có hướng):  Sử dụng ma trận kề, ma trận liện thuộc để biểu diễn đồ thị  Các phương thức:          Thêm đỉnh Thêm cạnh In ma trận kề/ma trận liện thuộc Duyệt đồ thị (theo DFS BFS) Tính bậc đỉnh Tìm đường từ đỉnh x đến đỉnh y Kiểm tra tính liên thơng đồ thị Tìm thành phần liên thơng Kiểm tra đồ thị có phải đồ thị đồ thị khác 69 18

Ngày đăng: 02/09/2023, 09:47

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

Tài liệu liên quan