Slide bài giảng Toán rời rạc 2 – Vũ Văn Thỏa

25 163 0
Slide bài giảng Toán rời rạc 2 – Vũ Văn Thỏa

Đ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 CÂY VÀ CÂY KHUNG Đ TH N I DUNG:  Định nghĩa tính chất  Xây dựng khung đồ thị  Bài tốn tìm khung nhỏ 5.1 Đ nh nghĩa tính chất c Cây tự - Cây tự (không gốc) T đồ thị vô hứng liên thông v̀ không ć chu tr̀nh đơn - Đồ thị F rừng  thành phần liên thông F - Đồ thị F rừng  F khơng có chu trình đơn Cây tự (không gốc) Đ nh lý 1: T= (V, E) đồ thị vô hứng có n đỉnh Các mệnh đề sau tương đương: (1) T cây; (2) T không chứa chu trình có n-1 cạnh; (3) T liên thơng có n-1 cạnh; (4) T liên thơng cạnh T cầu ; (5) Hai đỉnh T có đường nối đến ; (6) T khơng chứa chu trình thêm cạnh thu chu trình Cây có g c Đ nh nghĩa 1: Cây tập hợp hữu hạn nút thỏa mãn: - Có nút gọi gốc - Có quan hệ phân cấp “cha-con” nút Đ nh nghĩa (đệ qui): - Nếu T gồm nút  T v́i gốc l̀ nút đ́ - Nếu T1, …, Tn (n  1) có gốc tương ứng r1, …, rn  T v́i gốc r tạo thành cách cho r thành nút cha nút r1, …, rn Cây có gốc tam phân Các mức Các ví dụ cây: - Mục lục sách - Cấu trúc thư mục đĩa máy tính - Dùng để biểu diễn biểu thức số học M t s khái niệm: - Nút g c: nút T khơng có cha - Nút cha: Nút r cha nút r1, , rn  Nút gốc nút nút cha - Nút con: Các nút r1, …, rn gọi nút r - Bậc m t nút: số nút nút đ́ - Bậc m t T: bậc ĺn nút  T T có bậc m  T gọi m-phân Nút lá: l̀ nút ć bậc =  nút khơng có nút Nút nhánh (nút hay nút trung gian): l̀ nút vừa ć vừa ć cha T m-phơn đầy đủ  nút nhánh ć m - Cây con: M i có g c nút a  T m t T - Đ ờng đi: Dãy đỉnh r1, …, rk, đ́ ri cha ri+1 gọi l̀ đường từ r1 đến rk Độ dài đường l̀ số nút đường -1 (Đường ć độ dài k-1) - Mức nút: l̀ độ d̀i đường từ gốc đến nút (độ cao nút)  Nút gốc có mức - Chiều cao cây: mức ĺn nút  T - Cơy đ ợc thứ tự: mà theo thứ tự ǹo đ́ - Cây gán nhãn: mà đỉnh gắn v́i giá trị (nhãn) Cây nh phân: Cây nhị phân mà nút có khơng q Phân biệt bên trái bên phải Đ nh nghĩa cơy khung Đ nh nghĩa Cho G l̀ đơn đồ thị Một T gọi l̀ khung G  T l̀ đồ thị G v̀ chứa tất đỉnh G Đồ thị G Một khung T G Đ nh ĺ Một đơn đồ thị l̀ liên thông v̀ ń ć khung Ch́ng minh Giả s̉ đồ thị G ć khung T chứa tất đỉnh G ć đường T hai đỉnh  ć đường G hai đỉnh ń  G l̀ liên thông Giả s̉ G l̀ liên thông Nếu G l̀ th̀ G ć chu tr̀nh đơn X́a cạnh chu tr̀nh đơn ǹy Đồ thị nhận chứa số cạnh ṽn c̀n chứa tất đỉnh G v̀ liên thông Nếu đồ thị ǹy l̀ th̀ ń chứa chu tr̀nh đơn C̃ng giống trên, x́a cạnh chu tr̀nh đơn Ḷp lại tr̀nh ǹy không c̀n chu tr̀nh đơn Điều ǹy ć thể v̀ ć hữu hạn cạnh đồ thị Đồ thị cuối sau x́a cạnh chu tr̀nh l̀ khung 10 5.2 Bài tốn tìm khung 1) Đặt bƠi toán: Input: Đồ thị G gồm n đỉnh cho danh sách kề; Đỉnh u; Output: Cây khung T G đỉnh u; 11 Xơy dựng khung thuật toán DFS Thuật toán TreeDfs(u): - Tạo T thuật toán DFS đỉnh u; - Nếu số đỉnh T n th̀ xuất kết T; - Nếu số đỉnh T nhỏ n th̀ xuất thơng báo: Khơng có khung.; Đ phức tạp tính tốn: Giải thuật t̀m khung ć độ phức tạp O(n) 12 Ví dụ: T̀m khung đồ thị G cho dứi đây: - Tìm kiếm theo chiều sâu 1: T = {(1, 3), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 11), (8, 10)} - Tìm kiếm theo chiều rộng 1: T = {(1, 3), (2, 3), (3,4), (4, 5), (4, 6), (6, 7), (6, 8), (8, 9), (8, 10), (9, 11)} Ghi chú: - Cây khung T tìm kiếm theo chiều rộng gồm đường ngắn xuất phát từ đến đỉnh khác - Đồ thị đầy đủ Kn có nn-2 khung khác 13 Xơy dựng khung thuật toán BFS Thuật toán TreeBfs(u): - Tạo T thuật toán BFS đỉnh - Nếu số đỉnh T n th̀ xuất kết T - Nếu số đỉnh T nhỏ n th̀ xuất thông báo: Không ć khung Đ phức tạp tính tốn: Giải thuật t̀m khung ć độ phức tạp O(n) 14 5.3 BƠi tốn tìm cơy khung nhỏ Cơy khung nhỏ Cho đồ thị vô hứng ć trọng số G = (V, E) Gọi T l̀ câu khung G Trọng số WT T l̀ t̉ng trọng số cạnh thuộc Cây khung T khung nh̉ nh́t  WT có giá trị nhỏ Điều kiện: G ć khung nhỏ  G liên thông; 15 Thuật tốn tìm cơy khung nhỏ nhất: Thuật toán Thuật toán Prim Đồ thị G = (V, E) gồm n đỉnh cho ma trận trọng số a[i][j]; Đỉnh s  G; Output: Cây khung nhỏ T v̀ WT; Input: Khởi tạo: T= ; VT = {s}; WT= 0; while (V\VT ≠) { ; if (T̀m e) {T = T  e; WT= WT + trọng số e; VT = VT  {v}; } else return (G khơng có khung); } return (T WT); 16 Ví dụ Dùng thuật toán Prim, t̀m khung nhỏ đồ thị G s = b; Gỉi Khởi tạo T = ; VT = {b}; WT = 0; Cây khung nhỏ xây dựng thuật toán Prim thể bảng sau: 17 a B ́c cḥn 10 11 Cạnh đ ợc cḥn b,f a,b f,j a,e f,g c,g c,d g,h h,l i,j k,l Tṛng s 2 3 3 WT 11 13 14 17 20 23 24 Kết luận: T = { (b,f), (a,b), (f,j), (a,e), (f,g), (c,g), (c,d), (g,h), (i,j) (h,l), (k,l) } WT = 24 18 CƠi đặt: int n, a[100][100], s; int vt[100], d[100], t[100]; void Prim() {for (int i= 1; i

Ngày đăng: 23/11/2017, 18:26

Từ khóa liên quan

Mục lục

  • Nút lá: là nút có bậc = 0 ( nút lá không có nút con.

  • Nút nhánh (nút trong hay nút trung gian): là nút vừa có con vừa có cha.

  • T là cây m-phân đầy đủ ( mỗi nút nhánh có đúng m con.

  • - Cây con: Mỗi cây có gốc tại nút a ( T là một cây con của T.

  • - Đường đi: Dãy các đỉnh r1, …, rk, trong đó ri là cha của ri+1 gọi là đường đi từ r1 đến rk. Độ dài của đường đi là số nút trên đường đi -1 (Đường đi trên có độ dài k-1).

  • - Mức của nút: là độ dài đường đi từ gốc đến nút (độ cao của nút) ( Nút gốc có mức 0.

  • - Chiều cao của cây: là mức lớn nhất của các nút ( T.

  • - Cây được sắp thứ tự: là cây mà mỗi cây con được sắp theo một thứ tự nào đó.

  • - Cây gán nhãn: là cây mà mỗi đỉnh được gắn với một giá trị (nhãn).

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

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

Tài liệu liên quan