Tải bản đầy đủ (.doc) (20 trang)

Tài liệu Một số bài toán tối ưu trên đồ thị pptx

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 (193.32 KB, 20 trang )

BÀI TẬP TOÁN RỜI RẠC
---&0&--
CHƯƠNG 4:
MỘT SỐ BÀI
MỘT SỐ BÀI
TOÁN TỐI ƯU
TOÁN TỐI ƯU
TRÊN ĐỒ THỊ
TRÊN ĐỒ THỊ
Giảng viên : Nguyễn Mậu Hân
Sinh viên thực hiện : Nguyễn Thị Diệu Hằng
Lớp : Tin K30D
* Bài 1:
Dùng thuật toán Dijkstra tìm đường đi ngắn nhất từ đỉnh a đến các
đỉnh khác trong đồ thị sau:
Lời giải:
L(a) L(b) L(c) L(d) L(e) L(g) L(h) L(k)
0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ a
- 4 ∞ ∞ ∞ 11 2 ∞ b
- 4 ∞ 7 ∞ 9 - 3 c
- 4 5 7 15 9 - - d
- - 5 7 15 9 - - e
- - - 7 15 8 - - g
- - - - 14 8 - - h
- - - - 13 - - - k
b
a
k
h
c
e


g
d
4
3
2
4
2
1
11
5
7
12
2
7
3
4
5
* Bài 2:
Dùng thuật toán Dijkstra tìm đường đi ngắn nhất từ đỉnh a đến các
đỉnh trong đồ thị sau:
Lời giải:
L(a) L(b) L(c) L(d) L(e) L(f) L(g) L(h) L(i) L(k)
0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ a
- 1 10 6 3 ∞ ∞ ∞ ∞ ∞ b
- - 10 6 3 5 ∞ ∞ ∞ ∞ c
- - 10 5 - 5 ∞ 9 11 ∞ d
- - 9 - - 5 ∞ 8 11 ∞ e
- - 6 - - - 7 7 11 10 f
- - 6 - - - - 7 11 9 g
- - 6 - - - - - 11 9 h

- - - - - - - - 10 9 i
10 - k
a
c
b
g
d
i
f
h
e
k
1
10
6
3
2
4
10
4
1
4
1
3
6
8
5
3
2
5

2
8
5
* Bài 3:
Cho đồ thị có trọng số như hình dưới đây.Hãy tìm đường đi ngắn nhất
từ đỉnh A đến đỉnh N.
Lời giải:
L(A) L(B) L(C) L(D) L(E) L(F) L(G) L(H) L(I) L(J) L(K) L(L) L(M) L(N)
0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
A
- 7 ∞ ∞ ∞ 4 ∞ ∞ ∞ 1 ∞ ∞ ∞ ∞
B
- 7 ∞ ∞ ∞ 3 ∞ ∞ ∞ - 3 ∞ ∞ ∞
C
- 6 ∞ ∞ ∞ - ∞ ∞ ∞ - 3 ∞ ∞ ∞
D
- 6 ∞ ∞ ∞ - 7 ∞ ∞ - - 12 ∞ ∞
E
- - 9 ∞ ∞ - 7 ∞ ∞ - - 12 ∞ ∞
F
- - 9 ∞ ∞ - - ∞ ∞ - - 12 ∞ ∞
G
- - - 17 ∞ - - 15 ∞ - - 11 ∞ ∞
H
- - - 17 ∞ - - 14 ∞ - - - 16 ∞
I
- - - 16 ∞ - - - ∞ - - - 16 ∞
J
- - - - 19 - - - 18 - - - 16
K

- - - - 19 - - - 18 - - - - 23
L
- - - - 19 - - - - - - - - 20
M
- - - - - - - - - - - - - 20
N
* Bài 4:
A
F
J
G H I
K
B
L
C
M
D
N
E
7 3 8 3
2 9 5 7
1 4 2 2 3
4 3 2 2 5 2 2 5
2
3
4
5 3 4 3 2
Tìm đường đi ngắn nhất từ B đến các đỉnh khác của đồ thị có ma trận
trọng số là:
A B C D E F G

A 3 6
B 3 2 4
C 6 2 1 4 2
D 4 1 2 4
E 4 2 2 1
F 2 2 4
G 4 1 4
Lời giải:
Từ ma trận trọng số trên, ta có thể vẽ ra đồ thị tương ứng như sau:
Ta có thể giải bài toán theo 2 cách:
• Cách 1: (Dùng thuật toán Dijkstra)
L(A) L(B) L(C) L(D) L(E) L(F) L(G)
∞ 0 ∞ ∞ ∞ ∞ ∞ A
3 - 2 4 ∞ ∞ ∞ B
3 - - 3 6 4 ∞ C
- - - 3 6 4 ∞ D
- - - - 5 4 6 E
- - - - 5 - 6 F
- - - - - - 6 G
• Cách 2: (Dùng thuật toán Floyd)
Ta có ma trận trọng số của đồ thị:
B
A
a
D F
G
EC
6
3
2

4
1
4
2
2
1
4
4
A B C D E F G
A 3 6
B 3 2 4
C 6 2 1 4 2
D 4 1 2 4
E 4 2 2 1
F 2 2 4
G 4 1 4
W=W
0
Áp dụng thuật toán Floyd ta có:
A B C D E F G
A 3 6
B 3 6 2 4
C 6 2 12 1 4 2
D 4 1 2 4
E 4 2 2 1
F 2 2 4
G 4 1 4
W
1
A B C D E F G

A 6 3 5 7
B 3 6 2 4
C 5 2 4 1 4 2
D 7 4 1 8 2 4
E 4 2 2 1
F 2 2 4
G 4 1 4
W
2
A B C D E F G
A 6 3 5 6 9 7
B 3 4 2 3 6 4
C 5 2 4 1 4 2
D 6 3 1 2 2 3 4
E 9 6 4 2 8 2 1
F 7 4 2 3 2 4 4
G 4 1 4
W
3
A B C D E F G
A 6 3 5 6 8 7 10
B 3 4 2 3 5 4 7
C 5 2 2 1 3 2 5
D 6 3 1 2 2 3 4
E 8 5 3 2 4 2 1
F 7 4 2 3 2 4 4
G 10 7 7 4 1 4 8
W
4
A B C D E F G

A 6 3 5 6 8 7 9
B 3 4 2 3 5 4 6
C 5 2 2 1 3 2 4
D 6 3 1 2 2 3 3
E 8 5 3 2 4 2 1
F 7 4 2 3 2 4 3
G 9 6 4 3 1 3 2
W
5
=W
6
A B C D E F G
A 6 3 5 6 8 7 9
B 3 4 2 3 5 4 6
C 5 2 2 1 3 2 4
D 6 3 1 2 2 3 3
E 8 5 3 2 2 2 1
F 7 4 2 3 2 4 3
G 9 6 4 3 1 3 2
W
7
=W
*
* Bài 5:
Tìm W
*
bằng cách áp dụng thuật toán Floyd vào đồ thị sau:
Lời giải:
Ta có ma trận trọng số của đồ thị trên là: (những ô trống là ∞)
A B C D E F

A 3 1 20
B 8 2
C 6 8
D
E 4 3
F 5 13
W
Áp dụng thuật toán Floyd ta có:
A B C D E F
A 3 1 20
B 8 2
C 6 8
D
E 4 3
F 5 13
W
0
=W
1
=W
A
E
F
B C
D
3
1
2
0
8

6
13
43
5
8
2

×