Shortest Paths Single Source Shortest Paths 20 11 2004 * Các đường đi ngắn nhất từ một đỉnh nguồn Bài toán các đường đi ngắn nhất một số thuật ngữ Cho một đồ thị có trọng số, có hướng G = (V, E), với[.]
Single-Source Shortest Paths Các đường ngắn từ đỉnh nguồn ª Bài tốn đường ngắn nhất: số thuật ngữ Cho đồ thị có trọng số, có hướng G = (V, E), với hàm trọng số w:E – Trọng số đường p = v0 , v1,…, vk • w(p) = i = 1…k w(vi , vi ) – Trọng số đường ngắn (shortest path weight) từ u đến v p min{w(p) : u v} có đường từ (u, v) = u đến v trường hợp khác – Đường ngắn từ u đến vt đường v p từ u đến v cho w(p) = (u, v) u 20.11.2004 x y Các đường ngắn từ đỉnh nguồn (tiếp) ª Bài tốn đường ngắn từ nguồn (Single-source shortest-paths problem): – Cho đồ thị G = (V, E) đỉnh nguồn s V – Tìm đường ngắn từ s đến đỉnh v V s 20.11.2004 Ch 10: Single-Source Shortest Paths Cạnh có trọng số âm ª Giả thiết: Trọng số cạnh âm – Chu trình có trọng số âm – Nếu tồn chu trình có trọng số âm đến (reachable) từ s trọng số đường ngắn không định nghĩa: không đường từ s đến đỉnh nằm chu trình đường ngắn 3 s 4 a c 1 b d 11 g h e 6 20.11.2004 f 8 3 i j số đỉnh trọng số đường ngắn từ đỉnh nguồn s Ch 10: Single-Source Shortest Paths Cạnh có trọng số âm (tiếp) – Nếu tồn chu trình có trọng số âm đường từ s đến v, ta định nghĩa (s, v) = – Trong ví dụ sau, đỉnh h, i, j khơng đến từ s nên có trọng số đường ngắn (chứ không chúng nằm chu trình có trọng số âm) a 4 b 1 s c d 11 g 3 e f h i 8 j 6 20.11.2004 Ch 10: Single-Source Shortest Paths Biểu diễn đường ngắn ª Đồ thị G = (V, E ) – Với đỉnh v, đỉnh cha (predecessor) v đỉnh khác NIL Duy trì [v], trỏ đến đỉnh cha Dùng để suy đường ngắn từ s đến v – Đồ thị G (V , E ) (predecessor subgraph) • V = {v V : [v] NIL} {s} • E = {([v], v) E : v V {s}} [v] 20.11.2004 v Ch 10: Single-Source Shortest Paths Biểu diễn đường ngắn (tiếp) ª Cho G = (V, E) đồ thị có hướng, có trọng số; G khơng chứa chu trình trọng số âm đến từ đỉnh nguồn s V Cây đường ngắn với gốc s đồ thị có hướng G’ = (V’, E’), với V’ V E’ E cho V’ tập đỉnh đến (reachable) từ s G G’ có gốc với gốc s Với v V’, đường đơn từ s đến v đường ngắn từ s đến v G 20.11.2004 Ch 10: Single-Source Shortest Paths Cây đường ngắn có gốc đỉnh nguồn s Ví dụ: (b) (c) hai đường ngắn có gốc đỉnh nguồn s đồ thị (a) u v u 6 s s x 11 y (a) u (c) v 3 s 20.11.2004 1 v x (b) 11 y x 11 y Ch 10: Single-Source Shortest Paths Cấu trúc đường ngắn ª Lemma 25.1 (Đường đường ngắn đường ngắn nhất) Cho – Đồ thị có trọng số, có hướng G = (V, E) với hàm trọng số w:E – p = v1 , v2 ,…, vk đường ngắn từ v1 đến vk – Với i, j mà i j k, gọi pij = vi , vi + ,…, vj đường (subpath) p từ vi đến vj pij đường ngắn từ vi đến vj pjk v1 20.11.2004 p1i vi pij vk vj Ch 10: Single-Source Shortest Paths Cấu trúc đường ngắn (tiếp) Chứng minh Phản chứng p’ij v1 20.11.2004 p1i vi pij pjk vk vj Ch 10: Single-Source Shortest Paths 10