Cấu trúc dữ liệu và giải thuật (phần 21) potx

10 235 0
Cấu trúc dữ liệu và giải thuật (phần 21) potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Please purchase a Please purchase a personal license. personal license. C C Á Á C THU C THU Ậ Ậ T TO T TO Á Á N N THAM LAM (GREEDY) THAM LAM (GREEDY) Gi Gi ả ả i thu i thu ậ ậ t tham lam t tham lam Khái niệm: Mỗi bài toán ta có tập hợp những lựa chọn để giải quyết bài toán. Giải thuật tham lam đề xuất việc lựa chọn khả năng tốt nhất cho bài toán đó. Ví dụ:  Bài toán cây khung tối thiểu  Bài toán đường đi ngắn nhất Traveling Salesperson Problem Traveling Salesperson Problem Bài toán: Bài toán tìm đường đi của người giao hàng (TSP) - Người giao hàng cần đi giao hàng tại n thành phố. Xuất phát từ một thành phố nào đó, đi qua các thành phố khác để giao hàng và trở về thành phố ban đầu. - Mỗi thành phố chỉ đến 1 lần. Khoảng cách giữa các thành phố là xác định - Hãy tìm một chu trình sao cho tổng độ dài đường đi là nhỏ nhất Traveling Salesperson Problem Traveling Salesperson Problem Giải quyết bài toán với phương pháp vét cạn: - Xét tất cả các chu trình, và chọn chu trình độ dài nhỏ nhất  Phải xét tất cả (n-1)!/2 chu trình??? - Chọn 1 đỉnh bất kì, tại đỉnh này có n-1 cạnh tới n- 1 đỉnh khác, nên có n-1 các chọn cạnh đầu tiên. - Sau khi chọn được cạnh đầu tiên, còn n-2 cách chọn cạnh thứ 2. - Tiếp tục như vậy ta có (n-1)! cách chọn chu trình - Do chỉ quan tâm đến độ dài, không quan tâm đến hướng  (n-1)!/2 phương án Traveling Salesperson Problem Traveling Salesperson Problem Giải quyết bài toán với giải thuật tham lam: 1. Xét các cạnh có độ dài từ nhỏ đến lớn để đưa vào chu trình ( có n(n-1)/2 cạnh) 2. Mỗi cạnh sẽ được đưa vào chu trình nếu: 1. Không tạo thành một chu trình thiếu (tạo thành chu trình trước khi đi đủ hết tất cả n đỉnh) 2. Không tạo thành một đỉnh có cấp >=3 ( không có nhiều hơn 2 cạnh xuất phát từ một đỉnh, do yêu cầu của bài toán mỗi thành phố chỉ đến 1 lần: 1 đến, 1 đi) 3. Lặp lại bước 2 cho đến khi xây dựng được 1 chu trình Traveling Salesperson Problem Traveling Salesperson Problem Ví dụ: Cho độ dài đường đi giữa các thành phố được biểu diễn bằng ma trận kề sau. Tìm chu trình ngắn nhất giữa các thành phố • (3,5) = 1  (5,6) = 2  (4,7) = 4 (2,7) = 5  (1,6) = 7 (1,4) = 13 (2,3) =21 Tổng đường đi: (1,4,7,2,3,5,6,1)=53  Đây chỉ là phương án tốt Phương án tối ưu: (1,4,7,2,5,3,6,1) =41 1 2 3 4 5 6 7 1 16 12 13 6 7 11 2 21 18 8 19 5 3 20 1 3 15 4 14 10 4 5 2 17 6 9 Traveling Salesperson Problem Traveling Salesperson Problem Giải thuật: void TSP (Graph &g) { E – t ậ p h ợ p các c ạ nh; S ắ p x ế p các c ạ nh trong E theo th ứ t ự tăng dầ n; cycle = NULL; length_cycle = 0; while (E !=F) { if ( c ạ nh e th ỏ a mãn đ i ề u ki ệ n ) { cycle = cycle + e; length_cycle = length_cycle + length(e); } E = E – e; } } Traveling Salesperson Problem Traveling Salesperson Problem Giải pháp khác của thuật toán tham lam: 1. Xuất phát từ 1 đỉnh bất kỳ, chọn 1 cạnh có độ dài nhỏ nhất từ đỉnh đó đến đỉnh kế tiếp. 2. Từ đỉnh kế tiếp, chọn cạnh có độ dài nhỏ nhất đi ra từ đỉnh này thỏa mạn 2 điều kiện ( không tạo chu trình trước khi qua n đỉnh, 1 đỉnh không lớn hơn 2 đường đi) 3. Lặp lại bước 2 cho đến khi đi đến n đỉnh thì quay lại đỉnh xuất phát Traveling Salesperson Problem Traveling Salesperson Problem Bài tập: Tìm đường đi ngắn nhất của người giao hàng với độ dài giữa các thành phố cho bởi ma trận sau: Đường đi đã tìm ra tối ưu chưa? . Salesperson Problem Giải quyết bài toán với giải thuật tham lam: 1. Xét các cạnh có độ dài từ nhỏ đến lớn để đưa vào chu trình ( có n(n-1)/2 cạnh) 2. Mỗi cạnh sẽ được đưa vào chu trình nếu: 1 thu ậ ậ t tham lam t tham lam Khái niệm: Mỗi bài toán ta có tập hợp những lựa chọn để giải quyết bài toán. Giải thuật tham lam đề xuất việc lựa chọn khả năng tốt nhất cho bài toán đó. Ví dụ: . nhất Traveling Salesperson Problem Traveling Salesperson Problem Giải quyết bài toán với phương pháp vét cạn: - Xét tất cả các chu trình, và chọn chu trình độ dài nhỏ nhất  Phải xét tất cả (n-1)!/2

Ngày đăng: 09/07/2014, 21:20

Từ khóa liên quan

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

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

Tài liệu liên quan