Tiểu luận " Lý thuyết đồ thị - Tìm đường đi ngắn nhất và ứng dụng"

Chia sẻ: ACB ABC | Ngày: | Loại File: DOC | Số trang:27

0
594
lượt xem
221
download

Tiểu luận " Lý thuyết đồ thị - Tìm đường đi ngắn nhất và ứng dụng"

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Lý thuyết đồ thị là ngành học được phát triển từ lâu nhưng lại có nhiều ứng dụng hiện đại . Những cơ bản của nó dược nhà toán học Thụy Sỹ vĩ đại Leonhard Euler đưa ra từ thế kỷ 18. Đồ thị là 1 cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó.Đây là công cụ hữu hiệu để mô hình hóa và giải quyết các bài toán trong nhiều lĩnh vực khoa học,kỹ thuật , kinh tế, xã hội, ......

Chủ đề:
Lưu

Nội dung Text: Tiểu luận " Lý thuyết đồ thị - Tìm đường đi ngắn nhất và ứng dụng"

  1. 0 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ------ TIỂU LUẬN TÌM ĐƯỜNG ĐI NGẮN NHẤT VÀ ỨNG DỤNG Giáo viên hướng dẫn: PGS.TSKH.Trần Quốc Chiến Học viên thực hiện: 1.Vũ Văn Khiên ( nhóm 2) 2.Mai Quốc Toản 3.Nguyễn Hoàng Vi 4.Phan Thành Nhất 5.Lưu Thế Vinh Lớp: Phương pháp Toán Sơ Cấp Khoá: 2009 – 2011 Kon Tum, tháng 3 năm 2010.
  2. 1 MỤC LỤC Lời nói đầu………………………………………………………………...Trang 01 Phần nội dung...............................................................................................Trang 02 I. Cơ sở lý thuyết…………………………………………….………………Trang 02 II. Bài toán đường đi ngắn nhất và ứng dụng… …………………………….Trang 05 Kết luận…………………………………………………………………....Trang 25 Tài liệu tham khảo……………………………………………………........Trang 26
  3. 2 LỜI NÓI ĐẦU Lý thuyết đồ thị là ngành học được phát triển từ lâu nhưng lại có nhiều ứng dụng hiện đại. Những ý tưởng cơ bản của nó đã được nhà toán học Thụy sĩ vĩ đại Leonhard Euler đưa ra từ thế kỷ 18. Đồ thị là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh đó. Đây là công cụ hữu hiệu để mô hình hóa và giải quyết các bài toán trong nhiều lĩnh vực khoa học, kỹ thuật, kinh tế, xã hội,... Môn lý thuyết đồ thị là môn học hấp dẫn, mang tính thực tế cao. Những vấn đề trong môn học như: các bài toán về đường đi, cây, mạng và các bài toán tô màu đã và đang được nhiều người quan tâm, nghiên cứu. Bài toán tìm đường đi ngắn nhất là bài toán quan trọng trong Lý thuyết đồ thị, nó được áp dụng để giải quyết rất nhiều bài toán trong thực tế như điều khiển tối ưu, giao thông vận tải, mạng viễn thông ... . Vì vậy, việc nghiên cứu nó là hết sức cần thiết vì nó có thể giải quyết được nhiều vấn đề khó khăn, phức tạp nảy sinh từ thực tế cuộc sống. Vì lí do đó, nhóm chúng em (nhóm 2) chọn đề tài: ''Đường đi ngắn nhất và ứng dụng'' để viết bài tiểu luận này.
  4. 3 PHẦN NỘI DUNG I. CƠ SỞ LÝ THUYẾT 1. Đồ thị vô hướng - Định nghĩa: Đồ thị vô hướng G = (V, E) gồm một tập V các đỉnh và tập E các cạnh. Mỗi cạnh e E được liên kết với một cặp đỉnh v, w (không kể thứ tự). v w - Ví dụ: e 2. Đồ thị có hướng. - Định nghĩa: Đồ thị có hướng G = (V , E) gồm một tập V các đỉnh và tập E các cạnh có hướng gọi là cung . Mỗi cung được liên kết với một cặp đỉnh (v, w) có thứ tự. v w e - Ví dụ: - Đường đi, chu trình , tính liên thông  Cho đồ thị G=(V,E). Dãy  từ đỉnh v đến w là dãy các đỉnh và cạnh nối tiếp nhau bắt đầu từ đỉnh v và kết thúc tại đỉnh w. Số cạnh trên dãy  gọi là độ dài của dãy  . Dãy  từ đỉnh v đến đỉnh w độ dài n được biểu diễn như sau   (v, e1 , v1 , e2 , v2 ,..., vn 1 , en , w)
  5. 4 trong đó vi(i=1,2…,n-1) là các đỉnh trên dãy và ei(i=1,2…,n) là các cạnh trên dãy liên thông thuộc đỉnh kề trước và sau nó. Các đỉnh và cạnh trên có thể lặp lại. Đường đi từ đỉnh v đến w là dãy từ đỉnh v đến w, trong đó các cạnh không lặp lại. Đường đi sơ cấp : là đường đi không đi qua một đỉnh quá một lần Vòng là dãy có đỉnh đầu và đỉnh cuối trùng nhau. Chu trình là đường đi có đỉnh đầu và đỉnh cuối trùng nhau Chu trình sơ cấp : là chu trình không đi qua một đỉnh quá một lần. Dãy có hướng : trong đồ thị có hướng là dãy các đỉnh và cung nối tiếp nhau (e1,e2,…,en) thỏa mãn đỉnh cuối của cung ei là đỉnh đầu của cung ei+1, i=1,..n-1. Đường đi có hướng trong đồ thị có hướng là dãy có hướng, trong đó các cung không lặp lại. Đường đi có hướng sơ cấp là đường đi có hướng không đi qua một đỉnh quá một lần. Vòng có hướng là dãy có hướng có đỉnh đầu và đỉnh cuối trùng nhau. Chu trình có hướng là đường đi có hướng có đỉnh đầu và đỉnh cuối trùng nhau. Chu trình có hướng sơ cấp là chu trình có hướng không đi qua một đỉnh quá một lần . Đồ thị có hướng gọi là liên thông, nếu mọi cặp đỉnh của nó đều có đường đi nối chúng với nhau. Đồ thị có hướng gọi là liên thông mạnh, nếu mọi cặp đỉnh của nó đều có đường đi có hướng nối chúng với nhau. Đồ thị có hướng gọi là liên thông yếu, nếu đồ thị lót (vô hướng) của nó liên thông. Đồ thị có hướng gọi là bán liên thông, nếu với mọi cặp đỉnh (u,v) bao giờ cũng tồn tại đường đi có hướng từ u đến v hoặc từ v đến u.
  6. 5  Định lí 1: (i) Trong đồ thị vô hướng mỗi dãy từ đỉnh v đến w chứa đường đi sơ cấp từ v đến w (ii) Trong đồ thị có hướng mỗi dãy có hướng từ đỉnh v đến w chứa đường đi có hướng sơ cấp từ v đến w.  Định lí 2: Đồ thị G lưỡng phân khi và chỉ khi G không chứa chu trình độ dài lẻ.  Trọng đồ (có hướng) là đồ thị (có hướng) mà mỗi cạnh (cung) của nó được gán một số. Trọng đồ được biểu diễn bởi G=(V,E,w), trong đó V là các đỉnh ,E là tập các cạnh(cung), và w : E  R là hàm số trên E, w(e) là trọng số của cạnh(cung) e với mọi e  E. Trong trọng đồ độ dài trọng số của đường đi  là tổng các trọng số trên đường đi đó.
  7. 6 II. BÀI TOÁN ĐƯỜNG ĐI NGẮN NHẤT VÀ ỨNG DỤNG 1. Phát biểu bài toán Cho đồ thị có trọng số G=(V,E). Kí hiệu w(i,j) là trọng số của các cạnh (i,j). Độ dài đường đi   v0  v1  v2  ...  vn1  vn là tổng các trọng số n L(  )   w(vi1 , vi ) i 1 Cho hai đỉnh a,z của đồ thị. Bài toán đặt ra là tìm đường đi ngắn nhất từ a đến z. 2. Thuật toán Dijkstra Thật toán tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z trong đó đồ thị liên thông có trọng số. trọng số cạnh (i,j) là w(i,j)>0 và đỉnh x sẽ mang nhãn L(x). Khi kết thúc thuật giải L(z) chính là chiều dài ngắn nhất từ a đến z.  Đầu vào: đồ thị liên thông G=(V,E) có trọng số w(i,j)>0 với mọi cạnh (i,j), đỉnh a và z  Đầu ra :L(z) chiều dài đường đi ngắn nhất từ a đến z và đường đi ngắn nhất.  Phương pháp: (1) Gán L(a):=0, với mọi x khác a gán L(a)=  . Kí hiệu T:=V (2) Chọn v  T sao cho L(v) có giá trị nhỏ nhất. Đặt T:=T-{v} (3) Nếu z  T , kết thúc, L(z) là chiều dài đường đi ngắn nhất từ a đến z. Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất. Ngược lại sang bước (4) (4) Với mỗi x  T kề v gán L(x):=min{L(x),L(v)+w(v,x)} Nếu L(x) thay đổi thi ghi nhớ đỉnh v cạnh x để sau này xây dựng đường đi ngắn nhất. Quay về bước (2)
  8. 7 -Định lí : Thuật toán Dijkstra là đúng. Chứng minh: xem [1] Ví dụ1: Cho các tỉnh a,b,c,d,e,f,g,z có vị trí như sơ đồ sau. Biết rằng giữa các tỉnh có đoạn đường nối với nhau có độ dài như hình vẽ. Tìm đường đi ngắn nhất từ tỉnh b 2 a đến tỉnh z c 2 2 4 3 1 a d 4 e 3 7 z 1 f 5 g 6 Giải: - Ta thực hiện bước 1: Đặt T:={a,b,c,d,e,f,g,z} Và L(a):=0, L(b)=L(c)=L(d)=L(e)=L(f)=L(g)=L(z):=∞ Các tham số trên được biểu diễn trên đồ thị như sau b(∞ ) 2 c(∞ ) 2 2 4 3 1 a(0) d (∞ ) 4 e(∞) 7 z(∞ ) 1 3 f(∞ ) 5 g(∞)6 Các số trong ngoặc là L(x), x  T. -Thực hiện bước 2: L(a)=min{L(x)| x  T}=0 Suy ra T:=T-{a}={a,b,c,d,e,f,g,z} - Thực hiện bước 3: vì z  T, chuyển sang bước 4: - Thực hiện bước 4: Đỉnh b và f kề đỉnh a. Ta có L(b)=min{L(b),L(a)+2}=2 L(f)= min{L(f),L(a)+1}=1
  9. 8 Các đỉnh không thay đổi. Đồ thị có các nhãn như sau b(2 )a 2 c(∞ ) 2 2 4 3 1 a(0) d (∞ ) 4 e(∞) 7 z(∞ ) 1 3 f(1 )a 5 g(∞)6 Chú ý: Các chữ cái bên phải ở mỗi đỉnh là nhãn đỉnh đạt giá trị nhỏ nhất ở các biểu thức tính min. - Ta thực hiện bước 2: L(f)=min{L(x)| x  T}=1 Suy ra T=T-{f}={b,c,d,e,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh d và g kề đỉnh f. Ta có L(d)=min{L(d), L(f)+2}=min{ ∞ , 1+3}=4 L(g)=min{L(g), L(f)+5}=min{ ∞ , 1+5}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(2 )a 2 c(∞ ) 2 2 4 3 1 a(0) d (4 )f 4 e(∞) 7 z(∞ ) 1 3 6 f(1 )a 5 g(6)f - Ta thực hiện bước 2: L(b)=min{L(x)| x  T}=2 Suy ra T=T-{b}={c,d,e,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4
  10. 9 - Ta thực hiện bước 4: Đỉnh c,d và e kề đỉnh b. Ta có L(c)=min{L(c), L(b)+2}=min{ ∞ , 2+2}=4 L(d)=min{L(d), L(b)+2}=min{ 4 , 2+2}=4 L(e)=min{L(e), L(b)+4}=min{ ∞ , 2+4}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(2 )a 2 c(4 )b 2 2 4 3 1 a(0) d (4 )f 4 e(6)b 7 z(∞ ) 1 3 6 f(1 )a 5 g(6)f - Ta thực hiện bước 2: L(c)=min{L(x)| x  T}=4 Suy ra T=T-{c}={d,e,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh e và z kề đỉnh c. Ta có L(e)=min{L(e), L(c)+3}=min{ 6 , 4+3}=6 L(z)=min{L(z), L(c)+1}=min{ ∞ , 4+1}=5 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(2 )a 2 c(4 )b 2 2 4 3 1 a(0) d (4 )f 4 e(6)b 3 7 z(5 )c 1 6 f(1 )a 5 g(6)f
  11. 10 - Ta thực hiện bước 2: L(d)=min{L(x)| x  T}=4 Suy ra T=T-{d}={e,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh e kề đỉnh d. Ta có L(e)=min{L(e), L(d)+4}=min{ 6 , 4+4}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(2 )a 2 c(4 )b 2 2 4 3 1 a(0) d (4 )f 4 e(6)b 3 7 z(5 )c 1 6 f(1 )a 5 g(6)f - Ta thực hiện bước 2: L(z)=min{L(x)| x  T}=5 Suy ra T=T-{z}={e,g} - Ta thực hiện bước 3: z  T, kết thúc. L(z)=5 là độ dài đường đi ngắn nhất từ a đến z. Từ z ta đi ngược lại các đỉnh đã được ghi nhớ z  c  b  a . Ta suy ra đường đi ngắn nhất là a  b  c  z . Ví dụ2: Tìm đường đi ngắn nhất từ tỉnh a đến tỉnh z trong đồ thị sau: b 5 c 5 d 4 7 a 2 3 1 2 z 3 4 e 6 f 5 g Giải: - Ta thực hiện bước 1: Đặt T:={a,b,c,d,e,f,g,z}
  12. 11 Và L(a):=0, L(b)=L(c)=L(d)=L(e)=L(f)=L(g)=L(z):=∞ Các tham số trên được biểu diễn trên đồ thị như sau b(∞ ) c(∞ ) d(∞ ) 4 5 7 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(∞ ) f(∞ ) g(∞ ) Các số trong ngoặc là L(x), x  T. -Thực hiện bước 2: L(a)=min{L(x)| x  T}=0 Suy ra T:=T-{a}={a,b,c,d,e,f,g,z} - Thực hiện bước 3: vì z  T, chuyển sang bước 4: - Thực hiện bước 4: Đỉnh b và f kề đỉnh a. Ta có L(b)=min{L(b),L(a)+2}=2 L(f)= min{L(f),L(a)+1}=1 Các đỉnh không thay đổi. Đồ thị có các nhãn như sau b(4 )a c(∞ ) d(∞ ) 4 5 7 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(3 )a f(∞ ) g(∞ ) Chú ý: Các chữ cái bên phải ở mỗi đỉnh là nhãn đỉnh đạt giá trị nhỏ nhất ở các biểu thức tính min. - Ta thực hiện bước 2: L(e)=min{L(x)| x  T}=3 Suy ra T=T-{e}={b,c,d,f,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh b,cvà f kề đỉnh e. Ta có
  13. 12 L(b)=min{L(b), L(e)+3}=min{ 4 , 2+3}=4 L(c)=min{L(c), L(e)+3}=min{ ∞ , 3+3}=6 L(f)=min{L(f), L(e)+3}=min{ ∞ , 6+3}=9 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(∞ ) 4 7 5 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(3 )a f(9 )e g(∞ ) - Ta thực hiện bước 2: L(b)=min{L(x)| x  T}=4 Suy ra T=T-{b}={c,d,f,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh c kề đỉnh b. Ta có L(c)=min{L(c), L(b)+5}=min{ 6 , 4+5}=6 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(∞ ) 4 5 7 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(3 )a f(9 )e g(∞ ) - Ta thực hiện bước 2: L(c)=min{L(x)| x  T}=6 Suy ra T=T-{c}={d,f,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh f và d kề đỉnh c. Ta có
  14. 13 L(f)=min{L(f), L(c)+1}=min{ 9 , 6+1}=7 L(d)=min{L(d), L(c)+5}=min{ ∞ , 6+5}=11 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(11 ) 4 5 7 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(3 )a f(7)c g(∞ ) - Ta thực hiện bước 2: L(f)=min{L(x)| x  T}=7 Suy ra T=T-{f}={d,g,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh g kề đỉnh f. Ta có L(g)=min{L(g), L(f)+5}=min{ ∞ , 7+5}=12 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(11 ) 4 5 7 5 a(0) 2 3 1 2 z(∞ ) 3 6 5 4 e(3 )a f(7)c g(12) - Ta thực hiện bước 2: L(g)=min{L(x)| x  T}=12 Suy ra T=T-{g}={d,z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: Đỉnh d và z kề đỉnh g. Ta có
  15. 14 L(d)=min{L(d), L(g)+2}=min{ 11 , 12+2}=11 L(z)=min{L(z), L(g)+4}=min{ ∞ , 12+4}=16 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(11 ) 4 5 7 5 a(0) 2 3 1 2 z(16 )g 3 6 5 4 e(3 )a f(7)c g(12) - Ta thực hiện bước 2: L(d)=min{L(x)| x  T}=11 Suy ra T=T-{d}={z} - Ta thực hiện bước 3: z  T, chuyển sang bước 4 - Ta thực hiện bước 4: L(z)=min{L(z), L(d)+7}=min{ 16 , 11+7}=16 Các đỉnh không thay đổi. Đồ thị có nhãn như sau b(4 )a c(6 )e d(11 ) 4 5 7 5 a(0) 2 3 1 2 z(16 )g 3 6 5 4 e(3 )a f(7)c g(12) - Ta thực hiện bước 3: z  T, kết thúc. L(z)=16 là độ dài đường đi ngắn nhất từ a đến z. Từ z ta đi ngược lại các đỉnh đã được ghi nhớ z  g  f  c  e  a . Ta suy ra đường đi ngắn nhất là a  e  c  f  g  z .
  16. 15 3. Phương pháp lập bảng ghi nhãn Ta lập bảng tính toán các nhãn gồm các cột ứng với các đỉnh, và các hàng ứng với các lần tính nhãn ở bước (4). Các nhãn gạch dưới ứng với nhãn nhỏ nhất ở bước (2), và đỉnh bị loại ghi bên phải. Sau khi đỉnh z bị loại, từ z lần nguợc về đỉnh a theo nhãn ghi trên bảng. Các đỉnh trên đường đi được gạch dưới ( trên cột các đỉnh loại). Cuối cùng theo thứ tự ngược lại ta nhận được đường đi ngắn nhất. Sau đây là bảng tính toán nhãn của ví dụ1 trên a b c d e f g z 1 0 a 2 2(a) 1(a) f 3 2 4(f) 6(f) b 4 4(b) 4 6(b) 6 c 5 4 6 6 5(c) d 6 6 6 5 z Ta suy ra đường đi ngắn nhất là a bc  z Sau đây là bảng tính toán nhãn của ví dụ 2 trên a b c d e f g z 1 0 a 2 4(a) 3(a) e 3 4 6(e) 9(e) b 4 6 11(c) 9(c) c 5 11 7(c) f 6 11 12(f) d 7 12 18(d) g 16(g) z Ta suy ra đường đi ngắn nhất là z  g  f cea
  17. 16  Định lí : Giả sử G là đồ thị liên thông có trọng số và có n đỉnh. Gọi f(n) là số lần thuật toán Dijkstra khảo sát một cạnh của G trong trường hợp xấu nhất. Khi đó ta có f(n) = O(n2) Chứng minh : xem [1] 4. Thuật toán Floyd Thuật giải tìm độ dài đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ thị có hướng liên thông có trọng số (không bắt buộc  0 ). + Đầu vào. Đồ thị liên thông G = (V, E), V = 1,2,...,n  , có trọng số w(i,j) với mọi cung (i,j). +Đầu ra. Ma trận D=  d (i, j ) trong đó d(i,j) là chiều dài đường đi ngắn nhất từ i đến j với mọi cặp (i,j). +Phương pháp. (1) Bước khởi tạo: Kí hiệu Do là ma trận xuất phát D0=  d 0 (i, j ) Trong đó do9i,j) = w(i,j) nếu tồn tại cung (i,j) và do(i,j) = +  nếu không tồn tại cung (i,j) đặc biệt nếu không có khuyên tại i thì do(i,i)= +  ). Gán k:=0 (2)Kiểm tra kết thúc: Nếu k=n , kết thúc. D=Dn là ma trận độ dài đường đi ngắn nhất. Ngược lại tăng k lên 1 đơn vị (k:=k+1) và sang (3). (3) Tính ma trận Dk theo Dk-1: Với mọi cặp (i,j), i=1..n, j=1..n thực hiện: Nếu dk-1(i,j) > dk-1(i,k) + dk-1(k,j) thì đặt dk(i,j) := dk-1(i,k) + dk-1(k,j) Ngược lại đặt dk(i,j):=dk-1(i,j) Quay lại bước (2). * Định lí: Thuật toán Floyd là đúng. Chứng minh: xem [1]
  18. 17 *Hệ quả (i) Nếu ma trận kết quả của thuật toán Floyd có phần tử hữu hạn trên đường chéo i=i thì đồ thị đó chứa chu trình. (ii) Nếu ma trận kết quả chứa phần tử +  ngoài đường chéo i=i thì đồ thị không liên thông mạnh. + Ví dụ: Xét đồ thị sau 1 7 2 4 3 4 2 2 1 3 2 1 4 6 5 Áp dụng thuật toán Floyd ta có: Ma trận khoảng cách xuất phát Do là ( các ô trống là  ): Đỉnh 1 2 3 4 5 6 1 7 2 2 4 1 3 3 Do = 4 4 5 2 2 6 1 Từ ma trận do, theo thuật toán, ta xây dựng các ma trận tiếp theo như sau( các ô gạch dưới có giá trị thay đổi)
  19. 18 Đỉnh 1 2 3 4 5 6 1 7 2 2 4 1 D1 = 3 3 4 4 5 2 9 2 4 6 1 Đỉnh 1 2 3 4 5 6 1 7 11 2 8 2 4 1 D2 = 3 3 4 4 8 5 5 2 9 2 4 10 6 1 5 2 Đỉnh 1 2 3 4 5 6 1 7 11 2 8 14 2 4 1 7 D3 = 3 3 4 4 8 5 11 5 2 9 2 4 10 5 6 1 5 2 8
  20. 19 Đỉnh 1 2 3 4 5 6 1 6 10 2 7 13 2 4 1 7 D4 = 3 3 4 4 8 5 11 5 2 8 2 4 9 5 6 1 5 2 8 Đỉnh 1 2 3 4 5 6 1 9 6 9 2 7 12 2 3 9 3 5 1 6 D5 = 3 3 4 7 4 7 9 5 10 5 2 8 2 4 9 5 6 4 1 4 6 2 7 Đỉnh 1 2 3 4 5 6 1 9 6 9 2 7 12 2 3 7 3 5 1 6 D =D6 = 3 7 4 7 9 5 3 4 7 4 7 9 5 10 5 2 6 2 4 7 5 6 4 1 4 6 2 7 Cuối cùng, D là ma trận khoảng cách ngắn nhất giữa các đỉnh. Theo hệ quả ta thấy đồ thị liên thông và chứa chu trình. 5. Thuật toán Floyd –Warshall Thuật giải tìm đường đi ngắn nhất giữa mọi cặp đỉnh trong đồ thị có hướng liên thông có trọng số.

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản