Một thuật toán trên đồ thị giải bài toán người du lịch

30 410 0
Một thuật toán trên đồ thị giải bài toán người du lịch

Đ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

Mục lục trang Mở đầu Chơng Các kiến thức sở Đ1 Đồ thị Đ2 Thuật toán tìm đờng ngắn đồ thị Đ3 Đờng chu trình Hamilton Chơng Bài toán xuất phát 12 Đ1 Phát biểu toán 12 Đ2 Tính chất thành phần tối u 13 Đ3 Thuật toán giải 16 Chơng Về ứng dụng toán "Tìm 19 hành trình tối u đồ thị" Đ1 Bài toán ngời du lịch 19 Đ2 áp dụng chu trình Hamiltơn để giải toán "Ngơi du lịch" 26 Kết luận 30 Tài liệu tham khảo 31 Mở đầu Lý thuyết đồ thị lĩnh vực nghiên cứu từ lâu có nhiều ứng dụng thực tiễn Những t tởng lý thuyết đồ thị đợc đề xuất vào năm đầu kỷ 18 nhà toán học lỗi lạc ngời Thuỵ sỹ Leonohard Euler Lý thuyết đồ thị đợc sử dụng để giải toán nhiều lĩnh vục khác Khi nghiên cứu lý thuyết đồ thị gặp đợc công trình Giáo s Trần Vũ Thiệu Với ý thức tập dợt, nghiên cứu, nhằm hoàn thành luận văn tốt nghiệp cử nhân khoa học, mạnh dạn chọn đề tài Một thuật toán đồ thị giải toán ngời du lịch Luận văn đợc chia làm chơng Chơng bao gồm kiến thức sở, nhằm tóm tắt vấn đề liên quan tới đề tài Chơng toán xuất phát, nhằm phát biểu toán, nêu số tính chất thuật toán giải toán nêu Chơng đề cập tới ứng dụng toán Tìm hành trình tối u đồ thị Từ kết chơng cho phép ta áp dụng để giải Bài toán ngời du lịch Trong toàn nội dung Luận văn đợc xét không gian thực R Để hoàn thành Luận văn tốt nghiệp nhận đợc hớng dẫn nhiệt tình Thầy giáo, Tiến sỹ Trần Xuân Sinh Nhân dịp cho phép bày tỏ lòng biết ơn sâu sắc đến Thầy giáo Đồng thời xin gửi đến Thầy giáo, Cô giáo thuộc tổ Điều khiển, Khoa Toán, gia đình, bạn bè động viên giúp đỡ nhiều trình học tập, rèn luyện thực đề tài Vì lực, thời gian có hạn, luận văn không tránh khỏi thiếu sót, thành thật mong đợc góp ý chân thành thầy cô giáo bạn Tác giả Chơng Các kiến thức sở Đ1 Đồ thị ([1], [2]) 1.1.1 Định nghĩa đồ thị Có nhiều cách để định nghĩa đồ thị Định nghĩa 1: Đồ thị cặp G = (A, E), A = {x, y, a, b } gọi tập đỉnh E = {(x, y) : x, y A} gọi tập cung (hay cạnh), tức E = AìA (Về thực chất đồ thị tập hợp đối tợng đợc biểu diễn đỉnh đối tợng có mối liên hệ với nhau) Định nghĩa 2: Cho đồ thị có nghĩa cho tập A ánh xạ : A A Ta ký hiệu đồ thị G = (A, ), phần tử A đợc gọi đỉnh cặp (ai, aj) gọi cung G Ký hiệu tập cạnh E Khi ta thờng viết G = (A, E) 1.1.2 Phân loại đồ thị Định nghĩa 1: Đơn đồ thị vô hớng G = (V, E) bao gồm V tập đỉnh E tập Các cạnh thứ tự gồm hai phần tử khác V đợc gọi cạnh Định nghĩa 2: Đa đồ thị vô hớng G = (V, E) bao gồm V tập đỉnh E họ cạnh Hai cạnh e1, e2 đợc gọi cạnh tạp chúng tơng ứng với cặp đỉnh Định nghĩa 3: Giả sử đồ thị vô hớng G = (V, E), V tập đỉnh E tập cặp thứ tự gồm hai đỉnh (không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên có dạng e = (u, u) Nếu đồ thị G = (V, E), cạnh đợc xác định thứ tự đỉnh kề ta nói đồ thị cho có hớng Cạnh (u, v) thuộc đồ thị có hớng u gọi đỉnh đầu, v gọi đỉnh ngọn, ta ký hiệu v = F(u) Định nghĩa 4: Hai đỉnh u, v đồ thị vô hớng G đợc gọi kề (u, v) hai cạnh đồ thị G Nếu e = (u, v) cạnh đồ thị ta nói cạnh liên thuộc hai đỉnh u v, ta nói hai đỉnh u, v liên thuộc cạnh (u, v) Đồng thời đỉnh u v đợc gọi đỉnh đầu cạnh (u, v), lúc ta nói hai đỉnh u v kề Định nghĩa 5: Đồ thị G đợc gọi đầy đủ hai đỉnh kề Chú ý: Ta biểu diễn đồ thị hình học, chẳng hạn: Với đồ thị có hớng, mặt phẳng, ta biểu diễn đỉnh điểm, biểu diễn cung đoạn định hớng xác định Ví dụ: Cho tập đỉnh A = {a, b, c, d} x a x b Tập cạnh E = {(a, b); (b, c); (d, c); (d, a); (a, a)} dx Ta biểu diễn đồ thị phơng pháp hình học (Hình 1) 1.1.3 Các khái niệm khác có liên quan x c Hình 1 Cho đồ thị đầy đủ G = (A, E) với tập đỉnh A = a1, a2, , an tập cạnh E = AìA Mỗi đỉnh A có gắn số thực ti (i = 1, n ) gọi cao độ đỉnh Khi ta cố định đỉnh ab gọi đỉnh nguồn Cố định đỉnh ae gọi đỉnh đích Đờng dãy đỉnh cho đỉnh dãy (không kề đỉnh cuối cùng) đợc nối với đỉnh cung Một đỉnh đờng qua lần gọi đỉnh lặp Chẳng hạn: Đờng d = {x1, x2, , xi, xi+1, , xk}, (*) xi+1 F(xi), i = 1, 2, , k-1 Có định nghĩa tơng đơng: Đờng dãy cung cho đỉnh cuối cung dãy (không kể đỉnh cuối cùng) đỉnh đầu cung sau Đờng có dạng (*), ta nói đờng d từ đỉnh x1 đến đỉnh xk Chu trình đơng khép kín, tức đỉnh cuối đờng trùng với đỉnh đầu đờng Do nói đến chu trình, ngời ta không xác định đầu cuối Chu trình đợc gọi chu trình đơn đỉnh lặp Xích dãy đỉnh, cho đỉnh dãy (không thể đỉnh cuối cùng) kề với đỉnh sau Trong d, ta nói xích nối đỉnh x1 với xk Xích đơn xích đỉnh lặp Chu trình vô hớng xích khép kín (tức đỉnh cuối xích trùng với đỉnh đầu xích) Khi nói đến chu trình vô hớng ta không cần xác định đỉnh đầu đỉnh cuối chu trình Chu trình vô hớng đợc gọi đơn đỉnh lặp Bậc đỉnh x đồ thị vô hớng số cạnh liên thuộc với nó, ký hiệu r(x) Đỉnh có bậc gọi đỉnh cô lập Đỉnh có bậc đợc gọi đỉnh treo Ma trận kề Ta đánh số đỉnh số tự nhiên: 1, ., n Ma trận vuông Mnìn = (mij) gồm phần tử 0, gọi ma trận kề đồ thị G mi j = (i, j) cung G (cách nói khác mij = (i, j) cung G) Rõ ràng G đồ thi đối xứng (vô hớng) ma trận kề M đối xứng Số cung đờng gọi độ dài đờng Đ thuật toán tìm đờng ngắn đồ thị 1.2.1 Phát biểu toán Cho đồ thị G đỉnh a, b G Tìm đờng ngắn đồ thị (nếu có) từ a đến b 1.2.2 Thuật giải Để có thuật giải toán ta xét định lý sau: Định lý 1.2.2.1 Phần tử hàng i cột j ma trận luỹ thừa M k số đờng khác có độ dài k từ đỉnh i đến đỉnh j Chứng minh Ta chứng minh theo quy nạp Với k = 1, định lý (theo định nghĩa ma trận kề) Giả sử định lý với k = n Ta cần chứng minh định lý với k = n+1 t n Ký hiệu M = (bij), M = (aij), T = Mn.M = (cij) Khi cij = n t =1 bit.atj i Hình Với t bất kỳ, t n, theo giả thiết quy nạp bit số đờng từ i đến t có độ dài k Nếu aij = cung từ t đến j, đờng từ i đến j qua t với độ dài k+1 Nếu aij = có cung từ t đến j, có đờng từ i đến j qua t với độ dài k+1, số đờng bit Vậy theo tổng trên, tính cij, ta có toàn số đờng từ i đến j với độ dài k+1 Định lý đợc chứng minh Định lý 1.2.2.2 Giả sử đồ thị G có n đỉnh Nếu có đờng từ a đến b có đờng từ a đến b có độ dài không lớn n-1 Chứng minh Giả sử có đờng từ a đến b Ta ký hiệu đờng d = {a = x1, x2, , xk = b} Hình với độ dài nhỏ Rõ ràng độ dài đờng k-1 Nếu k-1 > n-1 dãy đỉnh đờng có i < j cho xi = xj, (vì số đỉnh đờng lớn số đỉnh đồ thị) Khi (bỏ qua đỉnh xj) {a = x1, x2, , xi, xi+1, , xk = b}, đờng từ a đến b nhng có độ dài bé Điều mâu thuẩn với d có độ dài bé Định lý đợc chứng minh j Hệ quả: Giả sử đồ thị có n đỉnh Khi tồn đờng từ đỉnh a đến đỉnh b tồn đờng từ đỉnh a đến đỉnh b với độ dài không lớn n-1 Từ vấn đề đặt là: Cho đồ thị G hai đỉnh a, b G Khi tồn đờng từ a đến b? Theo định lý 1.2.2.1 hệ định lý 1.2.2.2 ta cần xét ma trận tổng T = M1 + M2 + + Mn-1 = (tij) Khi để tồn đờng từ đỉnh i đến đỉnh j điều kiện cần đủ phần tử tij > Bây ta vào việc giải toán nêu: Cho đồ thị G hai đỉnh a, b G Tìm đờng ngắn (nếu có) từ a đến b 1.2.3 Thuật toán Pk Giả sử có đồ thị G = (A, F) Ta xây dựng lần lợt tập đỉnh P0, P1, đồ thị nh sau: Đặt P0 = {a} Pk+1 = F(Pk)\ (P1 P2 Pk), với k > Rõ ràng Pk Pk+1 Vì tập đỉnh hữu hạn nên đợc dãy hữu hạn tập P0, P1, , Pk cho Pi 0, Pi Pj = , với i j k Đặt Pi = P i =1 Ta nhận xét rằng: + Nếu có đờng từ a tới b, b phải có mặt tập Pi (và lần mà thôi) + b Pi i độ dài ngắn từ a đến b + k n-1 Nh vậy, trình cho ta: - Nếu gặp b P k dừng Khi k độ dài ngắn đờng từ a đến b - Nếu không gặp b, đến lúc Pk rỗng trình dừng, đờng từ a đến b - Để tìm đờng (trong trờng hợp b Pi) ta dò ngợc lại theo quy tắc sau (cho đến gặp a tức đến P0): Nếu t Pj với j > Pj-1 có đỉnh s cho có cung từ s tới t Đ đờng chu trình hamilton 1.3.1 Định nghĩa Đờng qua tất đỉnh đồ thị, đỉnh lần đợc gọi đờng Hamilton Xích qua lần tất đỉnh đồ thị, đỉnh lần đợc gọi xích Hamilton Chu trình đỉnh v qua tất đỉnh lại, đỉnh lần quay trở v đợc gọi chu trình Hamilton Đồ thị G đợc gọi đồ thị Hamilton chứa chu trình Hamilton gọi nửa Hamilton chứa đờng Hamilton Ví du: 1) Ngời du lịch qua thành phố lần quay trở thành phố xuất phát chu trình Hamilton 2) Cho hình vẽ: G11 11 G2 111 G3 111 Hình hình G3 chu trình Hamilton; G2 nửa Hamilton; G1 không nửa Hamilton 1.3.2 Tính chất Định lý 1.3.2.1 Đồ thị đầy đủ có đờng Hamilton Chứng minh Chúng ta quy nạp theo số đỉnh n G Với n = 1, 2: Định lý hiển nhiên Giả sử định lý với n đỉnh, tức có đờng Hamilton qua đồ thị đầy đủ có n đỉnh cho a x1 Ta cần chứng minh định lý với đồ thị đầy đủ có (n+1) đỉnh Giả sử G đồ thị đầy đủ có (n+1) đỉnh G suy từ G cách bớt đỉnh a cung kề a Khi G có n đỉnh G đầy đủ Theo giả thiết quy nạp G có đờng Hamilton xi xi+1 xn Hình T = {x1, x2, ,xn} Nếu G có cung (xn, a) đờng (T, a) đờng Hamilton cần tìm Nếu G có cung (a, x1) đờng (a, T) đờng Hamilton cần tìm Trong trờng hợp ngợc lại, G có cung (a, xn) (x1, a) Khi tồn i để có cung (xi, a) (a, xi+1) Có thể lấy {x1, , xi, a, xi+1, , x} đờng Hamilton cần tìm Nh đồ thị đầy đủ có đờng Hamilton Định lý 1.3.2.2 (Định lý Dirak) Đơn đồ thị vô hớng G, với n > đỉnh đỉnh có bậc không nhỏ (n/2), đồ thị Hamilton Chứng minh Ta thêm vào đồ thị G, k đỉnh nối chúng lại với tất đỉnh G Giả sử k số nhỏ đỉnh cần thêm vào để đồ thị thu đợc G đồ thị Hamilton Ta chứng minh k = Thật vậy, giả sử ngợc lại k > Ký hiệu {v, p, w, , v} chu trình Hamilton G, v, w đỉnh G p số đỉnh Khi w không kề với v (vì ngợc lại, ta không cần sử 10 dụng p điều mâu thuẫn với k nhỏ nhất) Hơn đỉnh w chẳng hạn, kề với w liền sau đỉnh v (kề với v) ta thay: v p w v w v v v w w v cách đảo ngợc đoạn chu trình nằm w v Từ suy số đỉnh G không kề với w không nhỏ số đỉnh kề với (tức n n +k) Đồng thời số đỉnh G kề với w +k Do 2 đỉnh G vừa kề, vừa không kề với w, tổng số đỉnh đồ thị G (G có n+k đỉnh) không n+2k Mâu thuẫn Vì định lý đợc chứng minh 11 Ví dụ: 1) Với n = 10, b = 4, e = 7, ta có hành trình tối u từ đến qua 10 đỉnh, đỉnh lần có dạng nh sau đoạn đoạn 10 đoạn 2) Với b = 1, n = 8, e = ta có hành trình tối u từ đến nh sau: (1) (2) (3)2(4) 3(5) đoạn (7)(8)(6) đoạn đoạn 3) Với b = 3, e = n = ta có hành trình tối u từ đến nh sau: (3) (1) (2) (4) (5) (6) (7) (8) đoạn (9) đoạn đoạn Bài toán B: Theo định lý 2.2.3 hành trình tối u qua đỉnh liên tiếp i-1, i, i+1, với i-1 < i-1 n Mặt khác hành trình có đỉnh liên tiếp i j, với |i - j| 3, hành trình tối u Vì thấy hành trình tối u phải có dạng (1)2 (3) (5) (6) (4) (2) tháp nh sau Giá trị tối u opt = t2 - t1, n = opt = 1max i n |ti+2- ti|, với n Ví dụ: 1) Với n = ta có hành trình tối u toán B nh sau: (6) (8) (4) (2) (1) (3) 1(5) 3(7) (9) 2) Với n = 10 ta có hành trình tối u toán B nh sau: 2(4) (2) 6(8) (6) 10 3(1) 5(3) 7(5) (7) (9) (10) Nhận xét: Nh thấy, có nhiều giá trị ti trùng nhau, ta chia 17 đỉnh đồ thị thành số lớp (q lớp có q giá trị khác nhau) cho đỉnh thuộc lớp chúng có cao độ ti nh Mỗi lớp xem nh đỉnh mới, gọi đỉnh gộp, với cao độ đỉnh gộp đợc nối với cạnh Dựa theo cách giải trình bày trên, ta tìm đợc hành trình tối u đồ thị gộp nhận đợc Muốn có hành trình tối u đồ thị ban đầu, ta việc mở rộng hành trình tối u gộp tìm đợc cách thay đỉnh gộp đờng qua đỉnh (mỗi đỉnh lần) thuộc lớp tơng đơng với đỉnh gộp 18 Chơng ứng dụng toán "Tìm hành trình tối u đồ thị" Đ Bài toán ngời du lịch ([3]) 3.1.1 Phát biểu toán Một ngời du lịch muốn tham quan n+1 thành phố T0, T1, T2, , Tn Xuất phát từ thành phố T0, ngời du lịch muốn qua tất thành phố lại, thành phố lần quay trở thành phố xuất phát Cho biết cịj chi phí từ thành phố Ti (i = 1, 2, , n) đến thành phố Tj (j = 1, 2,, n) Hãy tìm hành trình với tổng chi phí bé Rõ ràng thiết lập tơng ứng 1-1 hành trình T0 Ti0 Ti1 Ti2 Tin T0, với hoán = (i1, i2,, in) n số tự nhiên 1, 2, ., n Đặt f() = c 0i1 + c 1i2 + c 2i3 + c in ký hiệu tập tất hoán vị = (i1, i2, , in) n số tự nhiên 1, 2, , n Khi toán ngời du lịch phát biểu dới dạng tối u rời rạc sau: f() Bài toán ngời du lịch phát biểu dới dạng qui hoạch tuyến tính nguyên phận sau: n n i =0 j =0 cij xij với điều kiện n xij = 1, i = 1, 2, , n j =0 n xij = 1, j = 1, 2, , n i =0 ui - uj - nxij n-1, i j xij 0, nguyên 19 ui R, i = 0, 1, , n 3.1.2 Cách giải thông thờng Muốn giải toán "Ngời du lịch" cách giải thông thờng, tức tìm cực tiểu hàm mục tiêu tuyến tính số nguyên không âm, với ràng buộc tuyến tính dạng đẳng thức bất đẳng thức Ta phải giải thông qua toán tổng quát "Bài toán túi" 3.1.2.1 Bài toán túi Phát biểu toán "Một nhà thám hiểm cần đem theo túi có trọng lợng không b Có n loại đồ vật đem theo Đồ vật thứ j có trọng lợng aj giá trị sử dụng cj (j = 1, 2, , n) Hỏi nhà thám hiểm cần đem theo loại đồ vật nào, với số lợng tổng số lợng giá trị sử dụng đồ đem theo lớn Gọi xj số lợng đồ vật loại j (j = 1, 2, , n) mà nhà thám hiểm đem theo Khi mô hình toán học toán có dạng sau đây: n c j x j j =1 max (3.1) với điều kiện n aj xj b (3.2) xj nguyên, j = 1, 2, , n (3.3) j =1 Nh toán túi toán tìm cực đại (cực tiểu) hàm mục tiêu tuyến tính số nguyên không âm, với ràng buộc tuyến tính dạng đẳng thức bất đẳng thức (nội dung thực tế toán đợc mô tả trên) Bài toán có vai trò quan trọng tối u rời rạc thứ nhất, toán qui hoạch tuyến tính nguyên với biến số giới nội đa toán túi, thứ hai giải toán túi sử dụng thuật toán tơng đối hữu hiệu 3.1.2.2 Đa toán qui hoạch tuyến tính nguyên toán túi - 20 phơng pháp hợp hoá Phơng pháp đa phơng trình tuyến tính với hệ số biến số nguyên phơng trình tơng đơng tổ hợp tuyến tính phơng trình cho, ta gọi việc làm hợp hoá Hợp hoá có lợi có phơng pháp hiệu để giải toán túi Khuyết điểm trầm trọng hợp hoá hệ số phơng trình lớn Các phơng pháp hợp hoá đợc xây dựng sở định lý sau [3]: 3.1.2.3 Định lý Nếu nh t1, t2 hai số nguyên tố (ký hiệu (t1, t2) =1) nghiệm nguyên phơng trình y1 t1 + y2t2 = (3.4) biểu diễn dới dạng y1 = - qt2, y2 = qt1, q số nguyên tuỳ ý 3.1.2.4 Định lý Xét hệ phơng trình n a1jxj = b1 j =1 n a2jxj = b2 j =1 aij 0, bi > số nguyên (i = 1, 2; j = 1, 2, , n) (3.5) Khi t1, t2 hai số nguyên dơng thoả mãn 1) (t1, t2) = 2) t1 không chia hết cho b2, t2 không chia hết cho b1 3) t1 > b2 - amin, t2 > b1 - amin amin = min{ aij : aij > 0, i = 1, 2, j = 1, 2, , n} Lúc tập nghiệm nguyên không âm hệ (3.5) trùng với tập nghiệm nguyên không âm phơng trình 21 n j =1 (t1a1 + t2a2)xj = t1b1 + t2b2 (3.6) a1jxj = bi, i = 1, 2, , n, (3.7) Hệ Đối với hệ n j =1 aij số nguyên không âm, bi > (i = 1, , m, j = 1, , n), tìm đợc số nguyên t1, t2, , tm cho tập nghiệm nguyên không âm hệ (3.4) trùng với tập nghiệm nguyên không âm phơng trình n j =1 m ( ti aij ) x j = i =1 m ti bi i =1 (3.8) Chú ý: Khi m đủ lớn, hệ số phơng trình (3.8) lớn Chẳng hạn, bi = q, i = 1, , m, vế phải phơng trình (3.8) số nguyên khoảng từ 2m-1qm đến 2m-1(q+1)m Ví dụ: Đa phơng trình tơng đơng hệ sau đây: x1 + x2 10 x + x 11 x1 + 3x2 13 x ,x x1 , x2 nguyen Đa vào biến phụ x3, x4, x5, biến đổi bất phơng trình hệ phơng trình ta thu đợc: = 10 3x1 + x2 + x3 x + 4x + x = 11 x5 = 13 3x1 + 3x2 + x1 , x2 , x3 , x4 , x5 0, nguyen Tiến trình hợp hoá hai phơng trình đầu hệ, ta có t1 = 12, t2 = 11, từ thu đợc phơng trình 47x1 + 68x2 + 12x3 + 11x4 = 241 22 Hợp hoá phơng trình thu đợc với phơng trình thứ ba t1' = 15, t 2' = 242, từ thu đợc phơng trình tơng đơng với hệ xét 1431x1 + 1746x2 + 180x3 + 165x4 + 242x5 = 6761 Điểm hạn chế định lý 3.1.2.4 đòi hỏi không âm với tất hệ số Định lý dới khắc phục nhợc điểm nhng lại đòi hỏi biến số phải giới nội 3.1.2.5 Định lý Xét hệ phơng trình n aij x j = bi , i = 1,2 j =1 xj d j (3.9) x j nguyen, j = 1, 2, , n aij, bi, dj (i = 1, , m; j = 1, , n) số nguyên Khi t 1, t2 số nguyên dơng, nguyên tố thoả mãn điều kiện 1) (t2, -t1) S; 2) (-t2, t1) S; S = { (y1, y2) :y1- yi yi+ , yi nguyên, i =1, 2}, yi = yi + = aij bi , J i jJ i = { j : aij > 0, j =1, , n; i =1, 2} , aij bi , J i + = { j : aij > 0, j =1, , n; i =1, 2} J J i + Khi tập lời giải (3.9) trùng với lời giải hệ n (t1a1 j + t a2 j ) x j = t1b1 + t 2b2 j =1 xj d j (3.10) xi nguyen, j = 1, , n Chú ý: Điều kiện định lý 3.1.2.5 đợc thoả mãn ta chọn t1, t2 23 hai số nguyên dơng, nguyên tố thoả mãn điều kiện sau: 1) t1 y 2+ +1, t2 y1+ +1; 2) t1 - y +1; t2 - y1 +1; 3) t1 1; t2 1+max( y1+ , - y1 ) 4) t1 1+ max( y 2+ , y ), t2 3.1.3 Phơng pháp giải toán túi Xét toán túi dạng bất đẳng thức n c j x j max j =1 (3.1) với điều kiện n aj xj b j =1 xj nguyên, j = 1, 2, , n (3.2) (3.3) Các số cj, aj, b giả thiết nguyên dơng Để giải "bài toán túi" nêu, ngời ta nêu phơng pháp phơng trình truy toán qui hoạch động [3] Để phục vụ trực tiếp cho nội dung chơng này, xin đợc nêu phơng pháp chuyển toán túi toán tìm đờng ngắn biết chơng Xây dựng đồ thị có hớng G = (V, E), với tập đỉnh V = {0, 1, , b} tập cung E = { (i, k): k - i = aj }, i, k {1, 2, , n} Giả sử S đờng từ đỉnh đến đỉnh b đồ thị, ký hiệu L(S)= d (i, k ) , ( i ,k )S độ dài đờng S 24 3.1.3.1 Định lý Mỗi đờng từ đến b đồ thị G tơng ứng với phơng án chấp nhận đợc toán túi (3.1)(3.2)(3.3) ngợc lại Ngoài đờng S* tơng ứng với phơng án chấp nhận đợc x* = (x1*, x2*, , xn*) n L(S*) = c j =1 j x *j 3.1.4 Phơng pháp giải "Bài toán ngời du lịch" sở "Bài toán túi" Bài toán ngời du lịch phát biểu dới dạng toán qui hoạch tuyến tính nguyên phận: n n i =1 j =1 cij xij (3.11) n j =1 xij = (3.12) xij = (3.13) n i =1 ui - vj - nxij n-1, i j (3.14) xij 0, nguyên, (3.15) ui, vj R, i = 1, 2, , n, j = 1, 2, ., n Từ định lý 3.1.2.3, định lý 3.1.2.4, định lý 3.1.2.5 hệ ta đa hệ (3.12), (3.13) phơng trình tơng đơng tổ hợp tuyến tính phơng trình cho Sử dụng thuật toán giải toán túi, ta có phơng pháp giải "Bài toán ngời du lịch" Trong phạm vi toán viết không nêu cụ thể trình giải "Bài toán ngời du lịch" sở "Bài toán túi" cồng kềnh phức tạp Đặc biệt n lớn hệ số phơng trình tơng đơng lớn, giải toán ngời du lịch nhờ thuật toán giải toán túi nh nêu không phù hợp 25 Đ2 áp dụng chu trình Hamilton để giải toán "Ngời du lịch" 3.2.1 Chuyển toán Ngời du lịch toán tìm chu trình Hamilton Từ toán "Ngời du lịch" đợc phát biểu Đ1 Để sử dụng thuật toán tìm chu trình Hamilton nêu chơng 2, ta chuyển toán xác định nh sau: (n+1) thành phố mà ngời du lịch muốn qua tơng ứng với (n+1) đỉnh đồ thị Đờng từ thành phố sang thành phố tơng ứng cung đồ thị (đoạn thẳng nối hai điểm) Do ngời du lịch xuất phát từ thành phố T0 qua tất thành phố lại, thành phố lần nên ngời có n! hành trình khác Mỗi hành trình hành trình Hamiltơn với đỉnh đích nguồn trùng Ký hiệu cij chi phí từ thành phố i sang thành phố j Ký hiệu a0j chi phí nhỏ từ To đến Tj tơng ứng ta gọi cao độ đỉnh thứ j đồ thị Rõ ràng cij+1 = |ai+1 - a0i | chi phí từ thành phố i sang thành phố i+1 Ta thấy số n! hành trình tồn hành trình cho tổng chi phí cho hành trình nhỏ nhất, ký hiệu hành trình Hành trình tơng ứng với đờng đồ thị thoả mãn điều kiện: Làm cực tiểu mức chi phí lớn hai thành phố liên tiếp hành trình Hành trình tơng ứng chu trình Hamiltơn tối u toán A Từ phân tích ta áp dụng toán A để giải toán Ngời du lịch Không tính tổng quát giả sử số a0i (i = 1, 2, , n+1) khác Khi ta đánh số thành phố nh sau: T1 Ti Tn cho: 26 < a01 < a02 < [...]... trình đã cho Sử dụng các thuật toán giải bài toán cái túi, ta sẽ có phơng pháp giải "Bài toán ngời du lịch" Trong phạm vi bài toán viết này chúng tôi không nêu cụ thể quá trình giải "Bài toán ngời du lịch" trên cơ sở "Bài toán cái túi" vì khá cồng kềnh và phức tạp Đặc biệt khi n lớn thì hệ số phơng trình tơng đơng sẽ rất lớn, vì vậy giải bài toán ngời du lịch nhờ thuật toán giải bài toán chiếc túi nh đã... một số thành tựu mới thông qua các kiến thức cơ bản về hành trình Hamiltơn và các bài báo công bố gần đây nh đã nêu ở chơng 1 và chơng 2 2) Trên cơ sở tiếp cận các kết quả đã nêu, chúng tôi áp dụng để giải bài toán "Ngời du lịch" là một bài toán quy hoạch tuyến tính nguyên bằng phơng pháp đồ thị Chúng ta có thể áp dụng bài toán "Tìm hành trình tối u trên đồ thị" (Bài toán A và bài toán B) để giải một. .. Đ2 áp dụng chu trình Hamilton để giải bài toán "Ngời du lịch" 3.2.1 Chuyển bài toán Ngời du lịch về bài toán tìm chu trình Hamilton Từ bài toán "Ngời du lịch" đã đợc phát biểu trong Đ1 Để có thể sử dụng thuật toán tìm chu trình Hamilton đã nêu ở chơng 2, ta chuyển về bài toán xác định nh sau: (n+1) thành phố mà ngời du lịch muốn đi qua tơng ứng với (n+1) đỉnh của đồ thị Đờng đi từ thành phố này sang... 0, 1, , n 3.1.2 Cách giải thông thờng Muốn giải bài toán "Ngời du lịch" bằng cách giải thông thờng, tức là tìm cực tiểu hàm mục tiêu tuyến tính trong số nguyên không âm, với một ràng buộc tuyến tính dạng đẳng thức hoặc bất đẳng thức Ta phải giải thông qua bài toán tổng quát hơn đó là "Bài toán cái túi" 3.1.2.1 Bài toán cái túi Phát biểu bài toán "Một nhà thám hiểm cần đem theo một cái túi có trọng... một lần) thuộc lớp tơng đơng với đỉnh gộp đó 18 Chơng 3 về một ứng dụng của bài toán "Tìm hành trình tối u trên đồ thị" Đ 1 Bài toán ngời du lịch ([3]) 3.1.1 Phát biểu bài toán Một ngời du lịch muốn tham quan n+1 thành phố T0, T1, T2, , Tn Xuất phát từ thành phố T0, ngời du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố đúng một lần rồi quay trở về thành phố xuất phát Cho biết cịj là... vậy bài toán cái túi là bài toán tìm cực đại (cực tiểu) của hàm mục tiêu tuyến tính trong số nguyên không âm, với ràng buộc tuyến tính dạng đẳng thức hoặc bất đẳng thức (nội dung thực tế của bài toán đợc mô tả ở trên) Bài toán này có vai trò quan trọng trong tối u rời rạc vì thứ nhất, mọi bài toán qui hoạch tuyến tính nguyên với biến số giới nội đều có thể đa về bài toán cái túi, thứ hai là giải bài toán. .. trong đồ thị G tơng ứng với một phơng án chấp nhận đợc của bài toán cái túi (3.1)(3.2)(3.3) và ngợc lại Ngoài ra nếu đờng đi S* tơng ứng với phơng án chấp nhận đợc x* = (x1*, x2*, , xn*) thì n L(S*) = c j =1 j x *j 3.1.4 Phơng pháp giải "Bài toán ngời du lịch" trên cơ sở "Bài toán cái túi" Bài toán ngời du lịch có thể phát biểu dới dạng bài toán qui hoạch tuyến tính nguyên bộ phận: n n i =1 j =1 ... 2 Bài toán xuất phát Đ 1 p hát b iểu bài t oán ( [4], [5] ) Cho đồ thị đầy đủ G = (A, E) với tập đỉnh A = {a1, a2, , an} và tập cạnh E = AìA Mỗi đỉnh ai A có gắn một số thực ti (i = 1, 2, , n) gọi là cao độ của đỉnh ai Cho một đỉnh ab A gọi là đỉnh nguồn và một đỉnh ae A gọi là đỉnh đích với b, e {1, 2, , n} và tb te Xét bài toán sau đây gọi là bài toán A Bài toán A: Tìm một đờng đi Haminton trên. .. với một đờng đi Haminton trên đồ thị từ ab đến ae, còn hoán vị * = argmin{f(): P} sẽ đợc gọi là hành trình tối u từ ab đến ae Bây giờ ta không cố định đỉnh đầu và đỉnh cuối, ta cũng có bài toán B tơng tự nh sau: Bài toán B: Tìm một chu trình Haminton trên đồ thị đã cho làm cực tiểu mức khác biệt lớn nhất giữa cao độ của hai đỉnh liên tiếp bất kỳ trong hai điểm liên tiếp bất kỳ trong chu trình Một. .. chuyển bài toán chiếc túi về bài toán tìm đờng đi ngắn nhất đã biết trong chơng 2 Xây dựng đồ thị có hớng G = (V, E), với tập đỉnh V = {0, 1, , b} và tập cung E = { (i, k): k - i = aj }, trong đó i, k {1, 2, , n} Giả sử S là một đờng đi từ đỉnh 0 đến đỉnh b trên đồ thị, ký hiệu L(S)= d (i, k ) , ( i ,k )S là độ dài của đờng đi S 24 3.1.3.1 Định lý Mỗi đờng đi từ 0 đến b trong đồ thị G tơng ứng với một ... trình cho Sử dụng thuật toán giải toán túi, ta có phơng pháp giải "Bài toán ngời du lịch" Trong phạm vi toán viết không nêu cụ thể trình giải "Bài toán ngời du lịch" sở "Bài toán túi" cồng kềnh... tơng đơng lớn, giải toán ngời du lịch nhờ thuật toán giải toán túi nh nêu không phù hợp 25 Đ2 áp dụng chu trình Hamilton để giải toán "Ngời du lịch" 3.2.1 Chuyển toán Ngời du lịch toán tìm chu... 2) Trên sở tiếp cận kết nêu, áp dụng để giải toán "Ngời du lịch" toán quy hoạch tuyến tính nguyên phơng pháp đồ thị Chúng ta áp dụng toán "Tìm hành trình tối u đồ thị" (Bài toán A toán B) để giải

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

Từ khóa liên quan

Mục lục

  • Mở đầu

  • Chương 1

  • Các kiến thức cơ sở

    • Đ1. Đồ thị ([1], [2])

      • 1.1.1. Định nghĩa đồ thị

      • 1.1.2. Phân loại đồ thị

      • Đ 2. thuật toán tìm đường đi ngắn nhất trên đồ thị

      • Đ 3. đường đi chu trình hamilton

      • Chương 2

      • Bài toán xuất phát

        • Đ 1. phát biểu bài toán ([4], [5])

        • Đ 2 . Tính chất của hành trình tối ưu ([5])

        • Chương 3

        • về một ứng dụng của bài toán

        • "Tìm hành trình tối ưu trên đồ thị"

          • Đ 1. Bài toán người du lịch ([3])

          • Đ2. áp dụng chu trình Hamilton để giải bài toán "Người du lịch".

          • Kết luận

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

Tài liệu liên quan