Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,24 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN - - NGUYỄN TIẾN DUY BÀI TỐN TÌMĐƯỜNGĐINGẮNNHẤTVÀỨNGDỤNG KHĨA LUẬN TỐT NGHIỆP LỜI CẢM ƠN Trước tiên em xin chân thành cảm ơn toàn giảng viên khoa Tin nhiệt tình dạy bảo truyền đạt kiến thức, kinh nghiệm cho em bốn năm học trường Để có thành ngày hơm em xin chân thành cảm ơn sâu sắc đến thầy Trần Quốc Chiến ln tận tình hướng dẫn, giúp đỡ động viên em suốt trình thực đề tài Em xin cảm ơn gia đình, bạn bè quan tâm, giúp đỡ tinh thần phương tiện vật chất góp phần quý báu để hoàn thành đề tài Một lần em xin gửi đến Thầy Cơ, Gia Đình Bạn bè lòng biết ơn chân thành sâu săc Trong trình nghiên cứu đề tài dù có nhiều cố gắng khơng tránh khỏi thiếu sót, em mong nhận thơng cảm dẫn thêm thầy cô, bạn Em xin chân thành cảm ơn! Đà Nẵng, tháng 05 năm 2012 Sinh viên Nguyễn Tiến Duy ĐẶT VẤN ĐỀ Ngày nay, phát triển ngành công nghệ thông tin góp phần quan trọng phát triển xã hội, thâm nhập vào đời sống xã hội có nhiều ứngdụng rộng rãi nhiều lĩnh vực khác như: kĩ thuật, kinh tế, giáo dục, du lịch v.v Lý thuyết đồ thị ngành khoa học có từ lâu lại có nhiều ứngdụng đại Đồ thị cấu trúc rời rạc gồm đỉnh cạnh nối đỉnh đó, tỏ cơng cụ hữu hiệu để mơ hình hóa giải toán nhiều lĩnh vực: khoa học, kĩ thuật, kinh tế, xã hội v.v Trên sở kiến thức học môn Lý thuyết đồ thị hướng dẫn nhiệt tình thầy Trần Quốc Chiến, tơi sâu tìm hiểu thuật tốn tìmđườngngắn đồ thị thấy tính hữu ích chúng Do đó, tơi chọn đề tài nghiên cứu “ Bài tốn tìmđườngngắnứng dụng” Tuy nhiên, thời gian khơng cho phép trình độ có hạn nên tơi vào nghiên cứu tìm hiểu thuật toán minh họa web CHƯƠNG I: TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ 1.1 Định nghĩa đồ thị Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh này.Chúng ta phân biệt loại đồ thị khác kiểu số lượng cạnh nối hai đỉnh đồ thị Để hình dung lại cần đến loại đồ thị khác ,chúng ta nêu ví dụ sử dụng chúng để mơ tả mạng máy tính Giả sử ta có mạng gồm máy tính kênh điện thoại(gọi tắt tên thoại) nối máy tính này.Chúng ta biểu diễn vị trí đặt máy tính điểm kênh thoại nối chúng đoạn nối,xem hình Hà Tây Đồng Nai Huế TPHCM Hà Nội Quãng Ngãi Phú n An Giang Bình Định Khánh Hòa Hình 1.1 Sơ đồ mạng máy tính Nhận thấy mạng hình 1.1, hai máy tính cho phép nhiều kênh thoại nối chúng,kênh thoại cho phép liên lạc hai chiều máy tính lại nối với nó.Sơ đồ mạng máy tính cho tronh hình gọi đơn đồ thị vô hướng => ta đến định nghĩa sau: Định nghĩa Đơn đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh,và E tập cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Trong trường hợp hai máy tính thường xun phải truyền tải nhiều thông tin người ta phải nối hai máy nhiều kênh thoại Mạng với đa kênh thoại máy tính cho hình 1.2 Hà Tây Hà Nội Đồng Nai Huế HCM An Giang Bình Định Qng Ngãi Phú n Khánh Hòa Hình 1.2 Sơ đồ mạng máy tính với đa kênh thoại Trang Định nghĩa Đa đồ thị vô hướng G=(V,E) bao gồm V tập đỉnh , E họ cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 va e2 gọi cạnh lặpnếu chúng tương ứng với cặp đỉnh Hà Tây Đồng Nai TPHCM Hà Nội Quãng Ngãi Huế An Giang Bình Định Phú n Khánh Hòa Hình 1.3 Sơ đồ mạng máy tính với kênh thơng báo Rõ ràng đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai hay nhiều cạnh nối cặp đỉnh Trong mạng máy tính có kênh thoại nối máy tính với nó(chẳng hạn với mục đích thơng báo).Mạng cho hình 1.3.Như đa đồ thị mô tả mạng vậy, có khun (cạnh nối đỉnh vói nó).Trong trường hợp cần sử dụng đến khái niệm giả đồ thị vô hướng, định nghĩa sau: Ta đến định nghĩa sau: Định nghĩa Đơn đồ thị có hướng G=(V,E)bao gồm V tập đỉnh, E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Nếu mạng có đa kênh thoại chiều,ta phải sử dụng đến khái niệm đa đồ thị có hướng: Định nghĩa Đa đồ thị có hướngG=(V,E) bao gồm V tập đỉnh,và E họ cặp có thứ tự gồm hai phần tử khác V gọi cung.Hai cung e1 va e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần chủ yếu làm việc với đơn đồ thị vô hướng đơn đồ thị có hướng.Vì vậy, ngắn gọn , ta bỏ qua tính từ đơn nhắc đến chúng 1.2 Các thuật ngữ Trong mục trình bày số thuật ngữ lý thuyết đồ thị.Trước tiên ,ta xét thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa Hai đỉnh u va v đồ thị có hướng G gọi kề (u,v) cạnh đồ thị G.Nếu e=(u,v) cạnh đồ thị ta nói cạnh cạnh liên Trang thuộc với hai đỉnh u v, nói cạnh e nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u,v) Để biết có cạnh liên thuộc với đỉnh , ta đưa vào định nghĩa sau : Định nghĩa Ta gọi bậc đỉnh v đồ thị vô hướnglà số cạnh liên thuộc với ta kí hiệu deg(v) b c d a f e g Hình 1.4 Đồ thị vơ hướng Thí dụ Xét đồ thị cho hình 1.4, ta có deg(a)=1, deg(b)=4 , deg(c)=4 , deg(f)=3, deg(d)=1 , deg(e)=3 , deg(g)=0 Đỉnh bậc gọi đỉnh cô lập , đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh cô lập, a d đỉnh treo Bậc đỉnh có tính chất sau : Định lý Giả sử G=(V,E) đồ thị vô hướng với m cạnh Khi 2m=∑ deg(v) vV Chứng minh Rõ ràng cạnh e=(u,v) tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh hai lần số cạnh Thí dụ Đồ thị với n đỉnh đỉnh có bậc có cạnh ? Giải: Theo định lý 1,ta có 2m=6n.Từ suy số cạnh đồ thị 3n Hệ Trong đồ thị vô hướng,số đỉnh bậc lẻ(nghĩa có bậc số lẻ) số chẵn Chứng minh Thực vậy, gọi O U tương ứng tập đỉnh bậc lẻ tập đỉnh bậc chẵn đồ thị,ta có 2m=∑deg(v)= ∑deg(v)+ ∑deg(v) vV vO vU Do deg(v) chẵnvới v đỉnh U nên tổng thứ hai vế phải số chẵn.Từ suy tổng thứ nhất(chính tổng bậc đỉnh bậc lẻ) phải số chẵn, tất số hạng số lẻ, nên tổng phải gồm số chẵn số hạng.Vì , số đỉnh bậclẻ phải số chẵn Ta xét thuật ngữ tương tự cho đồ thị có hướng Trang Định nghĩa 3.Nếu e=(u,v) cung đồ thị có hướng G ta nói hai đỉnh u vlà kề nhau,và nói cung(u,v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đinh u (v) gọi đỉnh đầu (cuối) cung (u,v) Tương tự khái niệm bậc, đồ thị có hướng ta có khái niệm bán bậc ra(vào) đỉnh Định nghĩa 4.Ta gọi bán bậc (vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) kí hiệu la deg+(v)(deg-(v)) a b c e d Hình 1.5 Đồ thị có hướng G Thí dụ Xét đồ thị cho hình 1.5 Ta có deg-(a)=1, deg-(b)=2, deg-(c)=2, deg-(d)=2, deg-(e)=2 deg+(a)=3, deg+(b)=1 deg+(c)=1, deg+(d)=2, deg+(e)=2 Do cung (u,v) tính lần bán bậc vào đỉnh v lần bán bậc đỉnh u nên ta có Định lý Giả sử G=(V,E) đò thị có hướng , ∑deg+(v)= ∑deg-(v)=|E| vV vV Rất nhiều tính chất đồ thị có hướng khơng phụ thuộc vào hướng cung Vì vậy, nhiều trường hợp thuận tiện ta bỏ qua hướng cung đồ thị Đồ thị vô hướng thu cách bỏ qua hướng cung gọi đồ thị vô hướng tương ứng với đồ thị có hướng cho 1.3 Định nghĩa đường đi, chu trình , đồ thị liên thơng Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị vô hướng G=(V,E) dãy xo, x1 , , xn-1 , xn u=x0 , v=xn , ( xi , xi+1 ) E , i= 0, 1, , , n-1 Đường nói biểu diễn dạng cạnh: (x0 , x1 ) , ( x1 , x2), , ( xn-1 , xn ) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đườngĐường có đỉnh đầu trùng với đỉnh cuối ( tức u=v) gọi chu trình Đường hay chu trình gọi đơn khơng có cạnh bị lặp lại Trang Thí dụ Trên đồ thị vơ hướng cho hình 1.6: a,d,c,f,e đường đơn độ dài Còn d,e,c,a khơng đường (e,c) cạnh đồ thị Dãy b,c,f,e,b chu trình độ dài Đường a,b,e,d,a,b có độ dài khơng phải đường đơn, cạnh (a,b) có mặt hai lần a d b c a b e f d Hình 1.6 Đường đồ thị e c f Khái niệm đường chu trình đồ thị có hướng định nghĩa hồn tồn tương tự trường hợp đồ thị vô hướng, khác ta ý đến hướng cung Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị có hướng G=(V,A) dãy xo, x1 , , xn-1 , xn u=x0 , v=xn , ( xi , xi+1 ) A , i= 0, 1, , , n-1 Đường nói biểu diễn dạng cung: (x0 , x1 ) , ( x1 , x2), , ( xn-1 , xn ) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đườngĐường có đỉnh đầu trùng với đỉnh cuối ( tức u=v) gọi chu trình Đường hay chu trình gọi đơn khơng có cung bị lặp lại Thí dụ Trên đồ thị có hướng cho hình 1: a,d,c,f,e đường đơn độ dài Còn d,e,c,a không đường (e,c) cung đồ thị Dãy b,c,f,e,b chu trình độ dài Đường a,b,e,d,a,b có độ dài khơng phải đường đơn, cung (a,b) có mặt hai lần Xét mạng máy tính Một câu hỏi đặt hai máy tính mạng trao đổi thơng tin với trực tiếp qua kênh nối chúng hợăc thơng qua vài máy tính trung gian mạng? Nếu sử dụng đồ thị để biểu diễn mạng máy tính (trong đỉnh đồ thị tương ứng với máy tính , cạnh tương ứng với kênh nối) câu hỏi phát biểu ngôn ngữ đồ thị sau: Tồn hay đường cặp đỉnh đồ thị ? Địng nghĩa Đồ thị vô hướng G=(V,E) gọi liên thơng ln tìmđường hai đỉnh Như hai máy tính mạng trao đổi thông tin đượcvới đồ thị tương ứng với mạng đồ thị liên thơng Trang Thí dụ Trong hình 1.7: Đồ thị G liên thông, đồ thị H không liên thông a b H1 c d e H2 g f H3 G H Hình 1.7 Đồ thị liên thông G đồ thị H gồm thành phần liên thông H1,H2,H3 Định nghĩa Ta gọi đồ thị đồ thị G=(V,E) đồ thị H=(W,F), W V F E Trong trường hợp đồ thị khơng liên thơng , rã thành số đồ thị liên thông đơi khơng có đỉnh chung Những đồ thị liên thông ta gọi thành phần liên thơng đồ thị Thí dụ Đồ thị H hình 1.7 gồm thành phần liên thơng H1,H2,H3 Trong mạng máy tính có máy ( kênh nối ) mà hỏng hóc ảnh hưởng đến việc trao đổi thông tin mạng Các khái niệm tương ứng với tình đưa định nghĩa sau Định nghĩa Đỉnh v gọi đỉnh rẽ nhánh việc loại bỏ v với cạnh liên thuộc với khỏi đồ thị làm tăng số thành phần liên thông đồ thị Cạnh e gọi cầu việc loại bỏ khỏi đồ thị làm tăng số thành phần liên thông đồ thị Thí dụ đồ thị G hình 1.7, đỉnh d e đỉnh rẽ nhánh, cạnh (d,g) (e,f) cầu Đối với đồ thị có hướng có hai khái niệm liên thơng phụ thuộc vào việc ta có xét đến hướng cung hay không Định nghĩa Đồ thị có hướng G=(V,A) gọi liên thơng mạnh ln tìmđường hai đỉnh Định nghĩa Đồ thị có hướng G=(V,A) gọi liên thông yếu đồ thị vô hướng tương ứng với đồ thị vơ hướng liên thông Trang Rõ ràng đồ thị liên thơng mạnh liên thơng yếu, điều ngược lại không , thí dụ Thí dụ Trong hình 1.8 đồ thị G liên thơng mạnh, H liên thơng yếu khơng liên thông mạnh a b a b e e c d c d Hình 1.8 Đồ thị liên thơng mạnh G Đồ thị liên thông yếu H Một câu hỏi đặt định hướng cạnh đồ thị vơ hướng liên thơng để thu đồ thị có hướng liên thơng mạnh? Ta gọi đồ thị đồ thị định hướng Định lý cho ta tiêu chuẩn nhận biết đồ thị có định hướng hay không Định lý Đồ thị vô hướng liên thông định hướng cạnh nằm chu trình Chứng minh Điều kiện cần Giả sử (u,v) cạnh đồ thị ,từ tồn đường có hướng từ u đến v ngược lại suy (u,v) phải nằm chu trình Điều kiện đủ Thủ tục sau cho phép định hướng cạnh đồ thị để thu đồ thị có hướng liên thơng mạnh.Giả sử C chu trình đồ thị Định hướng cạnh chu trình theo hướng vòng theo Nếu tất cạnh đồ thị định hướng kết thúc thủ tục Ngược lại , chịn C cạnh chưa định hướng có chung đỉnh với số cạnh định hướng Theo giả thiết tìm chu trình C chứa cạnh e Định hướng cạnh chưa định hướng C’ theo hướng dọc theo chu trình này( khơng định hướng lại cạnh có hướng) Thủ tục lặp lại tất cạnh đồ thị định hướng Khi ta thu đồ thị có hướng liên thơng mạnh Trang Ma trận P=[p(i,j)] dùng để xác định đườngngắn Phương pháp: (1) Bước khởi tạo: Ký hiệu D0 ma trận xuất phát D0 = [d0(i,j)] Trong dó d0(i,j) = w(i,j) tồn cung (i,j) d0(i,j) = +∞ không tồn cung (i,j) (đặc biệt khun i d0(i,j) = +∞) P0 = [p0(i,j)] Trong p0(i,j) = j có cung từ i đến j p0(i,j) không xác định cung từ i đến j Gán k:=0 (2) Kiểm tra kết thúc: Nếu k=n, kết thúc D=Dn ma trận độ dài đườngngắn nhất, P=Pn Ngược lại, k dk-1(i,k) + dk-1(k,j) đặt dk(i,j) := dk-1(i,k) + dk-1(k,j) pk(i,j) := pk-1(i,k) ngược lại đặt dk(i,j) := dk-1(i,j) pk(i,j) := pk-1(i,j) Quay lại bước (2) Phương pháp pháp xác định đườngngắn từ đỉnh i đến đỉnh j: Đườngngắn từ đỉnh i đến đỉnh j gồm dãy đỉnh i, i1, i2, i3, …, ik, ik+1, im, j thỏa mãn i1=p(i,j), i2=p(i1,j), …, ik+1=p(ik,j), …, p(im,j)=j Định lý: Thuật toán Floyd-Warshall Chứng minh: Ở định lý ta chứng minh D ma trận độ dài đườngngắn Bây ta cần chứng minh thêm phương pháp xây dựngđường theo ma trận P thuật toán thực cho đườngngắn Với cặp đỉnh (i,j) có dk(i,j) < +∞, ký hiệu 𝜇𝑘 (𝑖, 𝑗) = (i, i1, i2, …, in, in+1, im, j) Là đường từ i đến j xây dựng sở ma trận Pk sau: i1=pk(i,j), i2=pk(i1,j), …, in+1=pk(in,j), …, pk(im,j)=j Ta chứng minh, quy nạp theo k, bổ đề sau: Bổ đề: μk (i, j) có độ dài dk(i,j), tức đườngngắnđường nối đỉnh i đến j qua đỉnh trung gian {1, 2,…, k} - Bước sở: Hiển nhiên mệnh đề với k=0 - Bước quy nạp: Giả sử mệnh đề với k-1 Xét i1=pk(i,j), i2=pk(i1,j), …, in+1=pk(in,j), …, pk(im,j)=j Ta xét hai khả sau: Trường hợp dk(i,j)=dk-1(i,j) Suy Trang 19 pk(i,j)=pk-1(i,j) => i1=pk-1(i,j) ∈ {1, 2,…, k-1} (i,i1) ∈ E (theo giả thiết quy nạp) Ta chứng minh dk(i1,j)=dk-1(i1,j) Giả sử ngược lại dk(i1,j)dk-1(i1,k)+dk-1(k,j) Suy dk-1(i,k) + dk-1(k,j) ≤ dk-1(i,i1) + dk-1(i1,k) + dk-1(k,j) (bất đẳng thức tam giác) < dk-1(i,i1) + dk-1(i1,j) ≤ dk-1(i,j) (bất đẳng thức tam giác) Suy dk(i,j) = dk-1(i,j), mâu thuẫn với dk(i,j) < dk-1(i,j) Vậy ta có dk(i,j) = dk-1(i1,j) Từ đó, tương tự suy pk(i1,j) = pk-1(i1,j) => i2 = pk-1(i1,j) ∈ {1, 2, …,k-1} (i1,i2) ∈ E Tương tự, với h=0,…,m truy hồi ta nhận pk(ih,j)=pk-1(ih,j) ih+1=pk-1(ih,j) ∈ {1, 2, …,k-1} (ih,ih+1) ∈ E Vậy 𝜇𝑘 (𝑖, 𝑗) ≡ 𝜇𝑘−1 (𝑖, 𝑗) đườngngắnđường nối đỉnh i đến j qua đỉnh trung gian {1, 2, …,k-1}, có chiều dài dk-1(i,j) Mà dk(i,j) = dk-1(i,j) nên đườngngắnđường nối đỉnh i đến j qua đỉnh trung gian {1, 2, …,k}, có chiều dài dk(i,j) Trường hợp dk(i,j) < dk-1(i,j) Ta có dk(i,j)=dk-1(i,k)+dk-1(k,j)170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107); $myPicture->drawFilledRectangle($x1,$y1,$x2,$y2,$Settings); /* Write the picture title */ $myPicture>setFontProperties(array("FontName"=>"pChart/fonts/Silkscreen.ttf","FontSize"=>6)); $myPicture->drawText($x,$y,"THE SHORTEST PATH",array("R"=>255,"G"=>255,"B"=>255)); /* Draw circle */ $myPicture>drawCircle($x1,$y1,$x2,$y2,array("R"=>255,"G"=>0,"B"=>255,"Ticks"=>0,"Weigh t"=>3)); /* Draw line $myPicture>drawLine($x1,$y1,$x2,$y2,array("R"=>255,"G"=>0,"B"=>0,"Ticks"=>0,"Weight"= >1)); Trang 24 - Cài đặt thuật toán Dijkstra PHP $SoDinh = mysql_num_rows(mysql_query('SELECT MaDiem FROM DIEM')); $SoCanh = mysql_num_rows(mysql_query('SELECT MaDuong FROM DUONG')); //Doc du lieu tu CSDL vao mang for($u=1;$u0,"Weight"=>1)); //Xuat ten cac duong da di $sql = 'SELECT TenDuong FROM DUONG WHERE ((DiemDau='.$kq[$i].') AND (DiemCuoi='.$kq[$i-1].'))'; $sql = $sql.' OR ((DiemDau='.$kq[$i-1].') AND (DiemCuoi= '.$kq[$i].'))'; $duong = mysql_query($sql); $d = mysql_fetch_assoc($duong); /* Draw an arrow with a 45 degree angle */ $ArrowSettings = array("FillR"=>37,"FillG"=>78,"FillB"=>117, "Length"=>40,"Angle"=>315); $myPicture->drawArrowLabel(ceil(($r1['x']+$r2['x'])/2), ceil(($r1['y']+$r2['y'])/2),$d['TenDuong'],$ArrowSettings); if($kq[$i]==$start) $myPicture->drawText($r1['x']-10,$r1['y']+10,'A', array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>100,"FontSize"=>12)); if($kq[$i-1]==$end) $myPicture->drawText($r2['x']-10,$r2['y']+10,'B', array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>100,"FontSize"=>12)); } } Trang 26 3.2.3 Trang cập nhật sở liệu - Quản lý tuyến đường: - Quản lý địa điểm 3.3 Kết thử nghiệm 3.3.1 Dữ liệu đầu vào Trang 27 - Bảng DUONG ………………………… - Bảng USERS - Bảng DIEM …………………………… Trang 28 3.3.2 Dữ liệu đầu Trang 29 KẾT LUẬN Bài tốn tìmđườngngắn tốn có ứngdụng thực tiễn cao có nhiều giải thuật để giải tốn Đề tài trình bày khái quát số giải thuật tìm kiếm đườngngắn phương diện: Thuật toán, minh họa ví dụ cụ thể cài đặt chương trình cụ thể Được giúp đỡ nhiệt tình thầy Trần Quốc Chiến với mong muốn đưa giải thuật vào ứngdụng thực tế Đề tài thiết kế website tìmđườngngắn giải thuật Dijkstra Bên cạnh đề tài bộc lộ nhiều thiếu sót chưa có số liệu cụ thể mà mang tính chất minh họa thuật tốn Rất mong nhận cảm thơng đóng góp ý kiến thầy giáo bạn để đề tài mang tính thực tế cao Em xin chân thành cảm ơn ! Trang 30 TÀI LIỆU THAM KHẢO [1] PGS TSKH Trần Quốc Chiến: Giáo trình lý thuyết đồ thị ứng dụng, Đà Nẵng 2007 [2] PGS TSKH Trần Quốc Chiến: Phương pháp đồ thị giải tốn tìm hành trình giao thơng nhanh nhất, Kỷ yếu hội thảo khoa học 30 năm xây dựng phát triển trường ĐHSP – ĐHĐN, 2005 [3] TS Trần Văn Hoài: Đườngngắn nhất, 2008-2009 [4] Trương Mỹ Dung: Bài tốn tìmđườngngắn [5] Keijo Ruohonen: Graph theory [6] Một số trang web nước như: - http://www.izwebz.com/ - http://www.w3schools.com/ - http://www.diadiem.com - Một số website khác Trang 31 Ý KIẾN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ………………………………………………………………………………… Đà Nẵng, ngày tháng năm 2012 Giáo viên hướng dẫn Trang 32 Mục lục CHƯƠNG I: TỔNG QUAN VỀ LÝ THUYẾT ĐỒ THỊ 1.1 Định nghĩa đồ thị 1.2 Các thuật ngữ 1.3 Định nghĩa đường đi, chu trình , đồ thị liên thơng CHƯƠNG II: BÀI TỐN TÌMĐƯỜNGĐINGẮNNHẤT TRONG ĐỒ THỊ 2.1 Phát biểu toán 2.2 Một số thuật tốn tìmđườngngắn 2.2.1 Thuật toán Dikkstra 2.2.2 Thuật toán Bellman-Ford 13 2.2.3 Thuật toán Floyd 15 2.2.4 Thuật toán Floy-Warshall 18 CHƯƠNG III: CÀI ĐẶT THỬ NGHIỆM 23 3.1 Phát biểu toán 23 3.2 Thiết kế chương trình 23 3.2.1 Dữ liệu đầu vào 23 3.2.2 Cấu trúc liệu đầu 24 3.2.3 Trang cập nhật sở liệu 27 3.3 Kết thử nghiệm 27 3.3.1 Dữ liệu đầu vào 27 3.3.2 Dữ liệu đầu 29 KẾT LUẬN 30 TÀI LIỆU THAM KHẢO 31 Trang 33 ... tình thầy Trần Quốc Chiến, tơi sâu tìm hiểu thuật tốn tìm đường ngắn đồ thị thấy tính hữu ích chúng Do đó, tơi chọn đề tài nghiên cứu “ Bài tốn tìm đường ngắn ứng dụng Tuy nhiên, thời gian khơng... Floyd-Warshall Chứng minh: Ở định lý ta chứng minh D ma trận độ dài đường ngắn Bây ta cần chứng minh thêm phương pháp xây dựng đường theo ma trận P thuật toán thực cho đường ngắn Với cặp đỉnh...