Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 10
lượt xem 2
download
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 10 có nội dung trình bày về các đường đi ngắn nhất từ một đỉnh nguồn, cạnh có trọng số âm, biểu diễn các đường đi ngắn nhất, cấu trúc của đường đi ngắn nhất, kỹ thuật nới lỏng,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 10
- Single-Source Shortest Paths
- Caùc ñöôøng ñi ngaén nhaát töø moät ñænh nguoàn ª Baøi toaùn caùc ñöôøng ñi ngaén nhaát: moät soá thuaät ngöõ. Cho moät ñoà thò coù troïng soá, coù höôùng G = (V, E), vôùi moät haøm troïng soá w : E – Troïng soá cuûa moät ñöôøng ñi p = v0 , v1,…, vk w(p) = i = 1…k w(vi 1 , vi ) – Troïng soá cuûa ñöôøng ñi ngaén nhaát (shortest path weight) töø u ñeán v p min{w(p) : u v} neáu coù ñöôøng ñi töø u ñeán v d(u, v) = caùc tröôøng hôïp khaùc – Ñöôøng ñi ngaén nhaát töø u ñeán v laø baát kyø ñöôøng ñi p naøo töø u ñeán v sao cho w(p) = d(u, v). t v 6 u 3 2 1 4 2 7 3 5 6 20.11.2004 x y 2
- Caùc ñöôøng ñi ngaén nhaát töø moät ñænh nguoàn (tieáp) ª Baøi toaùn caùc ñöôøng ñi ngaén nhaát töø moät nguoàn duy nhaát (Single- source shortest-paths problem): – Cho ñoà thò G = (V, E) vaø moät ñænh nguoàn s V. – Tìm ñöôøng ñi ngaén nhaát töø s ñeán moïi ñænh v V. 6 s 3 2 1 4 2 7 3 5 6 20.11.2004 Ch. 10: Single-Source Shortest Paths 3
- Caïnh coù troïng soá aâm ª Giaû thieát: Troïng soá cuûa caïnh coù theå aâm – Chu trình coù theå coù troïng soá aâm – Neáu toàn taïi moät chu trình coù troïng soá aâm ñeán ñöôïc (reachable) töø s thì troïng soá cuûa ñöôøng ñi ngaén nhaát khoâng ñöôïc ñònh nghóa: khoâng ñöôøng ñi naøo töø s ñeán moät ñænh naèm treân chu trình coù theå laø ñöôøng ñi ngaén nhaát. 4 3 1 a b h i 3 4 2 s c 6 d g 5 8 0 5 11 8 3 3 2 3 7 e f j 6 soá trong moãi ñænh laø troïng soá ñöôøng ñi ngaén nhaát töø ñænh nguoàn s. 20.11.2004 Ch. 10: Single-Source Shortest Paths 4
- Caïnh coù troïng soá aâm (tieáp) – Neáu toàn taïi moät chu trình coù troïng soá aâm treân moät ñöôøng ñi töø s ñeán v, ta ñònh nghóa d(s, v) = . – Trong ví duï sau, caùc ñænh h, i, j khoâng ñeán ñöôïc töø s neân coù troïng soá ñöôøng ñi ngaén nhaát laø (chöù khoâng laø maëc duø chuùng naèm treân moät chu trình coù troïng soá aâm). a b 4 3 1 h i 3 4 2 s c 6 d g 5 8 0 5 11 8 3 3 2 3 7 e f j 6 20.11.2004 Ch. 10: Single-Source Shortest Paths 5
- Bieåu dieãn caùc ñöôøng ñi ngaén nhaát ª Ñoà thò G = (V, E ) – Vôùi moïi ñænh v, ñænh cha (predecessor) cuûa v laø moät ñænh khaùc hay laø NIL. Duy trì p[v], con troû ñeán ñænh cha. Duøng p ñeå suy ra ñöôøng ñi ngaén nhaát töø s ñeán v. – Ñoà thò con Gp = (Vp , Ep ) (predecessor subgraph) Vp = {v V : p[v] NIL} {s} Ep = {(p[v], v) E : v Vp {s}} p[v] v 20.11.2004 Ch. 10: Single-Source Shortest Paths 6
- Bieåu dieãn caùc ñöôøng ñi ngaén nhaát (tieáp) ª Cho G = (V, E) laø moät ñoà thò coù höôùng, coù troïng soá; G khoâng chöùa chu trình troïng soá aâm ñeán ñöôïc töø ñænh nguoàn s V. Caây caùc ñöôøng ñi ngaén nhaát vôùi goác taïi s laø ñoà thò coù höôùng G’ = (V’, E’), vôùi V’ V vaø E’ E sao cho 1. V’ laø taäp caùc ñænh ñeán ñöôïc (reachable) töø s trong G 2. G’ laø caây coù goác vôùi goác laø s 3. Vôùi moïi v V’, ñöôøng ñi ñôn duy nhaát töø s ñeán v laø ñöôøng ñi ngaén nhaát töø s ñeán v trong G . 20.11.2004 Ch. 10: Single-Source Shortest Paths 7
- Caây caùc ñöôøng ñi ngaén nhaát coù goác taïi ñænh nguoàn s Ví duï: trong (b) vaø (c) laø hai caây caùc ñöôøng ñi ngaén nhaát coù goác taïi ñænh nguoàn s cuûa ñoà thò trong (a) u v u v 6 6 3 9 3 9 s 3 s 3 0 2 1 4 2 7 0 2 1 4 2 7 3 3 5 5 5 11 5 11 6 6 x y x y (a) u v (b) 6 3 9 s 3 0 2 1 4 2 7 3 5 (c) 5 11 6 x y 20.11.2004 Ch. 10: Single-Source Shortest Paths 8
- Caáu truùc cuûa ñöôøng ñi ngaén nhaát ª Lemma 25.1 (Ñöôøng ñi con cuûa ñöôøng ñi ngaén nhaát cuõng laø ñöôøng ñi ngaén nhaát) Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E) vôùi haøm troïng soá w:E – p = v1 , v2 ,…, vk ñöôøng ñi ngaén nhaát töø v1 ñeán vk – Vôùi moïi i, j maø 1 i j k, goïi pij = vi , vi + 1 ,…, vj laø ñöôøng ñi con (subpath) cuûa p töø vi ñeán vj . pij laø moät ñöôøng ñi ngaén nhaát töø vi ñeán vj . pjk vk p1i vj v1 vi pij 20.11.2004 Ch. 10: Single-Source Shortest Paths 9
- Caáu truùc cuûa ñöôøng ñi ngaén nhaát (tieáp) Chöùng minh Phaûn chöùng. p’ij vk pjk p1i vj v1 vi pij 20.11.2004 Ch. 10: Single-Source Shortest Paths 10
- Caáu truùc cuûa ñöôøng ñi ngaén nhaát (tieáp) ª Heä luaän 25.2 Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E) vôùi haøm troïng soá w:E – p laø ñöôøng ñi ngaén nhaát töø s ñeán v, vaø coù theå ñöôïc phaân thaønh p’ s u v. Troïng soá cuûa ñöôøng ñi ngaén nhaát töø s ñeán v laø d(s, v) = d(s, u) + w(u, v). v p’ u s 20.11.2004 Ch. 10: Single-Source Shortest Paths 11
- Caáu truùc cuûa ñöôøng ñi ngaén nhaát (tieáp) Chöùng minh v p’ u s 20.11.2004 Ch. 10: Single-Source Shortest Paths 12
- Caáu truùc cuûa ñöôøng ñi ngaén nhaát (tieáp) ª Lemma 25.3 Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E) vôùi haøm troïng soá w:E – Ñænh nguoàn s Vôùi moïi caïnh (u, v) E, ta coù d(s, v) d(s, u) + w(u, v). v u s 20.11.2004 Ch. 10: Single-Source Shortest Paths 13
- Kyõ thuaät nôùi loûng ª Kyõ thuaät nôùi loûng (relaxation) – Duy trì cho moãi ñænh v moät thuoäc tính d[v] duøng laøm chaän treân cho troïng soá cuûa moät ñöôøng ñi ngaén nhaát töø s ñeán v. – bieán d[v] ñöôïc goïi laø öôùc löôïng ñöôøng ñi ngaén nhaát (shortest path estimate) – Khôûi ñoäng caùc öôùc löôïng ñöôøng ñi ngaén nhaát vaø caùc predecessors baèng thuû tuïc sau INITIALIZE-SINGLE-SOURCE(G, s) 1 for each vertex v V[G] 2 do d[v] 3 p[v] NIL 4 d[s] 0 20.11.2004 Ch. 10: Single-Source Shortest Paths 14
- Kyõ thuaät nôùi loûng (tieáp) ª Thöïc thi nôùi loûng leân moät caïnh (u, v): kieåm tra xem moät ñöôøng ñi ñeán v thoâng qua caïnh (u, v) coù ngaén hôn moät ñöôøng ñi ñeán v ñaõ tìm ñöôïc hieän thôøi hay khoâng. Neáu ngaén hôn thì caäp nhaät d[v] vaø p[v]. s 0 2 5 9 u v RELAX(u, v, w) 1 if d[v] d[u] + w(u, v) 2 then d[v] d[u] + w(u, v) 3 p[v] u 20.11.2004 Ch. 10: Single-Source Shortest Paths 15
- Thöïc thi nôùi loûng leân moät caïnh u v u v 2 2 5 9 5 6 RELAX(u, v, w) RELAX(u, v, w) u v u v 2 2 5 7 5 6 (a) (b) Trò cuûa d[v] giaûm sau khi Trò cuûa d[v] khoâng thay ñoåi sau khi goïi RELAX(u, v, w) goïi RELAX(u, v, w) 20.11.2004 Ch. 10: Single-Source Shortest Paths 16
- Kyõ thuaät nôùi loûng (tieáp) ª Caùc giaûi thuaät trong chöông naøy goïi INITIALIZE-SINGLE-SOURCE vaø sau ñoù goïi RELAX moät soá laàn ñeå nôùi loûng caùc caïnh. – Nôùi loûng laø caùch duy nhaát ñöôïc duøng ñeå thay ñoåi caùc öôùc löôïng ñöôøng ñi ngaén nhaát vaø caùc predecessors. – Caùc giaûi thuaät khaùc nhau ôû thöù töï vaø soá laàn goïi RELAX leân caùc caïnh. 20.11.2004 Ch. 10: Single-Source Shortest Paths 17
- Caùc tính chaát cuûa kyû thuaät nôùi loûng ª Lemma 25.4 Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E )ø, vôùi haøm troïng soá w:E – Caïnh (u, v) E. Ngay sau khi goïi RELAX(u, v, w) ta coù d[v] d[u] + w(u, v) . 20.11.2004 Ch. 10: Single-Source Shortest Paths 18
- Caùc tính chaát cuûa kyû thuaät nôùi loûng (tieáp) ª Lemma 25.5 Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E)ø, vôùi haøm troïng soá w:E – Ñænh nguoàn s. – G ñöôïc khôûi ñoäng bôûi INITIALIZE-SINGLE-SOURCE(G, s). – Vôùi moïi v V, d[v] d(s, v), baát bieán naøy ñöôïc duy trì ñoái vôùi moïi daõy caùc böôùc nôùi loûng leân caùc caïnh cuûa G – Moät khi d[v] ñaït ñeán caän döôùi d(s, v) cuûa noù thì noù seõ khoâng bao giôø thay ñoãi. 20.11.2004 Ch. 10: Single-Source Shortest Paths 19
- Caùc tính chaát cuûa kyû thuaät nôùi loûng (tieáp) ª Heä luaän 25.6 Cho – Ñoà thò coù troïng soá, coù höôùng G = (V, E)ø, vôùi haøm troïng soá w:E – Ñænh nguoàn s – Khoâng coù ñöôøng ñi töø s ñeán moät ñænh v V. Sau khi G ñöôïc khôûi ñoäng bôûi INITIALIZE-SINGLE-SOURCE(G, s), ta coù – ñaúng thöùc d[v] = d(s, v) – ñaúng thöùc naøy ñöôïc duy trì thaønh baát bieán ñoái vôùi moïi daõy caùc böôùc nôùi loûng leân caùc caïnh cuûa G. 20.11.2004 Ch. 10: Single-Source Shortest Paths 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 174 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 78 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 57 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 158 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 105 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 46 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn