Ứng dụng lý thuyết đồ thị giải một số bài toán trong thực tế

74 1.3K 3
Ứng dụng lý thuyết đồ thị giải một số bài toán trong thực tế

Đ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

MC LC Lời mở đầu Chương 1: Cơ sở lý thuyết . 1.1 Một số khái niệm 1.1.1 Khái niệm đồ thị 1.1.2 Các loại đồ thị 1.1.3 Biểu diễn đồ thị 1.2 đồ thị hai phía 10 1.2.1 Định nghĩa 10 1.2.2 ứng dụng 10 Chuơng 2: toán tìm ghép cực đại đồ thị thuật toán 11 2.1 toán tìm ghép cực đại đồ thị hai phía 11 2.1.1 Bài toán ghép đôi không trọng khái niệm 11 2.1.2 Thuật toán đường mở 12 2.2 Bài toán tìm ghép cực đại với tổng trọng số cực đại cực tiểu đồ thị hai phía 12 2.2.1 Bài toán phân công . 12 2.2.2 Thuật toán tìm cặp ghép với tổng trọng số cạnh lớn nhỏ 13 2.2.3 Thuật toán Hung-ga-ri 14 2.2.4 Phương pháp đối ngẫu Kuhn-Munkres 16 2.2.5 Nâng cấp 18 2.3 toán tìm ghép cực đại đồ thị tổng quát 20 2.3.1 Các khái niệm 20 2.3.2 Thuật toán Edmonds 21 2.3.3 Thuật toán Lawler 24 Chương 3: Giới thiệu ngôn ngữ delphi 27 3.1 Khái quát ngôn ngữ Delphi 27 3.1.1 Delphi l gì? 27 3.1.2 Cấu trúc chương trình Delphi v Unit 29 3.2 Form thành phần giao diện 30 3.2.1 Xây dựng ứng dụng từ thnh phần công cụ VCL 30 3.2.2 Form 31 3.2.3 Các thnh phần điều khiển Windows 32 3.3 Ngôn ngữ Object Pascal 36 3.3.1 Các kiểu liệu đơn giản 36 3.3.2 Các kiểu liệu có cấu trúc 38 3.3.3 Các câu lệnh cấu trúc 39 3.4 Lập trình ứng dụng sở liệu 41 3.4.1 Các cách kết nối với sở liệu 41 3.4.2 Hạt nhân BDE 43 3.4.3 Giới thiệu thnh phần VCL Component dùng phát triển dụng sở liệu 43 3.4.4 Sử dụng v truy vấn bảng liệu 44 Chương 4: toán ứng dụng 46 4.1 Bài toán điều hành Taxi 46 4.1.1 Phát biểu toán 46 4.1.2 Phân tích toán 46 4.1.3 Chương trình 49 Bài toán xếp lớp học theo học chế tín 62 4.2.1 Tìm hiểu mô hình đào tạo theo học chế tín 62 4.2.2 Phát biểu toán 62 4.2.3 Phân tích toán 63 2.4 Chương trình 66 ứng Kết luận 75 Tài liệu tham khảo 76 Lời mở đầu Lý thuyết đồ thị ngành khoa học phát triển từ lâu lại có nhiều ứng dụng đại Những ý tưởng lý thuyết đồ thị nhà toán học Thuỵ Sỹ tên Leonhard Euler đưa từ kỷ 18 Ông dùng lý thuyết đồ thị để giải toán cầu Konigsberg tiếng Đồ thị dùng để giải nhiều toán thuộc lĩnh vực khác như: người ta dùng đồ thị để biểu diễn cạnh tranh loài môi trường sinh thái, dùng đồ thị có ảnh hưởng lên tổ chức dùng đồ thị để biểu diễn kết cục thi đấu thể thao, hay dùng đồ thị để giải toán toán tính số tổ hợp khác chuyến xe hai thành phố mạng giao thông, toán tham quan tất phố thành phố cho phố qua lần, hay toán tìm số màu cần thiết để tô vùng khác đồ Đồ thị với trọng số gán cho cạnh dùng để giải toán toán tìm đường ngắn hai thành phố mạng giao thông, toán phân công lao động cho tổng lợi nhuận thu lớn Chính đồ thị sử dụng để giải nhiều toán thuộc nhiều lĩnh vực khác cách dễ dàng phổ biến nên đồ thị nắm giữ vai trò quan trọng sống, đặc biệt lĩnh vực Công nghệ Thông tin, dựa vào đồ thị thuật toán đồ thị người ta xây dựng nên phần mềm hữu ích phục vụ cho lĩnh vực khác có kết toán cần giải cách nhanh chóng xác Hiểu tầm quan trọng đồ thị ngành học mà theo đuổi say mê, quan tâm, tận tình bảo, động viên cô giáo Ths Trương Hà Hải, em chọn nghiên cứu đề tài ứng dụng lý thuyết đồ thị giải số toán thực tế với mong muốn sau hoàn thành đề tài em khám phá nhiều ứng dụng đồ thị thực tế số thuật toán đặc biệt hiệu ứng dụng đồ thị để giải toán phục vụ nhu cầu thực tế Em xin gửi lời cảm ơn chân thành tới cô giáo Ths Trương Hà Hải thầy giáo, cô giáo khác tận tình bảo để em hoàn thành đề tài Em xin gửi lời cảm ơn tới bạn sinh viên lớp K1B có ý kiến đóng góp để chương trình em hoàn thiện Mặc dù cố gắng chắn đề tài em không tránh khỏi thiếu sót Em mong nhận góp ý thầy cô giáo bạn để đề tài em hoàn thiện Em xin chân thành cảm ơn ! Thái Nguyên, ngày 21 tháng 03 năm 2006 Chương Cơ sở lý thuyết 1.1 Một số khái niệm 1.1.1 Khái niệm đồ thị Đồ thị cấu trúc rời rạc gồm đỉnh cạnh nối đỉnh Đồ thị ký hiệu G = (V, E), V tập đỉnh E tập cạnh 1.1.2 Các loại đồ thị Định nghĩa 1: Một đơn đồ thị G = (V, E) gồm tập không rỗng V mà phần tử gọi đỉnh tập E mà phần tử gọi cạnh, cặp không thứ tự đỉnh phân biệt Định nghĩa 2: Một đa đồ thị G = (V, E) gồm tập đỉnh V, tập cạnh E hàm f từ E tới {{u,v} | u,v V, u v} Các cạnh e1 e2 gọi song song hay cạnh bội f(e1) = f(e2) Định nghĩa 3: Một giả đồ thị G = (V, E) gồm tập đỉnh V, tập cạnh E hàm f từ E tới {{u,v} | u,v V} Một cạnh khuyên f(e) = {u} với đỉnh u Định nghĩa 4: Một đồ thị có hướng G = (V, E) gồm tập đỉnh V tập cạnh E cặp có thứ tự phần tử V Định nghĩa 5: Một đa đồ thị có hướng G = (V, E) gồm tập đỉnh V, tập cạnh E hàm f từ E tới {(u,v) | u,v V} Các cạnh e1 e2 cạnh bội f(e1) = f(e2) 1.1.3 Biểu diễn đồ thị a Danh sách liền kề Sử dụng danh sách liền kề để biểu diễn đồ thị cạnh bội Danh sách rõ đỉnh nối với đỉnh đồ thị Đỉnh Đỉnh liền kề 2, 3,4, 1, 3, 4, 1, 2, 4 1, 2, 1, b Ma trận liền kề Giả sử G = (V, E) đồ thị đơn |V| = n đỉnh liệt kê tuỳ ý v1, , v n Ma trận liền kề A G ứng với danh sách đỉnh ma trận không cấp n*n có phần tử hàng i, cột j vi vj liền kề nhau, chúng không nối với 1 1 1 1 1 1 1 0 1 0 c Ma trận liên thuộc Giả sử G = (V, E) đồ thị vô hướng, v1, v2, , v n tập đỉnh e1, e2, , em tập cạnh Khi ma trận liên thuộc theo thứ tự V E ma trận M = [mij] đó: mij = cạnh ej nối với đỉnh vi mij = cạnh ej không nối với đỉnh vi e6 V1 e1 V5 e4 e5 e7 e3 V2 e2 V3 V4 e8 e1 e2 e3 e4 e5 e6 e7 e8 v1 0 1 v2 1 1 0 0 v3 0 1 v4 0 0 1 v5 0 0 1.2 Đồ thị hai phía 1.2.1 Định nghĩa Một đơn đồ thị vô hướng G = (V, E) gọi đồ thị hai phía tập đỉnh V phân thành hai tập không rỗng, rời X Y cho cạnh đồ thị nối đỉnh X với đỉnh Y Khi đó, người ta ký hiệu G ( X U Y, E) gọi tập (giả sử tập X) tập đỉnh trái tập lại tập đỉnh phải đồ thị hai phía G Các đỉnh thuộc X gọi X_đỉnh, đỉnh thuộc Y gọi Y_đỉnh Y X 1.2.2 ứng dụng Đồ thị hai phía ứng dụng phổ biến việc giải toán phân công công việc thực tế 10 Chương Bài toán tìm ghép cực đại đồ thị Và thuật toán 2.1 toán tìm ghép cực đại đồ thị hai phía 2.1.1 Bài toán ghép đôi không trọng khái niệm Cho đồ thị hai phía G = ( X U Y, E) X tập đỉnh trái Y tập đỉnh phải G X = { x[1], x[2], , x[m] }, Y = { y[1], y[2], , y[n] } Một ghép G tập hợp cạnh G đôi đỉnh chung Bài toán ghép đôi tìm ghép lớn (nghĩa có số cạnh lớn nhất) G Xét ghép M G Các đỉnh M gọi đỉnh đậm, đỉnh khác đỉnh nhạt Các cạnh M gọi cạnh đậm, cạnh khác cạnh nhạt Nếu định hướng lại cạnh đồ thị thành cung, cạnh nhạt định hướng từ X sang Y, cạnh đậm định hướng từ Y X Trên đồ thị định hướng đó: Một đường xuất phát từ X_đỉnh đỉnh nhạt gọi đường pha, đường từ X_đỉnh đỉnh nhạt tới Y_đỉnh đỉnh nhạt gọi đường mở Một cách dễ hiểu, quan niệm sau: Một đường pha đường đơn G bắt đầu X_đỉnh đỉnh nhạt, theo cạnh nhạt sang Y đến cạnh đậm X, lại đến cạnh nhạt sang Y xen kẽ Một đường mở đường pha Bắt đầu từ X_đỉnh đỉnh nhạt kết thúc Y_đỉnh đỉnh nhạt Ví dụ: Với đồ thị hai phía hình vẽ ghép M = {(x[1], y[1]), (x[2], y[2])} x[3] y[3] đỉnh nhạt, đỉnh khác đỉnh đậm Đường (x[3], y[2], x[2], y[1]) đường pha Đường (x[3], y[2], x[2], y[1], x[1], y[3]) đường mở 11 1 2 3 X Y 2.1.2 Thuật toán đường mở Thuật toán đường mở để tìm ghép lớn phát biểu sau: Bước 1: Bắt đầu từ ghép M (thông thường ghép khởi gán ghép rỗng hay tìm thuật toán tham lam) Bước 2: Tìm đường mở Bước 3: Nếu bước tìm đường mở mở rộng ghép M: Trên đường mở, loại bỏ cạnh ghép (cạnh đậm) khỏi M thêm vào M cạnh chưa ghép (cạnh nhạt) Sau lặp lại bước Nếu bước không tìm đường mở thuật toán kết thúc Người ta chứng minh chi phí thời gian thực giải thuật trường hợp xấu O(n3) đồ thị dày O(n(n+m)logn) đồ thị thưa 2.2 toán tìm ghép cực đại với tổng trọng số cực đại cực tiểu đồ thị hai phía 2.2.1 Bài toán phân công Đây dạng toán phát biểu sau: Một xí nghiệp có N công nhân dây chuyền sản xuất có M máy Nếu công nhân i đứng máy j tạo lợi nhuận cho nhà máy C(i,j) Hãy bố trí công nhân cho không công 12 4.2 toán xếp lớp học theo học chế tín 4.2.1 Tìm hiểu mô hình đào tạo theo học chế tín Khác với mô hình đào tạo theo niên chế, đào tạo theo học chế tín mô hình đào tạo mềm dẻo, tăng cường tính chủ động, tự học, tự nghiên cứu sinh viên; nhà trường, giảng viên tạo điều kiện thuận lợi tối đa cho sinh viên tích luỹ kiến thức, kỹ năng; đồng thời học chế tín quản lý chặt chẽ trình học tập sinh viên để đảm bảo chất lượng đào tạo Đầu khoá học, nhà trường thông báo cho sinh viên về: - Chương trình đào tạo toàn khoá cho ngành học - Quy chế học tập quy định trường - Quyền lợi nghĩa vụ sinh viên Đầu học kỳ, nhà trường có trách nhiệm thông báo cho sinh viên về: - Danh mục học phần số lượng tín học phần dự kiến giảng dạy học kỳ, điều kiện để đăng ký học học phần - Số lớp học dự kiến tổ chức cho học phần thời khoá biểu cho lớp học Đầu học kỳ, sinh viên phải tìm hiểu, nghiên cứu để nắm chương trình đào tạo đăng ký học phần học học kỳ theo phiếu đăng ký quy định trường 4.2.2 Phát biểu toán Qua tìm hiểu mô hình đào tạo theo học chế tín em thấy rằng: việc cho sinh viên đăng ký học học phần dẫn đến tình trạng có lớp số lượng sinh viên đăng ký học đông số lớp học khác lại sinh viên theo học Trên sở thực tế em cho nên cho sinh viên đăng ký học theo cách mềm dẻo hơn, là: Sinh viên cần đăng ký số lượng học phần muốn học học kỳ; đồng thời đưa danh sách học phần theo học với tổng số học phần danh sách phải lớn số lượng học phần muốn học đăng ký Căn vào phiếu đăng ký sinh viên, nhà trường bố trí cho sinh viên học đủ số lượng học phần đăng ký học phần sinh viên theo 62 học nằm danh sách học phần học mà sinh viên đăng ký phiếu đăng ký cho học phần có số lượng sinh viên theo học chênh lệch tốt Ví dụ: Có M sinh viên đăng ký học năm học 2006-2007, nhà trường dự kiến mở lớp cho N học phần Phiếu đăng ký sinh viên biểu diễn mảng A cấp (MxN) với: A[i,j]=0 sinh viên i đăng ký học học phần j A[i,j]=2 sinh viên i không đăng ký học học phần j Mảng P biểu diễn số học phần muốn học sinh viên, với P[i] số học phần muốn học sinh viên i Hãy tìm cách bố trí cho sinh viên học đủ học phần phù hợp nguyện vọng họ, đồng thời học phần có số lượng sinh viên theo học chênh lệch tốt 4.2.3 Phân tích toán Danh sách sinh viên giả thiết cung cấp từ chương trình quản lý sinh viên (được lưu sở liệu), sinh viên mang mã riêng theo quy định nhà trường Danh sách học phần tất nghành học lưu sở liệu, học phần mang mã riêng theo quy định nhà trường Thông tin vào: - Các học phần giảng dạy học kỳ - Số lượng học phần sinh viên muốn học - Danh sách học phần theo học sinh viên (Giả sử với lựa chọn cho sinh viên, tổng số tín theo học sinh viên không nằm giới hạn nhà trường.) Thông tin ra: Danh sách sinh viên theo học học phần Bài toán giải thuật toán theo thuật toán Hung-gari * Thuật toán : Bước 1: Tạo phương án ban đầu: 63 For i:=1 to m đổi giá trị A[i,j] = thành với j chạy từ N đủ số lượng sinh viên i muón học tức P[i] Bước 2: Repeat Tao_day_voi; // tạo cột đầy, cột vơi Gán_số; Nếu tìm dãy vơi sửa; Until không tìm dãy vơi Trong đó: Tao_day_voi: Tìm mảng a tổng t cột có tổng số số Duyệt từ cột đến cột N, cột có tổng số = t cột gọi cột đầy, cột có tổng số < t gọi cột vơi Gán số: Xét cột: Nếu cột j cột đầy thì: { Gán số cho cột j; Xét tất hàng i, gán số j cho hàng i chưa gán sô; } Xét hàng: Nếu hàng i gán số Nếu sinh viên i theo học học phần j (coi ô [i, j] ô trắng ) Gán số i cho cột j chưa gán số Tìm vơi: Tìm xem hàng tồn cột vơi hay không Nếu tìm cột vơ sửa lại dây chuyền xen kẽ ô xanh ô trắng, với ô xanh ô a[i,j] gán giá trị 64 Ví dụ: Có sinh viên đăng ký học, sinh viên đánh số từ đến 8, nhà trường dự kiến mở lớp dạy học phần kí hiệu từ đến Thông tin phiếu đăng ký sinh viên biểu diễn bảng sau: 7 1 2 1 1 1 1 4 10 7 10 10 1 1 1 1 7 1 Số lượng học phần sinh viên muốn theo học cho bảng sau: 4 3 Thực ví dụ theo thuật toán ta có kết sau: Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, Sinh viên 1: Học học phần: 5, 6, 65 Xây dựng sở liệu cho toán 4.2.4 Chương trình (có đĩa kèm theo) Các hàm thủ tục chương trình: Procedure hang(i:integer); var dem,j:integer; begin dem:=0; while dem0) then begin tim_voi:=true; j 0:=j; exit; end; tim_voi:=false; end; 69 procedure sua(i,j:integer); begin while(i>0) and (j>0) begin i:=gc[j]; a[i,j]:=1-a[i,j]; j:=gh[i]; if j>0 then a[i,j]:=1-a[i,j]; end; end; procedure thuchien; begin repeat tao_day_voi; gan_so; if tim_voi then sua(gc[j 0],j 0); until not tim_voi; end; 70 Một số giao diện chương trình Các chức chương trình xếp lớp học tín 71 Chức nhập thông tin học phần giảng dạy Trong học kỳ 72 Chức đăng ký lớp học cho sinh viên 73 Chức tra cứu thông tin 74 Kết luận Sau thời gian làm đồ án tốt nghiệp em hoàn thành đề tài với kết đạt sau: Phần lý thuyết: - Tìm hiểu khái niệm đồ thị, đồ thị hai phía - Tìm hiểu thuật toán giải toán ghép cực đại đồ thị hai phía đồ thị tổng quát Phần thực nghiệm: - Cài đặt thành công toán điều hành Taxi thành phố toán xếp lớp học theo học chế tín Đây toán có tính thực tế cao - Các thuật toán sử dụng tìm ghép cực đại với trọng số cực tiểu đồ thị hai phía thuật toán theo thuật toán Hung-ga-ri - Thời gian chạy toán nhanh - Giao diện thân thiện - Với toán điều hành Taxi: mô đồ hoạ di chuyển xe Taxi từ điểm đỗ đến điểm đón khách Hướng phát triển đề tài: - Thiết kế phần mềm hoàn chỉnh phục vụ cho công việc điều hành Taxi thực tế - Tiếp tục tìm hiểu mô hình đào tạo theo học chế tín để xây dựng phần mềm hoàn chỉnh, với đầy đủ chức phục vụ cho công việc đào tạo theo học chế tín mô hình đào tạo nhiều khó khăn Em hoàn thành đồ án tốt nghiệp thời hạn đạt kết hôm nhờ phần lớn công dạy, giúp đỡ tạo điều kiện cô giáo Th.s Trương Hà Hải Một lần em xin bày tỏ lòng biết ơn sâu sắc tới cô Sinh viên thực Lê Trần Linh 75 TI LIU THAM KHO [1] Nguyễn Cam, Chu Đức Khánh - 1999 - Lý thuyết đồ thị - Nhà xuất Thành Phố Hồ Chí Minh [2] Lê Hu t, Lê Phng Lan, Hong c Hi - 2000 - Các k xo lp trình vi Microsoft Visual Basic & Borland Delphi - Nh xut bn Giáo dc [3] Nguyễn Xuân My, Hồ Sỹ Đàm, Trần Đỗ Hùng, Lê Sỹ Quang - 2004- Một số vấn đề chọn lọc môn tin học (Tập 2) - Nh xut bn Giáo dục [4] Lê Phng Lan, Hong c Hi - 2003 - Giáo trình lý thuyt & bi Delphi - Nh xut bn Lao ng xã hi [5] Đinh Mạnh Trường - 2001 - Cấu trúc liệu thuật toán Nhà xuất Khoa học Kỹ thuật [6] Kenneth H.Rosen -2003 - Toán học rời rạc ứng dụng tin học - Nhà xuất Khoa học Kỹ thuật - Hà Nội [7] Graph Theory ưith Applicatiins to Engineening and Computer Science, Narsingh Deo, New Delhi - 110001 - 1989 76 [...]... tìm bộ ghép cực đại trên đồ thị tổng quát 2.3.1 Các khái niệm Xét đồ thị G = (V, E), một bộ ghép trên đồ thị G là một tập các cạnh đôi một không có đỉnh chung Bài toán tìm bộ ghép cực đại trên đồ thị tổng quát phát biểu như sau: Cho một đồ thị G, phải tìm một bộ ghép cực đại trên G (bộ ghép có nhiều cạnh nhất) Với một bộ ghép M của đồ thị ta gọi: + Những cạnh thuộc M được gọi là cạnh đã ghép hay cạnh... thấy đồ thị mới tạo thành sẽ gồm có các cạnh trọng số không âm và những cạnh có trọng số bằng 0 của đồ thị chứa trọn một bộ ghép đầy đủ Vậy phương pháp đối ngẫu Kuhn-Munkres đưa việc biến đổi đồ thị G (biến đổi ma trận C) về việc biến đổi hai dãy số Fx và Fy Việc trừ một lượng delta vào trọng số tất cả các cạnh liên thuộc với x[i] tương đương với việc tăng Fx[i] lên một lượng delta Việc cộng một lượng... 2.2.3 Thuật toán Hung-ga-ri Bài toán: Có N người (số hiệu i = 1, 2, , N) và N công việc (số hiệu j = 1, 2, , N) Để giao việc j cho người i thực hiện cần chi phí là Cij không âm Vấn đề là cần phân cho người nào làm việc gì (mỗi người chỉ làm một việc, mỗi việc chỉ do một người làm) sao cho chi phí tổng cộng là nhỏ nhất Một trong các phương pháp giải bài toán này là tìm cặp ghép có tổng trọng số trên các... không thể thực hiện được 2.2.5 Nâng cấp Dựa vào sơ đồ cài đặt thuật toán Kuhn-Munkres ở trên, ta có thể đánh giá độ phức tạp tính toán lý thuyết của cách cài đặt này: Thuật toán tìm kiếm theo chiều rộng được sử dụng để tìm đường mở có độ phức tạp O(k2), mỗi lần xoay trọng số cạnh mất một chi phí thời gian cỡ O(k2) Vậy, mỗi lần tăng cặp cần tối đa k lần dò đường và k lần xoay trọng số cạnh, mất một chi... gian của những lần thực hiện giải thuật tìm kiếm trên đồ thị sau mỗi lần tăng cặp chỉ còn là O(k2) Nhận xét 4: Thủ tục tăng cặp dựa trên đường mở có độ phức tạp O(k) 19 Từ 3 nhận xét trên, phương pháp đối ngẫu Kuhn-Munkres có thể cài đặt bằng một chương trình có độ phức tạp tính toán O(k3) bởi nó có k lần tăng cặp và chi phí cho mỗi lần là O(k2) 2.3 Bài toán tìm bộ ghép cực đại trên đồ thị tổng quát 2.3.1... để được một cây pha lớn hơn cây pha cũ Nhận xét 2: Việc xác định trọng số nhỏ nhất của cạnh nối một X_đỉnh trong cây pha với một Y_đỉnh ngoài cây pha có thể kết hợp ngay trong bước dựng cây pha mà không làm tăng cấp phức tạp tính toán Để thực hiện được điều này, ta sử dụng kỹ thuật sau: 18 Với mọi y[j] Y, gọi d[j] là khoảng cách từ y[j] đến cây pha gốc x* Ban đầu d[j] được khởi tạo bằng trọng số cạnh... phải xây dựng thuật toán tìm đường mở xuất phát từ một đỉnh chưa ghép Thuật toán đó được xây dựng bằng cách kết hợp một thuật toán tìm kiếm trên đồ thị với phép chập Blossom Xét những đường pha xuất phát từ một đỉnh x chưa ghép Những đỉnh có thể đến được từ x bằng một đường pha kết thúc là cạnh nhạt được gán nhãn nhạt (gọi tắt là đỉnh nhạt), những đỉnh có thể đến được từ x bằng một đường pha kết thúc... diễn một tập hợp các phần tử có cùng kiểu dữ liệu Mỗi phần tử của mảng được truy suất theo một chỉ số duy nhất + Cú pháp xây dựng mảng tĩnh: Array [ indexType 1,,indexType n ] Of baseType; Trong đó: indexType l một tập các số có kiểu thứ tự dựng lm chỉ số mảng baseType l kiểu sẽ được áp dụng cho các phần tử mảng + Cú pháp xây dựng mảng động: Array of array of of baseType; Trong khai báo mảng động, số. .. nhỏ nhất trên đồ thị hai phía Nhưng cũng có thể giải bằng phương pháp Hung-ga-ri được xây dựng trên cơ sở các định lý sau đây: 14 Định lí 1: Nếu ma trận chi phí C(N,N) có N số 0 mà không có số 0 nào cùng hàng hoặc cùng cột thì có phương án tối ưu là: Nếu số 0 ở (i,j) thì phân công người i làm việc j Định lí 2: Nếu thay ma trận C(N,N) bởi ma trận C(N,N) bằng cách trừ mỗi phần tử trong một hàng (hoặc... O(k3) Thuật toán cần k lần tăng cặp nên độ phức tạp tính toán trên lý thuyết của phương pháp này cỡ O(k4) Có thể cải tiến mô hình cài đặt để được một thuật toán với độ phức tạp O(k3) dựa trên những nhận xét sau: Nhận xét 1: Quá trình tìm kiếm theo chiều rộng bắt đầu từ một đỉnh x* chưa ghép cho ta một cây pha gốc x* Nếu tìm được đường mở thì dừng lại và tăng cặp ngay, nếu không thì xoay trọng số cạnh và

Ngày đăng: 02/08/2016, 22:01

Từ khóa liên quan

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

Tài liệu liên quan