1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phân tích thiết kế thuật toán Các đường đi ngắn nhất từ một đỉnh nguồn

57 553 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 1,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục lục Lý thuyết chung 2 1. Bài toán các đường đi ngắn nhất 2 2. Biểu diễn các đường đi ngắn nhất 3 3. Kỹ thuật rút ngắn 7 24.1. Giải thuật BellmanFord 10 A. Lý thuyết 10 B. Phần bài tập 14 24.2. Đường đi ngắn nhất từ một đỉnh nguồn trong đồ thị có hướng không có chu trình 18 A. Lý thuyết 18 B. Phần bài tập . 21 24.3. Giải thuật Dijkstra . 23 A. Lý thuyết 23 B. Phần bài tập 28 24.4. Vấn đề đường đi ngắn nhất và các ràng buộc khác nhau 36 A. Lý thuyết 36 B. Phần bài tập 39 Solved problems 44 Problem 241: Yens improvement to BellmanFord 44 Problem 242 45 Problem 243. 45 Problem 244 47 Problem 246 48 Problems 5.1, 5.2, 11.1 50 Problem 5.1 50 Problem 5.2 51 Problem 11.1 55

Trang 1

VIỆN ĐÀO TẠO SAU ĐẠI HỌC

-O0O -BÀI TẬP LỚN MÔN PHÂN TÍCH VÀ

THIẾT KẾ THUẬT TOÁN

Đề tài:

CÁC ĐƯỜNG ĐI NGẮN NHẤT TỪ MỘT

ĐỈNH NGUỒN

Trang 2

Hà Nội, 1/2012

Trang 3

Chương 24: Các đường đi ngắn nhất từ một đỉnh nguồn

Trọng số của đường đi ngắn nhất (shortest path weight) từ u đến v

Một đường đi ngắn nhất từ u đến v là bất kỳ đường đi p nào từ u đến v sao cho

w(p) = d(u, v).

Ví dụ về đồ thị có trọng số , có hướng được cho như hình dưới đây :

Trang 4

Bài toán các đường đi ngắn nhất từ một nguồn duy nhất (Single-source

o Nếu tồn tại một chu trình có trọng số âm đến được (reachable) từ s thì trọng

số của đường đi ngắn nhất được định nghĩa?

o Không đường đi nào từ s đến một đỉnh nằm trên chu trình có thể là đường đi

ngắn nhất

o Nếu tồn tại một chu trình có trọng số âm trên một đường đi từ s đến v, ta viết d(s, v) = - ∞

o Trong ví dụ sau, các đỉnh h, i, j không đến được từ s nên có trọng số đường

đi ngắn nhất là ∞ , chứ không là -∞ mặc dù chúng nằm trên một chu trình cótrọng số âm

Giá trị trong mỗi đỉnh là trọng số đường đi ngắn nhất từ đỉnh nguồn s

• Khử mọi chu trình có trọng số 0 (nếu có) khỏi một đường đi sẽ tạo một đường

đi có cùng trọng số

2 Biểu diễn các đường đi ngắn nhất

2.1 Biểu diễn đường đi

Trang 5

o Với mọi đỉnh v, đỉnh cha (predecessor) của v là một đỉnh khác hoặc là

NIL

Duy trì trường p[v], trữ con trỏ đến đỉnh cha của v Sẽ dùng p

để suy ra đường đi ngắn nhất từ s đến v

o Đồ thị các đỉnh cha Gp = (Vp , Ep) (predecessor subgraph)

Vp = {vV : p[v] ≠ NIL} ∪ {s}

Ep = {(p[v], v) E : v Vp − {s}}

G = (V, E ) là một đồ thị có hướng, có trọng số

o G không chứa chu trình trọng số âm đến được từ đỉnh nguồn sV

o Cây các đường đi ngắn nhất với gốc tạis là một đồ thị có hướng G’ =

(V’, E’), với V’ V và E’ E sao cho

V’ là tập các đỉnh đến được (reachable) từ s trong G

G’ là cây có gốc với gốc là s, chứa một đường đi ngắn nhất đến

mọi đỉnh đến được từ s

Với mọi vV’, đường đi từ s đến v trong G’ là một đường đi

ngắn nhất từ s đến v trong G

Ví dụ : Cây các đường đi ngắn nhất có gốc tại đỉnh nguồn s:

Trong (b) và (c) là hai cây các đường đi ngắn nhất có gốc tại đỉnh nguồn s của đồ

thị trong (a)

Trang 6

2.2 Cấu trúc của đường đi ngắn nhất

Lemma 24.1 Đường đi con của một đường đi ngắn nhất cũng là một đường đi ngắn nhất

Dễ dàng chứng minh điều này bằng phương pháp phản chứng:

Giả sử tồn tại một đường đi con ngắn nhất không thuộc đường đi ngắn nhất , khi

đó ta dễ thấy đường đi mới đi qua đường đi con ngắn nhất có trọng số nhỏ hơn

Trang 7

với giả thiết.

Như trên hình vẽ ta thấy nếu p’ij là đường đi con ngắn nhất không thuộc đường đingắn nhất từ đỉnh v1 đến vk thì đường đi từ v1 đến vk đi qua p’ij mới là đường đingắn nhất, trái với giả thiết

Lemma 24.2:

p là đường đi ngắn nhất từ s đến v, và có thể được phân thành

Trọng số của đường đi ngắn nhất từ s đến v là

δ(s, v) = δ(s, u) + w(u, v

Chứng minh

Đường đi con p’ của đường đi ngắn nhất p cũng là đường đi ngắn nhất (Lemma

24.1)

Trang 8

Biến d[v] được gọi là ước lượng đường đi ngắn nhất (shortest path estimate)

• Khởi động ước lượng đường đi ngắn nhất và trường predecessor bằng thủ tục

Trang 9

1 ifd[v] >d[u] + w(u, v)

2 thend[v] ¬ d[u] + w(u, v)

Trang 10

• Kỹ thuật rút ngắn là cách duy nhất được dùng để thay đổi các ước lượng đường

đi ngắn nhất và các đỉnh cha (predecessor)

• Các giải thuật khác nhau ở thứ tự và số lần gọi RELAX lên các cạnh

G được khởi động bởi INITIALIZE-SINGLE-SOURCE(G, s)

Với mọi v V, d[v] d(s, v), bất biến này được duy trì đối với mọi chuỗi các bước rút ngắn lên các cạnh của G

Một khi d[v] đạt đến cận dưới d(s, v) của nó thì nó sẽ không bao giờ thay đỗi

Lemma 24.6: Tính chất không có đường đi

Đỉnh nguồn s

Không có đường đi từ s đến một đỉnh vV

Sau khi G được khởi động bởi INITIALIZE-SINGLE-SOURCE(G, s), ta có

d[v] = d(s, v) =

Đẳng thức này bất biến đối với mọi chuỗi các bước rút ngắn lên các cạnh của G

Lemma 24.7: Tính chất hội tụ

Đỉnh nguồn s

s uv là một đường đi ngắn nhất với các đỉnh nào đó u, vV

G được khởi động bỡi INITIALIZE-SINGLE-SOURCE(G, s), sau đó một chuỗi

các bước rút ngắn được thực thi lên các cạnh của G trong đó có cạnh (u, v)

Nếu d[u] = d(s, u) vào một lúc bất kỳ trước khi gọi RELAX(u, v, w), thì sau khi gọi luôn luôn có d[v] = d(s, v)

Nhận xét: cha của v không nhất thiết phải là u, nghĩa là d[v] đã bằng d(s, v)

Trang 11

Lemma 24.8

Đỉnh nguồn sV

G không chứa chu trình có trọng số âm đến được từ s

Sau khi khởi động G bởi INITIALIZE-SINGLE-SOURCE(G, s), ta có đồ thị

Gp là cây có gốc s [chưa phải là cây các đường đi ngắn nhất]

Mọi chuỗi các bước rút ngắn lên các cạnh của G duy trì tính chất trên thành một

bất biến

Lemma 24.9: Tính chất đồ thị các đỉnh cha

Đỉnh nguồn sV

G không chứa chu trình có trọng số âm đến được từ s

Khởi động G bằng INITIALIZE-SINGLE-SOURCE(G, s) và thực thi chuổi bất

kỳ các bước rút ngắn lên các cạnh của G sao cho d[v] = δ(s, v) với mọi đỉnh vV

Đồ thị các đỉnh cha Gp là một cây các đường đi ngắn nhất có gốc tại s

24.1 Giải thuật Bellman-Ford

Giải thuật BELLMAN-FORD trả về

TRUE, nếu không tồn tại chu trình trọng số âm đến được từ s, cùng với các

đường đi ngắn nhất

FALSE, nếu tồn tại chu trình trọng số âm đến được từ s

Trang 12

24.1.2 Phân tích giải thuật Bellman-Ford

Thời gian chạy:

Khởi tạo: Θ(V ) thời gian

|V| - 1 lượt (dòng 2), mỗi lượt O(E ) thời gian

vòng lặp for dòng 5-7: O(E ) thời gian

Thời gian chạy tổng cộng: O(V.E )

24.1.3 Thực thi giải thuật Bellman-Ford

Đỉnh nguồn là đỉnh z.

Giả sử trong mỗi lượt (dòng 2), thứ tự relax các cạnh là:

(u, v) (u, x) (u, y) (v, u) (x, v) (x, y) (y, v) (y, z) (z, u) (z, x)

Cạnh (u, v) được sơn xám nếu π[v] = u

Trang 13

Lemma 24.12

Đỉnh nguồn s

Trang 14

G không chứa chu trình có trọng số âm đến được từ s

Khi giải thuật BELLMAN-FORD thực thi xong thì d[v] = d(s,v) cho mọi đỉnh v đến được từ s

Chứng minh

Gọi v là một đỉnh đến được từ s Tồn tại một đường đi ngắn nhất p = v0 , , vk〉 từ

v0 = s đến vk = v Vì p là đường đi đơn nên k |V | - 1

Sẽ chứng minh: d[vi ] =δ (s, vi ) sau lượt rút ngắn thứ i, với i = 1, , k, và đẳng thức

được duy trì sau đó

Dùng quy nạp:

Cơ bản: d[v0 ] = 0 = δ(s, v0) (vì v0 = s)

Giả thiết quy nạp: d[vi - 1 ] = δ (s, vi - 1) sau lượt rút ngắn thứ i- 1

Bước quy nạp: trong các cạnh được gọi rút ngắn ở lượt thứ i có cạnh (vi - 1 , vi ),

nên do tính chất hội tụ (Lemma 24.7) ta có

d[v i ] = δ (s, vi ) sau lượt i, và tại mọi thời điểm sau đó.

Vì k |V | - 1 nên số lượt rút ngắn, |V | - 1, là đủ.

Lemma 24.13

Đỉnh nguồn s

Với mọi đỉnh vV, tồn tại đường đi từ s đến v nếu và chỉ nếu BELLMAN-FORD

hoàn tất với d[v] <∞khi nó thực thi trên G

Chứng minh: Tương tự CM Lemma 24.12

Lemma 24.14: Tính đúng đắn của giải thuật Bellman-Ford

Thực thi BELLMAN-FORD lên đồ thị có hướng G = (V, E )

Hàm trọng số w : E→ R

Đỉnh nguồn s

Trang 15

(i) Nếu G không chứa chu trình có trọng số âm đến được từ s, thì

(1) giải thuật trả về TRUE

(2) d[v] = d(s,v) cho mọi đỉnh v V

(3) đồ thị Gp là cây các đường đi ngắn nhất có gốc tại s

(ii) Nếu G chứa một chu trình có trọng số âm đến được từ s, thì giải

thuật trả về FALSE

Chứng minh

(i) Giả sử G không chứa chu trình có trọng số âm đến được từ s

Nếu v đến được từ s thì Lemma 24.12 chứng minh (2)

o Nếu v không đến được từ s thì có (2) từ tính chất không có đường đi (Hệ

luận 24.6)

• Tính chất đồ thị các đỉnh cha (Lemma 24.9) cùng với (2) chứng minh (3)

Khi giải thuật hoàn tất, ta có với mọi cạnh (u, v):

d[v] = d(s,v) d(s,u) + w(u, v) bất đẳng thức tam giác (Lemma 24.3)

= d[u] + w(u, v),

Vậy các test dòng 6 khiến giải thuật trả về TRUE, chứng minh (1)

(ii) Giả sử G chứa chu trình có trọng số âm đến được từ s là

c = (v0 ,…,vk) với v0 = vk

Vậy∑i = 1…k w(v i- 1, vi ) < 0 (*)

Chứng minh bằng phản chứng:

• Giả sử BELLMAN-FORD trả về TRUE (thay vì FALSE), thì (dòng 5-8)

d[v i] d[v i- 1 ] + w(vi- 1, vi ), với mọi i = 1,…, k

Từ trên, lấy tổng,

i = 1…k d[v i] ≤∑i = 1…k d[v i- 1 ] + i = 1…k w(v i- 1 , vi ) #

• Vì

i = 1…k d[v i ] = i = 1…k d[v i- 1 ], và -∞<d[vi ] <∞ (Lemma 24.13), nên cùng với # ta có

0 ≤∑i = 1…k w(v i - 1 , vi ), mâu thuẫn với (*)

Trang 16

3 4 2

7

2 6

5

7 8

3 4

0 9

2 6

5

7

9

8 7

3 4 2

5

7 8

5

7 8

B.Phần bài tập

Bài 24.1-1

Thực thi thuật toán Bellman- ford trên đồ thị

Thứ tự relax các cạnh : (t, x), (t, y), (t, z),(x, t), (y, x), (y, z), (z, x), (z, s), (s, t), (s, y)Khởi tạo :

Ngược lại khi chạy thuật toán BELLMAN-FORD trên đồ thị G, với 1 đỉnh v bất

kỳ nào đó mà có d[v] < ∞ thì tồn tại 1 đường đi từ s đến v Ta chứng minh bằngphản chứng:

Giả sử ko tồn tại 1 đường đi từ s đến v Theo khởi tạo ban đầu của thuật toán ta

có d[v] = ∞.Vì không xác định được đường đi nào từ s đến v nên tồn tại tí nhất 1đỉnh nào đó không tới được từ s Giả sử đỉnh đó là v1 , khi đó ta có d[v1] = ∞, từ đód[v]= ∞, trái với giả thiết

16

Trang 17

0 9

0 9

2

9

0 9

5 for each edge (u, v) E [G ]

6 do ifd[v] >d[u] + w(u, v)

7 then d[v]= -∞

8 return FALSE

Trang 18

đi ngắn nhất từ một đỉnh nguồn đơn trong thời gian Θ(V + E)

Thuật toán tìm đường đi ngắn nhất với điều kiện các đỉnh đã được sắp xếp toponhư sau :

DAG-SHORTEST-PATHS(G, w, s)

1 topologically sort the vertices of G

2 INITIALIZE-SINGLE-SOURCE(G, s)

3 for each vertex u, taken in topologically sorted order

4 do for each vertex v Adj[u]

Trang 20

Dễ dàng đánh giá được thời gian chạy của thuật toán Thuật toán sắp xếp topo ở

dòng 1 thực thi trong khoảng thời gian Θ(V + E) Việc gọi

INITIALIZE-SINGLE-SOURCE(G, s) ở dòng 2 mất Θ(V) thời gian Tại đây có 1 vòng lặp cho 1 đỉnh

trong vòng lặp for Có tổng số |E| lần lặp trong bản thân vòng lặp ở dòng 4-5 Vì mỗi lần lặp trong vòng for mất Θ(1) thời gian, lên tổng thời gian chạy là Θ(V + E)

Trang 21

Nếu một đồ thị có hướng,có trọng số G = (V,E) có một đỉnh nguồn s và không cóchu trình, khi thủ tục DAG-SHORTEST-PATHS thực hiện xong thì ta có d[v] =δ(s, v) với tất cả các đỉnh v thuộc V và các đồ thị con Gπ là cây đường đi ngắn nhất.

Trang 23

2

101 1

Trang 24

• Giải thuật Dijkstra:

o Dùng một priority queue Q với khóa là trị d[ ]

Trang 25

Phân tích giải thuật Dijkstra:

Thời gian chạy phụ thuộc vào hiện thực của priority queue Q:

o Linear array

Mỗi MIN tốn O(V ) thời gian, vậy tất cả các MIN tốn O(V 2 )

EXTRACT- Tất cả các lần gọi RELAX tốn O(E ) thời gian vì mỗi DECREASE-KEY

để hiện thực RELAX tốn O(1) thời gian

Thời gian chạy tổng cộng: O(V 2 + E ) = O(V 2 )

o Binary heap

Tạo heap tốn O(V ) thời gian

Mỗi MIN tốn O(lg V ) thời gian, vậy tất cả các MIN tốn O(V lg V ) thời gian

Trang 26

EXTRACT- Tất cả các lần gọi RELAX tốn O(E lg V ) thời gian, vì mỗi KEY để hiện thực RELAX tốn O(lg V ) thời gian

DECREASE-⇒ Thời gian chạy tổng cộng: O((V + E )lg V )

o Fibonacci heap

Tạo Fib-heap với |V | phần tử tốn O(V ) thời gian

Mỗi EXTRACT-MIN tốn O(lg V ) phí tổn khấu hao, vậy tất cả các EXTRACT-MIN tốn O(V lg V ) thời gian

Tất cả các lần gọi RELAX tốn O(E ) thời gian, vì mỗi DECREASE-KEY

để hiện thực RELAX tốn O(1) phí tổn khấu hao

Thời gian chạy tổng cộng: O(V lg V + E )

Thực thi giải thuật Dijkstra:

- Đỉnh màu đen là đỉnh trong S

- Đỉnh màu xám là đỉnh có khóa nhỏ nhất trong queue Q

(do đó sẽ được đem vào S trong lần lặp tới)

Trang 27

Định lý 24.10:Tính đúng đắn của giải thuật Dijkstra

o Thực thi giải thuật Dijkstra lên đồ thị có hướng G = (V, E )

hàm trọng số w : E→ℜ không âm

đỉnh nguồn s

o Khi giải thuật thực thi xong,

d[u] = d(s, u) cho mọi đỉnh u V

Chứng minh

Trang 28

Sẽ chứng minh: ∀u V, d[u] = d(s, u) khi u được đưa vào tập S và sau đó đẳng

thức luôn được duy trì

Chứng minh bằng phản chứng:

(*) Giả sử u là đỉnh đầu tiên rời hàng đợi Q và vào tập S mà d[u] ≠δ (s,u)

o Phải có một đường đi từ s đến u Vì nếu không thì d[u] = δ (s, u) = ∞ do tínhchất không có đường đi (Hệ luận 25.6), mâu thuẫn!

o Vì trọng số dương nên có đường đi ngắn nhất p từ s đến u, với s S và

uVS Gọi y là đỉnh đầu tiên dọc p kể từ s sao cho yV S Đặt x là

predecessor của y

o Chứng tỏ d[y] = δ (s, y) khi u được đưa vào tập S: theo (*) ta phải có d[x] = δ

(s, x) khi x được đưa vào S Khi đó được rút ngắn lên cạnh (x, y) nên d[y] = d(s, y) do tính chất hội tụ (Lemma 25.7)

o Vì y trước u trên đường đi ngắn nhất từ s đến u và mọi trọng số đều dương

nên δ (s, y) ≤δ (s, u)

o Vậy

o d[y] = δ (s, y)

≤δ (s, u) d[u] do tính chất cận trên (Lemma 25.5)

o Khi u được chọn bởi EXTRACT-MIN thì y còn trong Q nên

d[u] d[y], do đó hai bất đẳng thức trên trở thành các đẳng thức sau:

Trang 29

Vậy d[u] = δ (s, u) khi u được đưa vào S

Do tính chất cận trên (Lemma 25.5) nên đẳng thức trên luôn đúng sau đó

Trang 30

Với đỉnh nguồn là z:

Trang 31

24.6

Trang 32

Figure 24.6

0 d[s] = 0, d[x] = ∞,

d[y] = ∞, d[z] = ∞,d[t] = ∞

π[s] = nil, π[x] =nil, π[y] = nil, π[z]

= nil, π[t] = nil

{}

1 d[s] = 0, d[x] = ∞,

d[y] = 5, d[z] = ∞,d[t] = 10

π[s] = nil, π[x] =nil, π[y] = s, π[z] =nil, π[t] = s

{s}

2 d[s] = 0, d[x] = 14,

d[y] = 5, d[z] = 7,d[t] = 8

π[s] = nil, π[x] = y,π[y] = s, π[z] = y,π[t] = y

{s, y}

3 d[s] = 0, d[x] = 13,

d[y] = 5, d[z] = 7,d[t] = 8

π[s] = nil, π[x] = z,π[y] = s, π[z] = y,π[t] = y

{s, y, z}

4 d[s] = 0, d[x] =9,

d[y] = 5, d[z] = 7,d[t] = 8

π[s] = nil, π[x] = t,π[y] = s, π[z] = y,π[t] = y

{s, y, z, t}

5 d[s] = 0, d[x] =9,

d[y] = 5, d[z] = 7,d[t] = 8

π[s] = nil, π[x] = t,π[y] = s, π[z] = y,π[t] = y

{s, y, z, t, x}

Bài 24.3-2

Ví dụ về đồ thị có hướng với cạnh trọng số âm làm cho thuật toán Dijkstra bị sai:

Trang 33

3 Tuy nhiên, đường đi ngắn nhất từ s đến t phải là s đến y sau đó đến t = 0 + 4 – 3

= 1

Thuật toán Dijkstra chỉ đúng khi các cạnh là dương vì mỗi vòng lặp chỉ lấy ra phần

tử nhỏ nhất trong queue tại thời điểm đó và duyệt nó nên khi gặp cạnh có trọng số

âm giá trị giá trị tại đỉnh đã duyệt có thể bị giảm hơn nữa nên thuật toán có thể bịsai trong trường hợp cạnh có trọng số âm

Bài 24.3-4

Để tìm đường đi tin cậy nhất giữa s và t, ta chạy giải thuật Dijkstra với trọng sốcạnh w(u,v) = -lg r (u,v) để tìm đường đi ngắn nhất từ s trong thời gian O(E+V

Trang 34

lgV) Đường đi tin cậy nhất là đường đi ngắn nhất từ s đến t và độ tin cậy của đoạnđường tích trọng số của độ tin cậy của các cạnh trên đường đi đó.

Bởi vì các xác suất là độc lập, xác suất tin cậy của một đường đi bằng tích xác xuấttin cậy của các cạnh của nó.Chúng ta muốn tìm đường đi từ s đến t để tích r(u,v) làmax Điều này tương đương với việc cực đại hóa:

Việc này tương đương với tối thiểu hóa

(Chú ý: r(u,v) có thể bằng 0 và lg0 không xác định Vì thế trong thuật toán này tađịnh nghĩa lg0 = - ∞)

Vì thế nếu ta gán w(u,v) = - lgr(u,v), ta có bài toán đường đi ngắn nhất

Vì lg1 = 0, lgx < 0 với mọi 0 < x < 1, và ta định nghĩa lg0 = - ∞, tất cả các cạnh làkhông âm và ta có thể sử dụng thuật toán Dijkstra để tìm đường đi ngắn nhất từ strong thời gian O(E + VlgV)

Bài 24.3-6

Quan sát rằng nếu đánh giá đường đi ngắn nhất là khác vô cùng thì nó là (|V| -1)W

Để có d[v] < vô cùng, ta phải biến thiên cạnh (u,v) với d[u] < vô cùng Theo quynạp, ta có thể chỉ ra là nếu biến thiên (u,v) thì d[v] chính là số cạnh của đoạnđường từ s đến v lần trọng số cạnh lớn nhất vì mỗi đoạn đường không có chu kỳ

có ít nhất |V| -1 cạnh và trọng số cạnh lớn nhất là W, nên ta thấy rằng d[v] <= (|V|-1)W chú ý là d[v] phải là số nguyên trừ khi nó là vô cùng

Quan sát trong giải thuật dijkstra, giá trị trả về của lần gọi hàm Extract_min là tăngmột cách đơn điệu Vì sau khởi tạo |V| việc chèn, chúng ta không làm j nữa cáchduy nhất mà giá trị khóa có thể thay đổi là bởi hoạt động Decrease-key (giảmkhóa) Vì trọng số cạnh là không âm, khi ta biến thiên cạnh (u,v) chúng ta có d[u]

< d[v] vì u là vector nhỏ nhất mà ta có thể lấy, ta biết rằng khi lấy bất kỳ vectornào khác thì giá trị khóa của vector đó đều ít nhất là d[u]

Khi các khóa được xác định là số nguyên thuộc khoảng 0-k và giá trị khóa lấy đc làtăng một cách đơn điẹu ta có thể thực thi hàng đợi giá trị nhỏ nhất để bất kỳ chuỗi

Ngày đăng: 11/06/2016, 16:06

HÌNH ẢNH LIÊN QUAN

Hình minh họa : - Phân tích thiết kế thuật toán  Các đường đi ngắn nhất từ một đỉnh nguồn
Hình minh họa : (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w