Một số bài toán trong lý thuyết đồ thị

54 364 0
Một số bài toán trong lý thuyết đồ thị

Đ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

TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Đề tài: Một số toán lí thuyết đô thị Sinh viên thực hiện: LÊ THỊ DUNG Giáo viên hướng dẫn: THS TRẦN XUÂN SANG Vinh 5/2009 GIỚI THIỆU ĐỀ TÀI A Giới thiệu chung Bước sang kỷ 21, nhìn lại kỷ 20 kỷ mà người đạt nhiều thành tựu khoa học rực rỡ nhất, thành tựu bùng nổ ngành khoa học máy tính Sự phát triển kỳ diệu máy tính kỷ gắn liền với phát triển toán học đại, toán rời rạc Toán học rời rạc nghiên cứu cấu trúc có tính chất rời rạc không liên tục Toán rời rạc bao gồm lĩnh vực như: quan hệ, lý thuyết đồ thị, logíc toán, ngôn ngữ hình thức, lý thuyết đồ thị phận trọng tâm với nhiều khối lượng kiến thức lý thú nghiên cứu nhiều Toán rời rạc nói chung lý thuyết đồ thị nói riêng công cụ thiết yếu cho nhiều ngành khoa học kỹ thuật, thành phần quan trọng học vấn sinh viên ngành kỹ thuật đặc biệt sinh viên ngành Tin học Lý thuyết đồ thị, với cách tiếp cận đối tượng nghiên cứu phương pháp tư độc đáo thực ngày hữu ích có nhiều ứng dụng phong phú gây không bất ngờ Máy tính mà thân với trình làm việc mang tính rời rạc, nên điều tương hợp gắn chặt lý thuyết đồ thị với công nghệ máy tính việc nghiên cứu đối tượng có tính chất rời rạc Trên thực tế nhiều toán liên quan đến tập đối tượng mối liên hệ chúng, đòi hỏi toán học phải đặt mô hình biểu diễn cách chặt chẽ tổng quát ngôn ngữ kí hiệu đồ thị Những ý tưởng đưa từ kỉ thứ XVIII nhà toán học thuỵ sỹ Leonhard Euler, ông dùng mô hình đồ thị để giải toán cầu Konigsbirg tiếng Mặc dù lí thuyết đồ thị khoa học phát triển từ lâu lại có nhiều ứng dụng đại Đặc biệt khoảng vài mươi năm trở lại đây, với đời máy tính điện tử phát triển nhanh chóng tin học, lí thuyết đồ thị quan tâm đến nhiều Đặc biệt thuật toán đồ thị có nhiều ứng dụng nhiều lĩnh vực khác như: Mạng máy tính, Lí thuyết mã, Tối ưu hoá… B Mục đích đề tài Trong phạm vi luận văn nghiên cứu số toán lí thuyết đồ thị: Bài toán tìm chu trình Euler với thuật toán Fleury phương pháp sử dụng ngăn xếp, Bài toán tìm đường ngắn với Thuật toán Dijkstra, Ford_Bellman, Ployd C Cấu trúc đề tài Chương I: Một số vấn đề đồ thị Chương II: Bài toán tìm đường ngắn  Thuật toán Dijkstra  Thuật toán Ford_Bellman  Thuật toán Ployd Chương III: Bài toán tìm chu trình Euler  Thuật toán Fleury  Phương pháp sử dụng ngăn xếp CHƯƠNG MỘT SỐ VẤN ĐỀ CƠ BẢN CỦA ĐỒ THỊ 1.1 Các định nghĩa đồ thị 1.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, loại đồ thị khác phân biệt kiểu số lượng cạnh nối hai đỉnh đồ thị Giả sử V tập hữu hạn, không rỗng phần tử E ∈ V × V Bộ G = gọi đồ thị hữu hạn Mỗi phần tử v ∈ V gọi đỉnh phần tử e = (u,v) ∈ E gọi cạnh đồ thị G = Xét cạnh e ∈ E tồn đỉnh u,v ∈ V cho e = (u, v), ta nói u nối với v u v thuộc e e - Nếu cạnh e = (u, v) mà u u v hai đỉnh phân v biệt ta nói u, v hai đỉnh kề - Nếu e = (v, v) e cạnh có hai đỉnh trùng ta gọi khuyên - Nếu e = (u, v) mà u,v cặp đỉnh có phân biệt thứ tự hay có hướng từ u đến v e cung, u gốc v u đỉnh ra, v đỉnh vào - Khi cặp đỉnh (u,v) có nhiều cạnh ta nói cạnh cặp đỉnh cạnh song song cạnh bội v v u uu a) b) a Tại đỉnh u có khuyên v c) b Một cung có hướng từ u sang v c Cặp đỉnh (u,v) có cạnh song song Hình 1.1 Trong thực tế ta gặp nhiều vấn đề mà dùng mô hình đồ thị để biểu diễn, sơ đồ mạng máy tính, sơ đồ mạng lưới giao thông, sơ đồ thi công công trình Ví dụ: Xét mạng máy tính, biểu diễn mạng mô hình đồ thị, máy đỉnh, máy nối với dây truyền, chúng tương ứng cạnh đồ thị Một mô hình mạng máy tính Hình 1.2 có máy tính A, B, C, D tương ứng đỉnh, máy nối trực tiếp với tương ứng với cặp đỉnh kề A B C D Hình 1.2 Ví dụ đồ thị 1.1.2 Đồ thị đơn Đồ thị G = gọi đồ thị đơn hai đỉnh nối với không cạnh (cung), tức đồ thị cạnh bội, khuyên (Hình 1.2 ví dụ đồ thị đơn) 2.1.3 Đa đồ thị Đồ thị G = gọi đa đồ thị có cặp đỉnh nối với hai cạnh (hai cung) trở lên 2.1.4 Giả đồ thị Là đồ thị có khuyên, chứa cạnh bội, cạnh đơn Tóm lại loại đồ thị tổng quát B A a) b) 1.2 Các loạiDđồ thị B b Giả đồ thị A Hình 1.3 a Đa đồ thị C 1.2.1 Đồ thị vô hướng D C Đồ thị G = gọi đồ thị vô hướng tất cạnh e ∈ E mà cặp đỉnh thuộc e = (u,v) ∈ V không phân biệt thứ tự Đồ thị vô hướng đồ thị cung Hình 1.3.a biểu diễn đồ thị vô hướng 1.2.2 Đồ thị có hướng Đồ thị G = gọi đồ thị có hướng tất cạnh e ∈ E mà cặp đỉnh thuộc e = (u,v) ∈ V có phân biệt thứ tự Đồ thị có hướng đồ thị mà e = (u,v) ∈ V cung C Hình 2.1 Đồ thị có hướng B 1.2.3 Đồ thị hỗn hợp A Đồ thị G = vừa có cạnh vô hướng, vừa có cạnh có hướng gọi đồ thị hỗn hợp Loại đồ thị dùng tới Vấn đề phân chia đồ thị thuật ngữ đồ thị mang tính tương đối, chưa mang tính thống chuẩn nhiều tài liệu 1.3 Một số khái niệm tính chất đồ thị 1.3.1 Bậc đồ thị a Bậc đồ thị vô hướng Cho đồ thị vô hướng G = Xét đỉnh v ∈ V đặt m(v) số cạnh thuộc đỉnh v m(v) gọi bậc đỉnh v Nếu v có khuyên m(v) cộng thêm m(v) = 3v - Nếu m(v) = đỉnh v gọi đỉnh cô lập m(v) = v - Nếu m(v) = đỉnh v gọi đỉnh treo Ta đặt m(G ) = ∑ m(v) , v∈V m(G) gọi bậc đồ thị vô hướng G = b Bậc đồ thị có hướng Cho đồ thị có hướng G = xét đỉnh v ∈ V, ký hiệu m+(v) số cung vào đỉnh v, m-(v) số cung khỏi v Khi ta gọi m +(v) bậc vào đỉnh v m-(v) bậc đỉnh v - Nếu m+(v) + m-(v) = đỉnh v gọi đỉnh cô lập - Nếu m+(v) + m-(v) = đỉnh v gọi đỉnh treo Ta đặt m(G ) = ∑ m + (v) + ∑ m − (v) v∈V v∈V Khi m(G) gọi bậc đồ thị có hướng G = Trong đồ thị có hướng m+(v) = m-(v) = E Ví dụ: - Xét đồ thị vô hướng Hình 1.3.a ta có: m(G) = m(A) + m(B) + m(C) + m(D) = + + + = 10 - Xét đồ thị có hướng Hình 2.1 ta có: m(G) = [m+(A) + m+(B) + m+(C) ] + [m-(A) + m-(B) + m-(C)] = [1 + + 1] + [2 + +1] = Định lý: Cho đồ thị hữu hạn G = bậc đồ thị G lần số cạnh đồ thị, tức m(G) = E Chứng minh: Ta thấy cạnh thuộc đỉnh, xoá cạnh bậc G giảm 2, xoá khuyên e = (u,u) bậc G giảm 2, xoá hết cạnh, hết khuyên bậc đồ thị Từ suy định lý Hệ quả: Số đỉnh bậc lẻ đồ thị G = số chẵn Chứng minh: Gọi A B tương ứng tập đỉnh bậc lẻ tập đỉnh bậc chẵn đồ thị Ta có: m = ∑ m(v ) = ∑ m (v ) + ∑ m(v ) v∈V v∈A v∈B Do vế trái chẵn nên tổng vế phải số chẵn Mà tổng bậc đỉnh bậc chẵn (v ∈ A) số chẵn nên tổng bậc đỉnh bậc lẻ (v ∈ B) 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ậc lẻ phải số chẵn 1.3.2 Đường chu trình a Đường Xét đồ thị G = với - Tập đỉnh V = {v1,v2, ,vn} - Tập cạnh E = {e1,e2, ,em} Tập hợp đỉnh kề từ vi đến vj gọi đường Kí hiệu: vivi1vi2 vj ≡ vieivi1ei1vi2ei2 ejvj, cạnh, đỉnh đường lặp lại Độ dài đường số cạnh (hoặc cung) đường Chú ý đồ thị có hướng, cung uv chẳng hạn đường đi từ gốc (u) đến (v) ngược lại b Chu trình Xét đường từ vi - vj Nếu vi ≡ vj đường gọi chu trình Như chu trình đường có đỉnh xuất phát đỉnh kết thúc trùng Chú ý đường đồ thị có hướng không ngược chiều mũi tên - Đường (chu trình) gọi đơn qua cạnh không lần - Đường (chu trình) gọi sơ cấp qua đỉnh lần A B Hình 3.1 E Ví dụ Hình 3.1 ADBE đường sơ cấp từ A đến E độ dài 3; ABCDBE đường không sơ cấp (qua B lần) từ A đến E độ dài 5; ABDAB đường không đơn (chứa cạnhD AB lần) từ A đếnCB độ dài 4; ABDA Là chu trình đơn sơ cấp độ dài 3; CC đường độ dài Xét đồ thị có hướng Hình 2.1 ABCB đường độ dài 3; CBA không đường cung từ B đến A Định lý: Nếu đồ thị G = đỉnh có bậc không nhỏ (∀v ∈ V | m(v) ≥ 2) G tồn chu trình Chứng minh: Xét tất đường đơn Vì đồ thị hữu hạn số đường đơn hữu hạn Chọn đường dài ví dụ từ v i1 đến vij +1 (xem hình vẽ đây) Theo giả thiết m(v) ≥ nên tồn đỉnh v i0 cạnh nối đỉnh vi1 vi0 Đỉnh vi0 thuộc đỉnh đường chọn chẳng hạn vij, đường dài nên chứng tỏ tồn chu trình đường 10 Begin For j:=1 to n if i j then Begin if a[i,j]=MaxInt then writeln(' khong co duong di tu ',i:2,'den',j:2) else begin Write(i,'=>',j,': '); Write(i,'->'); duongdingannhat(i,j); Write(j); Writeln; writeln(' dai duong di tu',i:3,'den',j:3,' la:',a [i,j]:3); writeln(' -'); End; end; Writeln('Press Enter to continue '); Readln; writeln('****************************************************'); End; Readln; End; BEGIN NhapSoLieu; Indulieu; Ployd; hienthi; END 40 41 CHƯƠNG BÀI TOÁN TÌM CHU TRÌNH EULER 3.1 Giới thiệu toán Thành phố Konigsberg thuộc phố (nay Kalinirngad thuộc cộng hoà Nga) Được chia làm vùng nhánh sông Pregel Các vùng gồm hai vùng bên bờ sông(B,C), đảo kneiphof(A) miền nằm nhánh sông Pregel(D) Vào kỷ XVIII, người ta xây dựng cầu nối vùng với Người dân tự hỏi: Liệu có cách xuất phát địa điểm thành phố, qua cầu, lần quay trở nơi xuất phát không? Nhà toán học Thuỵ Sỹ Leonhard Eulrer giải toán coi ứng dụng lí thuyết đồ thị, ông mô hình hoá sơ đồ cầu đa đồ thị, vùng biểu diễn đỉnh, cầu cạnh, Bài toán đặt tìm đường qua cầu cầu lần tổng quát hoá toán : Có tồn chu trình đơn đa đồ thị chứa tất cạnh 3.2 Thuật toán Fleury a Thuật toán: Thuật toán Fleury tìm chu trình Euler đồ thị vô hướng liên thông, đỉnh có bậc chẵn đồ thị có hướng liên thông yếu đỉnh có bán bậc bán bậc vào Xuất phát từ đỉnh, ta chọn cạnh liên thuộc với để nguyên tắc sau: - Xoá cạnh qua 42 - Chỉ qua cầu không cách khác để chọn Chọn không tiếp tục nữa, đường tìm chu trình Euler Ví dụ với đồ thị sau: 5 7 8 Nếu xuất phát từ đỉnh có cách tiếp: Hoặc sang đỉnh sang đỉnh giả sử ta sang đỉnh xoá cạnh (1,2) vừa qua Từ có cách sang nên cho dù (2,4) cầu ta phải qua sau xoá cạnh (2,4) Đến cạnh lại đồ thị vẽ nét liền, cạnh bị xoá vẽ nét đứt 43 Bây đứng đỉnh ta có cách tiếp: Sang 4,sang sang Vì (4,3) cầu nên ta không theo cạnh (4,3) mà theo cạnh (4,5) (4,6) Nếu theo (4,5) tiếp tục ta chu trình Euler là: (1,2,4,5,7,8,6,4,3,1) theo (4,6) tìm chu trình Euler là: (1,2,4,6,8,7,5,4,3,1) b Chương trình Phần ta cài thuật toán Fleury đa đồ thị vô hướng Để đơn giản ta coi đồ thị có chu trình Euler, công việc phải tìm chu trình Input: File văn fleury.inp - Dòng 1: chứa số đỉnh đồ thị (n 0) then begin Inc(last); mang[Last]:=v; free[v]:=False; 45 If free[x] then Break; end; Until First> Last; Kiemtra:=not Free[x]; Inc(a[x,y]); Inc(a[y,x]); end; procedure chutrinh; var dinhdau,dinhtiep,Count,v:integer; Begin dinhdau:=m; write(m:5); count:=1; repeat Next:=0; for v:=1 to n if a[dinhdau,v]>0 then begin dinhtiep:=v; if kiemtra(dinhdau,v) then Break; end; If dinhtiep0 then Begin Dec(a[dinhdau,dinhtiep]); Dec(a[dinhtiep,dinhdau]); Write(dinhtiep:5); 46 Inc(count); if count mod 16= then Writeln; dinhdau:=dinhtiep; end; Until dinhtiep=0; Writeln; end; BEGIN assign(Input,'fleury.inp'); reset(Input); Assign(Output,'fleury.out'); Rewrite(Output); writeln(' chu trinh eu ler:'); Doc_tep; chutrinh; Close(Input); Close(Output); END 47 3.3 Tìm chu trình Euler sử dụng phương pháp ngăn xếp a Thuật toán: -Bắt đầu từ chu trình đơn C, tìm đường cách tuỳ ý, ghi nhận đường vào chu trình từ đỉnh u bất kỳ, trở đỉnh u, qua cạnh xoá cạnh khỏi đồ thị - Nếu tất cạnh bị xoá ta chu trình Euler - Nếu không: + Rà soát đỉnh C, đỉnh tìm thấy đỉnh u, cạnh xuất phát từ u trở đỉnh u Trên đường đi, xoá cạnh qua ghi nhận lại +Thay đỉnh u C chu trình vừa tìm Thực tất cạnh xoá ta chu trình Euler b Chương trình program Euler_Circuit; const max = 100; maxE = 20000; var a: array[1 max, max] of Integer; stack: array[1 maxE] of Integer; n,m, last: Integer; 48 procedure Enter; var u, v, k: Integer; begin FillChar(a, SizeOf(a), 0); Readln(n,m); while not SeekEof begin Readln(u, v, k); a[u, v] := k; a[v, u] := k; end; end; procedure Push(v: Integer); begin Inc(last); Stack[last] := v; end; function Pop: Integer; begin Pop := Stack[last]; Dec(last); end; function Get: Integer; begin Get := Stack[last]; end; procedure chutrinheuler ; 49 var u, v, count: Integer; begin Stack[1] := m; last := 1; count := 0; while last begin u := Get; for v := to n if a[u, v] > then begin Dec(a[u, v]); Dec(a[v, u]); Push(v); Break; end; if u = Get then begin Inc(count); Write(Pop:5, ' '); if count mod 16 = then Writeln; end; end; end; BEGIN Assign(Input, 'stack.inp'); Reset(Input); Assign(Output, 'stack.out'); Rewrite(Output); writeln(' chu trinh euler:'); 50 Enter; Chutrinheuler; Close(Input); Close(Output); END 51 Hạn chế: Trong trường hợp xấu nhất, Stack phải lưu toàn số cạnh đồ thị Nên với đồ thị mà số cạnh lớn, sử dụng phương pháp Mở rộng: Phương pháp áp dụng cho đồ thị có hướng Khi chu trình tìm bị ngược chiều cạnh Cần đảo ngược lại thứ tự đỉnh chu trình 52 KẾT LUẬN Đề tài “Một số toán lí thuyết đồ thị” đạt kết nghiên cứu sau: Bài toán tìm chu trình Euler thuật toán Dijkstra, Ford-Bellman, ployd, Bài toán tìm đường ngắn với thuật toán Fleury phương pháp sử dụng ngăn xếp, thực cài đặt chương trình với thuật toán Ứng dụng đồ thị thực tiễn quan trọng việc nghiên cứu số toán lí thuyết đồ thị góp phần phát triển kĩ thuật tin học để giải số toán thực tế như: xác định xem hai máy tính mạng truyền tin hay không nhờ mô hình đồ thị mạng máy tính, hay toán nối mạng máy tính cho tổng chi phí nhỏ nhất, có ứng dụng đồ thị không trực tiếp vào lĩnh vực tin học, ví dụ toán lập lich công tác, xác định đường ngắn điểm nút giao thông, toán mô hình tốt đồ thị giải chúng dễ dàng máy tính Hướng phát triển: - Nghiên cứu toàn diện lí thuyết đồ thị - Với toán cần đưa ứng dụng - Chương trình cài đặt cần tối ưu cho tất loại đồ thị 53 TÀI LIỆU THAM KHẢO Đỗ Đức Giáo, Toán Rời Rạc, NXB Đại Học Quốc Gia Hà Nội , năm 2002 Lê Minh Hoàng, Bài giảng chuyên đề Nguyễn Đức Nghĩa - Nguyễn Tô Thành, Toán Rời Rạc, NXB Giáo Dục 2005 54 [...]... thông 1.3.4 Đồ thị con và đồ thị bộ phận Cho đồ thị G = - Nếu trong đồ thị đó ta bỏ đi một số đỉnh nào đó và các cạnh xuất phát từ đỉnh đó thì phần còn lại của đồ thị được gọi là đồ thị con của đồ thị G đã cho, hoặc nếu D = là đồ thị con của G = thì V' ⊆ V và E' ⊆ E - Nếu trong đồ thị G ta bỏ đi một số cạnh nhưng giữ nguyên các đỉnh thì phần còn lại của đồ thị được gọi là đồ thị bộ phận... nên ta phân loại một số đồ thị thành các dạng đặc biệt sau: a Đồ thị đều Là một đồ thị mà mọi đỉnh có cùng bậc, nếu bậc này bằng k thì đó là đồ thị k đều a) b) Hình 4.3 a: G- 1 đều; c) b: G - 2 đều; d) c: G - 2 đều; d: G - 3 đều Trường hợp riêng như đồ thị Hình 4.3.b và Hình 4.3.c là những đồ thị vòng ký hiệu Cn (n là số đỉnh) b Đồ thị đầy đủ Đồ thị đầy đủ n đỉnh, ký hiệu K n là đơn đồ thị vô hướng mà... đến f thì ta kí hiệu khoảng cách đó là= + ∞ Dưới đây ta xét một số thuật toán để tìm đường đi ngắn nhất trong đồ thị có trọng số 2.2 ĐƯỜNG ĐI NGẮN NHẤT TRONG ĐỒ THỊ CÓ TRỌNG SỐ a Khái niệm Cho đồ thị hữu hạn G = với mỗi cạnh e ∈ E ta đặt tương ứng với số dương w(e) là trọng số của e Gọi là đồ thị có trọng số Gọi a là một đường đi nào đó trong G = Giả sử a = vi1ei1vi2ei2 vin – 1ein-1vin,... trường hợp riêng của đồ thị đều G - 3 là những đồ thị đầy đủ a) b) Hình 4.4 a - đồ thị đầy đủ K2 ; 15 b - đồ thị đầy đủ K4 c Đồ thị bánh xe Ký hiệu Wn, thu được từ đồ thị vòng có n đỉnh bằng cách bổ sung một đỉnh mới nối tất cả các đỉnh đã có W4 W5 W6 Hình 4.5 Các dạng đồ thị bánh xe d Một vài ứng dụng của đồ thị đặc biệt Ở các mạng cục bộ (LAN), các máy tính thường được kết nối theo một cách thức nào... i 1Đồ thị liên thông Vij+1 Cho đồ thị G = Hai đỉnh phân biệt u,v ∈ V được gọi là liên thông Vi0 các đỉnh u,v với nhau Đồ thị G được gọi là liên nếu tồn tại một đường đi nối thông nếu với hai đỉnh phân biệt bất kỳ trong đồ thị đều là liên thông Hình 3.1 là một đồ thị liên thông vì luôn có đường đi nối hai đỉnh bất kỳ của đồ thị Xét 2 đồ thị liên thông G1 = và G2 = , V1 ∩ V2 = Φ trong. .. được gọi là đồ thị bộ phận của đồ thị G 1.4 Các dạng biểu diễn của đồ thị 1.4.1 Biểu diễn hình học của đồ thị Để có cái nhìn trực quan ta thường biểu diễn đồ thị bằng hình học, một đồ thị có thể biểu diễn trên một mặt phẳng hoặc trong không gian Phương pháp biểu diễn như sau: Biểu diễn các đỉnh của đồ thị bằng các điểm (hay vòng tròn nhỏ, ô vuông nhỏ) và nối hai điểm bằng một đường (cong, thẳng, mũi tên)... lưu vết đường đi ngay trong quá trình tìm kiếm Dưới đây ta sẽ xét 1 số thuật toán tìm đường đi ngắn nhất từ đỉnh s tới đỉnh f trên đơn đồ thị có hướng G=(V,E) có n đỉnh và m cung Trong trường hợp đơn đồ thị vô hướng, bài toán tìm đường đi ngắn nhất có thể dẫn về bài toán trên đồ thị có hướng bằng cách thay đổi mỗi cạnh của nó bằng hai cung có hướng ngược chiều nhau Các thuật toán dưới đây sẽ luôn tìm... vi Hình 4.9 đồ thị G1 và G2 được biểu diễn bằng danh sách kề như sau: FIRST 1 2 3 Nil 2 1 3 4 Nil 13 1 2 4 Nil 1 2 3 Nil Danh sách kề của đồ thị G1 FIRST 41 2 3 2 Nil 3 Nil 1 Nil 4 2 3 Nil Danh sách kề đồ thị G2 Bộ nhớ sử dụng cho phương pháp biểu diễn danh sách kề là tỷ lệ thuận với tổng số đỉnh và các cạnh của đồ thị 20 CHƯƠNG 2 BÀI TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT 2.1 Giới thiệu bài toán Trong thực tế... luôn tìm được đường đi ngắn nhất 22 2.2.1 Thuật toán FORD-BELLMAN a Thuật toán: Cho đồ thị có hướng được lưu vào một tệp văn bản dưới đây Input: File văn bản • Dòng 1: Chứa số đỉnh (n ... B, đồ thị vô hướng tương ứng liên thông 1.3.4 Đồ thị đồ thị phận Cho đồ thị G = - Nếu đồ thị ta bỏ số đỉnh cạnh xuất phát từ đỉnh phần lại đồ thị gọi đồ thị đồ thị G cho, D = đồ thị. .. dụ đồ thị 1.1.2 Đồ thị đơn Đồ thị G = gọi đồ thị đơn hai đỉnh nối với không cạnh (cung), tức đồ thị cạnh bội, khuyên (Hình 1.2 ví dụ đồ thị đơn) 2.1.3 Đa đồ thị Đồ thị G = gọi đa đồ. .. Nếu đồ thị G ta bỏ số cạnh giữ nguyên đỉnh phần lại đồ thị gọi đồ thị phận đồ thị G 1.4 Các dạng biểu diễn đồ thị 1.4.1 Biểu diễn hình học đồ thị Để có nhìn trực quan ta thường biểu diễn đồ thị

Ngày đăng: 15/12/2015, 12:13

Từ khóa liên quan

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

Tài liệu liên quan