ỨNG DỤNG GIẢI THUẬT NHÁNH CẬN ĐỂ GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH

20 657 2
ỨNG DỤNG GIẢI THUẬT NHÁNH CẬN ĐỂ GIẢI QUYẾT 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

Bài toán Người du lịch (Travelling Salesman Problem TSP) là một trong những bài toán kinh điển và khó trong tin học. Bài toán có phát biểu rất đơn giản nhưng rất khó giải trong trường hợp tổng quát với không gian tìm kiếm rộng lớn, khó bởi các thuật toán hiệu quả nhất đã được biết đến có thời gian giải quyết bài toán này tăng dần theo cấp số nhân của n, hay độ phức tạp thuật toán tăng theo hàm số mũ. Có rất nhiều cách tiếp cận giải bài toán này ngay từ khi nó mới ra đời, như sử dụng quy hoạch tuyến tính, thuật toán vét cạn, thuật toán người láng giềng gần nhất, kỹ thuật nhánh và cận, nhưng mới chỉ dừng lại ở các bộ dữ liệu nhỏ

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP.HCM HỌ VÀ TÊN HỌC VIÊN ĐỀ TÀI: ỨNG DỤNG GIẢI THUẬT NHÁNH CẬN ĐỂ GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH Chuyên ngành: KHOA HỌC MÁY TÍNH Người hướng dẫn: Thành Phố Hồ Chí Minh – 2017 MỤC LỤC CHƯƠNG I LỜI GIỚI THIỆU .3 CHƯƠNG II TỔNG QUAN VỀ BÀI TOÁN NGƯỜI DU LỊCH .4 I Giới thiệu toán II Mơ tả tốn TSP III Các thuật toán giải toán TSP Thuật giải xác Thuật giải gần heuristic .5 I Giới thiệu II Ưu điểm nhược điểm giải thuật nhánh cận III Code Chương Trình 10 IV Bộ liệu 14 V Kết Quả 15 VI Kết Luận 18 TÀI LIỆU THAM KHẢO 19 Trang CHƯƠNG I LỜI GIỚI THIỆU Bài toán Người du lịch (Travelling Salesman Problem - TSP) tốn kinh điển khó tin học Bài tốn có phát biểu đơn giản khó giải trường hợp tổng qt với khơng gian tìm kiếm rộng lớn, khó thuật tốn hiệu biết đến có thời gian giải toán tăng dần theo cấp số nhân n, hay độ phức tạp thuật toán tăng theo hàm số mũ Có nhiều cách tiếp cận giải tốn từ đời, sử dụng quy hoạch tuyến tính, thuật tốn vét cạn, thuật toán người láng giềng gần nhất, kỹ thuật nhánh cận, dừng lại liệu nhỏ Gần có nhiều thuật tốn đời theo hướng tiếp cận tiến hóa thuật tốn di truyền Genetic Algorithm hay cách mô hành vi đàn kiến thuật toán đàn kiến áp dụng cho kết tốt nhiều Từ tốn người du lịch áp dụng cho nhiều tình thực tế như: lập lịch tối ưu cho dự án, xếp hành trình du lịch, định tuyến mạng viễn thông… Xuất phát từ nhu cầu tìm đường ngắn với giải thuật tốt cho khơng gian tìm kiếm rộng lớn, áp dụng cho nhiều toán tối ưu tổ hợp thực tế, mục tiêu báo cáo nhằm tìm hiểu thuật tốn đàn kiến, xem xét hiệu thuật toán đàn kiến áp dụng vào tốn tối ưu tổ hợp so sánh tính hiệu thuật toán đàn kiến với thuật toán di truyền Trang CHƯƠNG II TỔNG QUAN VỀ BÀI TỐN NGƯỜI DU LỊCH I Giới thiệu tốn Bài tốn người du lịch hay cịn gọi toán TSP toán tiếng lĩnh vực tối ưu tổ hợp nghiên cứu lý thuyết khoa học máy tính có nội dung sau: Một người bán hàng xuất phát từ thành phố anh ta, muốn tìm đường ngắn qua tất thành phố khách hàng thành phố lần sau trở thành phố ban đầu Nó nhanh chóng trở thành tốn khó thách thức tồn giới độ phức tạp thuật toán tăng theo hàm số mũ (trong chun ngành thuật tốn người ta cịn gọi chúng tốn NPkhó) II Mơ tả tốn TSP TSP mơ đồ thị (hình 1.5), đỉnh đồ thị tương ứng với thành phố cạnh tương ứng với đường nối thành phố, chiều dài cạnh tương ứng với khoảng cách thành phố Một đường toán TSP chu trình Hamilton đồ thị lời giải tối ưu tốn chu trình Hamilton ngắn Đồ thị thường đồ thị đầy đủ, cặp cạnh nối cạnh Đây bước đơn giản hóa tốn việc tìm chu trình Hamilton đồ thị đầy đủ dễ Các tốn mà khơng phải hai thành phố nối với chuyển đổi thành đồ thị đầy đủ cách thêm cạnh có độ dài lớn thành phố này, cạnh không xuất chu trình tối ưu Trang Hình 1.5 Mơ tả toán TSP Đồ thị thường đồ thị đầy đủ, cặp cạnh nối cạnh Đây bước đơn giản hóa tốn việc tìm chu trình Hamilton đồ thị đầy đủ dễ Các tốn mà khơng phải hai thành phố nối với chuyển đổi thành đồ thị đầy đủ cách thêm cạnh có độ dài lớn thành phố này, cạnh không xuất chu trình tối ưu III Các thuật tốn giải tốn TSP Thuật giải xác Trong thuật giải xác cho tốn người du lịch, phải kể đến thuật toán vét cạn Thuật tốn tìm tất chu trình hamilton đồ thị, sau chọn chu trình nhỏ làm đáp án Thuật giải gần heuristic Khi tốn có kích thước n đỉnh nhỏ thuật giải xác áp dụng cho kết nhanh chóng Nhưng số đỉnh tốn tăng lên đáng kể độ phức tạp thuật tốn tăng lên Trong trường hợp này, chất lượng giải pháp vấn đề quan tâm mà hiệu suất tính tốn đơn giản khái niệm ưu tiên hơn, thuật tốn heuristic sử dụng để đưa giải pháp tối ưu chấp nhận sai số so với giải pháp tối ưu không nhiều Trong luận văn giới thiệu bốn thuật toán tiếng là: thuật tốn láng giềng gần nhất, thuật tốn tìm kiếm cục bộ, thuật toán Trang nhánh cận thuật tốn di truyền Trong thuật tốn cục thường sử dụng kết hợp với thuật toán đàn kiến ACO để tăng hiệu suất tìm kiếm giải pháp Thuật tốn tìm kiếm cục Thuật tốn tìm kiếm cục giải pháp metaheuristic cho việc giải tốn tính tốn tối ưu khó máy tính Thuật tốn áp dụng cho tốn tìm kiếm lời giải gần tối ưu loạt lời giải ứng viên Phương pháp tìm kiếm duyệt qua lời giải không gian tìm kiếm lời tìm lời giải cho tối ưu vượt thời gian tìm kiếm cho phép Thuật tốn tìm kiếm cục ứng viên lời giải (chưa tối ưu), kiểm tra cải thiện dần cách quan tâm tới giải pháp thời xem xét chuyển sang ứng viên lời giải láng giềng lời giải thời đến dừng thuật toán Tuy nhiên ứng viên lời giải có lời giải láng giềng, nên cách lựa chọn lời giải láng giềng danh sách láng giềng để thành bước duyệt trở thành thuật toán khác Thuật toán di truyền Thuật toán di truyền thuật toán metaheuristic Metaheuristic cách gọi chung cho thuật toán heuristic việc giải tốn tổ hợp khó Hầu hết thuật toán metaheuristic lấy cảm hứng từ tự nhiên như: thuật toán luyện thép (SA), thuật toán di truyền (GA), thuật toán đàn kiến (ACO),… Thuật toán đàn kiến metaheuristic dùng chiến lược kiến giới thực để giải toán tối ưu SA xuất phát từ phương thức xác suất kỹ thuật luyện bao gồm việc nung điều khiển àm nguội kim loại để đạt trạng thái lượng nhỏ Trong thuật tốn di truyền dựa ý tưởng từ chế di truyền sinh học tiến trình tiến hóa cộng đồng cá thể lồi Thuật tốn láng giềng gần Thuật giải vét cạn cho ta đáp án tối ưu, nhiên độ phức tạp cao (O(n!)) Do thực tế, người ta chấp nhận thuật giải cho kết tốt (nhưng lúc tốt) đơn giản, nhanh chóng cài đặt dễ Trang dàng Một thuật giải thuật tốn láng giềng gần hay cịn gọi thuật tốn tham lam Thuật toán nhánh cận Thuật toán nhánh cận phương pháp chủ yếu để giải toán tối ưu tổ hợp Tư tưởng thuật toán trình tìm kiếm lời giải, phân hoạch tập phương án toán thành hai hay nhiều tập biểu diễn nút tìm kiếm cố gắng cách đánh giá cận nút, tìm cách loại bỏ nhánh (những tập phương án toán) mà biết chắn phương án tối ưu Mặc dù trường hợp tồi nhất, thuật toán trở thành duyệt toàn bộ, trường hợp cụ thể rút ngắn đáng kể thời gian tìm kiếm Trang CHƯƠNG III THUẬT TỐN TỐI ƯU NHÁNH CẬN I Giới thiệu Một tốn đặt thực tế việc tìm nghiệm thoả mãn số điều kiện đó, nghiệm tốt theo tiêu cụ thể, nghiên cứu lời giải lớp toán tối ưu thuộc lĩnh vực quy hoạch toán học Tuy nhiên cần phải nói nhiều trường hợp chưa thể xây dựng thuật toán thực hữu hiệu để giải toán, mà việc tìm nghiệm chúng phải dựa mơ hình liệt kê tồn cấu hình đánh giá, tìm cấu hình tốt Việc liệt kê cấu hình cài đặt phương pháp liệt kê: Sinh tìm kiếm quay lui Thuật tốn quay lui (backtracking) chiến lược tìm nghiệm tốn cách xét tất phương án Đó trình tìm kiếm theo độ sâu tập hợp lời giải Trong trình tìm kiếm, ta gặp hướng lựa chọn không thỏa mãn, ta quay lui điểm lựa chọn nơi có hướng khác thử hướng lựa chọn Khi thử hết lựa chọn xuất phát từ điểm lựa chọn đó, ta quay lại điểm lựa chọn trước thử hướng lựa chọn Quá trình tìm kiếm thất bại khơng cịn điểm lựa chọn Đây thuật tốn áp dụng để giải nhiều tốn với kích thước liệu thích hợp Ưu điểm thuật tốn đảm bảo tìm nghiệm xác Mơ hình thuật tốn quay lui tìm kiếm phân cấp Nếu giả thiết ứng với nút tương ứng với giá trị chọn cho x[i] ứng với nút tương ứng với giá trị mà x[i+1] nhận n cấp có tới 2n nút lá, số lớn nhiều lần so với liệu đầu vào n Chính mà ta có thao tác thừa việc chọn x[i] phải trả giá lớn chi phí thực thi thuật tốn q trình tìm kiếm lịng vịng vơ nghĩa bước chọn x[i+1], x[i+2], … Khi đó, vấn đề đặt trình liệt kê lời giải ta cần tận dụng thơng tin tìm để loại bỏ sớm phương Trang án chắn tối ưu Kỹ thuật gọi kỹ thuật đánh giá nhánh cận tiến trình quay lui Kĩ thuật Nhánh cận (Nhánh cận – Branch and Bound) giúp đánh giá nghiệm, cắt bỏ phương án (nhánh) khơng cần thiết, việc tìm nghiệm tối ưu nhanh hơn, cải thiện độ phức tạp thuật tốn Những tốn tìm nghiệm, liệt kê toán tối ưu lớp tốn giải Kĩ thuật Nhánh cận Ý tưởng thuật toán: Nhánh cận kỹ thuật xây dựng tìm kiếm phương án tối ưu, khơng xây dựng toàn mà sử dụng giá trị cận để hạn chế bớt nhánh - Giữ lại phương án mẫu Tính chi phí cho phương án khác trình xây dựng o Tốt hơn: cập nhật lại phương án mẫu tiếp tục tìm phương án o Không tốt hơn: quay lại bước xét phương án khác Gọi p hốn vị {1,2,…,n} ta hành trình Tp(1)-> Tp(2) -> … Tp(n) Ta có n! hành trình Nếu ta chọn đỉnh đỉnh xuất phát ta có (n-1)! hành trình, tốn trở thành: + Tìm Min{f(x)} Hàm đệ quy quay lui cho nhánh cận: Try(i){ For(j=1; jstrlen(xau)?*xau=NULL:xau[v]=xau[v+n],v+n

Ngày đăng: 23/07/2020, 15:44

Hình ảnh liên quan

Hình 1.5 Mô tả bài toán TSP - ỨNG DỤNG GIẢI THUẬT NHÁNH CẬN ĐỂ GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH

Hình 1.5.

Mô tả bài toán TSP Xem tại trang 5 của tài liệu.
Bảng hồi quy tuyến tính - ỨNG DỤNG GIẢI THUẬT NHÁNH CẬN ĐỂ GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH

Bảng h.

ồi quy tuyến tính Xem tại trang 18 của tài liệu.

Từ khóa liên quan

Mục lục

  • CHƯƠNG I. LỜI GIỚI THIỆU

  • CHƯƠNG II. TỔNG QUAN VỀ BÀI TOÁN NGƯỜI DU LỊCH

    • I. Giới thiệu bài toán

    • II. Mô tả bài toán TSP

    • III. Các thuật toán giải bài toán TSP

      • 1. Thuật giải chính xác

      • 2. Thuật giải gần đúng heuristic

      • I. Giới thiệu

      • II. Ưu điểm và nhược điểm của giải thuật nhánh cận

      • III. Code Chương Trình

      • IV. Bộ dữ liệu

      • V. Kết Quả

      • VI. Kết Luận

      • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan