1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấu Trúc Và Giải Thuật

16 458 0

Đ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 16
Dung lượng 412 KB

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

Nội dung

Trước hết sắp xếp các cạnh của đồ thị G theo thứ tự không giảm của trọng số.. Bắt đầu từ ET= ∅ , ở mỗi bước ta sẽ lần lượt duyệt trong danh sách cạnh đã sắp xếp, từ cạnh có độ dài nhỏ đ

Trang 1

Cây khung

tối thiểu

Trang 2

THUẬT TOÁN KRUSKAL

Ý tưởng

 Cho đồ thị có trọng số G = (V, E)

 Thuật toán sẽ xây dựng tập cạnh ET của cây khung nhỏ

nhất T=(V T , E T ) theo từng bước Trước hết sắp xếp các

cạnh của đồ thị G theo thứ tự không giảm của trọng số Bắt đầu từ ET= ∅ , ở mỗi bước ta sẽ lần lượt duyệt trong danh sách cạnh đã sắp xếp, từ cạnh có độ dài nhỏ đến cạnh có độ dài lớn hơn, để tìm ra cạnh mà việc bổ sung

nó vào tập ET không tạo thành chu trình trong tập này

Trang 3

Giải thuật

1 Bắt đầu từ đồ thị rỗng T có n đỉnh.

2 Sắp xếp các cạnh của G theo thứ tự không giảm

của trọng số

3 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

4 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

3/51

THUẬT TOÁN KRUSKAL

Trang 4

THUẬT TOÁN KRUSKAL

Ví dụ:

 Bắt đầu T = ∅

 Sắp xếp không giảm

theo trọng số

(v 3 , v 5 ) 4 , (v 4 , v 6 ) 8 , (v 4 , v 5 ) 9 , (v 5 , v 6 ) 14 ,

(v 3 , v 4 ) 16 , (v 1 , v 3 ) 17 , (v 2 , v 3 ) 18 , (v 2 , v 4 ) 20 , (v 1 ,

v 2 ) 33

Trang 5

THUẬT TOÁN KRUSKAL

N = 6 (đỉnh)  5 cạnh

5/51

v 1

v 2

v 3

v 4

v 5

v 6

(v3, v5) 4 , (v4, v6) 8 , (v4, v5) 9 , (v5, v6) 14 , (v3, v4) 16 , (v1, v3)

17 , (v2, v3) 18 , (v2, v4) 20 , (v1, v2) 33

Tổng trọng số = 4 + 8 + 9 + 17 + 18 = 56

Trang 6

THUẬT TOÁN PRIM

Ý tưởng

 Cho đồ thị có trọng số G = (V, E)

 Bắt đầu, khởi tạo tập VT = {1 đỉnh bất kỳ }

 Sau đó lặp cho đến khi hết các đỉnh của đồ thị (Tức là

VT = V) Mỗi bước lặp, ta chọn cạnh nhỏ nhất (u,v) sao

cho u VT, v V – VT Thêm v vào VT, (u,v) vào ET.

 Kết thúc ta đc cây khung tối thiểu T = (V T , E T )

Trang 7

THUẬT TOÁN PRIM

Ví dụ:

 Chọn đỉnh VT = {v1}

(Sắp xếp không giảm

theo trọng số)

(v3, v5) 4, (v4, v6) 8, (v4, v5) 9, (v5, v6) 14,

(v3, v4) 16, (v 1 , v 3 ) 17, (v2, v3) 18, (v2, v4) 20,

(v 1 , v 2 ) 33

7/51

Trang 8

Ví dụ:

 Chọn (v1, v3)

 VT = {v1, v3}, ET = { (v1, v3) }

 Lặp lại,

VT = {v1, v3, v5},

ET = { (v1, v3), (v3, v5) }

(v 3 , v 5 ) 4, (v4, v6) 8, (v4, v5) 9, (v5, v6) 14,

(v 3 , v 4 ) 16, (v1, v3) 17, (v 2 , v 3 ) 18, (v2, v4) 20,

(v , v ) 33

THUẬT TOÁN PRIM

v 1

v 3

v 5

Trang 9

THUẬT TOÁN PRIM

N = 6 (đỉnh)

9/51

v 1

v 2

v 3

v 4

v 5

v 6

Tổng trọng số = 4 + 8 + 9 + 17 + 18 = 56

Trang 10

THUẬT TOÁN PRIM

Mô tả thông qua bảng các thao tác

TT (u,v) min VT V - VT ET

0 Khởi tạo v1 v2, v3, v4, v5, v6 ∅

1 (v1, v3, 17) v1, v3 v2, v4, v5, v6 (v1, v3)

2 (v3, v5, 4) v1, v3, v5 v2, v4, v6 (v1, v3),

(v3, v5)

Trang 11

THUẬT TOÁN PRIM

Giải thuật

1 VT:={v*}, trong đó v* là đỉnh tuỳ ý của đồ thị G

ET:=∅

2 Với mỗi đỉnh vj∉VT, tìm đỉnh wj∈VT sao cho

m(wj,vj) = min m(xi, vj)=:βj

xi∈VT

và gán cho đỉnh vj nhãn [wj, βj] Nếu không tìm đuợc

wj như vậy (tức là khi vj không kề với bất cứ đỉnh nào trong VT) thì gán cho vj nhãn [0, ∞]

11/51

Trang 12

THUẬT TOÁN PRIM

Giải thuật

3 Chọn đỉnh vj* sao cho

βj* = min βj

vj∉VT

VT := VT ∪ {vj*},

ET := ET ∪ {(wj*, vj*)}

Nếu |VT| = n thì thuật toán dừng và (VT, ET) là cây khung nhỏ nhất

Nếu |VT| < n thì chuyển sang Bước 4

Trang 13

THUẬT TOÁN PRIM

Giải thuật

4 Đối với tất cả các đỉnh vj∉VT mà kề với vj*, ta thay đổi nhãn của chúng như sau:

Nếu βj > m(vj*, vj) thì đặt βj:=m(vj*, vj) và nhãn của

vj là [vj*, βj] Ngược lại, ta giữ nguyên nhãn của vj Sau đó quay lại Bước 3

13/51

Trang 14

THUẬT TOÁN PRIM

Ví dụ

Trang 15

THUẬT TOÁN PRIM

15/51

Trang 16

BÀI T P Ậ

Đồ thị G vô hướng được cho bởi danh sách cạnh như sau:

c,k,4 c,e,7 h,k,5 g,h,8 a,b,4 d,k,8 e,h,5 f,h,9 b,c,8 f,b,6 d,e,5 b,e,6 d,c,5 e,f,5 d,g,5 a,f,6

e,g,7 k,g,6

1 Phát biểu thuật toán Kruskal / Prim

2 Tìm cây khung tối thiểu theo thuật toán Kruskal / Prim

3 Chỉ ra tổng trọng số các cạnh và dãy các cạnh của

Ngày đăng: 19/09/2016, 23:54

HÌNH ẢNH LIÊN QUAN

Đồ thị G vô hướng được cho bởi danh sách cạnh  như sau: - Cấu Trúc Và Giải Thuật
th ị G vô hướng được cho bởi danh sách cạnh như sau: (Trang 16)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w