Bài toán người du lịch
Số trang: 6
Loại file: pdf
Dung lượng: 122.54 KB
Lượt xem: 28
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu trình bày lời giải bài toán: Một nguời du lịch muốn tham quan n thành phố T1,.., Tn. Xuất phát từ một thành phố nào đó, 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ố đi qua đúng 1 lần rối quay trở lại thành phố xuất phát. Gọi Cij là chi phí đi từ thành phố Ti đến Tj. Hãy tìm một hành trình thỏa yêu cầu bài toán sao cho chi phí là nhỏ nhất. Mời bạn đọc cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài toán người du lịch Bài toán người du lịch Bài toán người du lịch Bởi: Khoa CNTT ĐHSP KT Hưng Yên Bài toán Một nguời du lịch muốn tham quan n thành phố T1,.., Tn . Xuất phát từ một thành phố nào đó, 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ố đi qua đúng 1 lần rối quay trở lại thành phố xuất phát. Gọi Cij là chi phí đi từ thành phố Ti đến Tj . Hãy tìm một hành trình thỏa yêu cầu bài toán sao cho chi phí là nhỏ nhất. Phân tích, thiết kế thuật toán: Đây là bài toán tìm chu trình có trọng số nhỏ nhất trong một đơn đồ thị có hướng có trọng số. Thuật toán tham lam cho bài toán là chọn thành phố có chi phí nhỏ nhất tính từ thành phố hiện thời đến các thành phố chưa qua Input C= (Cij) output TOUR // Hành trình tối ưu, Mô tả : COST;//Chi phí tương ứng TOUR := 0; COST := 0; v := u; // Khởi tạo Mọi k := 1 -> n ://Thăm tất cả các thành phố // Chọn cạnh kề ) - Chọn là đoạn nối 2 thành phố có chi phí nhỏ nhất tính từ thành phố v đến các thành phố chưa qua. - TOUR := TOUR + ; //Cập nhật lời giải 1/6 Bài toán người du lịch - COST := COST + Cvw ; //Cập nhật chi phí // Chuyến đi hoàn thành TOUR := TOUR + ; COST := COST + Cvw Minh họa: 2/6 Bài toán người du lịch 3/6 Bài toán người du lịch Độ phức tạp thuật toán Thao tác chọn đỉnh thích hợp trong n đỉnh được tổ chức bằng một vòng lặp để duyệt. Nên chi phí cho thuật toán xác định bởi 2 vòng lặp lồng nhau, nên T(n) € O (n2). Cài đặt thuật toán int GTS (mat a, int n, int TOUR[max], int Ddau) { int v, //Dinh dang xet 4/6 Bài toán người du lịch k, //Duyet qua n dinh de chon w; //Dinh duoc chon trong moi buoc int mini; //Chon min cac canh(cung) trong moi buoc int COST; //Trong so nho nhat cua chu trinh int daxet[max]; //Danh dau cac dinh da duoc su dung for(k = 1; k
Nội dung trích xuất từ tài liệu:
Bài toán người du lịch Bài toán người du lịch Bài toán người du lịch Bởi: Khoa CNTT ĐHSP KT Hưng Yên Bài toán Một nguời du lịch muốn tham quan n thành phố T1,.., Tn . Xuất phát từ một thành phố nào đó, 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ố đi qua đúng 1 lần rối quay trở lại thành phố xuất phát. Gọi Cij là chi phí đi từ thành phố Ti đến Tj . Hãy tìm một hành trình thỏa yêu cầu bài toán sao cho chi phí là nhỏ nhất. Phân tích, thiết kế thuật toán: Đây là bài toán tìm chu trình có trọng số nhỏ nhất trong một đơn đồ thị có hướng có trọng số. Thuật toán tham lam cho bài toán là chọn thành phố có chi phí nhỏ nhất tính từ thành phố hiện thời đến các thành phố chưa qua Input C= (Cij) output TOUR // Hành trình tối ưu, Mô tả : COST;//Chi phí tương ứng TOUR := 0; COST := 0; v := u; // Khởi tạo Mọi k := 1 -> n ://Thăm tất cả các thành phố // Chọn cạnh kề ) - Chọn là đoạn nối 2 thành phố có chi phí nhỏ nhất tính từ thành phố v đến các thành phố chưa qua. - TOUR := TOUR + ; //Cập nhật lời giải 1/6 Bài toán người du lịch - COST := COST + Cvw ; //Cập nhật chi phí // Chuyến đi hoàn thành TOUR := TOUR + ; COST := COST + Cvw Minh họa: 2/6 Bài toán người du lịch 3/6 Bài toán người du lịch Độ phức tạp thuật toán Thao tác chọn đỉnh thích hợp trong n đỉnh được tổ chức bằng một vòng lặp để duyệt. Nên chi phí cho thuật toán xác định bởi 2 vòng lặp lồng nhau, nên T(n) € O (n2). Cài đặt thuật toán int GTS (mat a, int n, int TOUR[max], int Ddau) { int v, //Dinh dang xet 4/6 Bài toán người du lịch k, //Duyet qua n dinh de chon w; //Dinh duoc chon trong moi buoc int mini; //Chon min cac canh(cung) trong moi buoc int COST; //Trong so nho nhat cua chu trinh int daxet[max]; //Danh dau cac dinh da duoc su dung for(k = 1; k
Tìm kiếm theo từ khóa liên quan:
Bài toán người du lịch Phân tích thuật toán Thiết kế thuật toán Giải thuật toán Bài tập giải thuật Cài đặt thuật toánGợi ý tài liệu liên quan:
-
Giải bài toán người du lịch qua phép dẫn về bài toán chu trình Hamilton
7 trang 396 0 0 -
Bài giảng chuyên đề Phân tích và thiết kế thuật toán: Chia để trị
27 trang 226 0 0 -
Tiểu luận ngành Khoa học máy tính: Thiết kế và phân tích thuật toán
36 trang 121 0 0 -
Bài giảng Phân tích thiết kế thuật toán: Chương 3 - Nguyễn Văn Linh
87 trang 109 0 0 -
12 trang 109 0 0
-
10 trang 68 0 0
-
Giải thuật meta-heuristic giải bài toán người du lịch
7 trang 40 0 0 -
Giáo trình Thiết kế và đánh giá thuật toán - Trần Tuấn Minh
122 trang 38 0 0 -
Giáo trình thiết kế và đánh giá thuật toán - Trần Tuấn Minh
122 trang 37 0 0 -
514 trang 35 0 0