You are on page 1of 22

Mô hình mạng lưới

 Bài toán quãng đường ngắn nhất (Shortest-Route


Problem)
 Bài toán Minimal Spanning Tree
 Bài toán dòng vận chuyển lớn nhất (Maximal Flow
Problem)

© 2005 Thomson/South-Western Slide 1

Bài toán quãng đường ngắn nhất

 Bài toán quãng đường ngắn nhất liên quan tới tìm
đường ngắn nhất trong một mạng lưới từ một đỉnh
(node) (hoặc một tập đỉnh) tới một đỉnh (hoặc một
tập đỉnh khác).
 Nếu tất cả các cạnh của mạng có các giá trị không
âm thì thuật toán gắn nhãn có thể được sử dụng để
tìm quãng đường ngắn nhất từ một đỉnh tới tất cả
các đỉnh khác trong mạng lưới.
 Tiêu chí tối thiểu của bài toán quãng đường ngắn
nhất không hạn chế là khoảng cách thậm chí thông
qua thuật ngữ “ngắn nhất” được sử dụng mô tả
trong thủ tục. Các tiêu chí khác bao gồm thời gian
và chi phí. (Thời gian và cả chi phí không nhất thiết
có quan hệ tuyến tính với khoảng cách.)

© 2005 Thomson/South-Western Slide 2

1
Thuật toán quãng đường ngắn nhất

Lưu ý: Ta sử dụng ký hiệu [ ] để chỉ các nhãn đã cố


định và ký hiệu ( ) để chỉ các nhãn dự kiến.
 Bước 1: Gán cho đỉnh 1 nhãn [0,S]. Số thứ nhất chỉ
khoảng cách từ đỉnh 1; số thứ hai chỉ đỉnh ngay
trước. Do đỉnh 1 không có đỉnh nào trước, nó được
gán nhãn S cho đỉnh đầu tiên.

 Bước 2: Tính nhãn tiếp theo (d,n), cho các đỉnh có thể
nối tới trực tiếp tới đỉnh 1. d = khoảng cách trực tiếp
từ đỉnh 1 tới đỉnh đang xét – được gọi là giá trị
khoảng cách. n chỉ đỉnh ngay trước trên tuyến
đường từ đỉnh 1 – được gọi là giá trị của đỉnh trước
đó.

© 2005 Thomson/South-Western Slide 3

Thuật toán quãng đường ngắn nhất

 Bước 3: Xác định nhãn dự kiến với giá trị khoảng


cách nhỏ nhất. Giả sử đó là đỉnh k. Đỉnh k bây giờ
được gán nhãn cố định (sử dụng dấu ngoặc [ , ]). Nếu
tất cả các đỉnh được gán nhãn cố định, CHUYỂN
SANG BƯỚC 5.
 Bước 4: Xem tất cả các đỉnh không có nhãn cố định có
thể đến trực tiếp từ đỉnh k xác định tại Bước 3. Với
mỗi đỉnh, tính lượng t, trong đó
t = (khoảng cách đường đi từ đỉnh k tới đỉnh i)
+ (giá trị khoảng cách tại đỉnh k).

© 2005 Thomson/South-Western Slide 4

2
Thuật toán quãng đường ngắn nhất

 Bước 4: (tiếp theo)


• Nếu một đỉnh chưa có nhãn cố định (non-
permanently), so sánh t với khoảng cách giá trị
khoảng cách hiện tại tại đỉnh dự kiến (tentative)
đang xem xét.
• Nếu t < giá trị khoảng cách tại đỉnh dự kiến,
thay thế nhãn dự kiến bằng (t,k).
• Nếu t > giá trị khoảng cách tại đỉnh dự kiến,
giữ nhãn dự kiến hiện tại.
• Nếu đỉnh chưa có nhãn cố định không có nhãn dự
kiến, tạo một nhãn dự kiến (t,k) cho đỉnh đang
xem xét.
Trong cả hai trưởng hợp, TRỞ LẠI BƯỚC 3.
© 2005 Thomson/South-Western Slide 5

Thuật toán quãng đường ngắn nhất

 Bước 5: Các nhãn cố định xác định khoảng cách


ngắn nhất từ đỉnh 1 tới mỗi đỉnh cũng như đỉnh đi
trước trên quãng đường ngắn nhất. Con đường
ngắn nhất từ một đỉnh có thể tìm được bằng cách
tìm ngược bắt đầu tại một đỉnh cho trước và chuyển
ngược về đỉnh ngay trước. Tiếp tục quá trình với
đỉnh ngay trước sẽ giúp ta tìm ra con đường ngắn
nhất từ đỉnh 1 tới đỉnh đang xem xét.

© 2005 Thomson/South-Western Slide 6

3
Ví dụ: Con đường ngắn nhất

 Tìm con đường ngắn nhất từ đỉnh 1 tới tất cả các


đỉnh còn lại trong mạng lưới:
5
2 5

4 6
3
2
7 3 7
1 3

5 1 2
6
4 6
8

© 2005 Thomson/South-Western Slide 7

Ví dụ: Con đường ngắn nhất

 Vòng lặp 1
• Bước 1: Gán cho Đỉnh 1 nhãn cố định [0,S].
• Bước 2: Do các Đỉnh 2, 3, và 4 nối trực tiếp với
Đỉnh 1, gán nhãn dự kiến (4,1) cho Đỉnh 2; (7,1)
cho Đỉnh 3; và (5,1) cho Đỉnh 4.

© 2005 Thomson/South-Western Slide 8

4
Ví dụ: Con đường ngắn nhất

 Trình bày các nhãn dự kiến

(4,1)
5
2 5

4 6
3 2
7 3 7
[0,S] 1 3 (7,1)

5 1 2
6

(5,1) 4 6
8

© 2005 Thomson/South-Western Slide 9

Ví dụ: Con đường ngắn nhất

 Trình bày các nhãn cố định

[4,1]
5
2 5

4 6
3 2
7 3 7
[0,S] 1 3 (7,1)

1
5 6 2

(5,1) 4 6
8

© 2005 Thomson/South-Western Slide 10

5
Ví dụ: Con đường ngắn nhất

 Vòng lặp 1, Kết quả của Bước 4

[4,1] (9,2)
5
2 5

4 6
3 2
7 3 7
[0,S] 1 3 (7,1)

1
5 6 2

(5,1) 4 6
8

© 2005 Thomson/South-Western Slide 11

Ví dụ: Con đường ngắn nhất

 Vòng lặp 2, Kết quả của Bước 3

[4,1] (9,2)
5
2 5

4 6
3 2
7 3
[0,S] 1 3 (6,4) 7

1
5 6 2

[5,1] 4 6
8

© 2005 Thomson/South-Western Slide 12

6
Ví dụ: Con đường ngắn nhất

 Vòng lặp 2, Kết quả của bước 4

[4,1] (9,2)
5
2 5

4 6
3 2
7 3
[0,S] 1 3 (6,4) 7

1
5 6 2

[5,1] 4 6 (13,4)
8

© 2005 Thomson/South-Western Slide 13

Ví dụ: Con đường ngắn nhất

 Vòng lặp 3
• Bước 3: Đỉnh 3 có khoảng cách nhỏ nhất trong
nhãn dự kiến (6). Nó trở thành nhãn cố định mới.

© 2005 Thomson/South-Western Slide 14

7
Ví dụ: Con đường ngắn nhất

 Vòng lặp 3, Kết quả bước 3

[4,1] (9,2)
5
2 5

4 6
3 2
7 3
[0,S] 1 3 [6,4] 7

1
5 6 2

[5,1] 4 6 (13,4)
8

© 2005 Thomson/South-Western Slide 15

Ví dụ: Con đường ngắn nhất

 Vòng lặp 3, Kết quả của bước 4

[4,1] (8,3)
5
2 5

4 6
3 2
7 3 7
[0,S] 1 3 [6,4]
1
5 6 2

[5,1] 4 6 (12,3)
8

© 2005 Thomson/South-Western Slide 16

8
Ví dụ: Con đường ngắn nhất

 Vòng lặp 4, Kết quả của bước 3

[4,1] [8,3]
5
2 5

4 6
3 2
7 3 7
[0,S] 1 3 [6,4]

1
5 6 2

[5,1] 4 6 (12,3)
8

© 2005 Thomson/South-Western Slide 17

Ví dụ: Con đường ngắn nhất

 Vòng lặp 4
• Bước 4: Với mỗi đỉnh có nhãn dự kiến được nối
với đỉnh 5 bằng chỉ một cung, tính tổng chiều dài
cung cộng với giá trị khoảng cách của đỉnh 5 (là 8).
Đỉnh 6: 3 + 8 = 11 (thay nhãn dự kiến bằng
(11,5) do 11 < 12, khoảng cách hiện tại.)
Đỉnh 7: 6 + 8 = 14 (Gán nhãn dự kiến (14,5)
cho đỉnh 7 do đỉnh này chưa có nhãn).

© 2005 Thomson/South-Western Slide 18

9
Ví dụ: Con đường ngắn nhất

 Vòng lặp 4, Kết quả của bước 4

[4,1] [8,3]
5
2 5
6
4 3 (14,5)
2
7 3 7
[0,S] 1 3 [6,4]

1
5 6 2

[5,1] 4 6 (11,5)
8

© 2005 Thomson/South-Western Slide 19

Ví dụ: Con đường ngắn nhất

 Vòng lặp 5, Kết quả của bước 3

[4,1] [8,3]
5
2 5
6
4 3 (14,5)
2
7 3 7
[0,S] 1 3 [6,4]

1
5 6 2

[5,1] 4 6 [11,5]
8

© 2005 Thomson/South-Western Slide 20

10
Ví dụ: Con đường ngắn nhất

 Vòng lặp 5, Kết quả của bước 4

[4,1] [8,3]
5
2 5
6
4 3 (13,6)
2
7 3 7
[0,S] 1 3 [6,4]

5 1 2
6
[5,1] 4 6 [11,5]
8

© 2005 Thomson/South-Western Slide 21

Ví dụ: Con đường ngắn nhất

 Tổng kết lời giải

Đỉnh Khoảng cách ngắn nhất Con đường ngắn


nhất
2 4 1-2
3 6 1-4-3
4 5 1-4
5 8 1-4-3-5
6 11 1-4-3-5-6
7 13 1-4-3-5-6-7

© 2005 Thomson/South-Western Slide 22

11
Bài toán Minimal Spanning Tree

 Một cây là một tập các cành (cung) nối với nhau và
không hình thành vòng kín.
 Một spanning tree là một cây nối tất cả các đỉnh trong
mạng.
 Bài toán minimal spanning tree tìm kiếm giá trị nhỏ
nhất của tổng chiều dài các cung cần thiết để nối tất cả
các đỉnh của mạng.
 Tiêu chí để tối thiểu hoá trong bài toán minimal
spanning tree không giới hạn bằng khoảng cách thậm
chí bởi khái niệm “gần nhất“ được sử dụng để mô tả
thủ tục. Các tiêu chí khác bao gồm thời gian và chi phí.
(Thời gian và chi phí không cần thiết phải là tuyến tính
so với khoảng cách.)

© 2005 Thomson/South-Western Slide 23

Thuật toán Minimal Spanning Tree

 Bước 1: Bắt đầu tại một đỉnh bất kỳ và nối nó với đỉnh
gần nhất. Hai đỉnh được gọi là được kết nối, và các
đỉnh còn lại là các đỉnh không kết nối.
 Bước 2: Xác định các đỉnh chưa được kết nối gần nhất
với một trong các đỉnh kết nối (nếu gần như nhau
chọn tuỳ ý). Lấy thêm đỉnh vào tập đỉnh kết nối. Lặp
quá trình đến khi tất cả các đỉnh được kết nối.
 Lưu ý: Một bài toán có n đỉnh cần nối sẽ cần n - 1
vòng lặp các bước ở trên.

© 2005 Thomson/South-Western Slide 24

12
Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 25

Ví dụ: Minimal Spanning Tree

 Vòng lặp 1: Chọn tuỳ ý đỉnh 1, ta thấy đỉnh gần nhất


với nó là đỉnh 2 (khoảng cách = 30). Do đó, ta có:
Các đỉnh kết nối: 1,2
Các đỉnh chưa kết nối: 3,4,5,6,7,8,9,10
Cung được chọn: 1-2
 Vòng lặp 2: Đỉnh chưa nối gần nhất với một đỉnh
được nối là đỉnh 5 (khoảng cách = 25 tới đỉnh 2). Đỉnh
5 trở thành đỉnh được nối.
Các đỉnh kết nối: 1,2,5
Các đỉnh chưa kết nối : 3,4,6,7,8,9,10
Các cung được chọn: 1-2, 2-5

© 2005 Thomson/South-Western Slide 26

13
Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 27

Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 28

14
Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 29

Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 30

15
Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 31

Ví dụ: Minimal Spanning Tree

 Tìm Minimal Spanning Tree:

3 60
45 9
20 30
50
1 45
4 6
40 40
35
30
5 15
25 20
7
10
2 35
30
25
50 8

© 2005 Thomson/South-Western Slide 32

16
Ví dụ : Minimal Spanning Tree

 Spanning Tree tối ưu

3 60
45 9
20 30
50
1 45
4 6
40 40
30 35
5 15
25
7 20
10
2 35
30
50 25
8

© 2005 Thomson/South-Western Slide 33

Bài toán Dòng lớn nhất (Maximal Flow)

 Bài toán dòng lớn nhất liên quan tới xác định lượng
lớn nhất có thể chuyển từ một đỉnh (gọi là nguồn –
source) tới một đỉnh khác (gọi là điểm tiêu thụ - sink.
 Trong bài toán dòng lớn nhất, mỗi cung có khả năng
vận chuyển lớn nhất hạn chế dòng đi qua cung.

© 2005 Thomson/South-Western Slide 34

17
Ví dụ: Dòng lớn nhất

 Mô hình mạng
3
2 5
3
4 2 3 2
Source 3 4 Sink
4 3
1 4 7
3 1
3 5 1 5
3 6
6

© 2005 Thomson/South-Western Slide 35

Ví dụ: Dòng lớn nhất

 Một mô hình capacitated transshipment có thể được


sử dụng để phát triển bài toán dòng lớn nhất.
 Ta sẽ thêm một cung nối từ đỉnh 7 tới đỉnh 1 để thể
hiện tổng dòng trong mạng.
 Không có hạn chế dòng trên cung mới thêm 7-1.
 Ta muốn tối đa hoá dòng qua cung 7-1.

© 2005 Thomson/South-Western Slide 36

18
Ví dụ: Dòng lớn nhất

 Mô hình mạng sửa đổi


3
2 5
3
4 2 3 2
Source 3 4 Sink
4 3
1 4 7
3 1
3 5 1 5
3 6
6

© 2005 Thomson/South-Western Slide 37

Bài toán dòng lớn nhất

 Mô hình LP
(như bài toán Capacitated Transshipment)
• Mỗi cung có một biến.
• Mỗi đỉnh có một ràng buộc; Dòng ra phải bằng
dòng vào.
• Có một ràng buộc cho mỗi cung (trừ cung mới
thêm); dung lượng cung không được vượt.
• Mục tiêu là để tối đa hoá dòng chảy qua cung mới
thêm, sink-to-source arc.

© 2005 Thomson/South-Western Slide 38

19
Bài toán dòng lớn nhất

 Mô hình LP
(như bài toán Capacitated Transshipment)

Max xk1 (k là sink node, 1 là source node)


s.t. xij - xji = 0 (bảo toàn dòng chảy)
i j

xij < cij (cij là dung lượng của cung ij)


xij > 0, cho tất cả i và j (không âm)

(xij biểu diễn dòng từ đỉnh i tới đỉnh j)

© 2005 Thomson/South-Western Slide 39

Ví dụ: Dòng tối đa

 Mô hình LP
• 18 biến (cho 17 cung gốc và 1 cung thêm)
• 24 ràng buộc
• 7 ràng buộc bảo toàn dòng chảy tại đỉnh
• 17 ràng buộc dung lượng cung (cho các cung ban
đầu)

© 2005 Thomson/South-Western Slide 40

20
Ví dụ: Dòng tối đa

 Mô hình LP
• Hàm mục tiêu
Max x71
• Các ràng buộc bảo toàn dòng chảy tại đỉnh
x71 - x12 - x13 - x14 = 0 (dòng vào & ra tại đỉnh 1)
x12 + x42 + x52 – x24 - x25 = 0 (đỉnh 2)
x13 + x43 – x34 – x36 = 0 (etc.)
x14 + x24 + x34 + x54 + x64 – x42 - x43 - x45 - x46 - x47 = 0
x25 + x45 – x52 – x54 - x57 = 0
x36 + x46 - x64 - x67 = 0
x47 + x57 + x67 - x71 = 0

© 2005 Thomson/South-Western Slide 41

Ví dụ: Dòng tối đa

 Mô hình LP (tiếp theo)


• Các ràng buộc dung lượng cung
x12 < 4 x13 < 3 x14 < 4
x24 < 2 x25 < 3
x34 < 3 x36 < 6
x42 < 3 x43 < 5 x45 < 3 x46 < 1 x47 < 3
x52 < 5 x54 < 5 x57 < 5
x64 < 5 x67 < 5

© 2005 Thomson/South-Western Slide 42

21
Ví dụ: Dòng tối đa

 Lời giả tối ưu

2
2 5
3 1 2
Source Sink
4 3
1 4 7
1
3 1 5
10 3 6
4

© 2005 Thomson/South-Western Slide 43

22

You might also like