1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ thị cây và ứng dụng

65 238 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

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Có thể biểu diễn một đồ thị một cách trực quan như sau: Các đỉnh của V được biểu diễn bằng các vòng tròn nhỏ rỗng hoặc đặc, còn các cạnh được biểu diễn bằng một đường cong đường thẳng n

Trang 3

LỜI CẢM ƠN

Trong quá trình thực hiện khoá luận em đã nhận được nhiều sự giúp đỡ quý báu và bổ ích từ các thầy cô và bạn bè Em xin chân thành cảm ơn các thầy cô trong khoa Toán trường Đại học sư phạm Hà Nội 2 đã tận tâm giảng dạy, truyền thụ kiến thức và kinh nghiệm quý báu để em hoàn thành tốt khoá học Đặc biệt, em xin bày

tỏ lòng cảm ơn sâu sắc của mình tới thầy Trần Minh Tước, thầy đã trực tiếp hướng

dẫn, nhiệt tình giúp đỡ và chỉ bảo em trong suốt quá trình thực hiện khoá luận

Em xin chân thành cảm ơn các thầy cô trong tổ Toán Ứng dụng - khoa Toán, thư viện nhà trường, gia đình và bạn bè đã tạo mọi điều kiện, động viên, giúp đỡ để

em hoàn thành khoá luận này

Xuân Hòa, ngày 06 tháng 5 năm 2014

Sinh viên

Dương Phương Hoa

Trang 4

LỜI CAM ĐOAN

Tôi cam đoan khoá luận “Những vấn đề cơ bản và một số thuật toán trên đồ

thị” là kết quả nghiên cứu của tôi dưới sự hướng dẫn của TS.Trần Minh Tước Tôi

xin khẳng định kết quả nghiên cứu trong khoá luận này không sao chép kết quả của bất cứ tác giả nào khác Nếu sai sót tôi xin chịu hoàn toàn trách nhiệm

Xuân Hòa, ngày 06 tháng 5 năm 2014

Sinh viên

Dương Phương Hoa

Trang 5

MỤC LỤC

MỞ ĐẦU 1

Chương 1 NHỮNG KIẾN THỨC CƠ BẢN VỀ ĐỒ THỊ 2

1.1 Khái niệm đồ thị 2

1.2 Các thuật ngữ về đồ thị 6

1.2.1 Những thuật ngữ cơ sở 6

1.2.2 Xây dựng đồ thị mới từ đồ thị cũ 7

1.3 Đường đi, chu trình, liên thông 9

1.3.1 Đường đi, chu trình 9

1.3.2 Liên thông 9

1.4 Các thuật toán duyệt đồ thị 11

Chương 2 ĐỒ THỊ CÂY 15

2.1 Mở đầu về Cây 15

2.2 Cây, phân loại, cấu tạo các đặc điểm của cây 17

2.2.1 Cây có gốc 17

2.2.2 Cây m-phân đầy đủ 19

2.2.3 Một số mô hình ứng dụng của cây 21

2.3 Các phương pháp duyệt cây 24

2.3.1 Mở đầu 24

2.3.2 Hệ địa chỉ phổ dụng 24

2.4 Cây bao trùm 25

2.4.1 Định nghĩa 25

2.4.2 Những thuật toán xây dựng cây bao trùm 27

2.5 Bài toán tìm cây bao trùm có trọng lượng nhỏ nhất 28

2.5.1 Cây bao trùm nhỏ nhất: 28

2.5.2 Thuật toán tìm cây bao trùm nhỏ nhất 29

Chương 3 CÂY NHỊ PHÂN VÀ ỨNG DỤNG TRONG TIN HỌC 39

Trang 6

3.1 Cây nhị phân 39

3.1.1 Định nghĩa 39

3.1.2 Một số các tính chất của cây nhị phân 39

3.1.3 Thuật toán duyệt cây 39

3.1.4 Các ứng dụng thuật toán duyệt cây 46

3.1.5 Biểu diễn cây tổng quát bằng cây nhị phân 48

3.2 Ứng dụng 50

3.2.1 Cây tìm kiếm nhị phân 50

3.2.2 Mã tiền tố 51

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 59

Trang 7

MỞ ĐẦU

Lý thuyết đồ thị là ngành khoa học được phát hiện từ lâu nhưng lại có nhiều ứng dụng hiện đại.Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất từ những năm đầu của thế kỉ XVIII bởi nhà toán học lỗi lạc người Thụy Sĩ Leonhard Euler.Từ đó lý thuyết đồ thị ngày càng khẳng định được vị trí quan trọng trong việc

áp dụng để giải quyết nhiều bài toán từ mọi lĩnh vực.Tuy nhiên, đây là kiến thức hoàn toàn mới, không được đề cập trong quá trình học tập của sinh viên sư phạm toán Với những kiến thức hữu ích của lý thuyết đồ thị, tôi đã bị thu hút và thực sự mong muốn tìm hiểu và chiếm lĩnh, bồi đắp cho mình những tri thức mới Do đó,

tôi chọn đề tài “Đồ thị cây và ứng dụng”

Nội dung khóa luận của tôi tuy không phải là những kết quả mới tìm được nhưng với tinh thần học hỏi kiến thức mới, hi vọng đề tài này sẽ đem lại nhiều kiến thức bổ ích cho bản thân và cho độc giả Nội dung khóa luận gồm ba chương:

Chương 1: Những kiến thức cơ bản về đồ thị vô hướng

Chương 2: Đồ thị cây

Chương 3.Cây nhị phân và một số ứng dụng trong tin học

Tuy đã có nhiều cố gắng, song do hạn chế về thời gian và năng lực của bản thân, nên khóa luận không tránh khỏi sai sót, rất mong được sự quan tâm góp ý của thầy cô và các bạn

Em xin chân thành cảm ơn!

Trang 8

Chương 1

NHỮNG KIẾN THỨC CƠ BẢN VỀ ĐỒ THỊ

1.1 Khái niệm đồ thị

Lý thuyết đồ thị là một lĩnh vực toán học được phát triển từ lâu nhưng lại có

nhiều ứng dụng hiện đại đặc biệt là ứng dụng trong tin học ngày Những ý tưởng cơ

bản về nó được đưa ra từ thế kỷ 18 khi nhà toán học LeonhardEuler dùng đồ thị để giải quyết bài toán 7 cây cầu ở Königsberg

Mô hình đồ thị xuất hiện nhiều trong khoa học và cả cuộc sống hàng ngày Đồ

thị tỏ ra có hiệu quả trong việc giải các bài toán trong nhiều lĩnh vực khác nhau Ví dụ: sơ đồ bộ máy công ty hay mạng lưới giao thông giữa các địa điểm trong một khu vực đều được biểu diễn bởi đồ thị Đồ thị được gán trọng số để giải quyết bài toán tìm đường đi ngắn nhất, xây dựng hệ thống giao thông đảm bảo tính liên thông với chi phí nhỏ nhất…

Ta có thể hình dung đồ thị như tập hữu hạn các đối tượng và những mối liên

hệ giữa các đối tượng đó Sơ đồ biểu diễn một hệ thống các tuyến bay của một hãng hàng không là một hình ảnh của đồ thị Các đối tượng là các sân bay, mỗi đường bay thẳng sẽ biểu diễn mối liên hệ giữa 2 sân bay đầu cuối của tuyến

Có nhiều loại đồ thị được xây dựng dựa vào cấu trúc của đồ thị, cụ thể là tùy thuộc vào sự xác định mối liên hệ giữa các đối tượng Trong khuôn khổ khóa luận

này, tôi chỉ đề cập tới ba loại đồ thị: đồ thị vô hướng, đồ thị có hướng và đồ thị có trọng số được định nghĩa như sau:

Định nghĩa 1.1.Một đồ thị vô hướng G là một cặp có thứ tự GV E, , ở đây V là một tập hữu hạn; còn E là tập với các phần tử là các tập con hai phần tử trên V,

 

Eu v u v V u v

Các phần tử của V được gọi là các đỉnh, tập đỉnh của G được ký hiệu là V G( )

Các phần tử của E được gọi là các cung, tập cạnh của đồ thị vô hướng G được ký hiệu

E G( ) Nhưng để đơn giản hơn ta có thể viết “đỉnh v V  ” hay “cạnh e E  ”.Cho ,

a b V , nếu tồn tạie a b, thì khi đó e là một cạnh của G với hai đỉnh đầu mút

Trang 9

là a, b hay a, b là hai đỉnh liên thuộc với e Cạnh e a b, thường được ký hiệu

ngắn gọn là ab hay ba Ở khuôn khổ khóa luận này, ta chỉ xét tới đơn đồ thị, không

xét tới đồ thị có khuyên và đa đồ thị Do vậy khi nhắc đến đơn đồ thị, ta ngầm hiểu

là đơn đồ thị vô hướng

Có thể biểu diễn một đồ thị một cách trực quan như sau: Các đỉnh của V được

biểu diễn bằng các vòng tròn nhỏ (rỗng hoặc đặc), còn các cạnh được biểu diễn bằng một đường cong (đường thẳng) nối 2 đầu mút của cạnh

Ví dụ 1.1 Cho GV E, với V a b c d f g, , , , , 

Ead db dc bc cf cg gf

Khi đó hãy biểu diễn đồ thị vô hướng G

Giả sử một mạng lưới giao thông gồm các trạm xe bus và đường đi giữa chúng, giữa 2 trạm luôn chỉ có không quá một đường đi trực tiếp, không có đường quay vòng từ một trạm tới chính nó Ta biểu diễn mạng lưới giao thông này bằng

mô hình đồ thị như sau: mỗi trạm đỗ xe là một đỉnh, mỗi đường đi trực tiếp giữa hai trạm là 1 cạnh Ta có hình ảnh chính xác của đồ thị

Trang 10

Các đường giao thông đôi khi chỉ được chạy theo một chiều Chúng ta có thể

dùng đồ thị có hướng để mô hình hóa những mạng như thế

Định nghĩa 1.2.Một đồ thị có hướng G là một cặp có thứ tự GV E, , ở đây V là một tập hữu hạn, còn E là một tập con của tích Đề các V V

Tương tự, ở khuôn khổ khóa luận này, ta chỉ xét đồ thị có hướng Do vậy khi nhắc tới đồ thị có hướng ta cũng hiểu là đơn đồ thị có hướng.Tuy nhiên đồ thị có hướng hầu như chỉ phục vụ riêng cho phần kiến thức đồ thị cây có gốc cho nên các kiến thức đồ thị có hướng ta gần như không đề cập tới, chỉ xây dựng cho đơn đồ thị

Biểu diễn một đồ thị có hướng trên mặt phẳng trực quan tương tự như biểu

diễn đồ thị vô hướng: Các đỉnh của V được biểu diễn bằng các vòng tròn nhỏ (rỗng

hoặc đặc), còn các cung được biểu diễn bằng một đường cong có hướng (với mũi tên) từ đỉnh đầu tới đỉnh cuối

Ví dụ 1.2 Cho đồ thị có hướng GV E, với V a b c d f g, , , , , 

Trang 11

Định nghĩa 1.3.Đồ thị GV E,  được gọi là đồ thị có trọng số hay thường gọi tắt

là trọng đồ, nếu ít nhất một trong hai hàm:

được xác định ở đây W V và W E là các tập số Giá trị f v( )cho v Vđược gọi là trọng số của đỉnh v, còn giá trị g e( ) cho e Eđược gọi là trọng số của cung hay cạnh e Người ta cũng thường ký hiệu trọng đồ bằng GV E f, , hay

 , , 

GV E g hay GV E f g, , , tùy thuộc vào việc chỉ một hàm f, chỉ một hàm g hay cả hai hàm f và g được xác định

Trong khuôn khổ khóa luận này, chúng ta chỉ sử dụng tới GV E g, , 

Biểu diễn một đồ thị GV E g, ,  có trọng số trên mặt phẳng trực quan ta biểu diễn đồ thị có hướng và gắn giá trị trọng số tương ứng lên trực tiếp sát phía bên

cạnh của cung mang giá trị đó

Ví dụ 1.3.Cho đồ thị có hướng có trọng sốGV E, với V a b c d f g, , , , , 

Trang 12

Nếu không có sự nhầm lẫn  u v có thể ký hiệu là uv (hay vu),

Ví dụ 1.4.Xét đồ thị G được cho trong hình 1:

G được hiểu ngầm, ta ký hiệu N G v đơn giản bằng N v  

* Bậc của đỉnh

Định nghĩa 1.6 Bậc của một đỉnh trong đồ thị là số các cạnh liên thuộc với nó

Người ta kí hiệu bậc của đỉnh v là deg(v)

Định nghĩa 1.7 Ta định nghĩa bậc của đỉnh trong đồ thị G, ký hiệu là degG v hay ngắn gọn là deg v nếu như G được hiểu ngầm, như sau:  

deg vN v

Trang 13

Ví dụ 1.5.Xét đồ thị G được cho trong hình 1.4 ta có

 2

deg v 2

 1  3  4  5

deg v deg v deg v deg v 3

Đỉnh bậc 0 gọi là đỉnh cô lập Đỉnh bậc 1 gọi là đỉnh treo

Rõ ràng, bậc của đỉnh theo định nghĩa bằng số cạnh liên thuộc với nó Như

vậy, mỗi cạnh đóng góp 2 đơn vị vào tổng các bậc của tất cả các đỉnh vì một cạnh

nối với đúng 2 đỉnh Điều này có nghĩa là tổng các bậc của tất cả các đỉnh gấp đôi

Định nghĩa 1.8.Đồ thị GV E ,  được gọi là đồ thị con của GV E,  nếu

V V và E E Đồ thị con GV E ,  của đồ thị GV E,  được gọi là đồ thị con bao trùm của G nếu V V Nếu Echứa tất cả các cung hay cạnh của G, mà

cả hai đỉnh liên thuộc với nó đều thuộc V, thì GV E ,  được gọi là đồ thị con của GV E,  cảm sinh bởi tập đỉnh V, hay cũng được gọi là đồ thị con cảm sinh

bởi GV E,  trên tập đỉnh V Khi đó Gcũng được ký hiệu là GG V 

Trang 14

Ví dụ 1.8.Cho đồ thị H là một đồ thị con của G

Ta có H là một đồ thị con của G vì theo đúng định nghĩa: H có tập các đỉnh

H

V là v v v v G có tập các đỉnh là 1, , ,2 3 5 V Glà v v v v v Ta thấy 1, , , ,2 3 4 5 V HV G

tập các cạnh của H cũng là con thực sự của tập các cạnh đồ thị G

Định nghĩa 1.9 Hợp của hai đồ th ị G1  ( ,V E1 1) và G2  ( ,V E2 2) là một đồ thịcó tập các đỉnh là V1V2và tập các cạnh là E1E2 Ta ký hiệu tập hợp của các

Trang 15

1.3.Đường đi, chu trình, liên thông

1.3.1.Đường đi, chu trình

Định nghĩa 1.10 Giả sử GV E,  là một đồ thị Một đường đi trong G là một dãy các đỉnh phân biệt v v v0, , , ,1 2 v n của G sao cho với mọi i0,1, ,n1, v v i i1là một cạnh của G Các cạnh v v i i1, i0,1, ,n1, cũng được gọi là các cạnh của đường đi v v v0, , , ,1 2 v n Khi đó n được gọi là độ dài, v0 được gọi là đỉnh đầu, v n

được gọi là đỉnh cuối đường đi trên Một đường đi khép kín được gọi là chu trình, nếu nó có độ dài ít nhất là 3 và bắt đầu và kết thúc tại cùng một đỉnh, tức là u v

Ví dụ 1.10 Với đồ thị hình 1.8:

i ae de be ee fe ge he i1 2 4 8 10 12 14 là một đường đi Do đơn đồ thị có tính chất 2 đỉnh

có 1 cạnh duy nhất nên ta có thể viết là adbefgehi một đường đi có hướng

ii ee fe he ge e8 10 13 9 hayefhge là một chu trình có hướng độ dài 4

1.3.2.Liên thông

Giả thiết trong một mạng giao thông, mỗi điểm đỗ xe bus là một đỉnh, đường

đi trực tiếp giữa 2 bến được biểu diễn là một cạnh thì khi nào luôn tồn tại một đường đi giữa mỗi cặp đỉnh bất kỳ trong một đồ thị?

Định nghĩa 1.11.Một đồ thị GV E,  được gọi là liên thông nếu với hai đỉnh v i và

Trang 16

Như vậy, với định nghĩa này, hai bến xe bus luôn có đường đi nếu và chỉ nếu mạng giao thông này liên thông Điều này tương tự như việc luôn có đường đi từ một điểm bus bất kì nào tới các điểm còn lại

Định nghĩa 1.12 Đồ thị con liên thông GV E ,  của một đồ thị GV E, 

được gọi là một thành phần liên thông của G, nếu GG V  và với mọi V V ,

mà thực sự chứa V, đồ thị G V  là không liên thông

Nhận xét: Một đồ thị không liên thông là hợp rời nhau của ít nhất 2 đồ thị con liên thông Các đồ thị con liên thông như vậy chính là các thành phần liên thông

Trang 17

Ví dụ 1.12.Với đồ thị G:

Đỉnh cắt là c, d

Cạnh cắt là  a d ,

1.4 Các thuật toán duyệt đồ thị

Thuật toán tìm kiếm ưu tiên chiều sâu (DFS- Deep First Search):

Về tư tưởng DFS là thuật toán viếng thăm tất cả các đỉnh hoặc tìm kiếm trên

một cây hay đồ thị Thuật toán xuất phát từ một đỉnh bất kì của đồ và phát triển xa nhất có thể Trong phương pháp này ta duyệt tới tận cùng của mỗi nhánh rồi mới

chuyển sang duyệt nhánh khác Về cơ bản DFS thực hiện như sau:

Giả sử G  ( , ) V E là đồ thị hữu hạn, với các đỉnh u v, , wV Ta sẽ bắt đầu

tìm kiếm từ đỉnh v nào đó của đồ thị Sau đó chọn u là một đỉnh tùy ý kề với v và thực hiện quá trình đối với u Một cách đệ qui, ở bước tổng quát, giả sử đang xét đỉnh v, nếu như trong số các đỉnh kề với v ta tìm được w là chưa xét thì ta sẽ xét

đỉnh này và bắt đầu từ nó ta sẽ tiếp tục quá trình tìm kiếm Còn nếu như không có

đỉnh nào kề với v là chưa xét thì ta nói đỉnh này là đã duyệt xong và quay trở lại tiếp tục tìm kiếm từ đỉnh mà trước đó ta đến được đỉnh v Quá trình này có thể mô tả bởi

thủ tục đệ quy

Ví dụ 1.13.DFS đồ thị Khình 1.6:

Thuật toán tìm kiếm theo chiều rộng trên đồ thị G được cho trong hình 1.6

Các đỉnh đang xét được khoanh tròn Các đỉnh đã duyệt xong được khoanh

Trang 18

hình ô vuông Thuật toán bắt đầu tìm kiếm từ đỉnh v1, các đỉnh kề với nó là

2, ,3 4

v v v Ta tìm kiếm ưu tiên theo số thự tự các đỉnh (thứ tự duyệt có thể tự quy

định từ trên xuống dưới, từ trái qua phải hoặc một thứ thự nào đó để tránh nhầm lẫn

và bỏ sót), tiếp tục tìm kiếm đến v2, đến v3, v4, v6 và đến v5

Một cách tự nhiên, kết quả của thuật toán tìm kiếm chiều sâu là một cây phủ

qua tất cả các đỉnh của đồ thị

Thuật toán tìm kiếm chiều rộng (BFS- Breadth First Search)

BFS hay còn gọi là “vệt dầu loang” chủ yếu được sử dụng để tìm đường đi

ngắn nhất theo số cạnh giữa 2 đỉnh của một đồ thị Một cách phi hình thức, từ đồ thị

ta chọn ra một đỉnh s bất kì ban đầu và quy ước mức của nó bằng 0, ta tiếp tục ghép

cùng một lúc tất cả các đỉnh kề với đỉnh này theo thứ tự qui ước (Ví dụ: theo chỉ số

Trang 19

chân của tên đỉnh) Khi đó các đỉnh kề này trở thành các đỉnh ở mức 1 Tiếp theo với mỗi đỉnh ở mức 1, ta ghép tất cả các cạnh liên thuộc với nó mà không tạo ra chu trình, thủ tục này tạo ra các đỉnh mức 2 Và tương tự như thế cho tới khi tất cả các đỉnh của đồ thị được duyệt tới và vì số đỉnh là hữu hạn nên thủ tục này là hữu hạn

bước Ý tưởng BFSđược sử dụng trong rất nhiều thuật toán như xây dựng cây

khung, Prim, Dijkstra…

Ý nghĩa của bài toán duyệt đồ thị

Với một đồ thị có nhiều đỉnh GV E, bất kì, thuật toán duyệt đồ thị có

Trang 20

lớn, cần có cách thức để thực hiện nhanh, chính xác Tìm kiếm theo chiều sâu và tìm kiếm theo chiều rộng giúp người sử dụng dễ dàng kiểm tra những tính chất liên quan đến tính liên thông của đồ thị Khi kết thúc một quá trình duyệt mà duyệt xong

tất cả các đỉnh của đồ thị thì đồ thị trên là liên thông

- Tìm đường đi: Khi muốn xác định giữa hai đỉnh u và v của đồ thị có đường

đi hay không, ta duyệt đồ thị, chọn đỉnh u là đỉnh bắt đầu và thực hiện một quá trình duyệt Khi duyệt qua đỉnh c thì điều này có nghĩa là giữa u và v tồn tại đường đi

- Xác định thành phần liên thông: khi kết thúc một quá trình duyệt đồ thị, nếu

đã duyệt qua tất cả các đỉnh của đồ thị thì đồ thị là liên thông Ngược lại, nếu chưa duyệt qua tất cả các đỉnh và tiếp tục quá trình duyệt lần hai thì đồ thị là không liên thông và nó bao gồm các thành phần liên thông Cứ mỗi lần duyệt sẽ cho ra một

thành phần liên thông Như vậy, phải thực hiện n quá trình duyệt cho đồ thị thì đồ thị có n thành phần liên thông

Trang 21

Chương 2

ĐỒ THỊ CÂY 2.1 Mở đầu về Cây

Sơ lược lịch sử hình thành và phát triển: Một đồ thị liên thông và không có chu trình được gọi là cây Cây là một đồ thị mà trong đó hai đỉnh bất kì đều được

nối với nhau bằng đúng một đường đi Cây đã được dùng từ năm 1857, khi nhà toán

học Anh tên là Arthur Cayley dùng cây để xác định những dạng khác nhau của hợp

chất hóa học Cây là khái niệm quan trọng trong lý thuyết đồ thị, cấu trúc dữ liệu và giải thuật Từ đó cây đã được dùng để giải nhiều bài toán trong các lĩnh vực khác nhau Đặc biệt cây rất hay được sử dụng trong tin học Chẳng hạn, người ta dùng cây để xây dựng các thuật toán cho phép định vị các phần tử trong một danh sách Cây cũng dùng để xây dựng các mạng máy tính với chi phí rẻ nhất cho các đường điện thoại nối các máy tính phân tán Cây cũng được dùng để tạo ra các mã

có hiệu quả để lưu trữ và truyền dữ liệu Dùng cây có thể mô hình các thủ tục mà để thi hành nó cần dùng một dãy các quyết định Vì vậy cây đặc biệt có giá trị khi

nghiên cứu các thuật toán sắp xếp Ví dụ đồ thị cây: Cây phả hệ

Dễ dàng nhận biết: Biểu đồ phả hệ trên có thể coi là một đồ thị trong đó các đỉnh biểu diễn các thành viên trong gia đình còn các cạnh biểu diễn mối quan hệ cha con giữa các đỉnh thành viên Ta có nhận xét rằng đồ thị trên vô hướng, liên thông, không có cạnh bội, khuyên, không hướng và không chứa chu trình Đồ thịbiểu diễn

các biểu đồ phả hệ là một ví dụ về một loại đồ thị đặc biệt được gọi là cây

Lê Anh Tuấn

Trang 22

Định nghĩa 2.1 Một đồ thị vô hướng không có chu trình được gọi là cây

Ví dụ 2.1 Đồ thị nào trong các đồ thị hình 2.2 là cây ?

Dễ dàng nhận thấy G 1 là cây, vì G 1 là đơn đồ thị liên thông và không chứa chu

trình G 2 không là cây vì a, f, e, d, alà một chu trình đơn của đồ thị này G 3 không là cây vì không liên thông

Định lý 2.2[2].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 duy nhất

Định lý 2.3[1] (Định lý móc xích kiểu hoa cúc) Giả sử T V E,  là đồ thị vô hướng không có khuyên Khi đó các khẳng định sau đây là tương đương nhau:

(e) Hai đỉnh khác nhau bất kỳ của T được nối với nhau bởi đúng một đường;

(f) T không chứa chu trình nhưng nếu ta thêm một cạnh nối hai đỉnh không kề nhau trong T thì đồ thị nhận được có đúng một chu trình

Trang 23

2.2 Cây, phân loại, cấu tạo và các đặc điểm của cây

2.2.1 Cây có gốc

Từ một đồ thị cây bất kỳ ta có thể thành một cây có gốc bằng cách chọn một đỉnh bất kì của cây làm gốc Với một cây đồ thị có n đỉnh ta có thể tạo ra cây n cây

có gốc khác nhau với gốc là một trong n đỉnh bất kì đó Như vậy với mỗi cây có gốc

xác định 1 gốc duy nhất Từ việc xác định gốc ta biểu diễn lại đồ thị với gốc được đặt ở trên cùng của đồ thị cây Theo định lý 1, ta có giữa gốc tới một đỉnh bất kì cũng tồn tại đường đi đơn duy nhất nên ta định hướng mỗi cạnh bằng hướng từ gốc

đi ra Như vậy việc chọn gốc đã xác định hướng của đồ thị nên ta hoàn toàn có thể

bỏ mũi tên chỉ hướng

Định nghĩa 2.2.Cây có gốc là cây cùng với gốc tạo ra một đồ thị có hướng

Nhắc đến đồ thị cây là ta đề cập đến cây có gốc và có hướng, hướng được qui định

từ trên xuống dưới Cho nên để đơn giản hơn, khi nhắc với đồ thị cây, ta ngầm hiểu

đó là cây có gốc được xếp và có hướng

Trang 24

Một số thuật ngữ của đồ thị cây xuất phát từ nguồn gốc thực vật hay nguồn gốc phả hệ như định nghĩa đỉnh cha, đỉnh con và đỉnh tổ tiên, lá, đỉnh trong

Mức, độ cao:

Mức của đỉnh v: Trong cây có gốc là độ dài đườ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 Gọi T T1, 2, ,T nlà con của T0 Mức T1 = Mức T2= … = MứcT n= Mức T0 1

Độ 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ì

Từ đây ta có thể đưa thêm một định nghĩa về đồ thị cây như sau:

Định nghĩa 2.3.Cây là một tập hợp T các phần tử (gọi là đỉnh của cây) trong đó có

1 đỉnh đặc biệt được gọi là gốc, các đỉnh còn lại được chia thành những tập rời nhau T 1 , T 2 , , Tn theo quan hệ phân cấp trong đó Ti cũng là một cây Mỗi đỉnh ở cấp i sẽ quản lý một số đỉnh ở cấp i+1 Quan hệ này người ta còn gọi là quan hệ cha-con

Dễ thấy hai định nghĩa 1 và định nghĩa 3 là tương đương nhau và hỗ trợ, bổ sung cho nhau Việc mỗi đỉnh ở cấp i sẽ quản lý một số đỉnh ở cấp i+1 cũng tương đương với liên thông và không có chu trình

Giả sử T là một đồ thị đặc biệt G = (V, E) - một cây có gốc a Giả sử a là một đỉnh bất kì Ta có y là con của u và u là cha của y khi và chỉ khi Mức y = Mức y1

u là cha duy nhất đối với y và y có thể là một trong những con của u Như vậy trong một cây sẽ có một hay nhiều cặp cha con hoặc không có cặp nào khi đồ thị cây chỉ chứa duy nhất gốc a Các đỉnh có chung cha và cùng mức được gọi là các

đỉnh anh em

Đỉnh trong: Các đỉnh có con được gọi là đỉnh trong Gốc là một đỉnh trong Lá: Các đỉnh của cây được gọi là lá nếu nó không có con Trường hợp đặc

biệt: nếu gốc là một đỉnh duy nhất của đồ thị thì khi đó nó là lá

Nếu a là một đỉnh khác gốc, thì a và các con cháu của nó cùng tất cả các cạnh

liên thuộc với các con cháu của a là một cây con hay đồ thị con của cây đang xét

Việc này giống như tạo một đồ thị mới từ đồ thị cũ với riêng lớp đồ thị cây

Trang 25

Độ dài đường đi tổng của cây:

Độ dài đường đi của một đỉnh là số cạnh cần đi qua tính từ đỉnh gốc tới đỉnh

đó Chiều dài đường đi của đỉnh gốc luôn bằng 0 Chiều dài đường đi tới một nút bằng chiều dài đường đi của nút cha cộng thêm 1 Chiều dài đường đi của cây bằng tổng chiều dài đường đi tất cả các đỉnh trên cây Công thức:

P là độ dài đường đi của cây

Như vậy chiều dài đường đi của các đỉnh anh em sẽ bằng nhau và hơn đỉnh cha một đơn vị

Độ dài đường đi trung bình: PI = PT/n (n là số nút trên cây T)

Cây có gốc được sắp xếp (hay có thứ tự) là cây có gốc trong đó các con của mỗi đỉnh trong đượ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 từ trái qua phải Chúng ta sẽ dùng thứ tự các cạnh như thế trong hình vẽ với ngầm ý là ta đang xét cây có gốc được sắp

2.2.2 Cây m-phân đầy đủ

Định nghĩa 2.4.Cây có gốc được gọi là cây m-phân nếu tất cả các đỉnh trong của

nó không có hơn m con Cây m-phân với m  2 được gọi làcây nhị phân

Hình 2.4.Cây tam-phân và cây tam-phân đầy đủ

Trang 26

Định nghĩa 2.5.Cây m-phân đầy đủ: cây được gọi là m-phân đầy đủ nếu mọi đỉnh

trong của nó có đúng m con

Định nghĩa 2.6.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

Một số tính chất liên quan:

(1) Cây với n đỉnh có đúng n  1 cạnh

(2) Cây m-phân đầy đủ với i đỉnh trong sẽ có tất cả nm i  1 đỉnh

(3) Cây m- phân đầy đủ với:

l i m

đỉnh trong

Ví dụ 2.4: Giả sử ta chơi trò chơi truyền thông điệp Ban đầu có một người được

nghe thông điệp từ giám khảo và giả sử rằng mỗi người khi nhận thông điệp sẽ truyền lại cho 6 người khác hoặc không truyền cho ai cả Hỏi có bao nhiêu người được nghe thông điệp kể cả người đầu tiên và trò chơi kết thúc khi có 16 người được nghe mà không truyền lại cho ai cả

Trò chơi này có thể biểu diễn bằng cây lục-phân đầy đủ Các đỉnh trong tương ứng với những người truyền thông điệp và lá là những người nhận thông điệp mà không truyền cho ai Vì có 16 người không truyền thông điệp nên số lá của cây có

Cây nhị phân

Cây không cân đối

Cây tam phân Cây cân đối ,h3

Trang 27

gốc này là l 16 Vì thế theo phần iii của định lý 2.6 ta có số người nhận thông điệp

(6.16 1) / (6 1) 19

n    Số các đỉnh trong là 18 16 3   Tức là có truyền thông điệp

(4) Có nhiều nhất mh lá trong câu m - phân với độ cao h

Hệ quả 2.5:Nếu cây m - phân cao h có l lá, khi đó h    logml   Nếu cây m - phân đầy đủ và cân đối, khi đóh    logml  

2.2.3 Một số mô hình ứng dụng của cây

Cây có ứng dụng trong nhiều lĩnh vực khác nhau như tin học, thực vật học và tâm lý học Đồ thị cây là hình ảnh trực quan sinh động chính xác mô hình các bài

toán giúp chúng ta giải quyết hình dụng và nghiên cứu trên từng nhóm đối tượng cụ thể Mà trong phần này, chúng ta sẽ mô tả một số mô hình khác nhau có dùng đồ thị cây và hiểu thêm về ý nghĩa của nó

Ví dụ 2.6 Nhà toán học Anh, Arthur Caley đã dùng cây vào năm 1857 khi ông ta

tìm cách đánh số các đồng phân của hợp chất có dạng C H n 2n2, có tên là các hydrocarbon no Trong hóa học phổ thông, chúng ta gặp một lớp các bài hóa viết các đồng phân hóa học để hiểu rõ hơn về cấu tạo và nguyên tắc tồn tại của chúng Cũng như cây phả hệ, ở đây đồ thị cây hoàn toàn có thể dùng để biểu diễn một phân

tử hidrocacbon, với quy ước nguyên tử được biểu thị bởi các đỉnh, các liên kết giữa chúng bằng các cạnh

Trong hóa học, hóa trị của nguyên tử các bon là 4, trong khi hóa trị của hidro

là 1 Theo nguyên tắc biểu diễn hợp chất hidrocacbon no đã học, một nguyên tử các bon phải được liên kết bằng gạch đơn với 4 nguyên tử khác để thỏa hóa trị, với hidro thì số gach nối là 1 Áp dụng những hiểu biết thú vị về hóa học ta có thể biểu diễn bằng đồ thị cây như sau.Trong các mô hình đồ thị của hydrocarbon no, mỗi nguyên tử các bon được biểu diễn bởi một đỉnh bậc bốn và mỗi nguyên tử hydro được biểu diễn bằng một đỉnh bậc một Ta có thể dễ dàng tính đượctrong biểu diễn

đồ thị của hợp chất có dạng 3 n  2đỉnh C H n 2n2 Số các cạnh trong đồ thị như thế bằng một nửa tổng các bậc của các đỉnh (định lý bắt tay) Vì thế có

Trang 28

(4n 2n 2) / 2  3n 1 cạnh trong đồ thị này Vì đồ thị là liên thông và số cạnh nhỏ hơn số đỉnh một đơn vị nên nó là một cây

Các cây không đẳng cấu với n đỉnh bậc 4 và 2n2đỉnh bậc 1 biểu diễn các đồng phân khác nhau dạng C H4 10 Cấu trúc của nó được biểu thị trên hình 9 Các đồng phân này được gọi là butane và isobutane

Ví dụ 2.7 Ngoài các đồng phân hóa học ta thấy đồ thị cây có ứng dụng trong ngày

cuộc sống như cây biểu diễn các tổ chức với các thành phần nhân sự Cấu trúc của một tổ chức lớn có thể mô hình bằng cây có gốc Mỗi đỉnh biểu thị một chức vụ trong tổ chức này Một cạnh từ một đỉnh tới đỉnh khác biểu diễn mối quan hệ thứ bậc trong làm việc, sự qua lại tương tác mà đỉnh đầu là lãnh đạo của đỉnh các đỉnh dưới và đỉnh đỉnh dưới là nhân viên dưới cấp

Butane

Trang 29

Ví dụ 2.8 Một cây xuất hiện thường nhật trong tin học mà mỗi chúng ta đều nắm rõ

đó là cây thư mục biểu diễn hệ thống các tệp tin ở phía tay trái mỗi File Explorer Một thư mục có thể chứa các tệp tin và các tập con Khi ta nhấn đúp vào thì thư mục gốc sẽ đứng mép trên trái ngoài cùng và phía dưới bên phải đến tệp tin nó chứa Tiếp tục kích đúp vào các tệp tin sẽ xuất hiện các thư mục con ở phía dưới bên phải nó Nếu cùng là con của một tệp thì sẽ có vị trí ngang hàng nhau Như vậy

hệ thống cây thư mục hoàn toàn có thể biểu diễn lại chính xác đồ thị cây như sau:

My Document

Inventor server

Mobogenie SW Log

Files

The KMPlaye

r Album Art

Hình 2.7.Sơ đồ cây thư mục Document

Content Center

Trợ lý bán hàng

Phó chủ tịch dịch vụ

dịch vụ

Giám đốc dịch vụ Hình 2.6.Cây tổ chức một công ty

Trang 30

2.3 Các phương pháp duyệt cây

2.3.1 Mở đầu

Cùng với sự phát triển xã hội ngày nay là sự phát triển mạnh mẽ bùng nổ của khoa học công nghệ mà công nghệ thông tin là một trong những lĩnh vực hàng đầu Với một lượng dữ liệu khổng lồ trong máy tính, vấn đề quan trọng được đặt ra với các nhà lập trình và phần mềm là làm thế nào để có thể tìm dữ liệu một cách nhanh chóng và hợp lý, mang lại kết quả tối ưu nhất Thông thường dữ liệu được biểu diễn dưới dạng các danh sách liên kết Việc truy nhập dữ liệu chưa đạt được kết quả cao Khi đó sử dụng dữ liệu cây là một giải pháp nhằm tăng cao hiệu xuất trong các thao tác xử lý dữ liệu Trong khoa học máy tính cây là một cấu trúc dữ liệu không tuyến tính Cây có gốc và được sắp thứ tự thường được dùng để lưu trữ thông tin; nó cũng

có ứng dụng rất lớn để biểu diễn các loại biểu thức khác nhau như biểu thức số học chứa các số, các biến và các phép toán Vấn đề đặt ra: với việc sử dụng cấu trúc dạng cây, chúng ta cần dùng giải thuật nào với từng dạng dữ liệu để đạt kết quả cao nhất Để tìm hiểu vấn đề này ta cùng tìm hiểu một số phương pháp duyệt cây

2.3.2 Hệ địa chỉ phổ dụng

Tất cả các thủ tục duyệt đều thăm viếng các đỉnh của cây qua các cạnh Vì vậy

để sắp thứ tự toàn bộ các đỉnh của một cây bắt buộc dữ liệu trong cây cần được sắp xếp lại một cách có trật tự và nhãn nhất định Vì vậy với các thủ tục này ta sẽ sử dụng cây có gốc và được sắp thứ tự (2.2.1) Với cây có gốc và được sắp thứ tự ta bắt đầu thủ tục gán nhãn cho các đỉnh bằng phương pháp truy hồi như sau:

1 Gán nhãn cho gốc bằng số nguyên 0 Sau đó k đỉnh con của nó ở mức 1 từ

trái sang phải được gán nhãn lần lượt là 1, 2, …, k

2 Với mọi đỉnh v ở mức n có nhãn là A, thì k, đỉnh con của nó từ trái qua phải

được gán nhãn là A.1, A.2, …, A.k

Như vậy với cách gán này, giả sử đỉnh u bất kỳ ở mức n bất kì trong cây có nhãn là 3.1.2.4 Ta kết luận n4 vậy có nghĩa là u đường đi từ gốc tới u sẽ lần lượt

đi qua cây con thứ 3 mức 1, cây con 1 mức 2 của cây con 3 mức 1,…

Trang 31

Một cách tổng quát hơn, theo đúng thủ tục này, đỉnh v ở mức n, với n1, có nhãn x x1 .2 x n thì đường đi duy nhất từ gốc tới v sẽ đi qua đỉnh thứ x1 ở mức 1, đỉnh thứ x2 ở mức 2, v.v

Cách gán nhãn như vậy được gọi là hệ địa chỉ phổ dụng của một cây có gốc

x  y và x iy i hoặc nếu nmx iy i với i1, 2, ,n

2.3.3 Các thuật toán duyệt cây

Cây là một đồ thị đặc biệt Dễ dàng thấy duyệt cây chính là duyệt đồ thị Do

đó ta có 2 thuật toán cơ bản DFS và BFS

Trang 32

đường đất khó đi lại, luôn luôn có đường bê tông nối hai làng bất kì Có thể làm điều đó như nào?

Như vậy ta cần ít nhất 5 con đường tất cả Ta nhận thấy đồ thị con biểu diễn các con đường này vì nó liên thông, không chứa chu trình và chứa 6 đỉnh 5 cạnh

ta gọi đó là cây bao trùm (định nghĩa 1.8)

Một đơn đồ thị có cây bao trùm sẽ là một đồ thị liên thông vì bản thân cây bao trùm đã liên thông Điều ngược lại cũng đúng vì muốn có cây bao trùm thì tất cả các đỉnh đồ thị đều liên thông với nhau để khi xây dựng cây khung vẫn liên thông

Ngày đăng: 04/05/2018, 09:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w