Cây khung đồ thị Cây khung đồ thị Bởi: Khoa CNTT ĐHSP KT Hưng Yên Cây khung đồ thị Cây tính chất Định nghĩa Cây đồ thị vô hướng liên thông, không chứa chu trình có hai đỉnh Một đồ thị vô hướng không chứa chu trình có hai đỉnh gọi rừng Trong rừng, thành phần liên thông Ví dụ Rừng sau có cây: Mệnh đề Nếu T có n đỉnh T có hai đỉnh treo Chứng minh: Lấy cạnh (a,b) tuỳ ý T Trong tập hợp đường sơ cấp chứa cạnh (a,b), ta lấy đường từ u đến v dài Vì T nên u ≠ v Mặt khác, u v phải hai đỉnh treo, đỉnh, u chẳng hạn, đỉnh treo u phải đầu mút cạnh (u,x), với x đỉnh không thuộc đường từ u đến v Do đó, đường sơ cấp từ x đến v, chứa cạnh (a,b), dài đường từ u đến v, trái với tính chất đường từ u đến v chọn Định lý 2: Cho T đồ thị có n ≥ đỉnh Các điều sau tương đương: 1) T 1/7 Cây khung đồ thị 2) T liên thông có n?1 cạnh 3) T không chứa chu trình có n?1 cạnh 4) T liên thông cạnh cầu 5) Giữa hai đỉnh phân biệt T có đường sơ cấp 6) T không chứa chu trình thêm cạnh có chu trình Chứng minh:1)⇒ ⇒2) Chỉ cần chứng minh có n đỉnh có n?1 cạnh Ta chứng minh quy nạp Điều hiển nhiên n=2 Giả sử có k đỉnh có k?1 cạnh, ta chứng minh T có k+1 đỉnh có k cạnh Thật vậy, T ta xoá đỉnh treo cạnh treo tương ứng đồ thị nhận k đỉnh, có k?1 cạnh, theo giả thiết quy nạp Vậy T có k cạnh 2)⇒ ⇒3) Nếu T có chu trình bỏ cạnh chu trình T liên thông Làm lại T không chu trình mà liên thông, lúc ta có n đỉnh có n?1 cạnh, trái với 2) 3)⇒ ⇒4) Nếu T có k thành phần liên thông T1, , Tk có số đỉnh n1, , nk (với n1+n2+ … +nk=n) Ti nên có số cạnh ni?1 Vậy ta có Do k=1 hay T liên thông Hơn nữa, bỏ cạnh T hết liên thông, liên thông T n đỉnh với n?2 cạnh, trái với điều chứng minh 4)⇒ ⇒5) Vì T liên thông nên hai đỉnh phân biệt T có đường sơ cấp, nối hai đường sơ cấp thế, hai đường tạo chu trình bỏ cạnh thuộc chu trình này, T liên thông, trái với giả thiết 5)⇒ ⇒6) Nếu T chứa chu trình hai đỉnh chu trình nối hai đường sơ cấp Ngoài ra, thêm cạnh (u,v), cạnh tạo nên với đường sơ cấp nối u v chu trình 6)⇒1) Nếu T không liên thông thêm cạnh nối hai đỉnh hai thành phần liên thông khác ta không nhận chu trình Vậy T liên thông, 2/7 Cây khung đồ thị Cây khung đồ thị Định nghĩa Giả sử G = (V, E) đồ thị vô hướng liên thông Cây T = (V, F) với F ⊂ E gọi khung đồ thị G Ví dụ Đồ thị G khung cho hình Hình Đồ thị khung Định lý sau cho biết số lượng khung đồ thị đầy đủ Kn: Định lý (Cayley) Số lượng khung đồ thị K n n n-2 Định lý cho thấy số lượng khung đồ thị số lớn Bây ta xét áp dụng thuật toán tìm kiếm theo chiều sâu theo chiều rộng đồ thị để xây dựng khung đồ thị vô hướng liên thông Trong hai trường hợp ta đến đỉnh u (tức Chuaxet[u]=true) từ đỉnh v cạnh (v, u) kết nạp vào khung Hai thuật toán tương ứng trình bày hai thủ tục sau Procedure stree_DFS(v); (* tim kiem theo chieu sau ap dung vao tim tap canh cua cay khung T cua thi vo huong lien thong G cho boi danh sach ke Cac bien Chuaxet, Ke, T la toan cuc*) begin Chuaxet[v]:=false; For u ∈ Ke(v) If Chuaxet[u] then Begin T:=T ? (u,v); STREE_DFS(u); 3/7 Cây khung đồ thị End; end; (* Main Program *) begin (* Initialition *) for u ∈ V Chuaxet[u]:=true; T := ∅ ; (* T la tap canh cua cay khung *) STREE_DFS(root); ( root la dinh nao cua thi *) end Procedure Stree_BFS(v); (* tim kiem theo chieu rong ap dung tim tap canh cua cau khung T cua thi vo huong lien thong G cho boi danh sach Ke *) begin Queue:= ∅ ; Queue ⇐ r; Chuaxet[r]:=false; While queue ∅ Begin V ⇐ queue; For r ∈ Ke(v) If Chuaxet[u] then Begin 4/7 Cây khung đồ thị Queue ⇐ u; Chuaxet[u]:=false; T:= T ? (u,v); End; End; end; (* Main Program *); begin for u ∈ V Chuaxet[u]:=true; T := ∅ ; (* T la tap canh cua cay khung *) Stree_BFS(root); (* root la mot dinh y cua thi *) end Chú ý: Lập luận tương tự phần trước thuật toán mô tả có độ phức tạp tính toán O(m+n) Cây khung tìm theo thủ tục Stree_BFS() đường ngắn từ gốc r đến tất đỉnh lại đồ thị Xây dựng tập chu trình đồ thị Bài toán xây dựng khung đồ thị liên quan chặt chẽ đến số toán ứng dụng khác lý thuyết đồ thị: toán xây dựng tập chu trình đồ thị mà ta xét mục Giả sử G=(V, E) đơn đồ thị vô hướng liên thông, H=(V, T) khung Các cạnh đồ thị thuộc khung ta gọi cạnh trong, cạnh lại gọi cạnh 5/7 Cây khung đồ thị Định nghĩa Nếu thêm cạnh e ∈ E\T vào khung H thu chu trình H, ký hiệu chu trình Ce Tập chu trình ? = { Ce : e ∈ E\T } gọi tập chu trình đồ thị G Giả sử A B hai tập hợp, ta đưa vào phép toán sau A ? B = ( A ?B) \ ( A ? B) Tập A ? B gọi hiệu đối xứng hai tập A B Tên gọi chu trình gắn liền với kiện chu trình đồ thị thu từ chu trình định lý sau đây: Định lý Giả sử G=(V,E) đồ thị vô hướng liên thông, H=(V,T) khung Khi chu trình đồ thị G điều biểu diễn hiệu đối xứng số chu trình Việc tìm tập hợp chu trình giữ vai trò quan trọng vấn đề giải tích mạng điện Cụ thể hơn, theo chu trình đồ thị tương ứng với mạng điện cần phân tích ta thiết lập phương trình tuyến tính theo định luật Kirchoff: tổng hiệu điện dọc theo mạch vòng không Hệ thống phương trình tuyến tính thu cho phép tính toán hiệu điện đường dây lưới điện Ta xây dựng thuật toán xây dựng chu trình dựa thủ tục tìm kiếm theo chiều sâu đồ thị Thuật toán có cấu trúc tương tự thuật toán xây dựng khung theo thủ tục tìm kiếm theo chiều sâu mô tả mục trước Thuật toán xây dựng tập chu trình Giả thiết đồ thị G=(V,E) mô tả danh sách Ke(v),v∈ V Procedure Cycle(v); (* tim kiem cac chu trinh co ban cua phan lien thong chua dinh v; cac bien d, num , stack, index la bien toan cuc *) begin d:=d+1; stack[d]:=v; num:=num+1;index[v]:=num; for u ∈ Ke(v) if index[u]=0 then cycle(u) 6/7 Cây khung đồ thị else if (u stack[d-1]) and (index[v]>index[u]) then d:=d-1; end; (* Main Program *) begin for v ∈ V Index[v]:=0; num:=0; d:=0; stack[0]:=0; for v ∈ V if Index[v]=0 then cycle(v); end Chú ý: Độ phức tạp tính toán thuật toán vừa mô tả O(|E| |V| ) 7/7 ... thông, 2/7 Cây khung đồ thị Cây khung đồ thị Định nghĩa Giả sử G = (V, E) đồ thị vô hướng liên thông Cây T = (V, F) với F ⊂ E gọi khung đồ thị G Ví dụ Đồ thị G khung cho hình Hình Đồ thị khung Định... thuyết đồ thị: toán xây dựng tập chu trình đồ thị mà ta xét mục Giả sử G=(V, E) đơn đồ thị vô hướng liên thông, H=(V, T) khung Các cạnh đồ thị thuộc khung ta gọi cạnh trong, cạnh lại gọi cạnh 5/7 Cây. .. khung đồ thị đầy đủ Kn: Định lý (Cayley) Số lượng khung đồ thị K n n n-2 Định lý cho thấy số lượng khung đồ thị số lớn Bây ta xét áp dụng thuật toán tìm kiếm theo chiều sâu theo chiều rộng đồ