Các khái niệm cơ bản của lý thuyết đồ thị đồ thị euler (phan 1)

12 428 1
Các khái niệm cơ bản của lý thuyết đồ thị  đồ thị euler (phan 1)

Đ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

Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Bởi: Khoa CNTT ĐHSP KT Hưng Yên Các khái niệm Lý thuyết đồ thị.Đồ thị Euler Các loại đồ thị đặc biệt Trong mục ta xét số đơn đồ thị vô hướng dạng đặc biệt xuất nhiều vấn đề ứng dụng thực tế Đồ thị đầy đủ Đồ thị đầy đủ n đỉnh, ký hiệu Kn, đơn đồ thị vô hướngmà hai đỉnh ln có cạnh nối Các đồ thị K3, K4, K5 cho hình Hình Đồ thị đầy đủ Đồ thị đầy đủ Kn có tất n(n-1)/2 cạnh, đơn đồ thị có nhiều cạnh 1/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Đồ thị vòng Đồ thị vòng Cn, n≥3 gồm n đỉnh v1, v2, .vn cạnh (v1,v2), (v2,v3) (vn-1,vn), (vn,v1) Đồ thị vịng C3, C4, C5, C6 cho hình Hình Đồ thị vịng C , C , C , C Đồ thị bánh xe Đồ thị Wn thu từ Cn cách bổ sung vào đỉnh nối với tất đỉnh Cn (xem hình 3) Hình Đồ thị bánh xe W , W , W , W Đồ thị lập phương Đồ thị lập phương n đỉnh Qn đồ 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 Hình cho thấy Qn với n=1,2,3 2/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Hình Đồ thị lập phương Q , Q , Q Đồ thị hai phía Đơn đồ thị G = (V, E) gọi hai phía tập đỉnh V phân hoạch thành hai tập X Y cho cạnh đồ thị nối đỉnh X với đỉnh Y Khi ta sử dụng ký hiệu G = (X?Y, E) để đồ thị hai phía với tập đỉnh X?Y Định lý sau cho phép nhận biết đơn đồ thị có phải hai phía hay khơng Định lý Đơn đồ thị đồ thị hai phía khơng chứa chu trình độ dài lẻ Để kiểm tra xem đồ thị liên thơng có phải hai phía hay khơng áp dụng thủ tục sau Cho v đỉnh đồ thị Đặt X={v}, Y tập đỉnh kề v Khi đỉnh kề đỉnh Y phải thuộc vào X Ký hiệu tập đỉnh T Vì phát T ? Y ≠ ∅ đồ thị khơng phải hai phía, kết thúc ngược lại, đặt X = X ? T Tiếp tục xét T’ tập đỉnh kề T, Đồ thị hai phía G=(X ? Y, E) với |X|= m, |Y| = n gọi đồ thị hai phía đầy đủ ký hiệu K2,3, K3,3, K3,4 cho hình Hình : Đồ thị hai phía 3/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Đồ thị phẳng Đồ thị gọi đồ thị phẳng ta vẽ mặt phẳng cho cạnh khơng cắt ngồi đỉnh Cách vẽ gọi biểu diễn phẳng đồ thị Ví dụ đồ thị K4 phẳng, vẽ mặt phẳng cho cạnh khơng cắt ngồi đỉnh (xem hình 6) Hình 6: Đồ thị K đồ thị phẳng Một điều đáng lưu ý đồ thị phẳng ln vẽ mặt phẳng với cạnh nối đoạn thẳng khơng cắt ngồi đỉnh (ví dụ xem cách vẽ K4 hình 6) Để nhận biết xem đồ thị có phải đồ thị phẳng sử dụng định lý Kuratovski, mà để phát biểu ta cần số khái niệm sau: Ta gọi phép chia cạnh (u,v) đồ thị việc loại bỏ cạnh khỏi đồ thị thêm vào đồ thị đỉnh w với hai cạnh (u,w), (w, u) Hai đồ thị G(V,E) H=(W,F) gọi đồng cấu chúng thu từ đồ thị nhờ phép chia cạnh Định lý (Kuratovski) Đồ thị phẳng khơng chứa đồ thị đồng cấu với K 3,3 K Trong trường hợp riêng, đồ thị K3,3 K5 đồ thị phẳng Bài tốn tính phẳng đồ thị K3,3 toán đố tiếng ba hộ ba hệ thống cung cấp lượng cho chúng: Cần xây dựng hệ thống đường cung cấp lượng với hộ nói cho chúng khơng cắt Đồ thị phẳng cịn tìm ứng dụng quan trọng cơng nghệ chế tạo mạch in Biểu diễn phẳng đồ thị chia mặt phẳng thành miền, có miền khơng bị chặng Ví dụ, biểu diễn phẳng đồ thị cho hình chia mặt phẳng thành miền R1, R2, .R6 4/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Hình 7: Các miền tương ứng với biểu diễn phẳng đồ thị Euler chứng minh cách biểu diễn phẳng khác đồ thị chia mặt phẳng thành số miền Để chứng minh điều đó, Euler tìm mối liên hệ số miền, số đỉnh đồ thị số cạnh đồ thị phẳng sau Định lý (Công thức Euler) Giả sử G đồ thị phẳng liên thông với n đỉnh, m cạnh Gọi r số miền mặt phẳng bị chia biểu diễn phẳng G Khi r = m-n + Có thể chứng minh định lý qui nạp Xét Ví dụ minh hoạ cho áp dụng cơng thức Euler Ví dụ Cho G đồ thị phẳng liên thơng với 20 đỉnh, đỉnh có bậc Hỏi mặt phẳng bị chia làm phần biểu diễn phẳng đồ thị G? Giải Do đỉnh đồ thị có bậc 3, nên tổng bậc đỉnh 3x20=60 Từ suy số cạnh đồ thị m=60/20=30 Vì vậy, theo cơng thức Euler, số miền cần tìm r = 30-20+2=12 Các phương pháp lưu trữ đồ thị Để lưu trữ đồ thị thực thuật toán khác với đồ thị máy tính cần phải tìm cấu trúc liệu thích hợp để mơ tả đồ thị Việc chọn cấu trúc liệu để biểu diễn đồ thị có tác động lớn đến hiệu thuật tốn Vì vậy, việc chọn lựa cấu trúc liệu để biểu diễn đồ thị phụ thuộc vào tình cụ thể (bài tốn thuật toán cụ thể) Trong mục xét số phương pháp sử dụng để biểu diễn đồ thị máy tính, đồng thời phân tích cách ngắn gọn ưu điểm nhược điểm chúng 5/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Ma trận kề Ma trận trọng số Xét đơn đồ thị vô hướng G =(V,E), với tập đỉnh V={1, 2, ,n} , tập cạnh E= {e1, e2, ,em } Ta gọi ma trận kề đồ thị G ma trận A=( ai,j : i, j = 1, 2, ,n) Với phần tử xác định theo qui tắc sau đây: ai, j = 0, (i, j) ∈ E ai,j = , (i, j) ∈ E, i, j =1, 2, ., n Ví dụ Ma trận trận kề đồ thị vơ hướng G cho hình 2.8 là: 1 1 1 1 0 0 1 1 1 0 1 Hình 2.8 Đồ thị vơ hướng G Đồ thị có hướng G Các tính chất ma trận kề: 1) Rõ ràng ma trận kề đồ thị vô hướng ma trận đối xứng, tức a[i,j]=a[j,i], i,j =1,2, .,n Ngược lại, (0,1)-ma trận đối xứng cấp n tương ứng, xác đến cách đánh số đỉnh (cịn nói là: xác đến đẳng cấu), với đơn đồ thị vô hướng n đỉnh 6/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) 2) Tổng phần từ dòng i (cột j) ma trận kề bậc đỉnh i (đỉnh j) 3) ký hiệu aịjp , i,j=1, 2, ,n phần tử ma trận Ap =A.A .A p thừa số Khi aịjp , i,j=1, 2, ,n cho ta số đường khác từ đỉnh i đến đỉnh j qua p-1 đỉnh trung gian Ma trận kề đồ thị có hướng định nghĩa cách hồn tồn tương tự Ví dụ Đồ thị có hướng G1 cho hình có ma trận kề ma trận sau: 1 0 0 0 0 1 0 0 0 0 0 1 0 0 Lưu ý ma trận kề đồ thị có hướng khơng phải ma trận đối xứng Chú ý: Trên xét đơn đồ thị Ma trận kề đa đồ thị xây dựng hồn tồn tương tự, khác thay ghi vào vị trí a[i,j] (i,j) cạnh đồ thị, ghi k số cạnh nối hai đỉnh i, j Trong nhiều vấn đề ứng dụng lý thuyết đồ thị, cạnh e=(u,v) đồ thị gán với số c(e) (còn viết c(u,v) gọi trọng số cạnh e Đồ thị trường hợp gọi đồ thị có trọng số Trong trường hợp đồ thị có trọng số, thay mà trận kề, để biểu diễn đồ thị ta sử dụng ma trận trọng số C= {c[i,j], i, j = 1, 2, ., n} với c[i,j]=c(i,j) (i,j) ∈ E c[i,j]= δ (i, j) ∉ E số δ , tuỳ trường hợp cụ thể, đặt giá trị sau : 0, + , - Ưu điểm lớn phương pháp biểu diễn đồ thị ma trận kề (hoặc ma trận trọng số) để trả lời câu hỏi: Hai đỉnh u, v có kề đồ thị hay không, phải thực phép so sánh nhược điểm lớn phương pháp : không 7/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) phụ thuộc vào số cạnh đồ thị, ta phải sử dụng n2 đơn vị nhớ để lưu trữ ma trận kề Danh sách cạnh (cung) Trong trường hợp đồ thị thưa (đồ thị có số cạnh m thoả mãn bất dẳng thức: m < 6n) người ta thường dùng cách biểu diễn đồ thị dạng danh sách cạnh Trong cách biểu diễn đồ thị danh sách cạnh (cung) lưu trữ danh sách tất cạnh (cung) đồ thị vô hướng (có hướng) Một cạnh (cung) e = (x,y) đồ thị tương ứng với hai biến Dau[e], Cuoi[e] vậy, để lưu trữ đồ thị ta cần sử dụng 2m đơn vị nhớ Nhược điểm cách biểu diễn để xác định đỉnh đồ thị kề với đỉnh cho trước phải làm cỡ m phép so sánh (khi duyệt qua danh sách tất cạnh đồ thị) Chú ý: Trong trường hợp đồ thị có trọng số ta cần thêm m đơn vị nhớ để lưu trữ trọng số cạnh Ví dụ 2.4 Danh sách cạnh (cung) đồ thị G (G1) cho hình 2.8 là: Dau Cuoi Dau Cuoi 2 3 2 3 5 4 6 6 Danh sách cạnh G Danh sánh cung G1 Danh sách kề Trong nhiều vấn đề ứng dụng lý thuyết đồ thị, cách biểu diễn đồ thị dạng danh sách kề cách biểu diễn thích hợp sử dụng 8/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Trong cách biểu diễn này, với đỉnh v đồ thị lưu trữ danh sách đỉnh kề với nó, mà ta ký hiệu Ke(v)= { u ∈ V: (v,u)∈ E } Khi vịng lặp thực với phần tử danh sách theo thứ tự phần tử xếp viết sau: for u ∈ Ke(v) Chẳng hạn, PASCAL mô tả danh sách sau (Gọi cấu trúc Forward Star): Const m=1000; {m-so canh} n= 100; {n-so dinh} var Ke: array[1 m] of integer; Tro: array[1 n+1] of integer; Trong Tro[i] ghi nhận vị trí bắt đầu danh sách kề đỉnh i, i=1, 2, .,n, Tro[n+1]=2m+1 Khi dịng lệnh qui ước for u ∈ Ke(v) begin end Có thể thay cấu trúc lệnh cụ thể PASCAL sau For i:=Tro[v] to Tro[v+1]-1 Begin U:=Ke[i]; 9/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) End; Trong nhiều thuật toán làm việc với đồ thị thường xuyên phải thực thao tác: Thêm bớt số cạnh Trong trường hợp cấu trúc liệu dùng không thuận tiện Khi nên chuyển sang sử dụng danh sách kề liên kết (Linked Adjancency List) mô tả chương trình nhập danh sách kề đồ thị từ bàn phím đưa danh sách hình sau đây: Program AdjList; Const maxV=100; Type link=^node; node=record v:integer; next:link; End; Var j,x,y,m,n,u,v:integer; t:link; Ke:array[1 .Vmax] of link; Begin Write(‘Cho so canh va dinh cua thi:’); readln(m,n); (*Khoi tao*) for j:=1 to n Ke[j]:=nil; for j:=1 to m 10/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) begin write(‘Cho dinh dau va cuoi cua canh ‘,j,’:’); readln(x,y); new(t); t^.v:=x, t^.next:=Ke[y]; Ke[y]:=t; new(t); t^.v:=y, t^.next:=Ke[x]; Ke[x]:=t; end; writeln(‘Danh sach ke cua cac dinh cua thi:’); for J:=1 to m begin writeln(‘Danh sachcac dinh ke cua dinh ‘,j,’:’); t:=Ke[j]; while t^.nextnil begin write(t^.v:4); t:=t^.next; end; end; readln; End Ví dụ Danh sách kề đồ thị hình 2.8 mơ tả hình sau: Đỉnh đầu 11/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Đỉnh đầu Hình 2.9 Danh sách kề đồ thị vô hướng G có hướng G cho hình 2.8 Để ý cách biểu diễn cần phải sử dụng cỡ m+n đơn vị nhớ Trong thuật tốn mơ tả phần hai cấu trúc danh sách kề ma trận trọng số sử dụng thường xuyên 12/12 ... dụng lý thuyết đồ thị, cách biểu diễn đồ thị dạng danh sách kề cách biểu diễn thích hợp sử dụng 8/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Trong cách biểu diễn này, với đỉnh v đồ thị. . .Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1) Đồ thị vòng Đồ thị vòng Cn, n≥3 gồm n đỉnh v1, v2, .vn cạnh (v1,v2), (v2,v3) (vn-1,vn), (vn,v1) Đồ thị vòng C3, C4,... Đồ thị hai phía G=(X ? Y, E) với |X|= m, |Y| = n gọi đồ thị hai phía đầy đủ ký hiệu K2,3, K3,3, K3,4 cho hình Hình : Đồ thị hai phía 3/12 Các khái niệm Lý thuyết đồ thị Đồ thị Euler (phan 1)

Ngày đăng: 31/12/2015, 12:06

Từ khóa liên quan

Mục lục

  • Các khái niệm cơ bản của Lý thuyết đồ thị. Đồ thị Euler (phan 1)

  • Các loại đồ thị đặc biệt

    • Đồ thị đầy đủ.

    • Đồ thị vòng.

    • Đồ thị bánh xe.

    • Đồ thị lập phương.

    • Đồ thị hai phía.

    • Đồ thị phẳng.

    • Các phương pháp lưu trữ đồ thị 

      • Ma trận kề. Ma trận trọng số

      • Danh sách cạnh (cung)

      • Danh sách kề

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

Tài liệu liên quan