You are on page 1of 40

BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM

TRAINING CUỐI KỲ HỌC KỲ II NĂM HỌC 2022 – 2023

BAN HỌC TẬP CONTACT


Khoa Công nghệ Phần mềm bht.cnpm.uit@gmail.com
Trường Đại học Công nghệ Thông tin fb.com/bhtcnpm
Đại học Quốc gia thành phố Hồ Chí Minh fb.com/groups/bht.cnpm.uit

1
TRAINING

CẤU TRÚC RỜI RẠC


Thời gian: 19:30 thứ 5 ngày 22/6/2022

Địa điểm: Microsoft Teams

Trainers: Bùi Thái Hoàng – KTPM2022.1

Nguyễn Lâm Thanh Triết – KTPM2022.3

2
3. CÂY
1. Khái niệm.
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số
nhỏ nhất trong đồ thị liên thông có trọng số.

3
3. CÂY
1. Khái niệm.
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số
nhỏ nhất trong đồ thị liên thông có trọng số.

4
3. CÂY
1. Khái niệm.
- Cây là một đồ thị vô hướng, liên thông và không có chu
trình sơ cấp.
- Cây không có cạnh bội và khuyên.
- Cây là một đơn đồ thị.
• Ví dụ:

5
3. CÂY
1. Khái niệm.
- Rừng là một đồ thị vô hướng và không có chu trình.
- Rừng có thể có nhiều thành phần liên thông.
- Mỗi thành phần liên thông là một cây.

G
6
3. CÂY
1. Khái niệm.
- Định lí. (điều kiện đủ của cây)
Nếu mọi cặp đỉnh của một đồ thị vô hướng G luôn tồn tại
một đường đi sơ cấp duy nhất thì G là một cây.

7
3. CÂY
1. Khái niệm.
- Định lí Daisy Chain: T là đồ thị có n đỉnh. Các mệnh đề tương
đương:
a) T là một cây.
b) T không có chu trình và có n-1 cạnh.
c) T liên thông, mọi cạnh đều là cầu.
d) Giữa hai đỉnh bất kỳ của T luôn tồn tại một đường đi sơ cấp duy
nhất.
e) T không có chu trình và nếu thêm một cạnh mới nối 2 đỉnh bất
kỳ của T thì sẽ tạo ra một chu trình.

8
3. CÂY
1. Khái niệm.
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số
nhỏ nhất trong đồ thị liên thông có trọng số.

9
3. CÂY

10
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
- Định lý
Một đơn đồ thị là liên thông khi và chỉ khi nó có cây khung.

11
3. CÂY

12
3. CÂY

13
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
Ví dụ:
A 4 B
1 20
G
7 5 6
6 F2 4
1
E C
3 12
D
14
3. CÂY

a b c d e f g Cạnh
0, a*
- 4, a 4, g 6, a 2, g 1, a* ag
4, a 4, g 1, f 2, g* - gf
4, a 3, e 1, f* - fe
4, a 12, d 3, e* - ed
4, a* 6, c - ab
6, c* bc
15
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
Ví dụ: cây khung có trọng số nhỏ nhất là: defgabc = 17
A 4 B
1 20
G
7 5 6
6 2
1F 4
E C
3 12
D 16
3. CÂY

17
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
Ví dụ:
A 4 B
1 20
G
7 5 6
6 F2 4
1
E C
3 12
D
18
3. CÂY
Sắp xếp theo thứ tự tăng dần: ag, fe, gf, ed, ab, gd, bd, bc,
ae, af, cd, gb.
Bước chọn Cạnh Trọng số
1 ag 1
2 fe 1
3 gf 2
4 ed 3
5 ab 4
6 bc 6
19
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
Ví dụ: cây khung có trọng số nhỏ nhất là: defgabc = 17
A 4 B
1 20
G
7 5 6
6 2
1F 4
E C
3 12
D 20
3. CÂY
2. Thuật toán Prim và Kruskal tìm cây khung có trọng số nhỏ
nhất trong đồ thị liên thông có trọng số.
• Prim chọn cạnh có trọng số nhỏ nhất liên thuộc với một
đỉnh đã thuộc cây và không tạo ra chu trình.
• Kruskal chọn cạnh có trọng số nhỏ nhất miễn là không
tạo ra chu trình. (đỉnh không cần thuộc cây).
• Thuật toán Prim hiệu quả hơn đối với các đồ thị dày (số
cạnh nhiều).

21
GIẢI ĐỀ

22
a) Hãy tìm dạng nối rời chính tắc của hàm f .
z z

x 1 1 1 1101 y

x 1 1010 1000 1

1 0010 0000 1

0111 1 1 1 y

t t
b) Hãy tìm các công thức đa thức tối tiểu
của hàm f .
z z
4 1 1

x 1 1 1 y
3 3
4
x 1 1
2 2
5

1 1
2 2
1 1 5
6 6 y
1 1 1

t t
c) Hãy vẽ sơ đồ mạch cho một công thức đa thức tối tiểu của hàm f vừa tìm được.

x y z t

f (x,y,z,t)
Câu 2. Cho ví dụ về đơn đồ thị có 6 đỉnh:
a) Đồ thị đó vừa có chu trình Euler vừa có chu trình Hamilton (chỉ rõ chu trình).
b) Đồ thị đó có chu trình Euler và chu trình Hamilton nhưng hai chu trình này không
trùng nhau (chỉ rõ các chu trình).
c) Đồ thị đó có chu trình Euler (chỉ rõ chu trình) nhưng không có chu trình
Hamilton.
d) Đồ thị đó có chu trình Hamilon (chỉ rõ chu trình) nhưng không có chu trình Euler.
a) Đồ thị đó vừa có chu trình Euler vừa có chu trình Hamilton (chỉ rõ chu trình).

A B C

F E D

Chu trình Euler: ABCDEFA

Chu trình Hamilton: ABCDEFA


b) Đồ thị đó có chu trình Euler và chu trình Hamilton nhưng hai chu trình này không
trùng nhau (chỉ rõ các chu trình).

A B C

F E D

Chu trình Euler: ABCDEFAEBDA

Chu trình Hamilton: ABCDEFA


c) Đồ thị đó có chu trình Euler (chỉ rõ chu trình) nhưng không có chu trình Hamilton.

A B C

F E D

Chu trình Euler: AFEBDCBA


d) Đồ thị đó có chu trình Hamilon (chỉ rõ chu trình) nhưng không có chu trình Euler.

A B C

F E D

Chu trình Hamilton: ABCDEFA


Câu 3. Cho đồ thị G sau: 13
a 9
4 3
h 2 e
7 6 5 8
3 i 4
d b

8 4 5 7
g 4 f
3 5
8 11
c

a) G có chu trình (đường đi) Euler không? Tại sao? Nếu có hãy chỉ ra một chu trình (đường đi)
Euler của G.
b) Hãy chỉ ra một chu trình (đường đi) Hamilton của G (nếu có).
c) Dùng thuật toán Djikstra tìm đường đi ngắn nhất từ đỉnh a đến các đỉnh còn lại của G (trình
bày thuật toán trên cùng một bảng).
d) Hãy tìm cây khung có trọng số lớn nhất T của G (trình bày thuật toán).
a) G có chu trình (đường đi) Euler không? Tại sao? Nếu có hãy chỉ ra một chu trình
(đường đi) Euler của G.

13
a 9
4 3 Đồ thị có đường đi Euler nhưng không có chu trình
h 2 e Euler vì có 2 đỉnh bậc lẻ:
7 6 5 8
i deg(d) = deg(b) = 5.
d 3 4 b

8 4 5 7
g 4 f
3 5 Đường đi Euler: dabcdhaebfcgdiheigfib
8 11
b) Hãy chỉ ra một chu trình (đường đi) Hamilton của G (nếu có).

13
a 9
4 3
h 2 e
7 6 5 8
i Đường đi Hamilton: aeibfcgdh
d 3 4 b
Chu trình Hamilton: aeibfcgdha
8 4 5 7
g 4 f
3 5
8 11
c
c) a b c d e f g h i Cạnh

a - a,9 a,13 a,3 a,4

13
a 9 e - a,9 a,13 - a,4 e,8 ae

4 3 h - a,9 h,11 - - e,8 ah


h 2 e
7 8 i - a,9 h,11 - i,13 i,12 - - ei
6 5
3
i 4
d b b - - b,20 h,11 - i,13 i,12 - - ab

8 4 5 7 d - - d,19 - - i,13 i,12 - - hd

g 4 f g - - g,15 - - i,13 - - - ig
3 5
8 11 f - - g,15 - - - - - - if
c
c - - - - - - - - - gc

TS 9 15 11 3 13 12 4 8
c) Dùng thuật toán Djikstra tìm đường đi ngắn nhất từ đỉnh a
đến các đỉnh còn lại của G (trình bày thuật toán trên cùng một
bảng).
Đường đi ngắn nhất từ a đến:
a 9
b: ab trọng số: 9
c: aeigc trọng số: 15 4 3
h e
d: ahd trọng số: 11
7 5
e: ae trọng số: 3 3 i
d b
f: aeif trọng số: 13
4 5
g: aeig trọng số: 12
g f
h: ah trọng số: 4 3
i: aei trọng số: 8
c
d) Hãy tìm cây khung có trọng số lớn nhất T của G (trình bày thuật toán).
Thuật toán Kruscal

Cạch Trọng số
13
a 9
ad 13
4 3
bc 11 h e
2
ab 9 7 6 5 8
i
d 3 4 b
be 8
dg 8 8 4 5 7
g 4 f
dh 7
3 5
bf 7 8 11
c
hi 6
Tổng trọng số 69
Thuật toán Prim

Đỉnh Cạnh Trọng số


13
a 9
i ih 6
4 3
i,h hd 7 h e
2
i,h,d da 13 7 6 5 8
3 i 4
i,h,d,a ab 9 d b
i,h,d,a,b bc 11 8 4 5 7
i,h,d,a,b,c be 8 g 4 f
3 5
i,h,d,a,b,c,e dg 8
8 11
i,h,d,a,b,c,e,g bf 7 c

i,h,d,a,b,c,e,g,f
Tổng trọng số 69
LINK ĐIỂM DANH
BAN HỌC TẬP CÔNG NGHỆ PHẦN MỀM
TRAINING GIỮA KỲ HỌC KỲ I NĂM HỌC 2022 – 2023

HẾT
CẢM ƠN CÁC BẠN ĐÃ THEO DÕI
CHÚC CÁC BẠN CÓ KẾT QUẢ THI THẬT TỐT!

BAN HỌC TẬP CONTACT


Khoa Công nghệ Phần mềm bht.cnpm.uit@gmail.com
Trường Đại học Công nghệ Thông tin fb.com/bhtcnpm
Đại học Quốc gia thành phố Hồ Chí Minh fb.com/groups/bht.cnpm.uit

40

You might also like