1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình Toán rời rạc: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định

100 20 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 0,97 MB

Nội dung

Giáo trình Toán rời rạc: Phần 1 cung cấp cho người học những kiến thức như: Một số kiến thức mở đầu về lý thuyết tổ hợp, bài toán đếm, bài toán tồn tại, bài toán liệt kê, bài toán tối ưu. Mời các bạn cùng tham khảo!

Lời nói đầu Tài liệu Tốn rời rạc biên soạn nhằm phục vụ công việc giảng dạy học tập mơn học Tốn rời rạc ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Với thời lượng 60 tiết nội dung tài liệu đề cập đến kiến thức lý thuyết tổ hợp lý thuyết đồ thị hai lĩnh vực có nhiều ứng dụng toán rời rạc Nội dung tài liệu gồm 10 chương: Từ chương đến chương nhằm giới thiệu kiến thức lý thuyết tổ hợp, từ chương đến chương 10 nhằm giới thiệu kiến thức lý thuyết đồ thị Trong chương vấn đề đưa minh họa ví dụ Cuối chương có hệ thống tập nhằm giúp người học củng cố kiến thức học đồng thời rèn luyện khả vận dụng kiến thức để giải số toán thực tế Tài liệu biên soạn theo chương trình mơn học Toán rời rạc ngành học thuộc khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Nội dung tài liệu biên soạn dựa sở nội dung giảng môn học tác giả số năm qua khoa Công nghệ thông tin trường Đại học sư phạm kỹ thuật Nam Định Trong trình biên soạn, tác giả nhận nhiều ý kiến đóng góp với động viên, khích lệ bạn bè đồng nghiệp khoa trường Tác giả xin tỏ lịng cảm ơn với ý kiến đóng góp động viên khích lệ Với lần biên soạn đầu tiên, cố gắng song chắn tài liệu tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp để tài liệu ngày hồn thiện Phạm Cao Hào Chƣơng MỘT SỐ KIẾN THỨC MỞ ĐẦU VỀ LÝ THUYẾT TỔ HỢP 1.1 Giới thiệu tổ hợp Toán rời rạc lĩnh vực toán học nghiên cứu đối tượng rời rạc Các tập hợp dùng để nhóm đối tượng lại với Thông thường, đối tượng tập hợp có tính chất tương tự Ví dụ, sinh viên vừa nhập trường lập nên tập hợp Tương tự vậy, sinh viên khoa CNTT lập nên tập hợp Các dãy nhị phân có độ dài n lập nên tập hợp Có thể nói tập hợp cấu trúc rời rạc từ lập nên cấu trúc khác Tổ hợp lĩnh vực toán học rời rạc Hiện nay, lý thuyết tổ hợp áp dụng nhiều lĩnh vực khác nhau: tin học, lý thuyết số, xác suất thống kê, quy hoạch thực nghiệm, Tổ hợp liên quan đến nhiều vấn đề khác tốn học, khó định nghĩa cách hình thức Nói chung, lý thuyết tổ hợp gắn liền với việc nghiên cứu phân bố phần tử vào tập hợp Thông thường, phần tử hữu hạn việc phân bố chúng phải thỏa mãn điều kiện định Mỗi cách phân bố gọi cấu hình tổ hợp Vài nét lịch sử Có thể nói tư tổ hợp đời từ sớm Thời nhà Chu, người ta biết đến hình vẽ có liên quan đến hình vng thần bí Thời cổ Hy Lạp có nhà triết học biết cách tính số từ khác lập từ bảng chữ cho trước Nhà tốn học Pitago tìm nhiều số có tính chất đặc biệt, chẳng hạn số 36 tổng số chẵn số lẻ mà cồn tổng lập phương số tự nhiên Một định lý tiếng trường phái định lý độ dài cạnh tam giác vuông, từ tìm số mà bình phương số tổng bình phương hai số khác Việc tìm số vậy, địi hỏi phải có nghệ thuật tổ hợp định Tuy nhiên, nói rằng, lý thuyết tổ hợp hình thành ngành tốn học vào khoảng kỷ 17 loạt cơng trình nghiên cứu nghiêm túc nhà toán học Pascal, Fermat, Euler, Trong thời gian nay, mối tương quan toán học hữu hạn tốn học cổ điển có nhiều thay đổi, đặc biệt máy tính điện tử đời phát triển Nhiều toán tiếng giải máy tính thuật tốn tốn hữu hạn Các lĩnh vực trừu tượng toán học đại số lơgic, ngơn ngữ hình thức, trở thành khoa học ứng dụng để xây dựng ngôn ngữ lập trình cho máy tính Trong thời đại phát triển tốn học hữu hạn, vai trị lý thuyết tổ hợp khác xưa Từ lĩnh vực nghiên cứu trị chơi tiêu khiển hay phân tích giải mã thư cổ, tổ hợp chuyển sang lĩnh vực toán ứng dụng với phát triển mạnh mẽ Các toán tổng quát Trong tài liệu tổ hợp, thường gặp dạng toán đây: * Bài toán đếm: Đây toán nhằm trả lời câu hỏi “ Có cấu hình thoả mãn điều kiện nêu? “ Phương pháp đếm thường dựa vào số nguyên lý số kết đếm cấu hình đơn giản Bài tốn đếm áp dụng cách có hiệu vào cơng việc mang tính chất đánh tính xác suất kiện, tính độ phức tạp thuật toán, * Bài toán liệt kê: Bài toán quan tâm đến tất cấu hình có được, lời giải cần biểu diễn dạng thuật tốn “vét cạn“ tất cấu hình Lời giải trường hợp cụ thể máy tính điện tử giải theo thuật toán nêu Bài toán liệt kê làm “nền” cho nhiều toán khác như: toán đếm, toán tối ưu, * Bài toán tồn tại: Nếu toán trên, việc tồn cấu hình hiển nhiên tốn này, vấn đề “có hay khơng có” cấu hình cịn điều nghi vấn Lịch sử tốn học thường để lại tốn khó lĩnh vực việc cố gắng giải chúng thúc đẩy khơng phát triển nhiều ngành toán học * Bài toán tối ưu: Khác với toán liệt kê, toán tối ưu quan tâm đến cấu hình “tốt nhất” theo nghĩa Đây tốn có nhiều ứng dụng thực tiễn lý thuyết tổ hợp góp phần đáng kể việc xây dựng thuật toán hữu hiệu 1.2 Sơ lƣợc lý thuyết tập hợp 1.2.1 Một số khái niệm ký hiệu * Người ta thường dùng chữ hoa để ký hiệu tập hợp Chẳng hạn chữ N, Z R dùng để ký hiệu tập số tự nhiên , tập số nguyên tập số thực * Các đối tượng tập hợp gọi phần tử tập hợp Các phần tử ký hiệu chữ nhỏ a, b, , x, y,… Để x phần tử X ta viết xX, trái lại ta viết xX * Có nhiều cách mơ tả tập hợp Một số cách liệt kê hết phần tử tập hợp, Chúng ta dùng ký hiệu tất phần tử tập hợp liệt kê hai dấu móc Chẳng hạn ký hiệu { a, b, c, d } biểu diễn tập hợp có bốn phần tử a, b, c, d (Trong tài liệu gọn có chỗ ta dùng tập thay cho tập hợp) Ví dụ 1.1 X = { 1, 2, 3, 4, 5, } Ví dụ 1.2 Tập O số nguyên, dương, lẻ nhỏ 10 biểu diễn : O = { 1, 3, 5, 7, } Một cách khác để mô tả tập hợp rõ tính chất đặc trưng phần tử tập hợp Ví dụ 1.3 Tập hợp tất số thực viết sau: R = { x | x số thực} * A B hai tập hợp, phần tử A phần tử B ta nói A tập B ký hiệu A  B A B gọi hai tập hợp ký hiệu A=B A tập B B tập A Ví dụ 1.4 A = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, 6,} Thì B  A * Tập rỗng tập hợp khơng có phần tử nào, ký hiệu  Tập rỗng coi tập tập hợp * Tập hợp vũ trụ X tập hợp chứa tất đối tượng xét Số phần tử tập hợp A ký hiệu N(A) |A| Ví dụ 1.5 với tập hợp ví dụ 1.4 ta có N(A) = N(B) = 1.2.2 Một số phép toán tập hợp * Cho hai tập hợp A B Hợp hai tập A B ký hiệu A  B tập gồm tất phần tử thuộc A, thuộc B thuộc hai Ví dụ 1.6 A = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, 6, 8, 10, 12} A  B = { 1, 2, 3, 4, 5, 6, 7, 8, 10, 12} Tổng quát: Hợp n tập hợp tập hợp chứa tất phần tử thuộc n tập hợp Ta dùng ký hiệu: n A1  A2   An   Ai i 1 để hợp tập hợp A1 , A2 , , An Ví dụ 1.7 Cho A = { 1, 2, 3, 4, 6, }, B = { 0, 1, 2, 3, 4} C = { 2, 3, 6, } Hãy xác định A  B  C Tập hợp A  B  C chứa tất phần tử thuộc ba tập hợp A, B, C Từ đó: A  B  C = { 0, 1, 2, 3, 4, 6, 8, } * Cho A B hai tập hợp Giao hai tập A B ký hiệu A  B, tập chứa tất phần tử đồng thời thuộc A B A  B  x | x  A  x  B Ví dụ 1.8 Cho A, B hai tập ví dụ 1, A  B = { 2, 4, 6} Tổng quát: Giao n tập hợp tập hợp chứa phần tử thuộc tất n tập hợp Ta dùng ký hiệu: n A1  A2   An   Ai i 1 để giao tập hợp A1 , A2 , , An Ví dụ 1.9 Cho A, B, C tập hợp ví dụ 3, xác định AB  C Tập hợp AB  C chứa tất phần tử thuộc ba tập hợp A, B, C Từ đó: AB  C = { 2, 3} * Phần bù A X, ký hiệu A , tập phần tử X không thuộc A Ví dụ 1.10 X = { 1, 2, 3, 4, 5, 6, 7} B = { 2, 4, } Khi A = { 1, 3, 5, } * Cho A B hai tập hợp, tích Đề A B, ký hiệu A x B, tập hợp gồm tất cặp (a, b) với aA bB A x B = { (a, b) { aA bB } Ví dụ 1.11 A = { a, b, c } B = { 2, } Khi A x B = { (a, 2), (a, 4), (b, 2), (b, 4), (c, 2), (c, 4) } Tích Đề mở rộng tự nhiên cho nhiều tập hợp: A1 x A2 x x An= { (a1, a2, , an) { aiAi, i=1, 2, , n } Ta dùng ký hiệu luỹ thừa để biểu diễn tích Đề tập hợp: An = A x A x x A (n lần) 1.2.3 Các tính chất cho tập hợp Các tập hợp với phép toán hợp, giao, phần bù lập nên đại số gọi đại số tập hợp Mỗi tập tập hợp tương ứng với tính chất (cịn gọi mệnh đề) xác định tập cho Với tương ứng đó, phép tốn tập hợp tương ứng với phép toán mệnh đề: Phép phủ định A, ký hiệu A (NOT A) tương ứng với phép lấp phần bù Tuyển A B, ký hiệu A V B (A or B) tương ứng với phép hợp A B Hội A B, ký hiệu A & B (A and B) tương ứng với phép giao A B Các mệnh đề với phép toán nó, lập nên đại số gọi đại số mệnh đề Như vậy, đại số mệnh đề đại số tập hợp hai đại số đẳng cấu với Tuỳ tình huống, tốn phát biểu ngôn ngữ đại số tập hợp ngôn ngữ đại số mệnh đề 1.2.4 Quan hệ tƣơng đƣơng phân hoạch Trong nhiều vấn đề, người ta cần quan tâm đến quan hệ hai phần tử tập hợp xét Có nhiều kiểu quan hệ, hay gặp quan hệ tương đương Một quan hệ gọi tương đương thoả mãn tính chất sau: * Phản xạ: phần tử có quan hệ với * Đối xứng: a có quan hệ với b b có quan hệ với a * Bắc cầu: a có quan hệ với b, b có quan hệ với c a có quan hệ với c Một quan hệ tương đương xác định tập hợp chia tập hợp thành lớp, gọi lớp tương đương cho hai phần tử thuộc lớp có quan hệ với nhau, hai phần tử thuộc hai lớp khác khơng có quan hệ với Các lớp tương đương có tính chất phủ kín tập cho (tức hợp lớp tương đương tập cho) rời (tức giao hai lớp rỗng) Ta gọi họ tập khác rỗng tập hợp có tính chất nêu phân hoạch tập hợp Như quan hệ tương đương tập hợp xác định phân hoạch tập đó, ngược lại phân hoạch tập hợp cho tương ứng với quan hệ tương đương tập hợp Ví dụ 1.12 X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } Trên X ta xác định quan hệ R sau : Với a thuộc X, b thuộc X, a b gọi có quan hệ R với chúng có số dư chia cho a R b  a mod = b mod Dễ thấy quan hệ R quan hệ tương đương X (bạn đọc tự kiểm chứng lại điều này), quan hệ R chia tập X thành lớp tương đương sau : L1 = { 3, 6, } L2 = {1, 4, 7, 10 } L3 = { 2, 5, } 1.2.5 Biểu diễn tập hợp máy tính Có nhiều cách biểu diễn tập hợp máy tính Một phương pháp lưu trữ phần tử tập hợp theo cách không thứ tự Tuy nhiên, điều làm được, việc tìm giao, hợp hiệu tập hợp thời gian, phép tính địi hỏi lượng thời gian tìm kiếm lớn phần tử Vì sử dụng phương pháp lưu trữ phần tử cách dùng tùy ý phần tử tập vũ trụ Phương pháp biểu diễn tập hợp làm cho việc tính tổ hợp tập hợp trở nên dễ dàng Giả sử tập vũ trụ X hữu hạn (và có kích thước hợp lý để số phần tử X không lớn dung lượng nhớ máy tính mà ta dùng) Trước hết, rõ tùy ý phần tử X, ví dụ a 1, a2, , an sau biểu diễn tập A X xâu nhị phân có chiều dài n, bit thứ i có giá trị thuộc A không thuộc A Ví dụ 1.13 Cho X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } xếp phần tử X theo thứ tự tăng dần; tức = i Xác định xâu nhị phân biểu diễn tập số nguyên lẻ X, tập số nguyên chẵn X tập số nguyên chia hết cho X Giải: Xâu nhị phân biểu diễn tập số chẵn X : 0101010101 Xâu nhị phân biểu diễn tập số lẻ X là: 1010101010 Xâu nhị phân biểu diễn tập số nguyênchia hết cho3 X là: 0010010010 1.3 Một số nguyên lý 1.3.1 Nguyên lý cộng Giả sử có hai cơng việc Việc thứ làm n cách, việc thứ hai làm n2 cách hai việc làm đồng thời, có n1 + n2 cách làm hai việc Ví dụ 1.14 Giả sử cần chọn cán khoa Tin sinh viên Tin làm đại biểu hội đồng trường đại học Hỏi có cách chọn vị đại biểu khoa Tin có 50 cán 800 sinh viên? Giải : Ta gọi việc thứ việc chọn cán khoa Tin Nó làm 50 cách Việc thứ hai, chọn sinh viên Tin, làm 800 cách Theo nguyên lý cộng ta có 50 + 800 = 850 cách chọn vị đại diện Ví dụ.1.15 Một sinh viên chọn thực hành máy tính từ ba danh sách tương ứng có 23, 15 19 Có cách chọn thực hành Giải : Có 23 cách chọn thực hành từ danh sách thứ nhất, 15 cách chọn từ danh sách thứ hai 19 cách chọn từ danh sách thứ ba Vì vậy, có : 23 + 15 + 19 = 57 cách chọn thực hành Ví dụ 1.16 Giá trị biến k sau đoạn chương trình sau thực hiện? k=0 for i1:= to n1 k := k + 1; for i2:= to n2 k := k + 1; ……………… ……………… for im:= to nm k := k + 1; Giải : Giá trị khởi tạo k khơng Khối lệnh gồm m vịng lặp khác Sau bước lặp vòng lặp giá trị k tăng lên đơn vị Sau vòng lặp thứ k = n1 Do vịng lặp khơng thực đồng thời nên sau vịng lặp thứ hai k = n1+ n2 tương tự sau đoạn chương trình thực xong k = n1 + n2 + …+ nm Nguyên lý cộng phát biểu dạng ngôn ngữ tập hợp sau: Nếu A1, A2,…, An tập rời N(A1 A2…An) = N(A1) + N(A2)+ …+ N(An) 1.3.2 Nguyên lý nhân Giả sử nhiệm vụ tách làm hai việc Việc thứ làm n1 cách, việc thứ hai làm n2 cách sau việc thứ làm, có n1 n2 cách thực nhiệm vụ Ví dụ 1.17 Người ta ghi nhãn cho ghế giảng đường chữ số nguyên dương không vượt 100 Bằng cách vậy, nhiều có ghế ghi nhãn khác Giải: Thủ tục ghi nhãn cho ghế gồm hai việc, gán 26 chữ sau gán 100 số nguyên dương Quy tắc nhân có 26 100 = 2600 cách khác để gán nhãn cho ghế Vậy nhiều có 2600 ghế ghi nhãn Ví dụ 1.18 Từ Hà Nội đến Huế có cách đi: máy bay, tơ, tàu hoả Từ Huế đến Sài Gịn có cách đi: máy bay, tơ, tàu hoả, tàu thuỷ Hỏi từ Hà Nội đến Sài Gòn (qua Hu) cú bao nhiờu cỏch i? 10 nhánh bên phải ta thay mét sè bëi , vµ cã thĨ rót gọn thêm đ-ợc ma trận tính lại số rút gọn theo dòng cột t-ơng ứng với cạnh phân nhánh, nh-ng kích th-ớc ma trận giữ nguyên Do cạnh cần chọn để phân nhánh phải cạnh làm tăng cận d-ới nhánh bên phải lên nhiều nhất, nên để tìm ta sÏ chän sè nµo ma trËn mµ thay nã bëi  sÏ cho ta tæng h»ng sè rút gọn theo dòng cột chứa lớn Ta có thủ tục sau để chọn cạnh phân nhánh (r,c): 5.3.2 Thủ tục chọn cạnh phân nhánh Intput: Ma trËn rót gän A kÝch th-íc k  k Output: Cạnh phân nhánh (r,c) tổng số rút gọn theo dòng r cột c beta Procedure BestEage (A,k,r,c,beta); Begin Beta:=-  ; For i:=1 to k For j:=1 to k If [i,j] =0 then Begin Minr := < phần tử nhỏ dòng i khác với a [i;j] >; Minc :=< phần tử nhỏ cột j khác với a [i;j] >; Total := minr + minc; If total > beta then Begin Beta := total: r := i ; ( * chØ số dòng cạnh tốt * ) c := j ;( * chØ sè cét cđa c¹nh tèt nhÊt *) end; end; end; Trong ma trËn rót gän nhánh bên trái hình 1, số không vị trí (4,6) cho tổng số rút gọn 32 ( theo dòng 32, cột ) Đây giá trị lớn số ma trận Vì vậy, việc phân nhánh dựa vào cạnh (4,6) Khi cận d-ới nhánh bên phải t-ơng ứng 86 với tập hành trình qua cạnh (6,3) nh-ng không qua (4,6) la 81 + 32 = 113, nhánh bên trái t-ơng øng víi ma trËn  4, v× r»ng ta phải loại bỏ dòng cột 6, tình phân nhánh đ-ợc mô tả hình 5.2 Tập h nh trình qua cạnh (6,3) H nh trình chøa (6,3), (4,6) CËn d-íi = 81 H nh trình chứa (6,3) Không chứa (4,6) Cận d-ới = 81 30   2  30 17 29 21   30  30 17 12 29 12  51  17  21 CËn d-íi = 113 Hình 5.2 Nhận thấy cạnh (4,6) (6,3) đà nằm hành trình nên cạnh (3,4) đ-ợc qua (nếu không ta có hành trình từ thành phố này) Để ngăn ngừa việc tạo thành hành trình ta gán cho phần tử vị trí (3,4) giá trị Ngăn cấm tạo thành hành trình Theo nội dung toán, hành trình hợp lệ phải qua tất thành phố danh sách, nói cách khác hành trình tạo thành vòng khép kín Vấn đề đặt danh sách ch-a có đủ thành phố mà hành trình đà tạo thành vòng khép kín, t-ợng gọi tạo thành hành trình Do trình chọn cạnh phân nhánh cần loại bỏ khả tạo thành hành trình Tổng quát hơn, phân nhánh dựa vào cạnh (p, q) ta phải thêm cạnh vào hành trình b-ớc lựa chọn cạnh để kết nạp ta cần phải xét xem 87 có tạo với cạnh đà có hành trình không, có cần phải loại bỏ cạnh chọn cạnh có độ -u tiên Thủ tục kiểm tra hành trình Input S danh sách cạnh đà chọn, (p, q) cạnh Nếu N(S) < n thì: - S¾p xÕp l³i c²c c³nh tËp S’ = S (p, q) theo dạng danh sách - Nếu đỉnh đầu trùng với đỉnh cuối S kt=false, ng-ợc lại kt=true v S = S Output kt, S Tiếp tục việc chọn cạnh phân nhánh (và ngăn cấm việc tạo thành hành trình con) kích th-ớc ma trận chi phí C giảm dần theo nhánh (nhánh trái) Cuối ma trận kích th-ớc x chấm dứt việc phân nhánh kết nạp hai cạnh lại để thu đ-ợc hành trình ng-ời du lịch Dễ thấy ma trËn rót gän ci cïng nµy chØ cã thĨ cã mét hai d¹ng sau: w u v  x  w u v  x 0 u,v,w, x bốn đỉnh khác có đỉnh khác Khi ta chọn đ-a vào hành trình cạnh t-ơng ứng với phần tử ta đ-ợc hành trình T với chi phí thực tế G Nếu giá trị G nhỏ tất cận d-ới nhánh đà bỏ qua hành trình nhận đ-ợc hành trình tối -u, không G lớn giá trị cận d-ới nhánh hành trình nhận đ-ợc ch-a phải hành trình tối -u, ta tiếp tục áp dụng thuật toán nhánh cận cho nhánh để tìm hành trình áp dụng tiếp tục điều vào ví dụ ta thu đ-ợc hành trình đ-ợc mô tả hình sau: 88 Tp tất hành trình Tập hà nh trình khơng chứa (6,3) CËn d-íi = 81 CËn d-íi = 129 Tập h nh trình không chứa Tập h nh tr×nh chøa (6,3) (4,6) CËn d-íi = 81 CËn d-ới = 113 Tập h nh trình chứa (4,6) Tập h nh trình không chứa (2,1) Cận d-ới = 81 CËn d-íi = 101 TËp c¸c hà nh trình chứa Tập h nh trình không chứa (2,1) (1,4) CËn d-íi = 84 CËn d-íi = 112 TËp h nh trình chứa (1,4) Cận d-ới = 84 Hành trình gồm cạnh (6,3); (4,6); (2,1); (1,4); (3,5); (5,2) Hình 5.3 H nh trình thu đ-ợc theo hình 5.3 hành trình (1, 4, 6, 3, 5, 2, 1) cã chi phÝ G = 104 B©y giê tÊt nút có cận d-ới lớn 104 loại bỏ chúng không chứa hành trình rẻ Trên hình 5.3 ta thấy nút có cận d-ới 101 cần phải xét tiếp Nút t-ơng ứng với tập hành trình chứa cạnh (6,3), (4, 6) không chứa cạnh (2,1) Ma trận chi phí t-ơng ứng với nhánh là: 89  30   13 26  0 21  TiÕp tơc ¸p dơng tht toán nhánh cận cho nhánh này, ta thu đ-ợc hành tr×nh 1, 4, 6, 3, 2, 5, víi chi phí 104 Nh- thu đ-ợc hai hành trình tối -u với chi phí 104 Ví dụ cho thấy toán ng-ời du lịch có nhiều ph-ơng án tối -u Trong thí dụ hành trình tìm đ-ợc đà tối -u, tất nhiên điều trông đợi tr-ờng hợp tổng quát Đối với thí dụ ta phải xét 13 nút tổng số hành trình ng-ời du lịch 120 5.3.3 Thuật toán nhánh cận giải toán ng-ời du lịch Các b-ớc thuật toán nhánh cận giải toán ng-ời du lịch đ-ợc mô tả thủ tục đệ qui TSP sau Thủ tục TSP xét hành trình phận với Edges cạnh đà đ-ợc chọn tiến hành tìm kiếm Ta sử dụng biến: Edges - số cạnh hành trình phận ; A - ma trËn chi phÝ t-¬ng øng víi kÝch th-íc (n-edges) (n-edges); cost -chi phí hành trình phận Mincost - chi phí hành trình tốt đà tìm đ-ợc Trong thủ tục sử dụng h m Reduce(A, K) thđ tơc BestEdge(A, k, r, c, beta) Proceduce TSP(edges, cost, A); begin cost:= cost +reduce(A, n-edges); if edges = n-2 then begin ; Mincost := cost; 90 ; end else begin BestEdge(A,n-edges,g,c,beta); lowerBound:= cost + beta; ; newA := TSP(edges+1, cost, newA); (* theo nhánh trái * ) ; If LowerBound

Ngày đăng: 08/06/2021, 14:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN