Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức

Tìm kiếm theo chiều rộng (Breadth-First Search)

Chia đồ thị thành các mức:

S là mức có khoảng cách 0.

Các đỉnh có khoảng cách tới

S bằng 1.

Các đỉnh có khoảng cách tới

S bằng 2

Algorithms 105

A physical model of a graph.

er hand, edge (D, E ) plays no role in any shortest path an

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 1

Trang 1

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 2

Trang 2

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 3

Trang 3

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 4

Trang 4

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 5

Trang 5

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 6

Trang 6

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 7

Trang 7

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 8

Trang 8

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 9

Trang 9

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 52 trang xuanhieu 1000
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức

Bài giảng Toán rời rạc - Chương: Đường đi trên đồ thị (Version 0.2) - Trần Vĩnh Đức
 C E
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
 Ví dụ: Bước 1
Chapter 4 Algorithms 111
 Figure 4.9 A complete run of Dijkstra’s algorithm, with node A as the starting
 point. Also shown are the associated dist values and the final shortest-path tree.
 2
 B D
 4
 4 A: 0 D:
 ∞
 A 13 1 B: 4 E:
 ∞
 3 C: 2
 2
 E
 C 5
 2
 B D
 4
 4
 1 3 A: 0 D: 6
 A 1 B: 3 E: 7
 3
 2 C: 2
 C E
 5 23 / 52
 2
 B D
 4
 4
 A: 0 D: 5
 A 13 1
 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4 A: 0 D: 5
 A 13 1 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 A 1 3
 2
 C E
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
Chapter 4 Algorithms 111
 Figure 4.9 A complete run of Dijkstra’s algorithm, with node A as the starting
 point. Also shown are the associated dist values and the final shortest-path tree.
 2
 B D
 Ví dụ: Bước4 2
 4 A: 0 D:
 ∞
 A 13 1 B: 4 E:
 ∞
 3 C: 2
 2
 E
 C 5
 2
 B D
 4
 4
 1 3 A: 0 D: 6
 A 1 B: 3 E: 7
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4
 A: 0 D: 5
 A 13 1
 B: 3 E: 6
 3
 2 C: 2
 E 24 / 52
 C 5
 2
 B D
 4
 4 A: 0 D: 5
 A 13 1 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 A 1 3
 2
 C E
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
Chapter 4 Algorithms 111
 Figure 4.9 A complete run of Dijkstra’s algorithm, with node A as the starting
 point. Also shown are the associated dist values and the final shortest-path tree.
 2
 B D
 4
 4 A: 0 D:
 ∞
 A 13 1 B: 4 E:
 ∞
 3 C: 2
 2
 E
 C 5
 2
 B D
 4
 Ví dụ: Bước 3 4
 1 3 A: 0 D: 6
 A 1 B: 3 E: 7
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4
 A: 0 D: 5
 A 13 1
 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4 A: 0 D: 5
 A 13 1 B: 3 E: 6
 3
 2 C: 2 25 / 52
 E
 C 5
 2
 B D
 A 1 3
 2
 C E
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
Chapter 4 Algorithms 111
 Figure 4.9 A complete run of Dijkstra’s algorithm, with node A as the starting
 point. Also shown are the associated dist values and the final shortest-path tree.
 2
 B D
 4
 4 A: 0 D:
 ∞
 A 13 1 B: 4 E:
 ∞
 3 C: 2
 2
 E
 C 5
 2
 B D
 4
 4
 1 3 A: 0 D: 6
 A 1 B: 3 E: 7
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 Ví dụ: Bước 4 4
 A: 0 D: 5
 A 13 1
 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4 A: 0 D: 5
 A 13 1 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 A 1 3
 2 26 / 52
 C E
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
Chapter 4 Algorithms 111
Figure 4.9 A complete run of Dijkstra’s algorithm, with node A as the starting
point. Also shown are the associated dist values and the final shortest-path tree.
 2
 B D
 4
 4 A: 0 D:
 ∞
A 13 1 B: 4 E:
 ∞
 3 C: 2
 2
 E
 C 5
 2
 B D
 4
 4
 1 3 A: 0 D: 6
A 1 B: 3 E: 7
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 4
 A: 0 D: 5
A 13 1
 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D
 4
 Ví dụ: Mảng4 prev A: 0 D: 5
A 13 1 B: 3 E: 6
 3
 2 C: 2
 E
 C 5
 2
 B D u prev[u]
 A nil
 BC
 A 1 3 CA
 2 DB
 C E EB
 27 / 52
Nội dung
 Khoảng cách và tìm kiếm theo chiều rộng
 Thuật toán Dijkstra
 Cài đặt hàng đợi ưu tiên
 Đường đi ngắn nhất khi có cạnh độ dài âm
 Đường đi ngắn nhất trong một DAG
Cài đặt hàng đợi ưu tiên dùng mảng
 ▶ Dùng mảng lưu trữ giá trị khóa cho mỗi phần tử (đỉnh của đồ
 thị).
 ▶ Phép toán insert và decreasekey chạy trong O(1).
 ▶ nhưng deletemin chạy trong O(|V|)!
 ▶ Với cách cài đặt này, thuật toán Dijkstra chạy trong O(|V|2)
 29 / 52
Dùng Binary Heap
 ▶ Các phần tử được lưu trong cây nhị phân đầy đủ: Mỗi mức
 trên cây phải được điền đầy từ trái qua phải và phải đầy trước
 khi thêm mức tiếp theo.
 ▶ Ràng buộc: Giá trị khóa của nút trên cây phải nhỏ hơn hoặc
 bằng giá trị khóa của các con.
 ▶ Các phép toán insert, decreasekey, và deletemin chạy
 trong O(log |V|)
 30 / 52
 P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
 das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
 116 4.6 Shortest paths in the presence of negative edges
Ví dụ: ThêmFigure phần 4.11 tử với(a) khóa A binary7 vào heap binary with heap 10 elements. Only the key values are
 shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
 key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
 (a) 3 (b) 3
 10 5 10 5
 11 12 6 8 11 12 6 8
 15 20 13 15 20 13 7
 (c) 3 (d) 3
 31 / 52
 10 5 7 5
 11 7 6 8 11 10 6 8
 15 20 13 12 15 20 13 12
 (e) (f) 12
 7 5 7 5
 11 10 6 8 11 10 6 8
 15 20 13 12 15 20 13
 (g) 5 (h) 5
 7 12 7 6
 11 10 6 8 11 10 12 8
 15 20 13 15 20 13
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
116 4.6 Shortest paths in the presence of negative edges
Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
(a) 3 (b) 3
10 5 10 5
11 12 6 8 11 12 6 8
15 20 13 15 20 13 7
(c) 3 (d) 3
10 5 7 5 32 / 52
11 7 6 8 11 10 6 8
15 20 13 12 15 20 13 12
(e) (f) 12
7 5 7 5
11 10 6 8 11 10 6 8
15 20 13 12 15 20 13
(g) 5 (h) 5
7 12 7 6
11 10 6 8 11 10 12 8
15 20 13 15 20 13
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
 116 4.6 Shortest paths in the presence of negative edges
 Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
 shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
 key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
 (a) 3 (b) 3
 10 5 10 5
 11 12 6 8 11 12 6 8
 15 20 13 15 20 13 7
 (c) 3 (d) 3
 10 5 7 5
 11 7 6 8 11 10 6 8
 15 20 13 12 15 20 13 12
 (e) (f) 12
 7 5 33 / 52 7 5
 11 10 6 8 11 10 6 8
 15 20 13 12 15 20 13
 (g) 5 (h) 5
 7 12 7 6
 11 10 6 8 11 10 12 8
 15 20 13 15 20 13
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
116 4.6 Shortest paths in the presence of negative edges
Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
(a) 3 (b) 3
10 5 10 5
11 12 6 8 11 12 6 8
15 20 13 15 20 13 7
(c) 3 (d) 3
10 5 7 5
11 7 6 8 11 10 6 8
15 20 13 12 15 20 13 12
(e) (f) 12
7 5 7 5 34 / 52
11 10 6 8 11 10 6 8
15 20 13 12 15 20 13
(g) 5 (h) 5
7 12 7 6
11 10 6 8 11 10 12 8
15 20 13 15 20 13
 P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
 das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
 116 4.6 Shortest paths in the presence of negative edges
 Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
 shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
 key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
 (a) 3 (b) 3
 10 5 10 5
 11 12 6 8 11 12 6 8
 15 20 13 15 20 13 7
 (c) 3 (d) 3
 10 5 7 5
 11 7 6 8 11 10 6 8
Ví dụ: Xóa phần tử ở gốc (deletemin)
 15 20 13 12 15 20 13 12
 (e) (f) 12
 7 5 7 5
 11 10 6 8 11 10 6 8
 15 20 13 12 15 20 13
 (g) 5 (h) 5
 35 / 52
 7 12 7 6
 11 10 6 8 11 10 12 8
 15 20 13 15 20 13
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
116 4.6 Shortest paths in the presence of negative edges
Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
(a) 3 (b) 3
10 5 10 5
11 12 6 8 11 12 6 8
15 20 13 15 20 13 7
(c) 3 (d) 3
10 5 7 5
11 7 6 8 11 10 6 8
15 20 13 12 15 20 13 12
(e) (f) 12
7 5 7 5
11 10 6 8 11 10 6 8
15 20 13 12 15 20 13
(g) 5 (h) 5
7 12 7 6 36 / 52
11 10 6 8 11 10 12 8
15 20 13 15 20 13
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
 116 4.6 Shortest paths in the presence of negative edges
 Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
 shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
 key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
 (a) 3 (b) 3
 10 5 10 5
 11 12 6 8 11 12 6 8
 15 20 13 15 20 13 7
 (c) 3 (d) 3
 10 5 7 5
 11 7 6 8 11 10 6 8
 15 20 13 12 15 20 13 12
 (e) (f) 12
 7 5 7 5
 11 10 6 8 11 10 6 8
 15 20 13 12 15 20 13
 (g) 5 (h) 5
 7 12 7 6
 11 10 6 8 11 10 12 8
 15 20 13 15 20 13
 37 / 52
P1: OSO/OVY P2: OSO/OVY QC: OSO/OVY T1: OSO
das23402 Ch04 GTBL020-Dasgupta-v10 August 12, 2006 1:48
116 4.6 Shortest paths in the presence of negative edges
Figure 4.11 (a) A binary heap with 10 elements. Only the key values are
shown. (b)–(d) The intermediate “bubble-up” steps in inserting an element with
key 7. (e)–(g) The “sift-down” steps in a delete-min operation.
(a) 3 (b) 3
10 5 10 5
11 12 6 8 11 12 6 8
15 20 13 15 20 13 7
(c) 3 (d) 3
10 5 7 5
11 7 6 8 11 10 6 8
15 20 13 12 15 20 13 12
(e) (f) 12
7 5 7 5
11 10 6 8 11 10 6 8
15 20 13 12 15 20 13
(g) 5 (h) 5
7 12 7 6
11 10 6 8 11 10 12 8
15 20 13 15 20 13
 38 / 52
Nội dung
 Khoảng cách và tìm kiếm theo chiều rộng
 Thuật toán Dijkstra
 Cài đặt hàng đợi ưu tiên
 Đường đi ngắn nhất khi có cạnh độ dài âm
 Đường đi ngắn nhất trong một DAG
Câu hỏi
Liệu ta đã quyết định được đường đi ngắn nhất từ S đến A bằng
bao nhiêu chưa?
 A
 3
 S ?−2
 4
 B
 40 / 52
Giải pháp
 u
 dist[u]
 s l(u, v)
 dist[v] v
 procedure update((u, v) ∈ E)
 dist(v) = min{dist(v), dist(u) + l(u, v)}
 Ý tưởng: Khoảng cách từ s tới v không thể lớn hơn khoảng cách
 từ s tới u, cộng với l(u, v).
 41 / 52
procedure update((u, v) ∈ E)
dist(v) = min{dist(v), dist(u) + l(u, v)}
Câu hỏi
Giả sử
 dist(S) = dist(A) = dist(B) = ∞.
Ta cần dùng hàm update() mấy lần thì tìm được khoảng cách
ngắn nhất từ S đến A?
 A
 3
 S −2
 4
 B
 42 / 52
Dãy update để tìm đường đi ngắn nhất
 ▶ Lấy một đỉnh T bất kỳ và xét đường đi ngắn nhất từ S tới T:
 S u1 u2 ··· uk T
 ▶ Đường đi này có nhiều nhất |V| − 1 đỉnh. Tại sao?
 Quan sát
 Mọi cách gọi update trên dãy cạnh có chứa dãy con
 (S, u1), (u1, u2),..., (uk, T)
 đều tính đúng khoảng cách từ S tới T. Tại sao?
 43 / 52
Thuật toán Bellman-Ford
 procedure shortest-paths(G, l, s)
 Input: đồ thị có hướng G = (V, E);
 độ dài các cạnh {le : e ∈ E}
 mà không có chu trình âm;
 đỉnh s ∈ V
 Output: Với mỗi đỉnh u đến được từ s,
 dist(u) = khoảng cách từ s tới u.
 for all u ∈ V:
 dist(u) = ∞
 prev(u) = nil (chưa sử dụng)
 dist(s) = 0
 repeat |V| − 1 times:
 for all edges e ∈ E:
 update(e)
 44 / 52
P1: OSO/OVYP1: OSO/OVY P2: OSO/OVY P2: OSO/OVY QC: OSO/OVYQC: OSO/OVY T1: OSO T1: OSO
das23402das23402Ch04Ch04 GTBL020-Dasgupta-v10 GTBL020-Dasgupta-v10 AugustAugust 12, 200612, 2006 1:48 1:48
 118 118 4.64.6 Shortest Shortest paths paths in the in presence the presence of negative of negative edges edges
 FigureFigure 4.13 4.13TheThe Bellman-Ford Bellman-Ford algorithm algorithm for forsingle-source single-source shortest shortest paths paths in in
 generalgeneral graphs. graphs.
 procedureprocedure shortest-paths shortest-paths(G,(lG, s,)l, s)
 Input:Input: Directed Directed graph graphG G(V,(EV),;E );
 = =
 edgeedge lengths lengthsle : e E withwith no no negative negative cycles; cycles;
 { le∈: e } E
 vertexvertexs sV V { ∈ }
 ∈
 Output:ForOutput:For all all vertices vertices∈ u reachableu reachable from froms,s dist(, dist(u)u is) is set set
 toto the the distance distance from froms tos tou. u.
 forfor all allu uV: V:
 ∈
 distdist(u) (u)∈
 = ∞
 prevprev(u) (u)nil= ∞nil
 = =
 distdist(s) (s)0 0
 =
 repeatrepeatV =V1 times:1 times:
 | | −
 forfor all all| e| −eE : E :
 ∈
 update(update(e) ∈e)
 FigureFigure 4.14 4.14TheThe Bellman-Ford Bellman-Ford algorithm algorithm illustrated illustrated on aon sample a sample graph. graph.
 Ví dụ
 10 10
 S S A A
 8 8 1 1 IterationIteration
 NodeNode 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7
 B B S S 0000000000000000
 G G 4 4
 − − A A 1010 10 10 5 5 5 5 5 5 5 5 5 5
 ∞ ∞
 B B 1010 6 6 5 5 5 5 5 5
 1 1 2 2 1 1 ∞∞∞∞∞∞
 C C 1111 7 7 6 6 6 6
 ∞∞∞∞∞∞∞∞
 D D 1414 10 10 9 9
 ∞∞∞∞∞∞∞∞∞∞
 F F 2 2 C C E E 1212 8 8 7 7 7 7 7 7 7 7
 − − ∞∞∞∞
 F F 999999999999
 1 1 3 3 ∞∞∞∞
 − − G G 88888888888888
 ∞ ∞
 E E 1 1D D
 − −
 A noteA note about about implementation: implementation: for formany many graphs, graphs, the the maximum maximum number number of edges of edges
 in anyin any shortest shortest path path is substantially is substantially less less than thanV V1, with1, with the the result result that that fewer fewer
 | | −
 roundsrounds of updates of updates are areneeded. needed. Therefore, Therefore, it makes it| makes| − sense sense to add to add an extraan extra check check to to
the shortest-path algorithm,the shortest-path to make algorithm,it terminate to immediately make it terminate after any immediately round in after any round in
 whichwhich no update no update occurred. occurred. 45 / 52
 4.6.24.6.2 Negative Negative cycles cycles
 If theIf thelength length of edge of edge (E , (BE), inB) Figure in Figure 4.14 4.14 were were changed changed to to4, the4, the graph graph would would
 −
 havehave a negative a negative cycle cycle A AE E B B A. InA. such In such situations, situations, it− doesn’t it doesn’t make make sense sense
 → →→ →→ →
Câu hỏi
Làm thế nào để tìm được đường đi ngắn nhất theo thuật toán
Bellman-Ford?
 46 / 52
Kiểm tra sự tồn tại của chu trình độ dài âm?
 ▶ Bài toán đường đi ngắn nhất từ s đến t sẽ không có ý nghĩa
 nếu từ s đến t có thể đi qua chu trình độ dài âm.
 ▶ Trong thuật toán Bellman-Ford, thay vì dừng sau |V|−1 vòng
 lặp, ta thực hiện thêm một lần nữa.
 ▶ Đồ thị có chu trình độ dài âm nếu và chỉ nếu tồn tại đỉnh v
 mà dist[v] vẫn bị giảm sau vòng cuối.
 47 / 52
Nội dung
 Khoảng cách và tìm kiếm theo chiều rộng
 Thuật toán Dijkstra
 Cài đặt hàng đợi ưu tiên
 Đường đi ngắn nhất khi có cạnh độ dài âm
 Đường đi ngắn nhất trong một DAG
Thuật toán Bellman-Ford cho DAG
 2
 3 −1 −2
 S A B C
 −2
 Trong DAG, cần update những cạnh nào?
 49 / 52
 2
 3 −1 −2
 S A B C
 −2
Tính chất
Với mọi đường đi của DAG, các đỉnh xuất hiện theo thứ tự topo.
 50 / 52
procedure dag-shortest-paths(G, l, s)
Input: DAG G = (V, E);
 độ dài các cạnh {le : e ∈ E}; đỉnh s ∈ V
Output: Với mỗi đỉnh u đến được từ s, dist(u) được
đặt bằng
 khoảng cách từ s tới u.
for all u ∈ V:
 dist(u) = ∞
 prev(u) = nil
dist(s) = 0
Sắp topo các đỉnh của G
for each u ∈ V, theo thứ tự topo:
 for all edges (u, v) ∈ E:
 update(u, v)
 51 / 52
 2
 3 −1 −2
 S A B C
 −2
Bài tập
Hãy liệt kê các lệnh update theo thuật toán Bellman-Ford cho
DAG?
 52 / 52

File đính kèm:

  • pdfbai_giang_toan_roi_rac_chuong_duong_di_tren_do_thi_version_0.pdf