Bài giảng Toán rời rạc 2 - Chương 6: Cây và cây khung của đồ thị - Phan Thị Hà

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
Giảng viên:  
TH.S. Phan ThỊ Hà  
Điện thoại/E-mail:  
Bộ môn:  
Công nghệ phần mềm  
Học kỳ/Năm biên soạn:I/2009-2010  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CHƯƠNG 6.CÂY VÀ CÂY KHUNG CỦA ĐỒ THỊ  
™ Mở đầu  
™ Các ứng dụng của cây  
™ Các phương pháp duyệt cây  
™ Cây khung của đồ thị  
™ Cây khung nhỏ nhất  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
MỞ ĐẦU  
™ Định nghĩa 1. Cây là một đồ thị vô hướng, liên thông và  
không có chu trình đơn.  
™ Vì cây không thể có chu trình đơn, nên cây không thể có  
cạnh bội và khuyên. Vậy mọi cây đều là đồ thị đơn.  
Định nghĩa 2. Một đồ thị không có chu trình đơn nhưng  
không liên thông được gọi là rừng.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
MỞ ĐẦU  
™ Cây thường được định nghĩa như một đồ thị vô hướng,  
trong đó giữa mọi cặp đỉnh của nó luôn tồn tại một  
đường đi đơn duy nhất. Định lý sau cho thấy trong đồ thị  
vô hướng thì tính liên thông và không có chu trình  
đơn tương đương với tính tồn tại đường đi đơn duy  
nhất giữa mọi cặp đỉnh  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
MỞ ĐẦU  
™ Định lý 1. Một đồ thị vô hướng là một cây nếu giữa mọi cặp  
đỉnh của nó luôn tồn tại đường đi đơn duy nhất.  
™ Định nghĩa 3. Cây có gốc được gọi là m-phân nếu tất cả các  
đỉnh trong của nó không có hơn m con. Cây được gọi là m-  
phân đúng (strict) nếu mọi đỉnh trong của nó có đúng m con.  
Cây m-phân với m = 2 được gọi là cây nhị phân.  
Cây có gốc được sắp (hay có thứ tự) là cây có gốc trong đó  
các con của mỗi đỉnh được sắp xếp theo một thứ tự nhất định.  
Cây có gốc được sắp được vẽ sao cho các con của mỗi đỉnh  
trong được sắp thứ tự từ trái qua phải. Trong cây nhị phân  
có thứ tự, các đỉnh trong có hai con, con thứ nhất gọi là con  
bên trái và con thứ hai là con bên phải. Cây có gốc là con  
bên trái của một đỉnh được gọi là cây con bên trái, tương tự ta  
có định nghĩa về cây con bên phải.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
MỞ ĐẦU  
Những tính chất của cây  
™ Định lý 2. Cây với n đỉnh có đúng n-1 cạnh.  
™ Định lý 3. Cây m-phân đúng với i đỉnh trong sẽ có tất  
cả n = m*i + 1 đỉnh.  
™ Định lý 3. Cây m-phân đúng với  
™ a) Nếu cây có n đỉnh thì số đỉnh trong là i =  
(n-1)/m và số lá là l = ((m-1)n+1 )/m  
™ b) Nếu cây có i đỉnh trong thì khi đó số đỉnh  
là n = m.i + 1 và số lá là l=(m-1)i+1.  
™ c) đỉnh là :  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
MỞ ĐẦU  
™ Định nghĩa. Mức của đỉnh v trong cây có gốc là độ dài  
của đường đi duy nhất từ gốc tới nó. Mức của gốc được  
định nghĩa bằng không.  
™ Độ cao của cây là mức cao nhất của tất cả các đỉnh. Nói  
cách khác độ cao của cây có gốc là chiều dài của đường  
đi dài nhất từ gốc tới một đỉnh bất kỳ.  
™ Cây m-phân có gốc và độ cao h được gọi là cân đối  
nếu tất cả các lá đều ở mức h hoặc h-1.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
™Cây AVL là cây nhị phân sao cho tại mỗi đỉnh  
chiều cao của cây con trái và cây con phải khác  
nhau không quá 1.  
™Vậy cây AVL là trường hợp đặc biệt của cây  
nhị phân cân đối: cây AVL là cây nhị phân cân  
đối, nhưng ngược lại nói chung không đúng.  
™Cây m-phân hoàn toàn(complete) là cây m-  
phân đúng trong đó mọi lá ở cùng một mức.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
MỞ ĐẦU  
™Định lý 5. Có nhiều nhất mh lá trong cây m-  
phân, độ cao h.  
Hệ quả 1. Nếu cây m-phân có chiều cao h và có l lá,  
khi đó h≥ ⎡logml⎤. Nếu cây m-phân đúng và cân đối, khi  
đó h =  
⎡logm l⎤. (Nhớ lại là ⎡x⎤ là số nguyên nhỏ nhất không bé  
hơn x).  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
Chúng ta sẽ nghiên cứu ba bài toán bằng mô hình cây.  
™ Các phần tử trong một danh sách được lưu trữ như thế  
nào để có thể dễ dàng định vị được chúng?  
™ Hãy xác định dãy các quyết định để tìm một đối tượng  
có tính chất nào đó trong tập hợp các đối tượng thuộc  
một loại nào đó.  
™ Cần phải mã hóa tập các chữ cái bằng các dãy nhị phân  
như thế nào để có hiệu quả nhất?  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
Để giải quyết: tìm hiểu 3 loại cây sau  
™ Cây tìm kiếm nhị phân  
™ Cây quyết định  
™ Các mã tiền tố  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
 
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
Cây tìm kiếm nhị phân  
™ Tìm kiếm một phần tử trong một danh sách là một trong  
những công việc quan trọng nhất trong tin học. Mục đích  
hàng đầu của chúng ta là đưa ra một thuật toán tìm kiếm  
có hiệu quả nhất là tìm một phần tử khi các phần tử  
được sắp xếp theo một thứ tự nào đó. Điều đó có thể  
thực hiện được bằng cây tìm kiếm nhị phân. Đó là cây  
nhị phân trong đó mỗi đỉnh chỉ có nhiều nhất là 2 con:  
một con trái và một con phải. Mỗi đỉnh được gán một  
khóa. Các đỉnh được gán khóa sao cho khóa của đỉnh  
lớn hơn khóa của tất cả các đỉnh thuộc cây con bên trái,  
và nhỏ hơn khóa của tất cả các đỉnh thuộc cây con bên  
phải của nó.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
 
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
™ Một cây nhị phân tìm kiếm chỉ có các đỉnh con bên trái  
sẽ tạo thành một cây lệch trái hay sắp xếp theo thứ tự  
giảm dần của khóa.  
™ Một cây nhị phân tìm kiếm chỉ có các đỉnh con bên phải  
sẽ tạo nên một cây lệch phải hay sắp xếp theo thứ tự  
tăng dần của khóa.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
™ Nếu giá trị khóa của đỉnh x trùng với giá trị khóa tại đỉnh  
gốc thì không thể thêm node.  
™ Nếu giá trị khóa của đỉnh x nhỏ hơn giá trị khóa tại đỉnh  
gốc và chưa có lá con bên trái thì thực hiện thêm node  
vào nhánh bên trái.  
™ Nếu giá trị khóa của đỉnh x lớn hơn giá trị khóa tại đỉnh  
gốc và chưa có lá con bên phải thì thực hiện thêm node  
vào nhánh bên phải.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
Thao tác tìm kiếm đỉnh trên cây nhị phân tìm kiếm:  
Giả sử ta cần tìm kiếm khóa có giá trị x trên cây nhị  
phân tìm kiếm, trước hết ta bắt đầu từ gốc:  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
™ Nếu cây rỗng: phép tìm kiếm không thoả mãn;  
™ Nếu x trùng với khoá gốc: phép tìm kiếm thoả mãn;  
™ Nếu x nhỏ hơn khoá gốc thì tìm sang cây bên trái;  
™ Nếu x lớn hơn khoá gốc thì tìm sang cây bên phải;  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
™ Thao tác loại bỏ đỉnh (Remove): Việc loại bỏ đỉnh trên  
cây nhị phân tìm kiếm khá phức tạp. Vì sau khi loại bỏ ta  
phải điều chỉnh lại cây để nó vẫn là cây nhị phân tìm  
kiếm. Khi loại bỏ đỉnh trên cây nhị phân tìm kiếm thì đỉnh  
cần loại bỏ có thể ở một trong 3 trường hợp sau:  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
ƒ Nếu đỉnh p cần loại là đỉnh treo thì việc loại bỏ được  
thực hiện ngay.  
ƒ Nếu node p cần xoá có một cây con thì ta phải lấy  
node con của node p thay thế cho p.  
ƒ Nếu đỉnh p cần xoá có nhieu cây con thì ta xét: Nếu  
đỉnh cần xoá ở phía cây con bên trái thì đỉnh bên trái  
nhất sẽ được chọn làm đỉnh thế mạng, nếu đỉnh cần  
xoá ở phía cây con bên phải thì đỉnh bên phải nhất sẽ  
được chọn làm node thế mạng.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
CÁC ỨNG DỤNG CỦA CÂY  
Cây quyết định  
™ Các cây có gốc có thể dùng để mô hình các bài toán  
trong đó có một dãy các quyết định dẫn đến lời giải.  
Chẳng hạn, cây tìm kiếm nhị phân có thể dùng để định  
vị các phần tử dựa trên một loạt các so sánh, trong đó  
mỗi so sánh cho ta biết ta có định vị được phần tử đó  
hay chưa, hoặc ta sẽ đi theo cây con trái hoặc cây con  
phải.  
™ Cây có gốc trong đó mỗi đỉnh trong ứng với một quyết  
định và mỗi cây con tại các đỉnh này ứng với mỗi một kết  
cục có thể của quyết định được gọi là cây quyết định.  
Những lời giải có thể của bài toán tương ứng với các  
đường đi tới các lá của cây có gốc này. Ví dụ sau sẽ  
minh họa mộtGứIẢnNgGdVIụÊnN:gTHc.ủSa.PHcAâNyTqHỊuHyÀết định.  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
BÀI GIẢNG MÔN  
TOÁN RỜI RẠC 2  
™ Ví dụ 1. Có 4 đồng xu trong đó có 1 đồng xu giả nhẹ  
hơn đồng xu thật. Xác định số lần cân (thăng bằng)  
cần thiết để xác định đồng xu giả.  
™ Giải. Rõ ràng ta chỉ cần hai lần cân để xác định đồng  
xu giả vì khi ta đặt bốn đồng xu lên bàn cân thì chỉ có  
thể xảy ra hai kết cục: đồng số 1,2 nhẹ hơn hoặc nặng  
hơn đồng số 3, 4. Thực hiện quyết định cân lại giống  
như trên cho hai đồng xu nhẹ hơn ta xác định được  
đồng xu nào là giả. Hình 7.3 dưới đây sẽ mô tả cây  
quyết định giải quyết bài toán.  
GIẢNG VIÊN: TH.S.PHAN THỊ HÀ  
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM  
Tải về để xem bản đầy đủ
pdf 59 trang myanh 16960 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Toán rời rạc 2 - Chương 6: Cây và cây khung của đồ thị - Phan Thị Hà", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_toan_roi_rac_2_chuong_6_cay_va_cay_khung_cua_do_th.pdf