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

Cây bao trùm ngắn nhất lý thuyết, thuật toán và ứng dụng

72 812 4

Đ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 72
Dung lượng 1,24 MB

Nội dung

Có thể có một vài cây bao trùm nhỏ nhất có cùng trọng số và có số cạnh nhỏ nhất; cụ thể hơn, nếu tất cả các cạnh của một đồ thị đều có trọng số bằng nhau, thì tất cả các cây bao trùm của

Trang 1

MỤC LỤC

trang

MỤC LỤC i

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT iii

DANH MỤC BẢNG iv

DANH MỤC HÌNH v

MỞ ĐẦU 1

CHƯƠNG I GIỚI THIỆU CÂY BAO TRÙM NGẮN NHẤT 4

1.1 GIỚI THIỆU 4

1.1.1 Khái niệm về cây 4

1.1.2 Cây Có Gốc 6

1.1.3 Cây m - phân 8

1.1.4 Duyệt cây nhị phân 10

1.1.5 Cây tìm kiếm nhị phân 13

1.1.6 Cây bao trùm 14

1.1.7 Cây bao trùm ngắn nhất 15

1.1.8 Cây bao trùm trên đồ thị có trọng số 18

1.2 MỘT SỐ BÀI TOÁN DẪN ĐẾN CÂY BAO TRÙM 22

1.2.1 Cây và bài toán liệt kê 22

1.2.2 Vạch đường trong mạng di động 24

1.3 TỔNG KẾT CHƯƠNG 28

CHƯƠNG II MỘT SỐ THUẬT TOÁN TÌM CÂY BAO TRÙM NGẮN NHẤT 29

2.1 THUẬT TOÁN BORŮVKA 30

2.1.1 Mô tả thuật toán Borůvka song song 32

2.1.2 Thuật toán song song cho bước 2 33

2.1.3 Thuật toán con trỏ nhảy mới 34

2.2 THUẬT TOÁN KRUSKAL 36

2.2.1 Mô tả thuật toán 36

2.2.2 Chứng minh tính đúng đắn 40

2.2.3 Thực hiện thuật toán 41

2.3 THUẬT TOÁN PRIM 42

2.3.1 Mô tả thuật toán 43

2.3.2 Độ phức tạp thuật toán 48

2.3.3 Chứng minh tính đúng đắn 48

2.3.4 Thực hiện thuật toán 49

Trang 2

2.4 TỔNG KẾT CHƯƠNG II 50

CHƯƠNG III ỨNG DỤNG THUẬT TOÁN CÂY BAO TRÙM NGẮN NHẤT VÀO BÀI TOÁN THIẾT KẾ ĐƯỜNG CÁP TRUYỀN HÌNH 51

3.1 TỔNG QUAN MẠNG TRUYỂN HÌNH CÁP 51

3.1.1 Hệ thống trung tâm 52

3.1.2 Mạng phân phối tín hiệu truyền hình cáp 52

3.1.3 Thiết bị tại nhà thuê bao 52

3.1.4 Cấu hình mạng truyền hình cáp 53

3.2 MÔ TẢ THUẬT TOÁN CÂY BAO TRÙM NGẮN NHẤT CHO BÀI TOÁN THIẾT KẾ CÁP TRUYỀN HÌNH 57

3.2.1 Phát biểu bài toán 57

3.2.2 Mô tả dạng toán học của bài toán 58

3.2.3 Thực hiện bài toán 59

3.3 THIẾT KẾ CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM 60

3.3.1 Thiết kế chương trình 60

3.3.2 Kết quả thử nghiệm 61

3.4 TỔNG KẾT CHƯƠNG III 65

KẾT LUẬN VÀ KIẾN NGHỊ 66

Trang 3

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Tiếng Anh

MMDS

Multichannel Multipoint Distribution Service

Dịch vụ phân phối đa điểm đa

kênh

Trang 4

DANH MỤC BẢNG

Bảng 1 Minh họa thuật toán Borůvka 32

Bảng 2 Đồ thị có cấu trúc 35

Bảng 3 Thuật toán Kruskal 39

Bảng 4 Kết quả chạy ví dụ 1 40

Bảng 5 Minh hoạ thuật toán Prim 46

Bảng 6 Kết quả chạy ví dụ 47

Bảng 7 Liệt kê thời gian chạy thuật toán 48

Bảng 8 Khoảng cách giữa các trạm FTTH 62

Trang 5

DANH MỤC HÌNH

Trang

Hình 1 1 Sơ đồ hình cây 4

Hình 1 2 Cây có gốc x 7 0 Hình 1 3 Cây có gốc 7

Hình 1 4 Duyệt cây nhị phân 11

Hình 1 5 Duyệt cây nhị phân theo trung thứ tự 12

Hình 1 6 Cây bao trùm nhỏ nhất trên đồ thị phẳng 16

Hình 1 7 Cây bao trùm nhỏ nhất trong một đồ thị 16

Hình 1 8 Cây bao trùm nhỏ nhất có trọng số nhỏ nhất 18

Hình 1 9 Cây liệt kê hoán vị của {1, 2, 3} 23

Hình 1 10 Liệt kê các xâu 24

Hình 1 11 Liệt kê các tập con 24

Hình 1 12 Mô hình mạng có hệ thống không dây 25

Hình 1 13 Vạch đường đi trong mạng di động 27

Hình 2 1 Thuật toán siêu đỉnh thực hiện theo danh sách 34

Hình 2 2 cây khung nhỏ nhất của đồ thị 39

Hình 2 3 Kết thúc thuật toán được cây khung nhỏ nhất 40

Hình 2 4 Cây khung có trọng số 47

Hình 3 1 Sơ đồ khối hệ thống truyền hình cáp 51

Hình 3 2 Các cấu hình mạng HFC 53

Hình 3 3 Mạng sao truyền dẫn 54

Hình 3 4 Mạng vòng truyền dẫn 54

Hình 3 5 Mạng con phân phối 54

Hình 3 6 Cấu hình FTF 55

Hình 3 7 Cấu hình FTTH 56

Hình 3 8 Cấu hình FTTC 56

Hình 3 9 Cấu hình FTLA 57

Hình 3 10 Tuyến huyện 58

Hình 3 11 Triển khai mạng cáp tuyến huyện 59

Hình 3 12 Giao diện chương trình 60

Hình 3 13 Nhập dữ liệu vào chương trình 62

Hình 3 14 Kết quả chạy chương trình với thuật toán Prim 63

Hình 3 15 Kết quả chạy chương trình thuật toán Kruskal 63

Hình 3 16 Bài toán nhiều đỉnh 64

Hình 3 17 Chương trình chạy thuật toán Kruskal 65

Hình 3 18 Chương trình chạy thuật toán Prim 65

Trang 6

MỞ ĐẦU

1 Lý do chọn đề tài

Lý thuyết đồ thị là một lĩnh vực đã được nghiên cứu từ những 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 hoá học Từ đó cây đã được dùng để giải nhiều bài toán trong nhiều lĩnh vực khác nhau Chẳng hạn, người ta dùng cây để xây dựng các thuật toán rất có hiệu quả để tìm kiếm các phần tử trong một danh sách 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 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 phân tán do có thể tìm được cây bao trùm ngắn nhất giữa các nút mạng

Lý thuyết đồ thị không những có nhiều ứng dụng trong thực tế mà còn

là công cụ đắc lực cho ngành công nghệ thông tin Nó giúp cho chúng ta mô

tả một cách dễ dàng các bài toán phức tạp cụ thể, để từ đó ta có thể mã hoá các bài toán đó vào máy tính Ngoài ra lý thuyết đồ thị được sử dụng để giải quyết các bài toán trong nhiều lĩnh vực khác nhau

Cùng với sự phát triển chung của nhân loại thì trong lĩnh vực thông tin cũng có những bước phát triển mạnh mẽ nhằm đáp ứng nhu cầu của cuộc sống ngày nay Các hệ thống thông tin truyền thống như thông tin vô tuyến, thông tin hữu tuyến ngày càng có những biến đổi cả về chất lẫn lượng Nhu cầu thực tế yêu cầu hệ thống truyền dẫn thông tin có dung lượng lớn, tốc độ truyền dẫn cao Đặt ra yêu cầu cho nhà cung cấp hệ thống thông tin cũng nói chung và các nhà cung cấp truyền hình nói riêng về vấn đề nâng cao chất lượng phục vụ, cũng như việc triển khai lắp đặt mới một hệ thống truyền hình cáp trong một khu vực nhỏ như cấp huyện hay trong một thành phố lớn

Trang 7

Việc tính toán khảo sát một địa điểm mới để triển khai mới tránh lãng phí tài nguyên cáp truyền dẫn, lãng phí nhân công và tài chính của đơn vị cung cấp truyền hình cáp, cũng như lắp đặt các trạm truyền dẫn một cách hiệu quả Đòi hỏi nhà cung cấp phải tính toán đường đi cáp xuyên suốt từ trung tâm truyền dẫn đến các điểm sử dụng thuê bao một cách ngắn nhất, tích kiệm nhất để chánh lãng phí và đảm bảo tín hiệu truyền dẫn được ổn định

Nhận thấy sự khó khăn mất nhiều thời gian, công sức và tài chính để khảo sát địa điểm lựa chọn giải pháp lắp đặt hệ thống truyền hình cáp sao cho tối ưu và tích kiệm nhất, đảm bảo tính khoa học vì vậy em đã lựa chọn đề tài

“Cây bao trùm ngắn nhất : Lý thuyết, thuật toán và ứng dụng” để áp

dụng vào thực tế khảo sát và triển khai mới hệ thống truyền hình cáp một cách tối ưu nhất có thể

2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của luận văn là các vấn đề về Cây bao trùm ngắn nhất, thuật toán và các ứng dụng thực tiễn của nó

3 Phạm vi nghiên cứu

Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý thuyết như: Lý thuyết về đồ thị và cây, cây bao trùm ngắn nhất, thuật toán và các ứng dụng của cây bao trùm ngắn nhất

4 Nhiệm vụ nghiên cứu

- Tìm hiểu những kiến thức tổng quan về cây bao trùm ngắn nhất

- Tìm hiều ba thuật toán liên quan đến cây bao trùm ngắn nhất Borůvka, thuật toán Kruskal, thuật toán Prim

- Thiết kế chương trình ứng dụng vào thực tế giải bài toán thiết hệ thống truyền hình cáp

Trang 8

5 Những nội dung nghiên cứu chính

Bố cục của luận văn gồm phần mở đầu trình bày lý do chọn đề tài, đối tượng và nhiệm vụ nghiên cứu của đề tài Chương một, Tìm hiểu và trình bày những lý thuyết cơ bản về khái niệm cây bao trùm: lịch sử ra đời và phát triển của của cây bao trùm, khái niệm cây, các định nghĩa, định lý, tính chất, ví dụ

về cây bao trùm và cây bao trùm có trọng số bé nhất Một số bài toán dẫn đến cây bao trùm Chương hai, Tìm hiều, giới thiệu ba thuật toán liên quan đến cây bao trùm ngắn nhất Borůvka, thuật toán Kruskal, thuật toán Prim Chương

3, Tìm hiểu lịch sử truyền hình cáp, sự phát triển của truyền hình cáp hiện nay Mổ ta bài toán cây bao trùm ngắn nhất cho bài toán thiết kế cáp truyền hình Thiết kế chương trình, và kết quả thử nghiệm

6 Phương pháp nghiên cứu

- Phương pháp đọc tài liệu

- Phương pháp quan sát

- Phương pháp phân tích – tổng hợp lý thuyết

- Phương pháp thực nghiệm

Trang 9

CHƯƠNG I GIỚI THIỆU CÂY BAO TRÙM NGẮN NHẤT

1.1 GIỚI THIỆU

Một đồ thị liên thông và không có chu trình được gọi là cây 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 Từ đó cây đã được dùng để giải nhiều bài toán trong nhiều lĩnh vực khác nhau Trong tin học cây được dùng để tìm kiếm các phần tử trong danh sách hoặc bài toán xây dựng các mạng máy tính với chi phí rẻ với các máy phân tán.[1]

1.1.1 Khái niệm về cây

Trang 10

u đến v, trái với tính chất đường đi từ u đến v đã chọn

Ta nhận thấy rằng cây là đồ thị vô hướng đơn giản nhất, định lí 2 cho ta một số tính chất của cây.[3]

Định lý 2 Cho đồ thị T=(V,E) có n đỉnh Sáu mệnh đề là tương đương:

1) T là một cây

2) T liên thông và có n1 cạnh

3) T không chứa chu trình và có n-1 cạnh

4) T liên thông và mỗi cạnh là cầu

5) Giữa hai đỉnh phân biệt của T luôn có duy nhất một

đường đi sơ cấp

6) T không chứa chu trình nhưng khi bổ sung vào một

cạnh nối hai đỉnh không kề nhau thì xuất hiện một chu trình

Chứng minh

Chứng minh 12 (theo quy nạp)

Khẳng định đúng với n 1 và n 2 Giả sử khẳng định đúng với mọi cây T' với n 1 đỉnh khi đó T' liên thông và có n 2cạnh

Ta chứng minh khẳng định đúng với mọi T có n đỉnh (n 2) Trong T bao giờ cũng tìm được ít nhất một đỉnh treo vì trái lại sẽ tồn tại chu trình trong

T Giả sử v1 là đỉnh treo và v1 kề v2 trong T khi đó nếu ta loại bỏ v1và cạnh (v1,v2) khỏi T thì T sẽ có n 2cạnh (theo giả thiết quy nạp) Vậy cây T có

Trang 11

chưa chu trình nên các thành phần liên thông đó cũng không chứa chu trình Gọi n ie i tương ứng số các đỉnh và các cạnh của thành phần liên thông T i

Ta có e in i1(i1, 2, , )k suy ra n1n2 n kke1e2  e kn1 (vì e1e2  e kn1 ) n1n2  n k (n 1 k)n mâu thuẫn

Chứng minh 34

Khi loại bỏ một cạnh bất kì khỏi T thì T sẽ có n đỉnh và n 2cạnh nên tồn tại ít nhất một đỉnh cô lập có nghĩa là T không liên thông Vậy mọi cạnh trong T đều là cầu

u tới v tạo thành chu trình trong T và chu trình này là duy nhất (đpcm)

Chứng minh 61(theo phản chứng)

Giả sử T không liên thông khi đó tồn tại ít nhất hai thành phần liên thông giả sử là T1 và T2 , nối cạnh (u,v) với uT1 và v T 2 thì trong T không xuất hiện thêm một chu trình nào cả Điều này mâu thuẫn với giả thiết

1.1.2 Cây Có Gốc

Định nghĩa Cây có hướng là đồ thị có hướng mà đồ thị vô hướng

tương ứng của nó là một cây.[1]

Trang 12

Cây có gốc là cây có hướng, trong đó có một đỉnh đặc biệt, gọi là gốc,

từ gốc có đường đi đến mọi đỉnh khác của cây

Trong cây có gốc thì gốc x0có bậc vào bằng 0, còn tất cả các đỉnh khác đều có bậc vào bằng 1

Hình 1 2 Cây có gốc x 0

Một cây có gốc thường được vẽ với gốc x0 ở trên cùng và cây phát triển

từ trên xuống (hình 1.2) Gốc của cây (đỉnh x0) gọi là đỉnh mức 0 Các đỉnh kề với gốc được xếp ở phía dưới và gọi là đỉnh mức 1 Đỉnh ngay dưới đỉnh mức k

là đỉnh mức k +1

Tổng quát, trong một cây có gốc x0thì đỉnh x của cây là đỉnh có mức k khi và chỉ khi đường đi từ đến x0 có độ dài bằng k

Mức lớn nhất của một đỉnh có trong cây gọi là chiều cao của cây

Cây có gốc ở hình 2 thường được vẽ như trong hình 1.3 để làm rõ mức của các đỉnh

Hình 1 3 Cây có gốc

xx

Trang 13

Trong cây có gốc, mọi cạnh đều có hướng từ trên xuống, vì vậy vẽ mũi tên để chỉ hướng đi là không cần thiết Xét một đường đi xuất phát từ gốc của cây có gốc Ta có các khái niệm sau:

 Đỉnh có mức k được gọi là cha của các đỉnh mức k+1, đỉnh ở mức k+1 gọi là con của đỉnh ở mức k

 Các đỉnh có cùng cha được gọi là anh em

 Các đỉnh có mức nhỏ hơn k gọi là tổ tiên của đỉnh ở mức k

 Đỉnh ở mức lớn nhất của đường đi đó gọi là lá Lá là đỉnh treo và không

có con

 Mọi đỉnh không phải là lá được gọi là đỉnh trong

Cây có gốc mà mức của mọi lá sai khác nhau không quá 1 đơn vị gọi là cây cân đối (hay cây cân bằng) Nói cách khác cây cân đối là cây mà mọi lá đều có mức h hoặc h – 1 trong đó h là chiều cao của cây

Với một cây tùy ý, nếu chọn một đỉnh nào đó làm gốc được cây có gốc tương ứng Do chọn gốc bất kỳ nên với cây có n đỉnh sẽ có n cây có gốc tương ứng khác nhau Có thể chứng minh được rằng, nếu chọn tâm của cây là gốc thì được cây có gốc có độ cao nhỏ nhất

1.1.3 Cây m – phân

Định nghĩa Một cây có gốc T được gọi là cây m-phân nếu mỗi đỉnh

trong của T có nhiều nhất là m con

Cây có gốc T được gọi là một cây m-phân đầy đủ nếu mỗi đỉnh trong của T đều có m con

Định lý 3 Một cây m-phân đầy đủ có k đỉnh trong thì có m k  1 đỉnh

và có (m1)k1 lá

Trang 14

Chứng minh Mọi đỉnh trong của cây m-phân đầy đủ đều có bậc ra là

m, còn lá có bậc ra là 0 Vậy tổng số bậc ra của cây là m.k, từ đó số cạnh của cây là m.k Và do đó số đỉnh của cây là m k  1 Gọi s là số lá thì ta có

2 Một cây m-phân có s lá thì có chiều cao h [log s]m

3 Một cây m-phân đầy đủ và cân đối có s lá thì có chiều cao

h  ) Xét cây m-phân (cây T) có chiều cao hk1 Bỏ gốc khỏi cây được một rừng gồm không quá m cây con, mỗi cây con này có chiều cao không quá

k Do giả thiết quy nạp, mỗi cây con này có nhiều nhất là k

m lá Do lá của những cây con này cũng là lá của T, nên T có nhiều nhất là m m km k 1 lá

Theo nguyên lý quy nạp, mệnh đề đúng đối với mọi cây có chiều cao tuỳ ý

Ví dụ: Xét trò chơi gửi thư dây truyền Ban đầu có một người nhận

được một lá thư và giả sử rằng mỗi người khi nhận được một thư hoặc sẽ sao

Trang 15

gửi thư đó cho 4 người khác hoặc là không chuyển cho ai cả Hỏi có bao nhiêu người nhận được thư kể cả người đầu tiên nếu không có ai nhận được nhiều hơn một bức thư và trò chơi kết thúc khi có 100 người nhận được thư mà không viết cho ai cả

Giải: Biểu diễn trò chơi bằng một cây tứ phân đầy đủ, các đỉnh trong là những người nhận được thư và sao gửi cho người khác còn lá là những người nhận được thư mà không gửi cho ai cả Vì có 100 người không viết thư cho ai nên số lá của cây là s = 100, theo định lý 3 ta có 100 = (4 – 1)k + 1 thuộc số đỉnh trong của cây là: k = 33 thuộc số đỉnh của của cây là: n = 100 + 33 = 133 Vậy có 133 người nhận được thư

1.1.4 Duyệt cây nhị phân

a) Định nghĩa [3]

Trong nhiều trường hợp, ta cần phải duyệt một cách có hệ thống mọi đỉnh của một cây nhị phân, mỗi đỉnh chỉ một lần Ta gọi đó là việc duyệt cây nhị phân hay đọc cây nhị phân

Có nhiều thuật toán duyệt cây nhị phân, các thuật toán đó khác nhau chủ yếu ở thứ tự thăm các đỉnh

Cây nhị phân T có gốc r được ký hiệu là T(r) Giả sử r có con bên trái

u, con bên phải là v Cây có gốc u và các đỉnh khác là mọi dòng dõi của u

trong T gọi là cây con bên trái của T, ký hiệu T(u) Tương tự, ta có cây con bên phải T(v) của T Một cây T(r) có thể không có cây con bên trái hay bên phải

Sau đây là ba trong các thuật toán duyệt cây nhị phân T(r) Các thuật toán đều được trình bày đệ quy Chú ý rằng khi cây T(x) chỉ là một đỉnh x thì

“duyệt T(x)” có nghĩa là “thăm đỉnh x

Trang 16

b) Thuật toán duyệt cây nhị phân

1) Thuật toán tiền thứ tự: (preorder)

1 Thăm gốc r

2 Duyệt cây con bên trái của T(r) theo tiền thứ tự

3 Duyệt cây con bên phải của T(r) theo tiền thứ tự

Duyệt cây nhị phân T(a) trong hình trên theo tiền thứ tự: Kết quả duyệt cây T(a) theo tiền thứ tự là:

a, b, d, g, l, h, e, i, m, n, c, f, j, o, p, k, q, s

2) Thuật toán trung thứ tự: (inorder)

1 Duyệt cây con bên trái của T(r) theo trung thứ tự

2 Thăm gốc r

3 Duyệt cây con bên phải của T(r) theo trung thứ tự

Duyệt cây nhị phân T(a) trong hình trên theo trung thứ tự: Kết quả duyệt cây T(a) theo trung thứ tự là:

g, l, d, h, b, m, i, n, e, a, c, o, j, p, f, q, k, s

3) Thuật toán hậu thứ tự: (postorder)

Hình 1 4 Duyệt cây nhị phân

Trang 17

1 Duyệt cây con bên trái của T(r) theo hậu thứ tự

2 Duyệt cây con bên phải của T(r) theo hậu thứ tự

Duyệt cây nhị phân trong hình trên theo trung thứ tự là:

và đây là biểu thức (1) đã bỏ đi các dấu ngoặc

Đối với cây trong hình thứ nhất, nếu duyệt theo tiền thứ tự, ta có

Trang 18

và nếu duyệt theo hậu thứ tự, ta có:

Vì vậy, nếu ta viết các biểu thức trong đại số, trong lôgic bằng cách duyệt cây tương ứng theo tiền thứ tự hoặc hậu thứ tự thì ta không cần dùng các dấu ngoặc mà không sợ hiểu nhầm

Người ta gọi cách viết biểu thức theo tiền thứ tự (tiền tố) là ký pháp Ba Lan, còn cách viết theo hậu thứ tự (hậu tố) là ký pháp Ba Lan đảo, để ghi nhớ đóng góp của nhà toán học và lôgic học Ba Lan Lukasiewicz (1878-1956) trong vấn đề này

Việc chuyển một biểu thức viết theo ký pháp quen thuộc (có dấu ngoặc) sang dạng ký pháp Ba Lan hay ký pháp Ba Lan đảo hoặc ngược lại, có thể thực hiện bằng cách vẽ cây nhị phân tương ứng sau đó áp dụng thuật toán duyệt cây theo thứ tự trước; thứ tự sau như đã làm đối với biểu thức (1)

Như vậy việc tính giá trị của một biểu thức trong tin học thực hiện hai thao tác cơ bản

(1) Chuyển đổi biểu thức dạng trung tố sang hậu tố

(2) Tính giá trị biểu thức hậu tố

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

Cây tìm kiếm nhị phân (BST) là một cấu trúc rất thuận lợi cho bài toán tìm kiếm

Định nghĩa Cây tìm kiếm ứng với n khóa k k1, 2, k n là cây nhị phân

mà mỗi nút đều được gán một khóa sao cho với mỗi mỗi nút k:

 Mọi khóa trên cây con trái đều nhỏ hơn khóa trên nút k

 Mọi khóa trên cây con phải đều lớn hơn khóa trên nút k Cây tìm kiếm nhị phân là một cấu trúc dữ liệu cơ bản được sử dụng để

Trang 19

xây dựng các cấu trúc dữ liệu trừu tượng hơn như các tập hợp, đa tập hợp, các dãy kết hợp

Nếu một BST có chứa các giá trị giống nhau thì nó biểu diễn một đa tập hợp Cây loại này sử dụng các bất đẳng thức không nghiêm ngặt Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải có nút lớn hơn hoặc bằng khóa của nút cha

Nếu một BST không chứa các giá trị giống nhau thì nó biểu diễn một tập hợp đơn trị như trong lí thuyết tập hợp Cây loại này sử dụng các bất đẳng thức nghiêm ngặt Mọi nút trong cây con trái có khóa nhỏ hơn khóa của nút cha, mọi nút trên cây con phải có nút lớn hơn khóa của nút cha

Việc chọn đưa các giá trị bằng nhau vào cây con phải (hay trái) là tùy theo mỗi người Một số người cũng đưa các giá trị bằng nhau vào cả hai phía, nhưng khi đó việc tìm kiếm trở nên phức tạp hơn

Giả sử đồ thị vô hướng G =( X, E ) có cây bao trùm (H = ( X,F)), nhưng

G lại không liên thông Khi đó x, yX không nối với nhau Đồ thị H = (X,F) nhận được từ G bằng cách bỏ đi một số cạnh, nên trong đồ thị H các đỉnh x, y cũng không nối với nhau, suy ra đồ thị H không liên thông Xẩy ra mâu thuẫn với tính chất của cây Do đó đồ thị G liên thông

Điều kiện đủ

Trang 20

Nếu đồ thị G liên thông ta tìm tất cả các cạnh, mà khi loại các cạnh này khỏi G không làm mất tính liên thông của đồ thị

Nếu trong G không có cạnh nào như vậy, thì G không có chu trình nên

Chứng minh điều kiện đủ là thuật toán cây bao trùm của đồ thị của đồ thị

1.1.7 Cây bao trùm ngắn nhất

a) Định nghĩa Cho một đồ thị liên thông G vô hướng bao gồm n

đỉnh, mã số từ 1 đến n, và m cạnh nối hai đỉnh với nhau Mỗi cạnh có chiều dài cho trước Tính liên thông của đồ thị cho biết với hai đỉnh cho trước tuỳ ý

ta luôn tìm được các cạnh gối đầu nhau để đi từ đỉnh này đến đỉnh kia Hãy chỉ ra một phần P của đồ thị thoả các tính chất sau: [3][4][7]

(i) P chứa tất cả các đỉnh của G;

(ii) P chứa một số ít nhất các cạnh của G;

(iii) P là đồ thị liên thông;

(iv) Tổng chiều dài các cạnh của P là ngắn nhất

Đồ thị P thoả ba tính chất (i), (ii) và (iii) được gọi là cây bao trùm của

đồ thị G Nếu P thoả thêm tính chất (iv) thì P được gọi là cây bao trùm ngắn nhất của G

Trang 21

Hình 1 6 Cây bao trùm nhỏ nhất trên đồ thị phẳng

b) Tính chất cây bao trùm[7]

 Tính chất đa lời giải:

Hình 1.7 thể hiện có thể có nhiều hơn một cây bao trùm nhỏ nhất trong một đồ thị Hai cây ở phía dưới đồ thị là hai cây bao trùm nhỏ nhất có thể có

Trang 22

Có thể có một vài cây bao trùm nhỏ nhất có cùng trọng số và có số cạnh nhỏ nhất; cụ thể hơn, nếu tất cả các cạnh của một đồ thị đều có trọng số bằng nhau, thì tất cả các cây bao trùm của đồ thị đó đều là nhỏ nhất

 Tính duy nhất

Nếu mỗi cạnh có trọng số riêng biệt thì sẽ chỉ có một, và chỉ một cây bao trùm nhỏ nhất Có thể chứng minh phát biểu này bằng quy nạp hoặc phản chứng Điều này đúng trong nhiều trường hợp thực tế, như ví dụ về công ty truyền hình cáp ở trên chẳng hạn, khi đó rất hiếm khi hai con đường lại có chính xác cùng một chi phí Phát biểu này cũng được tổng quát hóa cho rừng bao trùm

 Đồ thị có chi phí nhỏ nhất

Nếu trọng số là số dương, thì một cây bao trùm nhỏ nhất cũng chính là

đồ thị con có chi phí nhỏ nhất kết nối tất cả đỉnh, vì các đồ thị con có chứa chu trình bao giờ cũng có tổng trọng số lớn hơn

 Tính chất vòng

Với một chu trình C bất kỳ trong đồ thị, nếu trọng số của cạnh e nào đó của C lớn hơn trọng số của các cạnh còn lại của C, thì cạnh đó không thể thuộc về cây bao trùm nhỏ nhất Giả sử điều ngược lại, nếu e thuộc về cây bao trùm nhỏ nhất T1, khi chúng ta xóa e, nó sẽ phân T1 ra làm hai cây con mà hai đầu của e thuộc về hai cây con khác nhau Các cạnh còn lại của C sẽ gắn hai cây con này lại với nhau, do đó sẽ tồn tại một cạnh f thuộc C có hai đầu nằm trên hai cây con này, tức là nó sẽ kết nối hai cây con này lại một cây T2

có trọng số nhỏ hơn T1, vì trọng số của f nhỏ hơn trọng số của e

 Tính chất cắt

T là cây bao trùm nhỏ nhất của đồ thị Nếu S = {A,B,D,E}, thì V-S = {C,F}, sẽ có thể có 4 cạnh nối nhát cắt (S, V-S), đó là BC, EC, EF Khi đó, e

Trang 23

BC bằng e sẽ tạo ra một cây bao trùm nhỏ nhất có trọng số nhỏ hơn

 Cạnh có chi phí nhỏ nhất

Nếu một cạnh của đồ thị với chi phí nhỏ nhất e là duy nhất, thì cạnh này sẽ thuộc về bất kỳ một cây bao trùm nhỏ nhất nào Thật vậy, nếu e không nằm trong cây bao trùm nhỏ nhất, xóa một cạnh (có chi phí lớn hơn) trong chu trình tạo ra sau khi thêm e vào cây, sẽ tạo ra cây bao trùm có trọng số nhỏ hơn

1.1.8 Cây bao trùm trên đồ thị có trọng số

Ta xét những đồ thị vô hướng, có trọng số không âm và với n(n2)đỉnh

Giả sử G=( X, U )là một đồ thị có trọng số Dùng C(G) để ký hiệu tập gồm tất cả các cây bao trùm của đồ thị G ta xác định đại lượng:

0 ( G ) m i n { l ( ) | ( ) }

Hình 1 8 Cây bao trùm nhỏ nhất có trọng số nhỏ nhất

Trang 24

Bài toán 1: Cho đồ thị vô hướng liên thông có trọng số G=(X, U), hãy

tìm một cây bao trùm có trọng số bé nhất H = (X, E) của đồ thị G mà

0

l Hl G

 Giải bài toán 1:

Để tìm cây bao trum bé nhất của đồ thị G ta giữ lại lần lượt các cạnh bé nhất Đầu tiên ta giữ lại một trong những cạnh đầu tiên bé nhất Ký hiệu cạnh được giữ lại tại bước 1 là v1 và tập cạnh bước này là V 1 {v }1

Sang bước thứ hai giữ lại một trong những cạnh có trọng số bé nhất, mà chưa được giữ Ký hiệu cạnh được giữ lại tại bước này là v2và tập cạnh đã được giữ lại là :

Tại bước ba giữ lại một trong những cạnh có trọng số bé nhất trong các cạnh còn lại, mà nó không lập với cách cạnh đã giữ thành chu trình Ký hiệu cạnh được giữ lại tại bước này là v3 và tập cạnh được giữ lại là

3 2 {v }={v ,v ,v }3 1 2 3

Giả sử sau k bước ta giữ lại được tập cạnh là:V k {v ,v , ,v1 2 k1,v }1 Sang bước k+1 ta giữ lại một trong những cạnh có trọng số bé nhất trong các canh còn lại, mà nó không lập với các cạnh thuộc V k thành chu trình Ký hiệu cạnh được giữ lại tạ bước này bằng Vk 1 và tập cạnh giữ được lại sau k+1 bước là:

Mặt khác theo tính chất 2 định lý 2 cây H phải có tới in1 đỉnh

Định lý 6

Trang 25

Nếu đồ thị G = (X, U) liên thông và có trọng số khác nhau từng đôi

một, thì cây bao trùm H=(X, V n1 ) với tập cạnh V n1 được xác định là cây bao trùm ngắn nhất và duy nhất

Chứng minh

Giả sử H1=(X, V) là cây bao trùm có trọng số bé nhất tuỳ ý của đồ thị

G ta chứng minh rằng V= V n1

Nếu VV n1{V ,V , , V , V ,V , ,V1 2 k1 k k1 n2, V }n1 Khi đó, do |V | |V n1|n1, nên trong V n1 phải có cạnh không thuộc V,

giả sử v k là cạnh có chỉ số nhỏ nhất trong V n1 không thuộc V theo tính chất 4

định lý 2, thì phải có một và chỉ một chu trình  trong tập V {v }k Nếu  chỉ gồm các cạnh thuộc V n1, thì khi đó V n1 có chu trình, nên mâu thuẫn với tính chất của V n1 Vậy  phải chứa ít nhất một cạnh không thuộc V n1 Giả sử 0

v được chọn Bởi vậy l u( 0) l v( k)

Cây H2=(X, W) nhận được từ cây H1=(X.W) bằng cách đổi u0thành v k Bởi vậy l H( 2) l H( 1) Ta đã đi tới mâu thuẫn với tính chất trọng số bé nhất của H1 Do đó V= V n1 và cây bao trùm H ( ,X V n1) có trọng số bé nhất và duy nhất

Đối với những đồ thị có trọng số không khác nhau từng đôi một từ định

lý 6

Hệ quả

Trang 26

Nếu đồ thị G=(X,U) liên thông, thì cây bao trùm H ( ,X V n1)với tập cạnh V n1 được xác định là cây bao trùm nhỏ nhất

Giả sử G=(X,U) liên thông, nhưng các trọng số không khác nhau từng

đôi một, ta xác định được tập: V n1{v v , , v }1, 2 n1 không chứa trình và là một

trong những tập gồm n-1 của cạnh G có tổng trọng số bé nhất, nên đồ thị

1

( , n )

HX Vlà một trong những cây bao trùm có trọng số bé nhất của G

Thật vậy, ta có thể thu xếp mọi cạnh của đồ thị có trọng số khác nhau bằng cách: Đối với mỗi nhóm cạnh có trọng số bằng nhau ta “ đánh số” dựa theo thứ tự ưu tiên khi xác định tập V n1, sau đó thêm cho mỗi cạnh một

 Thuật toán lan toả giải bài toán 1

Để tìm cây bao trùm bé nhất của đồ thị G=(X,E) Ta xuất phát từ một

đỉnh tuỳ ý, chẳng hạn A, trong các cạnh thuộc đỉnh A ta giữ lại một trong

những cạnh có trọng số nhỏ nhất chẳng hạn (A,B)

Trong các cạnh còn lại hoặc thuộc đỉnh A hoặc đỉnh B ta giữ lại một trong những cạnh có trọng số nhỏ nhất chẳng hạn như(A,C)

Trang 27

Tiếp theo trong các cạnh còn lại hoặc thuộc đỉnh A hoặc đỉnh B hoặc thuộc đỉnh C ta giữ lại một trong những cạnh có trọng số nhỏ nhất, nhưng

không lặp lại với cạnh đã giữ thành một chu trình

Tiếp tục quá trình này cho đến khi số đỉnh được giữ lại ít hơn số đỉnh là

1 thì theo tính chất 2 định lý 2 ta được cây bao trùm là cây bao trùm có trọng

số bé nhất

1.2 MỘT SỐ BÀI TOÁN DẪN ĐẾN CÂY BAO TRÙM

1.2.1 Cây và bài toán liệt kê

Bài toán liệt kê có thể ứng dụng cây có gốc để giải bài toán liệt kê bằng thuật toán quay lui

Giả sử cần liệt kê các cấu hình nào đó gồm k phần tử lấy từ tập hợp có

n phần tử đã cho N {x ,x , , x }1 2 n Chọn một điểm bất kỳ làm gốc và các đỉnh

ở mức 1 tương ứng với các phần tử của tập N thỏa mãn cấu hình cần tìm Đó

là các phần tử thứ nhất trong các cấu hình phải liệt kê Như vậy gốc của cây

có không quá n con Tuỳ theo yêu cầu của cấu hình, phần tử thứ hai của cấu hình được chọn từ các phần tử thích hợp trong tập N hoặc trong tập N1 = N \ {phần tử đã chọn làm phần tử thứ nhất của cấu hình} Quá trình tiếp tục cho đến khi chọn được các cấu hình thỏa mãn bài toán đã cho Cây được xây dựng như đã trình bày gọi là cây liệt kê Các cấu hình cần liệt kê chính là các đỉnh nằm trên đường đi từ đỉnh ở mức 1 đến các lá của cây liệt kê

Ví dụ 1: Xây dựng cây liệt kê các hoán vị của tập N = {1, 2, 3}

Trang 28

Hình 1 9 Cây liệt kê hoán vị của {1, 2, 3}

Chọn điểm tùy ý làm gốc, cả 3 phần tử của N đều được chọn làm phần

tử thứ nhất của các hoán vị nên gốc có ba con: 1, 2 và 3

Xét đỉnh 1, vì 1 đã được chọn do đó các con của đỉnh 1 chỉ còn chọn trong {2, 3} Cả 2 và 3 đều được chọn vậy đỉnh 1 có hai con là 2 và 3 Tương

tự đối với các đỉnh 2 và 3 ở mức 1

Xét đỉnh 2 là con của đỉnh 1, vì 2 và 1 đã được chọn do đó con của 2 chỉ còn duy nhất phần tử 3 Hoàn toàn tương tự đối với các đỉnh ở mức 2 khác

Tất cả các phần tử của N đã được chọn Vậy cây tìm kiếm được kết thúc, ta có 6 hoán vị

Ví dụ 2: Dùng cây liệt kê các xâu nhị phân có độ dài 4 sao cho không

có hai số 0 liên tiếp

Chú ý là người ta qui ước trong cây nhị phân biểu diễn xâu nhị phân thì con bên trái là bít 0 và con bên phải là bít 1 Các con trong mọi bước đều được chọn từ tập B ={0,1} Có 8 xâu thỏa mãn, đó là các xâu đã liệt kê trong hình 1.10

Trang 29

Hình 1 10 Liệt kê các xâu

Ví dụ 3: Liệt kê các tập con của tập hợp A = {0, 1, 3, 4, 7, 11,12} sao

cho tổng các phần tử của tập con tìm được không lớn hơn 10

Các tập hợp con có k phần tử là các đỉnh trên các đường đi từ gốc đến đỉnh bậc k, trừ đỉnh gốc của cây Cụ thể là:

- Các tập con có 1 phần tử: {0}, {1}, {3}, {4}, {7}

- Các tập con có 2 phần tử: {0,1}, {0,3}, {0,4}, {0,7}, {1,3}, {1,4}, {1,7}, {3,4},{3,7}

Trang 30

trước tiên phải tìm ra nó đã Chủ đề về tích hợp các host di động lại thành một mạng là tương đối mới, tuy vậy trong phần này chúng ta sẽ phác thảo ra một

số vấn đề phát sinh và chỉ ra các giải pháp khả thi

Hình 1 12 Mô hình mạng có hệ thống không dây

Mô hình mạng mà các nhà thiết kế thường sử dụng được chỉ ra trong hình Hình 1.12 Ở đây chúng ta có một mạng WAN bao gồm vài router và host Mạng WAN được dùng để nối kết các mạng LAN, MAN, các tế bào mạng không dây (Wireless cell)

Các host không bao giờ di chuyển được gọi là cố định, chúng được nối vào mạng bởi các đường cáp đồng hoặc quang Ngược lại, chúng ta sẽ phân biệt hai loại host khác: loại di cư (migratory host) và loại lang thang (roaming host) Loại host di cư về bản chất là host cố định, nhưng chúng thỉnh thoảng lại chuyển từ địa bàn (site) này đến địa bàn mạng kia, và chúng chỉ có thể sử dụng mạng mới khi được nối kết vật lý vào đấy Loại host lang thang thực chất vừa chạy vừa tính toán, nó muốn duy trì các nối kết mạng ngay cả khi đang di chuyển Chúng ta sẽ sử dụng thuật ngữ “host di động” để ám chỉ hai loại di động vừa nói đến, tức là chúng đã đi khỏi nhưng lại muốn duy trì liên lạc về nhà

Tất cả các host được giả sử đều có vị trí mạng nhà (home location) và

vị trí này không bao giờ thay đổi Các host cũng có địa chỉ lâu dài tại nhà

Tế bào không dây

Trang 31

(home address) và địa chỉ này có thể được dùng để xác định vị trí mạng nhà của nó, cũng giống như số điện thoại 84-032-831301 chỉ ra số đó ở Việt Nam (mã 084), thành phố Hải Dương (mã 032) Mục tiêu của việc vạch đường trong hệ thống có các host di động là phải đảm bảo có thể gởi được gói tin đến host di động sử dụng địa chỉ tại nhà của nó và làm cho các gói tin đến được host di động một cách hiệu quả cho dù host này có ở đâu đi nữa

WAN được chia thành các đơn vị nhỏ, ở đây chúng ta gọi là khu vực (area), thường là LAN hoặc tế bào mạng không dây Mỗi khu vực có một hoặc nhiều trợ lý đối ngoại (foreign agent - FA) – đó là những tiến trình làm nhiệm vụ theo dõi các host khách đang viếng thăm khu vực của mình Thêm vào đó, mỗi khu vực còn có một trợ lý đối nội (home agent - HA), làm nhiệm

vụ theo dõi những host có nhà nằm trong khu vực nhưng hiện đang viếng thăm khu vực khác

Khi một host đi vào một khu vực mới (có thể là host này muốn thường trú trong mạng LAN mới hoặc chỉ đi ngang cell này thôi), nó phải đăng ký với trợ lý đối ngoại ở đó Thủ tục đăng ký diễn ra như sau:

Theo chu kỳ, mỗi trợ lý đối ngoại sẽ phát ra những thông điệp thông báo sự hiện diện của nó cùng với địa chỉ Một host mới tới sẽ chờ lắng nghe thông báo này Nếu host cảm thấy nó đã chờ lâu nhưng không nhận được thông báo, host có thể tự phát câu hỏi: Có bất kỳ trợ lý đối ngoại nào ở đây không?

Host di động đăng ký với trợ lý đối ngoại, cung cấp thông tin về địa chỉ

ở nhà, địa chỉ MAC và một số thông tin về an ninh khác

Trợ lý đối ngoại liên hệ với trợ lý đối nội ở nhà của host đó và nói: Một host của ông đang ở đây Thông điệp mà trợ lý đối ngoại gởi cho trợ lý đối nội bên kia chứa địa chỉ mạng của trợ lý đối ngoại đó Thông điệp này còn

Trang 32

chứa thông tin an ninh dùng để thuyết phục trợ lý đối nội bên kia rằng host di động của nó thực sự đang ở đó

Trợ lý đối nội bên kia kiểm tra thông tin an ninh, trong đó có một tem thời gian, để chứng tỏ được rằng tem này vừa được tạo ra trong vòng vài giây

Và nếu kết quả kiểm tra là tốt đẹp, nó sẽ bảo trợ lý đối ngoại bên kia tiến hành làm việc

Khi trợ lý đối ngoại nhận được sự chấp thuận của trợ lý đối nội bên kia,

nó tạo ra một đầu mục trong các bảng quản lý và thông báo cho host di động rằng: Bạn đã đăng ký thành công

Lý tưởng nhất là khi một host di động rời khỏi một cell, nó phải thông báo với trợ lý đối ngoại ở đó để xóa đăng ký Nhưng đa phần người sử dụng thường tắt máy ngay khi sử dụng xong

Khi một gói tin được gởi đến một host di động, đầu tiên gói tin đó được gởi đến mạng LAN nhà của host đó

Hình 1 13 Vạch đường đi trong mạng di động

Bên gửi, ví dụ đang ở Tiền Giang, gửi gói tin đến mạng nhà của host di động ở Cần Thơ Giả sử host di động đang ở Đồng Tháp Trợ lý đối nội ở Cần Thơ tìm ra được địa chỉ tạm thời của host di động, đóng gói gói tin đó và chuyển cho trợ lý đối ngoại của mạng ở Đồng Tháp (bước 2) Đến lần trợ lý

1 Gói tin được gửi đến địa chỉ ở nhà của host di động

4 Các gói tin sau này được chuyển thẳng đến trợ lý đối ngoại

3 Bên gửi được cung cấp địa chỉ của trợ lý đối ngoại

2 Gói tin được chuyển hướng đến trợ lý đối ngoại của mạng khánh

Trang 33

đối ngoại ở Đồng Tháp mở gói gói tin đó và phát cho host di động thông tin dưới dạng khung thông tin ở mức liên kết dữ liệu

Sau đó trợ lý đối ngoại ở Đồng Tháp sẽ bảo bên gởi ở Tiền Giang hãy đóng gói và gởi gói tin trực tiếp đến Đồng Tháp (bước 3) Từ đó trở về sau, nhưng gói tin mà bên gởi muốn gởi cho host di động được gởi trực tiếp đến trợ lý đối ngoại tại Đồng Tháp, rồi được trợ lý đối ngoại phát trực tiếp đến host (bước 4)

1.3 TỔNG KẾT CHƯƠNG

Trong chương I tác giả đã đưa ra các khái niệm cơ bản về lý thuyết đồ thị, cây có gốc, cây nhị phân và một số bài toán dẫn đến cây bao trùm Từ đó làm tiền đề để nghiên cứu sâu hơn về cây bao trùm có trọng số nhỏ nhất

Trang 34

CHƯƠNG II MỘT SỐ THUẬT TOÁN TÌM CÂY BAO TRÙM NGẮN

NHẤT

Giải thuật đầu tiên để tìm cây bao trùm nỏ nhất do nhà khoa học người Séc Otakar Borůvka nghĩ ra vào năm 1926 Mục đích của ông là nghĩ ra cách phủ mạng điện hiệu quả tại Moravia Hiện nay có hai giải thuật thường được

sử dụng, giải thuật của Prim và giải thuật Kruskal Cả ba giải thuật này đều thuộc dạng giải thuật tham lam chạy với thời gian đa thức, và các bài toán ra quyết định liên quan như xác định xem một cạnh cụ thể có thuộc MST hay không hoặc xác định xem tổng trọng số tối thiểu có vượt quá một giá trị nào

đó hay không, là thuộc dạng P Một giải thuật tham lam khác không được phổ biến bằng đó là giải thuật ngược-xóa, là dạng đảo ngược của giải thuật của Kruskal

Nếu trọng số của cạnh là số nguyên, thì các giải thuật đơn định giải được bài toán với O(m + n) phép tính nguyên Một mô hình khác, trong đó chỉ cho phép các phép tính trên trọng số của cạnh là so sánh đôi một, Karger, Klein & Tarjan đã tìm ra một giải thuật ngẫu nhiên hóa có thời gian tuyến tính dựa trên sự phối hợp giải thuật Borůvka và giải thuật ngược-xóa Giải thuật so sánh không ngẫu nhiên nhanh nhất, do Bernard Chazelle nghĩ ra, dựa trên đống mềm (soft heap), một dạng hàng đợi có ưu tiên xấp xỉ Thời gian chạy của nó là O(m α(m,n)), trong đó m là số cạnh, n là số đỉnh và α là hàm đảo cổ điển của hàm số Ackermann Hàm α tăng cực chậm, vì vậy khi áp dụng vào thực tế người ta thường cho nó là một hằng số không lớn hơn 4; vì thế giải thuật của Chazelle đạt rất gần đến thời gian tuyến tính Seth Pettie và Vijaya Ramachandran đã tìm thấy giải thuật tìm cây bao trùm nhỏ nhất dựa trên phép

so sánh đơn định mà có thể chứng minh được là tối ưu Tuy vậy độ phức tạp tính toán của nó hiện vẫn chưa biết

Trang 35

Những nhà nghiên cứu cũng xem xét các giải thuật song song cho bài toán cây bao trùm nhỏ nhất Với một số bộ xử lý tuyến tính, ta có thể giải bài

toán trong thời gian O(log n) Bader & Cong mô tả một giải thuật có thể tính

MST trên 8 bộ xử lý nhanh gấp 5 lần so với giải thuật tuần tự đã tối ưu hóa Thông thường, giải thuật tuần tự được dựa trên giải thuật Borůvka—Prim và đặc biệt, giải thuật của Kruskal không tốt hơn được như vậy khi có thêm bộ

xử lý

2.1 THUẬT TOÁN BORŮVKA

Thuật toán này được đề xuất lần đầu năm 1926 bởi Otakar Borůvka dưới dạng một phương pháp để xây dựng mạng lưới điện cho Moravia Thuật toán này được tìm ra lại nhiều lần sau đó bởi Choquet năm 1938; bởi Florek, Łukasiewicz, Perkal, Steinhaus, và Zubrzycki năm 1951; và một lần nữa bởi Sollin năm 1965 Do Sollin là nhà nghiên cứu khoa học máy tính duy nhất trong danh sách trên sống ở một quốc gia nói tiếng Anh, nên thuật toán này thường được gọi là thuật toán Sollin, đặc biệt là trong tính toán song song [5]

Ban đầu thuật toán khởi tạo cây bao trùm cần tìm là một tập rỗng và dần dần từng bước thêm các cạnh vào tập hợp đó Trong mỗi bước, thuật toán kiểm tra một đỉnh bất kì của đồ thị, thêm vào cây bao trùm cạnh nhỏ nhất kề với đỉnh đó, và hợp hai đỉnh ở hai đầu cạnh mới thêm lại làm một Lặp lại bước trên cho tới khi đồ thị chỉ còn đúng một đỉnh

Định nghĩa một "thành phần" là một đỉnh hay một tập hợp liên thông các đỉnh Sau đây là mã giả của thuật toán Borůvka (không mất tính tổng quát giả sử các cạnh đồ thị G có trọng số khác nhau) [8]:

Đầu vào: Kết nối đồ thị G và các cạnh có trọng số riêng biệt

Thuật toán Borůvka tuần tự [7]

Input: G(V, E)

1: T ← Đồ thị rỗng (empty graph)

Trang 36

2: For mỗi cạnh v trong V do

Output: T, the MST (Minimum Spanning Tree)

Mô hình minh họa thuật toán Borůvka

{A,B,D,F}

{C,E,G}

Trong lần chạy đầu tiên cạnh có trọng số tối thiểu sẽ được thêm vào Một số cạnh được chọn 2 lần (AD, CE)

Ngày đăng: 25/05/2016, 22:45

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w