Tải bản đầy đủ (.pdf) (7 trang)

Bài tập chương 11: Luồng Flow Discrete Structures for Computer Science (CO1007)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (223.74 KB, 7 trang )

Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

Bài tập chương 11
Dòng chảy

1

Dẫn nhập

Trong bài tập dưới đây, chúng ta sẽ làm quen với thuật giải Ford-Fulkerson và các ứng dụng thực tiễn
của nó. Trước khi làm bài tập bên dưới, sinh viên cần ôn lại lý thuyết về đồ thị dòng chảy, và các
thuật giải liên quan được trình bày trong chương 11.

2

Bài tập mẫu

Câu 1.
Hãy tìm dòng chảy tối đa từ s đến t của đồ thị G sau.

(G)

A

4

C
6

8


8

s

t

2

6

8
B

6

D

Lời giải.
• Đặt G(0) = G. Sau đó, ta xây dựng bảng như sau:
k
0

π (k)

(s, A)

(s, B)

(A, C)


(A, D)

(B, D)

(C, t)

(D, C)

(D, t)

f (k)

Theo thuật giải Ford-Fulkerson, ta chọn một đường đi bất kỳ từ s đến t. Tại đây, ta chọn
π (k) = (s − A − C − t). Dòng chảy trong G(0) lúc này là f (k) = min(c(s, A), c(A, C), c(C, t)) =
min(8, 4, 6)=4.
Lúc này, chúng ta điền vào trong bảng:
k
0

π (k)
(s-A-C-t)

(s, A)
4

(s, B)
-

(A, C)
4


(A, D)
-

(B, D)
-

(C, t)
4

(D, C)
-

(D, t)
-

f (k)
4

Do đó, ta cần xây dựng đồ thị G(1) như sau (cần lưu ý những cạnh có trọng số bằng 0 thì không
cần vẽ):

(G(1) ) 4
4

A

C

4

8

s

t

2

6

8
B

Giáo trình Cấu trúc Rời Rạc cho KHMT

4
2

6

D

Trang 1/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

• Dựa vào đồ thị G(1) , tồn tại đường đi từ s đến t, chẳng hạn như (s, A, D, C, t). Dòng chảy trong
G(1) sẽ là f (k) = min(c(s, A), c(A, D), c(D, C), c(C, t)) = min(4, 8, 2, 2)=2. Lúc này, chúng ta

cập nhật vào trong bảng:
k
0
1

π (k)
(s-A-C-t)
(s-A-D-C-t)

(s, A)
4
2

(s, B)
-

(A, C)
4
-

(A, D)
2

(B, D)
-

(C, t)
4
2


(D, C)
2

(D, t)
-

f (k)
4
2

Do đó, ta được đồ thị G(2) như sau:

(G(2) ) 6
2

A

C

4

6
6

s

8
6

B


t

2

2

6

D

• Dựa vào đồ thị G(2) , tồn tại đường đi từ s đến t, chẳng hạn như (s, A, D, t). Dòng chảy trong
G(2) sẽ là f (k) = min(c(s, A), c(A, D), c(D, t)) = min(2, 6, 8)=2. Lúc này, chúng ta điền vào
trong bảng:
k
0
1
2

π (k)
(s-A-C-t)
(s-A-D-C-t)
(s-A-D-t)

(s, A)
4
2
2

(s, B)

-

(A, C)
4
-

(A, D)
2
2

(B, D)
-

(C, t)
4
2
-

(D, C)
2
-

(D, t)
2

f (k)
4
2
2


Tiếp theo, ta cần xây dựng G(3) như sau:

(G(3) ) 8

A

C

4

6
4

s

B

t

2

4

6

6
6

2
D


• Dựa vào đồ thị G(3) , tồn tại đường đi từ s đến t, chẳng hạn như (s, B, D, t). Dòng chảy trong
G(3) sẽ là f (k) = min(c(s, B), c(B, D), c(D, t)) = min(6, 6, 6)=6. Lúc này, chúng ta điền vào
trong bảng:
k
0
1
2
3

π (k)
(s-A-C-t)
(s-A-D-C-t)
(s-A-D-t)
(s-B-D-t)

(s, A)
4
2
2
-

(s, B)
6

(A, C)
4
-

(A, D)

2
2
-

(B, D)
6

(C, t)
4
2
-

(D, C)
2
-

(D, t)
2
6

f (k)
4
2
2
6

Tiếp theo, ta cần xây dựng đồ thị G(4) như sau:
• Tại G(4) , không tồn tại đường đi từ s đến t, nên chúng ta dừng giải thuật ở đây.
Kết quả dòng chảy tối đa và dòng chảy qua từng cung được thể hiện trong bảng dưới đây.


Giáo trình Cấu trúc Rời Rạc cho KHMT

Trang 2/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

(G(4) ) 8

A

C

4

6
4

s

t

2

4
6

8
B


k
0
1
2
3

π (k)
(s-A-C-t)
(s-A-D-C-t)
(s-A-D-t)
(s-B-D-t)
Stop

(s, A)
4
2
2
8

(s, B)
6
6

(A, C)
4
4

D


6
(A, D)
2
2
4

(B, D)
6
6

(C, t)
4
2
6

(D, C)
2
2

(D, t)
2
6
8

f (k)
4
2
2
6
14




3

Bài tập tự giải

Câu 2.
Hãy tìm dòng chảy tối đa từ s đến t của các đồ thị G1 .

(G1 )

4

A

C
6

8

s

8

2

t

6


8
6

B

D

Câu 3.
Hãy tìm dòng chảy tối đa từ s đến t của các đồ thị G2 .

(G2 )

6

A

C
5

7

s

2

4

t


5

9

12
B

5

D

Câu 4.
Hãy vẽ mặt cắt tối thiểu và xác định dòng chảy tối đa từ A đến F của các đồ thị G3 .

Câu 5.
Hãy vẽ mặt cắt tối thiểu và xác định dòng chảy tối đa từ s đến t của các đồ thị G4 .

Giáo trình Cấu trúc Rời Rạc cho KHMT

Trang 3/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính

(G3 )
4

6


B

A

E
2

2

5
4

D
8

F

6
7
C

(G4 )

B

4

C

3


2
3

2

A

2

F

1

5
D

6

7
E

Câu 6.
Hãy tìm dòng chảy tối đa từ s đến t của các đồ thị có hướng G5 sau.
(G5 )

11

A
10

s

C

5

6

E
2

4

2

10
8

B
14

D

7

8

F
3


t
4

6

G

Câu 7.
Hãy mặt cắt tối thiểu và tìm dòng chảy tối đa từ đỉnh A đến đỉnh F của các đồ thị có hướng G6 sau.

Câu 8.
Hãy mặt cắt tối thiểu và tìm dòng chảy tối đa từ đỉnh A đến đỉnh J của các đồ thị có hướng G7 sau.

Câu 9.
Hãy mặt cắt tối thiểu và tìm dòng chảy tối đa từ đỉnh A đến đỉnh F của các đồ thị có hướng G8 sau.

4

Bài tập nâng cao

Câu 10.
Mặt cắt để tính tiết diện dòng chảy một từ đỉnh s đến đỉnh t trong một đồ thị G = (V, E) là mặt cắt
phân chia tập các đỉnh V thành hai tập con riêng biệt sao cho hai đỉnh s và t thuộc về hai tập con
Giáo trình Cấu trúc Rời Rạc cho KHMT

Trang 4/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính


(G6 )

8

B
7

1
5

A

2

(G7 )

6

B

F

3

1

10

G


8

E
5

-4

6

2

3

D
9

C

H

7

E

G

3

2

3
5

A

3

C

3

2

(G8 )

2

I

C

1
6

D
7

2
4


G

E
1

1

5

Giáo trình Cấu trúc Rời Rạc cho KHMT

2

4

8

A

7

F

B

3

4

J


12
4

D

4

H
10

8

15

4

5
9
7

F
3

H

Trang 5/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh

Khoa Khoa Học và Kỹ Thuật Máy Tính

khác nhau.
Vậy số mặt cắt có thể có trong một đồ thị có n đỉnh và m cạnh là bao nhiêu?

Câu 11.
Trong ngày lễ hiến máu tình nguyện, có 170 sinh viên Đai Học Bách Khoa đã đăng ký hiến máu tại
trung tâm hiến máu. Kết quả kiểm nghiệm và nhu cầu thực tế được mô tả trong bảng sau.
Loại máu
Khả năng đáp ứng
Nhu cầu

A
46
39

B
34
38

O
45
42

AB
45
50

Biết rằng:
• bệnh nhân có máu loại A chỉ được nhận máu các loại A hoặc O;

• bệnh nhân có máu loại B chỉ được nhận máu các loại B hoặc O;
• bệnh nhân có máu loại O chỉ được nhận máu loại O;
• bệnh nhân có máu loại AB có thể nhận bất kỳ loại máu nào.
Hãy giúp trung tâm quản lý máu xác định giải pháp tốt nhất để có thể phục vu cho nhiều bệnh
nhân nhất.

Câu 12.
Món dứa tươi đặc biệt được phục vụ ở một nhà hàng ở London:
Để đảm bảo độ tươi, các dứa được mua ở Hawaii và vận chuyển bằng máy bay từ Honolulu đến
Heathrow ở London. Sơ đồ mạng sau đây là các tuyến đường khác nhau mà các dứa có thể vận
chuyển.
45

CHI

105

56
75

HNL

68

88

71
48

SFO


44

LAX

BOS

57

65

NYC

LHR

76

63
ATL

1. Nếu trọng số trong sơ đồ mạng trên diễn đạt khả năng vận chuyển số lượng dứa trong ngày trên
từng chuyến đi, vậy nhà hàng phục vụ được tối đa là bao nhiêu mỗi ngày?
2. Nếu trọng số trong sơ đồ mạng trên diễn đạt chi phí/thùng dứa, và mỗi chuyến đi trong ngày
tối đa chỉ vận chuyển được 15 thùng dứa. Liệu nhà hàng này có thể đáp ứng được 2000 khách
hàng trong một ngày không? Biết rằng với mỗi thùng dứa, nhà hàng có thể phục vụ thức ăn cho
12 khách hàng.
Ghi chú: các mã thông tin trên sơ đồ tương ứng với các mã sân bay của các thành phố tương ứng
được trình bày bên dưới:

Giáo trình Cấu trúc Rời Rạc cho KHMT


Trang 6/7


Trường Đại Học Bách Khoa Tp.Hồ Chí Minh
Khoa Khoa Học và Kỹ Thuật Máy Tính


HNL
CHI
BOS
SFO
NYC
LAX
ATL
LHR

5

Tên thành phố
Honolulu
Chicago
Boston
Sans Francissco
New York
Los Angeles
Atlanta
LondonHeathrow

Tổng kết


Thông qua các bài tập trong phần này, chúng ta đã làm quen với việc áp dụng giải thuật FordFulkerson để giải các bài toán dòng chảy. Và các bài tập này cũng đã giúp chúng ta phần nào hiểu
thêm về ứng dụng thực tiễn của lý thuyết đồ thị (tham khảo chi tiết trong slide chương 11).

Giáo trình Cấu trúc Rời Rạc cho KHMT

Trang 7/7



×