thảo luận tìm thành phần liên thông cấu trúc dữ liệu và giải thuật

18 490 0
thảo luận tìm thành phần liên thông cấu trúc dữ liệu và giải thuật

Đ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

Đề bài: TÌM THÀNH PHẦN LIÊN THÔNG Mục Lục 1. Khái niệm 1 1.1 Đồ thị. 1 1.2 Thành phần liên thông. 2 2.Ý tưởng thuật toán: 4 3.Độ phức tạp của thuật toán 7 4.Chương trình minh họa 7 1. Khái niệm 1.1 Đồ thị. • Đồ thị (graph) là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó. Được mô tả như sau: G = (V,E). Trong đó: V: tập các đỉnh (vertices). E : tập các cạnh (edges) nối các đỉnh trong V. • Đồ thị vô hướng. G được gọi là đồ thị vô hướng nếu các cạnh trong E là không định hướng, tức là cạnh nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh v, u. Hay nói cách khác, tập E gồm các cặp (u, v) không tính thứ tự: (u, v) ≡ (v, u). ...................

      ! Đề bài: TÌM THÀNH PHẦN LIÊN THÔNG "#$ % & '( %)&)*+),)) ! % -    !/ . . 0 !/ ) 123  4 12!56 , 7869 : ;1 & 8 < . = >; * 12!5 ? 1281 @A@A )B"CDEDF$ )B)GH"IB • Đồ thị (graph) là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó. Được mô tả như sau: G = (V,E). Trong đó: V: tập các đỉnh (vertices). E : tập các cạnh (edges) nối các đỉnh trong V. • Đồ thị vô hướng. G được gọi là đồ thị vô hướng nếu các cạnh trong E là không định hướng, tức là cạnh nối hai đỉnh u, v bất kỳ cũng là cạnh nối hai đỉnh v, u. Hay nói cách khác, tập E gồm các cặp (u, v) không tính thứ tự: (u, v) ≡ (v, u). - Ví dụ: trong đồ thị vô hướng này, ta có: V= {a,b,c,d} E= {(a,b),(a,c),(b,d),(b,c)} • Đồ thị có hướng. G được gọi là đồ thị có hướng nếu các cạnh trong E là có định hướng, tức là có thể có cạnh nối từ đỉnh u tới đỉnh v nhưng chưa chắc đã có cạnh nối từ đỉnh v tới đỉnh u. Hay nói cách khác, tập E gồm các cặp (u, v) có tính thứ tự: (u, v) ≠ (v, u). Trong đồ thị có hướng, các cạnh được gọi là các cung. Ví dụ: trong đồ thị có hướng này, ta có: V = {a,b,c,d} E = {(a,b),(a,c),(b,d),(c,b),(d,d)} Một số khái niệm liên quan: - Một cạnh (cung) bắt đầu và kết thúc tại một đỉnh được gọi là khuyên. - Hai cạnh (hai cung cùng hướng) của cùng một cặp đỉnh được gọi là các cặp cạnh (cung) song song với nhau. - Đồ thị vô hướng G là đơn đồ thị nếu không có các cạnh song song và không có khuyên. Đồ thị vô hướng G là đa đồ thị nếu tồn tại ít nhất một cặp cạnh song song và không có khuyên. - Đồ thị có hướng G là đơn đồ thị nếu không có các cung song song và G được gọi là đa đồ thị nếu tồn tại ít nhất một cặp cung song song. 1.2 "JE"("KELDMEH"NEOB • Đồ thị vô hướng liên thông. - Đồ thị vô hướng G = ( X,U) được gọi là liên thông nếu hai đỉnh phân biệt bất kỳ của đồ thị liên thông với nhau. • Đồ thị có hướng liên thông. - Đồ thị có hướng G = ( X,U) được gọi là liên thông mạnh nếu hai đỉnh phân biệt bất kỳ của đồ thị là liên thông. - Đồ thị có hướng G = ( X,U) được gọi là liên thông yếu nếu đồ thị vô hướng nền là liên thông. • Thành phần liên thông. Cho G 1 = (X 1 , U 1 ) và G 2 = (X 2 , U 2 ) là hai đồ thị liên thông không chung đỉnh. Khi đó, ta nói đồ thị G= ( X, U), trong đó X= X 1 U X 2 , U = U 1 U U 2 có hai thành phần liên thông G 1 và G 2 được gọi là các thành phần liên thông của G.  CAH"JE"("KELDMEH"NEOAPQ$RHSGH"ILJACASGH"IATELDMEH"NEOUVD E"QWB - Một đồ thị không liên thông sẽ bao gồm nhiều đồ thị con liên thông, các đồ thị con này được gọi là các thành phần liên thông. Đồ thị liên thông khi và chỉ khi có $RH thành phần liên thông. Xhành phần liên thông của một đồ thị vô hướng% là một đồ thị con trong đó giữa bất kì hai đỉnh nào đều có đường đi đến nhau, và không thể nhận thêm bất kì một đỉnh nào mà vẫn duy trì tính chất trên - Một đồ thị liên thông có đúng một thành phần liên thông, chính là toàn bộ đồ thị. - Ví dụ  + Đồ thị vô hướng trên có đúng 1 thành phần liên thông. 1 2 4 3 4BYHZ[EOH"W\HHTCE% Z'A]: Khởi tạo số thành phần liên thông bằng 0. Z'A): Xuất phát từ một đỉnh chưa được đánh dấu của đồ thị. Ta đánh dấu đỉnh xuất phát, tăng số thành phần liên thông lên 1 và chuyển sang bước 2. Z'A4: Từ một đỉnh i đã đánh dấu, ta đánh dấu đỉnh j nếu A[i,j] = 1 và j chưa được đánh dấu và chuyển sang Bước 3. Z'A,: Thực hiện Bước 2 cho đến khi không còn thực hiện được nữa chuyển sang Bước 4. Z'A:: Nếu số số đỉnh đánh dấu bằng n kết thúc thuật toán, ngược lại quay về Bước 1. Mô tả bài toán: Cho đồ thị vô hướng G=(V,E) hãy đếm số thành phần liên thông của đồ thị G. "TSGH"I^N"Z'EO_:S`E"a% bcHHdE"LDMEH"NEOSGH"IefEOH"W\HHTCE+-% • Z'A)%CEE"gEACAS`E"LJ] • Z'A4% • !'Dh)%OCEE"gES`E"h)^JicHHjS`E"A#SZVEOSDSkEACAS`E"AlE LmDn"NEO • QopH"qrHjS`E")A#SZVEOSDSkES`E"4EMEopOCEE"gE4LJ) • mDS`E"4HQis$A#SZVEOSDHj4SkEACAS`E"AlELmDn"NEOtHjS`E"4HQSD SZuASkES`E",EMEHQopOCEE"gEAPQS`E",LJE"gEAPQS`E"4  • mDS`E",HQis$A#SZVEOSDHj,SkEACAS`E"AlELmDn"NEOtHjS`E",HQSD SZuASkES`E":EMEHQopOCEE"gEAPQS`E":LJE"gEAPQS`E", • jS`E")HQSgSDSZuASkEACA S`E"AlELmDHUTEOSGH"IEME LJ)SGH"ILDMEH"NEO^vA"`A# )A"WHUvE"wWrE"qHBkHH"xA H"W\HHTCE • "JE"("KELDMEH"NEO)%)4, : ,BR("yAHm(APQH"W\HHTCE Độ phức tạp của thuật toán : TH1: Tốt nhất khi Đồ thị liên thông (số thành phần liên thông của nó là 1) Điều này tương đương với phép duyệt theo thủ tục DFS(u) hoặc BFS(u) được gọi đến đúng một lần. Do phuc tap: O(n) TH2: Xấu nhất khi Đồ thị không liên thông (số thành phần liên thông lớn hơn 1) Tách chúng thành những đồ thị con liên thông. Điều này cũng có nghĩa là trong phép duyệt đồ thị, số thành phần liên thông của nó bằng đúng số lần gọi tới thủ tục DFS() hoặc BFS(). Ở mỗi bước lặp để tìm ra điểm I , J cần thực hiện O(n) phép toán, để gán nhãn cũng cần thực hiện 1 lượng phép toán là O(n). Thuật toán cần phải thực hiện n-1 bước lặp → độ phức tạp của thuật toán sẽ là n + n(n-1) = O() Do phuc tap: O(n^2) . gồm nhiều đồ thị con liên thông, các đồ thị con này được gọi là các thành phần liên thông. Đồ thị liên thông khi và chỉ khi có $RH thành phần liên thông. Xhành phần liên thông của một đồ thị. Đồ thị không liên thông (số thành phần liên thông lớn hơn 1) Tách chúng thành những đồ thị con liên thông. Điều này cũng có nghĩa là trong phép duyệt đồ thị, số thành phần liên thông của nó. là liên thông mạnh nếu hai đỉnh phân biệt bất kỳ của đồ thị là liên thông. - Đồ thị có hướng G = ( X,U) được gọi là liên thông yếu nếu đồ thị vô hướng nền là liên thông. • Thành phần liên thông. Cho

Ngày đăng: 09/07/2015, 15:07

Từ khóa liên quan

Mục lục

  • 1. Khái niệm

    • 1.1 Đồ thị.

    • 1.2 Thành phần liên thông.

    • 2.Ý tưởng thuật toán: Bước 0: Khởi tạo số thành phần liên thông bằng 0. Bước 1: Xuất phát từ một đỉnh chưa được đánh dấu của đồ thị. Ta đánh dấu đỉnh xuất phát, tăng số thành phần liên thông lên 1 và chuyển sang bước 2. Bước 2: Từ một đỉnh i đã đánh dấu, ta đánh dấu đỉnh j nếu A[i,j] = 1 và j chưa được đánh dấu và chuyển sang Bước 3. Bước 3: Thực hiện Bước 2 cho đến khi không còn thực hiện được nữa chuyển sang Bước 4. Bước 4: Nếu số số đỉnh đánh dấu bằng n kết thúc thuật toán, ngược lại quay về Bước 1.

    • 3.Độ phức tạp của thuật toán

    • 4.Chương trình minh họa

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

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

Tài liệu liên quan