87
Bài giảng thuyết đồ thị (Cập nhật tháng 01/2010)

LTDT- Bai 03 - Do thi dang cay.pdf

Embed Size (px)

DESCRIPTION

Tài liệu LTĐT - FIT - HCMUS

Citation preview

Page 1: LTDT- Bai 03 - Do thi dang cay.pdf

Bài giảng Lý thuyết đồ thị(Cập nhật tháng 01/2010)

Page 2: LTDT- Bai 03 - Do thi dang cay.pdf

Cây (tree) là một đồ thị vô hướng, liên thông và

không có chu trình.

Định nghĩa cây hàm ý rằng, mọi cây đều không chứa

khuyên cũng như cạnh song song (vì khuyên và

cạnh song song sẽ tạo thành chu trình).

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 2

Page 3: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 5

Page 4: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 6

Rừng (forest) là một đồ thị mà mỗi thành phần liên

thông của nó là một cây.

Suy ra, đồ thị không có chu trình là một rừng

ca

e d

b

gh

i j

f

Page 5: LTDT- Bai 03 - Do thi dang cay.pdf

CÁC TÍNH CHẤT CỦA CÂY

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 7

Page 6: LTDT- Bai 03 - Do thi dang cay.pdf

Nếu một cây T gồm n đỉnh với n ≥ 2 thì T chứa ít

nhất 2 đỉnh treo.

Chứng minh:

Gọi v1, v2… vk là đường đi dài nhất trên cây. Khi đó

rõ ràng v1 và vk là các đỉnh treo vì từ v1(hoặc vk) sẽ

không có cạnh nối tới bất kỳ đỉnh nào trong số các

đỉnh v2, v3.. vk do đồ thị không chứa chu trình cũng

như với bất cứ đỉnh nào của đồ thị do đường đi

đang xét là dài nhất.

Do vậy, cây T phải chứa ít nhất 2 đỉnh treo.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 8

Page 7: LTDT- Bai 03 - Do thi dang cay.pdf

Đơn đồ thị T = (V, E) là một đồ thị vô hướng n đỉnh.

Khi đó, các mệnh đều sau đây tương đương:

1. T là một cây

2. T không chứa chu trình và có n – 1 cạnh.

3. T liên thông và có n – 1 cạnh.

4. T liên thông và mỗi cạnh của nó đều là cầu.

5. Hai đỉnh bất kỳ của T được nối với nhau bởi đúng

một đường đi đơn.

6. T không chứa chu trình nhưng khi thêm vào một cạnh

bất kỳ ta sẽ thu được đúng một chu trình.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 9

Page 8: LTDT- Bai 03 - Do thi dang cay.pdf

T là cây T không chứa chu trình và có n – 1 cạnh.

Với n = 1, tính chất đúng vì khi đó cây T có 0 cạnh.

Giả sử n = k đúng, nghĩa là có k – 1 cạnh.

Ta chứng minh cây T có n = k+1 đỉnh sẽ có k cạnh.

Thật vậy, do định lý về sự tồn tại các đỉnh treo, nên tồn

tại ít nhất 2 đỉnh treo trong T. Giả sử 2 đỉnh treo đó là v1

và v2. Loại bỏ đỉnh v1 và cạnh nối với nó. Khi đó, ta có

đồ thị còn lại một cây có k đỉnh, do đó nó có k – 1

cạnh.

Vậy cây ban đầu có k cạnh. [đpcm]

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 10

Page 9: LTDT- Bai 03 - Do thi dang cay.pdf

T không chứa chu trình và có n – 1 cạnh T liên thông (và có n – 1 cạnh).

Giả sử T không liên thông: T có k ≥ 2 thành phần liên thông T1 T2… Tk. Do T không có chu trình nên các thành phần liên thông Ti cũng không có chu trình. Do vậy, Ti là các cây.

Gọi n(Ti) và e(Ti) là số đỉnh và số cạnh của cây Ti.

Do Ti là cây nên ta có: e(Ti) = n(Ti) – 1 (tính chất 2)

Suy ra, e(T) = e(T1) + … + e(Tk)= n(T1) + … + n(Tk) – k= n(T) – k = n – k < n – 1 (mâu thuẫn vì e(T) = n - 1).

Do vậy, T liên thông (đpcm).

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 11

Page 10: LTDT- Bai 03 - Do thi dang cay.pdf

T liên thông và có n – 1 cạnh Mỗi cạnh của T đều

là cầu (và T liên thông)

Khi ta loại bỏ một cạnh bất kỳ khỏi T, lúc đó số cạnh

của T là n – 2, nên với T có n đỉnh, n – 2 cạnh chắc

chắn sẽ không liên thông. Nói cách khác, khi bỏ một

cạnh bất kỳ trong T, số thành phần liên thông tăng

thêm

Do đó, theo định nghĩa cạnh cầu, ta có mọi cạnh

trong T đều là cạnh cầu. [đpcm]

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 12

Page 11: LTDT- Bai 03 - Do thi dang cay.pdf

T liên thông và mỗi cạnh đều là cầu Hai đỉnh bất

kỳ của T được nối với nhau bởi đúng 1 đường đi.

Do T liên thông, nên theo định nghĩa 2 đỉnh bất kỳ

của nó đều có thể nối với nhau bởi một đường đi

đơn.

Nếu có cặp đỉnh nào của T có 2 đường đi đơn khác

nhau nối chúng thì từ đó suy ra đồ thị chứa chu

trình, vì thế các cạnh trên chu trình này không phải

là cầu. Điều này mâu thuẫn vì tính chất 4 cho biết

mọi cạnh đều là cầu.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 13

Page 12: LTDT- Bai 03 - Do thi dang cay.pdf

Hai đỉnh bất kỳ của T được nối với nhau bởi đúng 1

đường đi đơn T không chứa chu trình, nhưng khi

thêm vào một cạnh ta thu được đúng một chu trình.

1. T không chứa chu trình, vì nếu có, ta sẽ tìm được

2 đỉnh có 2 đường đi đơn phân biệt nối với nhau.

2. Nếu ta thêm cạnh (u, v) bất kỳ, khi đó cạnh này và

đường đi đơn từ u đến v hiện có sẽ tạo thành chu

trình. Chu trình này là duy nhất vì nếu thu được

nhiều hơn 1 chu trình thì chứng tỏ rằng trước đó

trong T đã có chu trình.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 14

Page 13: LTDT- Bai 03 - Do thi dang cay.pdf

T không chứa chu trình, nhưng hễ cứ thêm một cạnh

bất kỳ vào T thì ta thu được đúng một chu trình T

là cây (T liên thông và không có chu trình)

Giả sử T không liên thông. Khi đó T có ít nhất 2

thành phần liên thông. Vì vậy, nếu thêm vào T một

cạnh nối 2 thành phần liên thông bất kỳ với nhau ta

sẽ không thêm được chu trình. Mẫu thuẫn với tính

chất 6. Do vậy, T liên thông.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 15

Page 14: LTDT- Bai 03 - Do thi dang cay.pdf

1. Vẽ tất cả các cây không đẳng cấu có:

a) 4 đỉnh

b) 5 đỉnh

c) 6 đỉnh

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 16

Page 15: LTDT- Bai 03 - Do thi dang cay.pdf

2. Có thể tìm được một cây có 8 đỉnh và thỏa các điều

kiện dưới đây hay không? Nếu có, hãy vẽ cây đó

ra, nếu không, hãy giải thích:

a) Mọi đỉnh đều có bậc 1

b) Mọi đỉnh đều có bậc 2

c) Có 6 đỉnh bậc 2 và 2 đỉnh bậc 1

d) Có 1 đỉnh bậc 7 và 7 đỉnh bậc 1

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 17

Page 16: LTDT- Bai 03 - Do thi dang cay.pdf

3. Các phát biểu sau đây đúng hay sai? Giải thích. Lưu ý: Xét trên đồ thị đơn, vô hướng.

a) Nếu đồ thị có n đỉnh và n – 1 cạnh thì G là một cây.

b) Nếu G liên thông thì G không có chu trình.

c) Nếu hủy một cạnh bất kỳ của đồ thị liên thông G cũng làm mất tính liên thông của G thì G không có chu trình.

d) Thêm một cạnh vào một cây sẽ sinh ra đúng 1 chu trình.

e) Nếu G không có chu trình và có 25 cạnh, 26 đỉnh thì G liên thông.

f) Nếu G có 32 cạnh, 28 đỉnh thì G không là cây.

g) Nếu G liên thông, có 10 cạnh, 10 đỉnh thì G có ít nhất một chu trình.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 18

Page 17: LTDT- Bai 03 - Do thi dang cay.pdf

4. Đồ thị G là một rừng gồm T cây và có n đỉnh. Tìm

số cạnh của G.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 19

Page 18: LTDT- Bai 03 - Do thi dang cay.pdf

CÂY KHUNG CỦA ĐỒ THỊ

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 20

Page 19: LTDT- Bai 03 - Do thi dang cay.pdf

Nếu đồ thị bộ phận T của đồ thị vô hướng liên thông

G = (V, E) là một cây thì khi đó cây T được gọi là cây

khung (spanning tree) của đồ thị G.

Cây khung còn có tên gọi khác là cây phủ, cây bao

trùm, cây tối đại.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 21

Page 20: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 22

ca

e d

b

ca

e d

b

ca

e d

b

Page 21: LTDT- Bai 03 - Do thi dang cay.pdf

Một đơn đồ thị là liên thông nếu và chỉ nếu nó có cây

khung.

Chứng minh:

Chiều đảo: Giả sử G có cây khung T. Do T là cây

nên có đường đi trên T giữa 2 đỉnh bất kỳ (tính chất

5). Vì T là đồ thị bộ phận của G (theo định nghĩa cây

khung) nên G có đường đi giữa 2 đỉnh bất kỳ. Do đó,

G liên thông

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 23

Page 22: LTDT- Bai 03 - Do thi dang cay.pdf

Chiều thuận: Giả sử G liên thông. Nếu G không phải

là cây, thì nó phải có một chu trình đơn. Xóa đi một

cạnh bất kỳ trong các chu trình đơn này. Đồ thị nhận

được có số cạnh ít hơn đồ thị cũ, nhưng số đỉnh

bằng nhau và tính liên thông vẫn còn. Nếu đồ thị bộ

phận này không là cây, thì nó vẫn còn chứa chu

trình, ta lại lặp lại quá trình xóa cạnh cho đến khi

không còn chu trình đơn. Điều này có thể vì số cạnh

là hữu hạn. Quá trình kết thúc khi không còn chu

trình đơn trong đồ thị. Cây được tạo ra vẫn còn liên

thông. Cây này, hơn nữa là cây khung vì nó chứa

toàn bộ các đỉnh của G.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 24

Page 23: LTDT- Bai 03 - Do thi dang cay.pdf

Ta có thể sử dụng 2 thuật toán tìm kiếm theo chiều

rộng và theo chiều sâu trong chương Đại cương Lý

thuyết đồ thị để xác định cây khung.

Quá trình duyệt các đỉnh chính là quá trình tìm cây

khung của đồ thị.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 25

Page 24: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 26

ca

e d

b

Page 25: LTDT- Bai 03 - Do thi dang cay.pdf

Định lý Borchart, Sylvester, Cayley:

Số cây khung của đồ thị đầy đủ Kn là nn-2

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 27

Page 26: LTDT- Bai 03 - Do thi dang cay.pdf

1. Giả sử đồ thị G liên thông, có 13 đỉnh và 20 cạnh.

Cây bao trùm của G có bao nhiêu đỉnh? Có bao

nhiêu cạnh?

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 28

Page 27: LTDT- Bai 03 - Do thi dang cay.pdf

2. Đồ thị đầy đủ K5 có bao nhiêu cây khung?

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 29

Page 28: LTDT- Bai 03 - Do thi dang cay.pdf

3. Tìm cây khung của đồ thị sau lần lượt bằng DFS rồi

BFS. Chọn đỉnh đầu tiên làm gốc:

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 30

Page 29: LTDT- Bai 03 - Do thi dang cay.pdf

4. Tìm cây khung của đồ thị sau lần lượt bằng DFS rồi

BFS. Chọn đỉnh đầu tiên làm gốc:

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 31

Page 30: LTDT- Bai 03 - Do thi dang cay.pdf

CÂY KHUNG NHỎ NHẤT & CÂY KHUNG LỚN NHẤT

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 32

Page 31: LTDT- Bai 03 - Do thi dang cay.pdf

Cho G = (V, E) là đồ thị vô hướng, liên thông. Mỗi

cạnh e E của đồ thị được gán một trọng số

(weight) hay chi phí (cost) không âm c(e), gọi là độ

dài (length) của cạnh đó. Giả sử T = (VT, ET) là cây

khung của đồ thị G. Ta gọi độ dài c(T) của cây khung

T là tổng độ dài các cạnh của nó:

Một đồ thị mà các cạnh được gán trọng số như trên,

được gọi là đồ thị có trọng số (weighted graph).

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 33

TEe

ecTc )()(

Page 32: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 34

32

4 5

14

13 6

4

5

7

32

4 5

14

3 6

7

32

4 5

14

1

4

5

c(T) = 20

c(T) = 14

Page 33: LTDT- Bai 03 - Do thi dang cay.pdf

Trong số tất cả các cây khung của đồ thị G, hãy tìm

cây khung với độ dài nhỏ nhất. Cây khung như vậy

được gọi là cây khung nhỏ nhất (minimum spanning

tree) của đồ thị và bài toán đặt ra được gọi là bài

toán cây khung nhỏ nhất.

Tương tự như vậy, cây khung có độ dài lớn nhất

được gọi là cây khung lớn nhất.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 35

Page 34: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 36

32

4 5

14

13 6

4

5

7

32

4 5

14

3 6

7

32

4 5

14

1

4

5

c(T) = 20

c(T) = 14

32

4 5

14

13

4

32

4 5

14

6

5

7

c(T) = 22

c(T) = 12

Cây khung nhỏ nhất

Cây khung lớn nhất

Page 35: LTDT- Bai 03 - Do thi dang cay.pdf

Bài toán xây dựng hệ thống đường cao tốc: Giả

sử ta muốn xây dựng một hệ thống đường cao tốc

nối n thành phố sao cho hành khách có thể đi từ một

thành phố bất kỳ đến các thành phố còn lại. Mặt

khác, trên quan điểm kinh tế đòi hỏi là chi phí về xây

dựng hệ thống đường phải là nhỏ nhất.

Rõ ràng, đây là đồ thị mà đỉnh là các thành phố còn

cạnh ứng với các tuyến đường và bài toán đặt ra là

phải tìm cây khung nhỏ nhất trong đó trọng số là chi

phí thực hiện các tuyến đường cao tốc.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 37

Page 36: LTDT- Bai 03 - Do thi dang cay.pdf

Bài toán nối mạng máy tính: 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à c[i, j]. Hãy tìm cách nối

mạng sao cho tổng chi phí nối mạng là nhỏ nhất.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 38

Page 37: LTDT- Bai 03 - Do thi dang cay.pdf

Prim và Kruskal là hai thuật toán thông dụng để tìm

cây khung nhỏ nhất.

Thuật toán Prim do Robert Prim đưa ra vào năm 1957

Thuật toán Kruscal do Joseph Kruskal phát minh năm

1956.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 39

Kruskal (1928 - ) Prim (1921 - )

Page 38: LTDT- Bai 03 - Do thi dang cay.pdf

Cho G = (V, E) là một đồ thị liên thông có trọng số

gồm n đỉnh.

Bước 1. Chọn tùy ý một đỉnh bất kỳ v V và khởi

tạo: Y = {v} và T = .

Bước 2. Trong số những cạnh e = (v, w), trong đó

v Y và w V\Y, ta chọn cạnh có độ dài nhỏ nhất.

Bước 3. Gán Y = Y {w} và T = T {e}

Bước 4. Nếu T đủ n – 1 phần tử thì dừng, ngược lại

làm tiếp bước 2.

T chính là cây khung nhỏ nhất.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 40

Page 39: LTDT- Bai 03 - Do thi dang cay.pdf

Giả sử chọn đỉnh 1 là đỉnh đầu

Cập nhật

Y = {1}

T =

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 41

32

4 5

14

13 6

4

5

7

Page 40: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (1, 2) vì là cạnh có

trọng nhỏ nhất trong số các cạnh

thỏa yêu cầu ở bước 2: (1, 2), (1,

4)

Cập nhật:

Y = {1, 2}

T = {{1, 2}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 42

32

4 5

14

13 6

4

5

7

Page 41: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (2, 4) vì là cạnh có

trọng nhỏ nhất trong số các cạnh

thỏa yêu cầu ở bước 2: (1, 4), (2,

3), (2, 4)

Cập nhật:

Y = {1, 2, 4}

T = {{1, 2}, {2, 4}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 43

32

4 5

14

13 6

4

5

7

Page 42: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (4, 3) vì là cạnh có

trọng nhỏ nhất trong số các cạnh

thỏa yêu cầu ở bước 2: (2, 3), (4,

3), (4, 5)

Cập nhật:

Y = {1, 2, 4, 3}

T = {{1, 2}, {2, 4}, {4, 3}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 44

32

4 5

14

13 6

4

5

7

Page 43: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (4, 5) vì là cạnh có

trọng nhỏ nhất trong số các cạnh

thỏa yêu cầu ở bước 2: (3, 5), (4,

5)

Cập nhật:

Y = {1, 2, 4, 3, 5}

T = {{1, 2}, {2, 4}, {4, 3}, {4, 5}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 45

32

4 5

14

13 6

4

5

7

Page 44: LTDT- Bai 03 - Do thi dang cay.pdf

Kết thúc thuật toán vì |T| = 4.

Cây khung nhỏ nhất tìm được có

trọng bằng 12.

Y = {1, 2, 3, 4, 5}

T = {{1, 2}, {2, 4}, {3, 4}, {4, 5}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 46

32

4 5

14

13 6

4

5

7

Page 45: LTDT- Bai 03 - Do thi dang cay.pdf

Giả sử các cạnh lần lượt đã chọn theo thuật toán Prim là e1, e2… en-1. Gọi cây chọn được đó là cây S.

Gọi T là cây khung nhỏ nhất của G chứa cây Sk gồm các cạnh e1, e2… ek. Trong đó k là số nguyên lớn nhất sao cho tồn tại cây khung nhỏ nhất chứa k cạnh đầu tiên được chọn bằng thuật toán Prim.

Giả sử S T, với k < n – 1. Do đó T chứa e1, e2… ek nhưng không chứa ek+1. Xét đồ thị tạo bởi T ek+1. Đồ thị này liên thông và có n cạnh, nên tồn tại duy

nhất một chu trình đơn. Chu trình này phải chứa cạnh ek+1 và hơn nữa, trong chu trình này phải không chứa một cạnh trong Sk+1 vì Sk+1 là cây. Bằng cách đó có thể tìm được cạnh e không thuộc Sk+1 và có đầu mút là một trong các cạnh e1, e2… ek.

Xóa e khỏi T và thêm vào cạnh ek+1 chúng ta nhận được cây T’ có n-1 cạnh và liên thông. T’ chứa các cạnh e1, e2… ek+1.

Ta thấy ek+1 và e cùng được chọn ở bước lặp thứ k này, nên theo thuật toán Prim c(ek+1) ≤ c(e). Suy ra T’ cũng là cây khung nhỏ nhất vì tổng trọng số các cạnh của nó không vượt qua tổng trọng số các cạnh của T. Điều này mâu thuẫn với cách chọn k như là số nguyên lớn nhất sao cho cây khung nhỏ nhất chứa e1, e2… ek tồn tại.

Vì thế k = n – 1 và S = T. [đpcm]

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 47

Page 46: LTDT- Bai 03 - Do thi dang cay.pdf

Cho G = (V, E) là một đồ thị liên thông có trọng số

gồm n đỉnh.

Bước 1. Sắp xếp các cạnh theo thứ tự độ dài tăng

dần và khởi tạo: T = .

Bước 2. Lần lượt lấy từng cạnh e trong danh sách

đã sắp xếp. Nếu T {e} không tạo thành chu trình

thì gán T = T {e}

Bước 3. Nếu T đủ n – 1 phần tử thì dừng, ngược lại

làm tiếp bước 2.

T chính là cây khung nhỏ nhất.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 48

Page 47: LTDT- Bai 03 - Do thi dang cay.pdf

Sắp xếp các cạnh theo thứ tự

tăng dần:

(3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

T =

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 49

32

4 5

14

13 6

5

3

7

Page 48: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (3, 4) – là cạnh có

trọng nhỏ nhất.

T = {{3, 4}}

Danh sách các cạnh tăng dần:

(3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 50

32

4 5

14

13 6

5

3

7

Page 49: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (1, 4) – là cạnh tiếp

theo trong danh sách.

T = {{3, 4}, {1, 4}}

Danh sách các cạnh tăng dần:

(3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 51

32

4 5

14

13 6

5

3

7

Page 50: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (2, 4) – là cạnh tiếp

theo trong danh sách.

T = {{3, 4}, {1, 4}, {2, 4}}

Danh sách các cạnh tăng dần:

(3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 52

32

4 5

14

13 6

5

3

7

Page 51: LTDT- Bai 03 - Do thi dang cay.pdf

KHÔNG chọn cạnh (1, 2) – là cạnh tiếp theo trong danh sách vì khi chọn sẽ tạo thành chu trình.

T = {{3, 4}, {1, 4}, {2, 4}}

Danh sách các cạnh tăng dần: (3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4 không chọn!

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 53

32

4 5

14

13 6

5

3

7

Page 52: LTDT- Bai 03 - Do thi dang cay.pdf

Chọn cạnh (4, 5) – là cạnh tiếp

theo trong danh sách.

T = {{3, 4}, {1, 4}, {2, 4}, {4, 5}}

Danh sách các cạnh tăng dần:

(3, 4) = 1

(1, 4) = 3

(2, 4) = 3

(1, 2) = 4

(4, 5) = 5

(3, 5) = 6

(2, 3) = 7

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 54

32

4 5

14

13 6

5

3

7

Page 53: LTDT- Bai 03 - Do thi dang cay.pdf

Do |T| = 4, kết thúc thuật toán.

Cây khung tìm được là:

T = {{1, 4}, {2, 4}, {3, 4}, {4, 5}}

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 55

32

4 5

14

13 6

5

3

7

Page 54: LTDT- Bai 03 - Do thi dang cay.pdf

Rõ ràng đồ thị thu được theo thuật toán Kruskal có n – 1 cạnh và không có chu trình. Do vậy, nó là cây khung của đồ thị G.

Biến đổi cây: Giả sử tồn tại cây khung S của đồ thị G mà c(S) < c(T). Ký hiệu ek là cạnh đầu tiên trong danh sách cạnh T không thuộc S.

Khi đó đồ thị con của G sinh bởi cây S được bổ sung cạnh ek sẽ chứa một chu trình C duy nhất đi qua ek.

Do chu trình C phải chứa cạnh e thuộc S nhưng không thuộc T nên đồ thị con thu được từ S bằng cách thay cạnh e của nó bởi ek(ký hiệu là đồ thị S’) sẽ là cây khung.

Theo cách xây dựng T, ta có c(ek) ≤ c(e). Suy ra c(S’) ≤ c(S), đồng thời số cạnh chung của s’ và T đã tăng thêm 1 so với số cạnh chung của S và T.

Lặp lại quá trình biến đổi cây từng bước một ta có thể biến đổi S thành T và trong mỗi bước tổng độ dài không tăng, tức là c(T) ≤ c(S).

Mâu thuẫn thu được chứng tỏ T là cây khung nhỏ nhất. [đpcm]

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 56

Page 55: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 57

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 56: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 58

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 57: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 59

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 58: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 60

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 59: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 61

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 60: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 62

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 61: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 63

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 62: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 64

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 63: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 65

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 64: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 66

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 65: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 67

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 66: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 68

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 67: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 69

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

c(T) = 29

Page 68: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 70

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 69: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 71

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 70: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 72

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 71: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 73

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 72: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 74

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 73: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 75

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 74: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 76

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 75: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 77

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 76: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 78

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 77: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 79

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 78: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 80

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 79: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 81

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 80: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 82

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

c(T) = 29

Page 81: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 83

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 82: LTDT- Bai 03 - Do thi dang cay.pdf

Ta có thể tìm cây khung lớn nhất bằng cách áp dụng

một trong hai cách làm sau:

Đổi dấu trọng số các cạnh của đồ thị từ dương thành

âm sau đó tìm cây khung nhỏ nhất.

Đổi dấu so sánh, dấu bé (<) thành dấu lớn (>), trong

các biểu thức so sánh của các thuật toán tìm cây

khung.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 84

Page 83: LTDT- Bai 03 - Do thi dang cay.pdf

1. Dưới đây là một số giải thuật tìm cây khung của đồ

thị liên thông G cho trước. Hãy cho biết các giải

thuật này có đúng không?

a) Bắt đầu với G. Nếu G có chu trình, hủy một cạnh

thuộc chu trình này khỏi G. Lặp lại thủ tục này đến

khi đồ thị nhận được không còn chu trình.

b) Bắt đầu bằng một cạnh, thêm dần mỗi lần một cạnh

mới cho đến khi đồ thị nhận được có n-1 cạnh.

c) Bắt đầu bằng một cạnh, thêm dần mỗi lần một cạnh

mới với điều kiện không tạo ra chu trình cho đến khi

không thể thêm được cạnh mới nào nữa.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 85

Page 84: LTDT- Bai 03 - Do thi dang cay.pdf

2. Sử dụng thuật toán Prim tìm cây khung nhỏ nhất

cho các đồ thị có trọng số sau:

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 86

ba

d

e

c

2

3

3

8

5

3

7

4

ba

g

f

e

2

3

3

8

5

3

7

4

bb

6

1 8

4

Page 85: LTDT- Bai 03 - Do thi dang cay.pdf

3. Sử dụng thuật toán Kruskal tìm cây khung nhỏ

nhất cho các đồ thị sau:

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 87

cba

fed

ihg

2 3

1

3 8

5

2 5

3

1

7 46

3 14

cb da

gf he

kj li

2 3 1

3 8 5

2 5 6

3

1

7 4 6

3 1 4

Page 86: LTDT- Bai 03 - Do thi dang cay.pdf

4. Áp dụng giải thuật Prim và Kruskal tìm cây khung

LỚN NHẤT cho đồ thị bên dưới. Minh họa kết quả

cụ thể của từng bước thuật toán.

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 88

1 2 3 4 5 6

1 0 33 17 ∞ ∞ ∞

2 33 0 18 20 ∞ ∞

3 17 18 0 16 4 ∞

4 ∞ 20 16 0 9 8

5 ∞ ∞ 4 9 0 14

6 ∞ ∞ ∞ 8 14 0

Page 87: LTDT- Bai 03 - Do thi dang cay.pdf

HCMUS – 2010 Bài giảng Lý thuyết đồ thị – Đặng Nguyễn Đức Tiến 90