(Luận văn) bài toán tìm đường đi ngắn nhất và ứng dụng

36 1 0
(Luận văn) bài toán tìm đường đi ngắn nhất và ứng dụng

Đ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

ĐẠ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 ĐI NGẮN NHẤT VÀ ỨNG DỤNG lu an n va to p ie gh tn KHÓA LUẬN TỐT NGHIỆP d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si 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 lu an 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 n va 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 gh tn to p ie Em xin chân thành cảm ơn! d oa nl w Đà Nẵng, tháng 05 năm 2012 Sinh viên Nguyễn Tiến Duy ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si ĐẶ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 ứng dụ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 ứng dụ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 tốn nhiều lĩnh vực: khoa học, kĩ thuật, kinh tế, xã hội v.v lu 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 đườ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” an n va 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 p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th si 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ế An Giang lu TPHCM an Hà Nội Bình Định n va to Quãng Ngãi Phú Yên gh tn Khánh Hịa p ie 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 khơng có 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: d oa nl w va an lu Đị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 ll u nf 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 oi m Đồng Nai Huế z at nh Hà Tây An Giang z Bình Định Quãng Ngãi m co l gm HCM @ Hà Nội an Lu Phú Yên Khánh Hòa Hình 1.2 Sơ đồ mạng máy tính với đa kênh thoại n va ac th Trang si Đị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 Huế An Giang TPHCM Hà Nội Quãng Ngãi 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 lu an n va 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: p ie gh tn to nl w Ta đến định nghĩa sau: d oa Đị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 an lu u nf va 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: ll Đị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 oi m z at nh z 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 gm @ m co l 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 an Lu Đị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 n va ac th Trang si 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 lu an n va 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 : tn to p ie gh Định lý Giả sử G=(V,E) đồ thị vơ hướng với m cạnh Khi 2m=∑ deg(v) vV w d oa nl 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 lu u nf va an 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 ll m oi 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) vV vO vU 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 z at nh z m co l gm @ an Lu n va ac th Trang si Đị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 lu Thí dụ Xét đồ thị cho hình 1.5 Ta có an n va 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 to p ie gh tn 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ó oa nl w Định lý Giả sử G=(V,E) đò thị có hướng , ∑deg+(v)= ∑deg-(v)=|E| vV vV d 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 ll u nf va an lu oi m 1.3 Định nghĩa đường đi, chu trình , đồ thị liên thông z at nh z Định nghĩa Đường độ dài n từ đỉnh u đến đỉnh v, n số ngun 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 gm @ m co l Đường nói cịn 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 an Lu n va ac th Trang si 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 b d 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 lu an n va Đị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 tn to u=x0 , v=xn , ( xi , xi+1 )  A , i= 0, 1, , , n-1 p ie gh Đường nói cịn biểu diễn dạng cung: (x0 , x1 ) , ( x1 , x2), , ( xn-1 , xn ) d oa nl w Đỉ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 lu ll u nf va an 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) khơng phải cung đồ thị Dãy b,c,f,e,b chu trình độ dài Đường a,b,e,d,a,b có độ dài là đườ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ịn 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ị ? oi m z at nh z @ m co l gm Đị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 an Lu n va ac th Trang si 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 lu an Định nghĩa Ta gọi đồ thị đồ thị G=(V,E) đồ thị H=(W,F), W  V F  E va n 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ị gh tn to p ie Thí dụ Đồ thị H hình 1.7 gồm thành phần liên thông H1,H2,H3 d oa nl w 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 lu ll u nf va an Đị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ị m oi 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 z at nh z @ l gm Định nghĩa Đồ thị có hướng G=(V,A) gọi liên thơng mạnh ln tìm đường hai đỉnh m co Đị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 an Lu n va ac th Trang si 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, cịn 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 lu an n va 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 tn to p ie gh Định lý Đồ thị vô hướng liên thông định hướng cạnh nằm chu trình d oa nl w 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 va an lu ll u nf 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 oi m z at nh 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 z m co l gm @ an Lu n va ac th Trang si lu an n va Ma trận P=[p(i,j)] dùng để xác định đường ngắ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 khơng có 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 khơng có 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 đường ngắ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) tn to p ie gh Phương pháp pháp xác định đường ngắn từ đỉnh i đến đỉnh j: Đường ngắ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 oa nl w d Định lý: Thuật toán 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 (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 ll u nf va an lu oi m z at nh z Ta chứng minh, quy nạp theo k, bổ đề sau: Bổ đề: μk (i, j) có độ dài dk(i,j), tức đường ngắ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 m co l gm @ an Lu n va ac th Trang 19 si lu an n va 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 (𝑖, 𝑗) đường ngắ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 đường ngắ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); lu ll u nf va an /* 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)); oi m z at nh /* Draw circle */ $myPicture>drawCircle($x1,$y1,$x2,$y2,array("R"=>255,"G"=>0,"B"=>255,"Ticks"=>0,"Weigh t"=>3)); z gm @ m co l /* Draw line $myPicture>drawLine($x1,$y1,$x2,$y2,array("R"=>255,"G"=>0,"B"=>0,"Ticks"=>0,"Weight"= >1)); an Lu n va ac th Trang 24 si - 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)); p ie gh tn to d oa nl w //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); ll u nf va an lu oi m z at nh z 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)); } m co l gm @ an Lu } n va ac th Trang 26 si 3.2.3 Trang cập nhật sở liệu - Quản lý tuyến đường: lu an n va p ie gh tn to - Quản lý địa điểm d oa nl w ll u nf va an lu oi m z at nh z m co 3.3.1 Dữ liệu đầu vào l gm @ 3.3 Kết thử nghiệm an Lu n va ac th Trang 27 si - Bảng DUONG lu an va n ………………………… tn to p ie gh - Bảng USERS d oa nl w - Bảng DIEM ll u nf va an lu oi m z at nh z m co l gm @ an Lu …………………………… n va ac th Trang 28 si 3.3.2 Dữ liệu đầu lu an n va p ie gh tn to d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th Trang 29 si KẾT LUẬN Bài tốn tìm đường ngắn tốn có ứng dụng thực tiễn cao có nhiều giải thuật để giải toán Đề tài trình bày khái quát số giải thuật tìm kiếm đường ngắ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 ứng dụng thực tế Đề tài thiết kế website tìm đường ngắ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 lu an n va 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 p ie gh tn to Em xin chân thành cảm ơn ! d oa nl w ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th Trang 30 si 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: Đường ngắn nhất, 2008-2009 [4] Trương Mỹ Dung: Bài tốn tìm đường ngắn lu [5] Keijo Ruohonen: Graph theory an n va [6] Một số trang web nước như: http://www.izwebz.com/ - http://www.w3schools.com/ - http://www.diadiem.com p ie gh tn to - Một số website khác d oa nl w - ll u nf va an lu oi m z at nh z m co l gm @ an Lu n va ac th Trang 31 si Ý KIẾN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN lu an n va ………………………………………………………………………………… p ie gh tn to d oa nl w ll u nf va an lu oi m Đà Nẵng, ngày tháng năm 2012 z at nh Giáo viên hướng dẫn z m co l gm @ an Lu n va ac th Trang 32 si 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 ĐI NGẮN NHẤT TRONG ĐỒ THỊ 2.1 Phát biểu toán 2.2 Một số thuật toán tìm đường ngắ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 lu an CHƯƠNG III: CÀI ĐẶT THỬ NGHIỆM 23 3.1 Phát biểu toán 23 n va 3.2 Thiết kế chương trình 23 tn to 3.2.1 Dữ liệu đầu vào 23 gh 3.2.2 Cấu trúc liệu đầu 24 p ie 3.2.3 Trang cập nhật sở liệu 27 3.3 Kết thử nghiệm 27 w 3.3.1 Dữ liệu đầu vào 27 oa nl 3.3.2 Dữ liệu đầu 29 d KẾT LUẬN 30 lu ll u nf va an TÀI LIỆU THAM KHẢO 31 oi m z at nh z m co l gm @ an Lu n va ac th Trang 33 si

Ngày đăng: 14/07/2023, 18:31

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan