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

Tiểu luận môn học THIẾT KẾ VÀ PHÂN TÍCH THUẬT TOÁN CÂY KHUNG NHỎ NHẤT

15 976 10

Đ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 15
Dung lượng 771 KB

Nội dung

Nội dung trình bày Định nghĩa cây khung  Phát biểu bài toán  Xây dựng bài toán  Thuật toán Kruskal  Thuật toán Prim  Cài đặt chương trình... Định nghĩa cây khung Trong đồ thị liên

Trang 1

CÂY KHUNG NHỎ NHẤT

Trang 2

Nội dung trình bày

Định nghĩa cây khung

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

Xây dựng bài toán

Thuật toán Kruskal

Thuật toán Prim

Cài đặt chương trình

Trang 3

Định nghĩa cây khung

 Trong đồ thị liên thông G, nếu ta loại bỏ cạnh nằm trên chu trình nào đó thì ta sẽ được đồ thị vẫn

là liên thông Nếu cứ loại bỏ các cạnh ở các chu trình khác cho đến khi nào đồ thị không còn chu trình (vẫn liên thông) thì ta thu được một cây nối các đỉnh của G Cây đó gọi là cây khung hay cây bao trùm của đồ thị G

f

i

9

10

4

14

2

4

7 6 11

8

Trang 4

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

Bài toán:

Cần nối mạng một hệ thống gồm n máy tính đánh số từ 1 đến n Biết chi phí nối máy i với máy j là m(i,j) (thông thường chi phí này phụ thuộc vào độ dài cáp nối cần sử dụng) Hãy tìm cách nối mạng sao cho tổng chi phí là nhỏ nhất Bài toán tìm cây khung nhỏ nhất.

Trang 5

Xây dựng bài toán

 Ta có thể mô hình hoá bài toán bằng một đồ thị

liên thông vô hướng G=(V,E) trong đó:

 V là tập các đỉnh ứng với các máy tính

 E là tập các cạnh ứng với các dây nối giữa các máy tính, và mỗi cạnh (u,v) E∈ , trọng số w(u,v)

thể hiện chi phí (độ dài cần thiết) để nối u và v

Vấn đề đặt ra: tìm được một tập cạnh T E ⊆ bao gồm các cạnh không tạo thành chu trình sao cho tổng trọng số w(T)=  (u, v)  T w(u, v) là nhỏ nhất

 Tập T là một cây và được gọi là cây khung nhỏ nhất => Bài toán tìm cây khung nhỏ nhất : Tìm T

Trang 6

Thuật toán Kruskal

 Ý tưởng thuật toán

 Ví dụ minh hoạ

 Thời gian thực hiện thuật toán

 Cài đặt thuật toán

Trang 7

Ý tưởng thuật toán

 G=(V,E) đồ thị liên thông vô hướng

 W là hàm trọng số trên E

 Bắt đầu từ đồ thị rỗng T

 Sắp xếp các cạnh của G theo thứ tự không giảm của trọng số

 Bắt đầu từ cạnh đầu tiên của dãy này, ta cứ thêm dần các cạnh của dãy đã được xếp vào T theo

nguyên tắc cạnh thêm vào không được tạo thành chu trình trong T

 Lặp lại Bước 3 cho đến khi nào số cạnh trong T bằng n1, ta thu được cây khung nhỏ nhất cần tìm

Trang 8

Vấn đề cài đặt thuật toán

Câu hỏi đặt ra: Làm thế nào để kiểm tra một

cạnh thêm vào không tạo thành chu trình?

Giải quyết: Biểu diễn các tập rời nhau bằng rừng

 Ban đầu khởi tạo rừng T gồm n cây, mỗi cây tương

ứng với mỗi đỉnh của đồ thị bằng thủ tục MAKE-SET

 Khi thêm một cạnh (u,v) vào T không tạo thành chu trình thì cạnh đó phải nối hai cây khác nhau của rừng: Kiểm tra FINDSET(u) <> FINDSET(v)?

 Hợp hai cây thành một cây bằng thủ tục UNION(u,v)

Trang 9

Thủ tục MST-KRUSKAL(G,w)

 A 

 for each vertex vV[G]

 do MAKE-SET(v)

 sort the edges of E into nondecreasing order by

weight w

 for each edge(u,v)  E, taken in nondecreasing order by weight

 do if FIND-SET(u) ≠ FIND-SET(v)

 then A  A {(u,v)}

 UNION(u,v)

Trang 10

Ví dụ minh hoạ

b

f

i

9

10

4

14

2

4

11

8

Tìm cây khung nhỏ nhất của đồ thị trên

Trang 11

Thực hiện giải thuật Kruskal

b

f

i

9

10

4

14

2

4

11

8

f

i

9

10

4

14

2

4

11 8

(b)

1 2 2 4 4 6 7 7 8 8 9 10 11 14

Trang 12

Thực hiện giải thuật Kruskal

b

f

i

9

10

4

14

2

4

11

8

f

i

9

10

4

14

2

4

11 8

(d)

b

f

i

9

10

4

14

2

4

11

8

f

i

9

10

4

14

2

4

11 8

(f)

Trang 13

Thực hiện giải thuật Kruskal

b

f

i

9

10

4

14

2

4

7 6

11

8

f

i

9

10

4

14

2

4

7 6

11 8

(h)

b

f

i

9

10

4

14

2

4

7 6

11

8

f

i

9

10

4

14

2

4

11 8

(j)

Trang 14

Thực hiện giải thuật Kruskal

b

f

i

9

10

4

14

2

4

7 6

11

8

f

i

9

10

4

14

2

4

7 6

11 8

(l)

b

f

i

9

10

4

14

2

4

11

8

f

i

9

10

4

14

2

4

11 8

(n)

Trang 15

Thời gian thực hiện thuật toán

Nhận xét:

Thời gian thực hiện của MST-KRUSKAL

Ngày đăng: 11/04/2015, 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