Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

78 3.6K 16
Nghiên cứu ứng dụng thuật toán đàn kiến để 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

Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG NGHIÊN CỨU ỨNG DỤNG GIẢI THUẬT ĐÀN KIẾN ĐỂ GIẢI QUYẾT BÀI TOÁN NGƯỜI DU LỊCH LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng – Năm 2013 LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác. Tác giả luận văn ký và ghi rõ họ tên MỤC LỤC DANH MỤC CÁC CHỮ VIẾT TẮT TSP Travelling Salemans Problem ACO Ant colony optimization NP Non-deterministic Polynomial-time QAP Quadratic Assignment Problem GA Genetic Algorithm AS Ant System ACS Ant Colony System DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang Error: Reference source not found Bảng các thuật toán tối ưu đàn kiến ACO theo thứ tự về thời gian xuất hiện Error: Reference source not found Bảng 3. Bảng so sánh số vòng lặp mà thuật toán ACO thực hiện khi tìm thấy giá trị tối ưu nhất. 65 Bảng 3.2 Bảng kết quả thực hiện thuật toán với các tham số đầu vào: 𝛼=1, 𝛼=2, rho=0.2, số kiến=30, Q=2. Error: Reference source not found Bảng 3. Bảng so sánh giá trị tối ưu nhất mà thuật toán ACO đã thực hiện 65 Bảng 3.4 Bảng kết quả thực hiện thuật toán di truyền với các tham số đầu vào: số thế hệ=20, số quần thể=50, đột biến=0.08, lai ghép=0.08. Error: Reference source not found DANH MỤC CÁC HÌNH VÀ ĐỒ THỊ Số hiệu hình vẽ Tên hình vẽ, đồ thị Trang Hình 1. Đồ thị minh họa bậc của đỉnh 11 Hình 1. Đồ thị minh họa ma trận kề 12 Hình 1. Đồ thị minh họa đồ thị Euler 14 Đồ thị minh họa đồ thị Hamilton 15 Hình 1. Mô tả bài toán TSP 19 Hình 1. Thuật toán tham lam với số đỉnh là 5 21 Hình 1. Thuật toán tham lam cho trường hợp xấu nhất 21 Hình 1. Hình minh họa thuật toán 2-opt: hành trình ban đầu và hành trình sau khi thực hiện thuật toán 2-opt 22 Hình 1. Hình mình họa thuật toán 3-opt: hành trình ban đầu và hai hành trình có được sau khi áp dụng thuật toán 3-opt. 23 Hình 1. Quá trình phân nhánh trong quá trình tìm kiếm của thuật toán nhánh cận 25 Hình 1. Duyệt hành trình có cận dưới là 140 31 Hình 1. Sơ đồ cấu trúc thuật toán di truyền 33 Hình 2. Kiến tự nhiên 37 Hình 2. Các kiến thực đối mặt với vật cản 37 Hình 2. Một con kiến ở thành phố i chọn lựa thành phố j kế tiếp để đi dựa vào xác suất tỉ lệ với vệt mùi để lại trên cạnh (i,j) 39 Hình 3. Kết quả thực hiện thuật toán từ tập tin khoảng cách giữa các thành phố 59 Hình 3. Kết quả thực hiện thuật toán ACO từ các điểm được phát ra ngẫu nhiên 60 Hình 3. Kết quả thực hiện thuật toán kiến trên bộ dữ liệu Eil51 61 Hình 3. Kết quả thực hiện thuật toán di truyền trên bộ dữ liệu Eil51 61 Hình 3. Kết quả thực hiện thuật toán kiến trên bộ dữ liệu Eil76 62 Hình 3. Kết quả thực hiện thuật toán di truyền trên bộ dữ liệu Eil76 63 Hình 3. Kết quả thực hiện thuật toán kiến trên bộ dữ liệu Eil101 63 Hình 3. Kết quả thực hiện thuật toán di truyền trên bộ dữ liệu Eil101 64 Biểu đồ 3. So sánh giá trị tối ưu của 2 thuật toán đàn kiến và di truyền trên bộ dữ liệu Eil51 67 Biểu đồ 3. So sánh giá trị tối ưu của 2 thuật toán đàn kiến và di truyền trên bộ dữ liệu Eil76 68 Biểu đồ 3. So sánh giá trị tối ưu của 2 thuật toán đàn kiến và di truyền trên bộ dữ liệu Eil101 68 7 MỞ ĐẦU 1. Lý do chọn đề tài 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 [6] [7] [8] [9] [10] [11] 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ũ [19] . 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ỏ. Gần đây có nhiều thuật toán ra đời theo hướng tiếp cận về tiến hóa như thuật toán di truyền Genetic Algorithm hay cách mô phỏng hành vi của đàn kiến như thuật toán đàn kiến được áp dụng cho kết quả tốt hơn rất nhiều. Thuật toán đàn kiến do Thomas Stutzle và Marco Dorigo đề xuất là một thuật toán độc đáo và có thể áp dụng cho nhiều bài toán tối ưu tổ hợp với một bộ dữ liệu lớn. Thuật toán kiến mô phỏng hành vi của đàn kiến trong tự nhiên nhằm tìm kiếm đường đi ngắn nhất giữa tổ kiến và nguồn thức ăn dựa trên mật độ mùi (pheromone) mà các con kiến để lại trên đường đi [6] [8] [9] [10] Người ta đã áp dụng rất thành công các thuật toán đàn kiến trong các bài toán tối ưu như bài toán người đưa thư, bài toán gán, bài toán tô mầu đồ thị, bài toán lập lịchbài toán nổi tiếng nhất là bài toán người du lịch. Từ bài toán người du lịch này có thể áp dụng cho nhiều tình huống trong thực tế như: lập lịch tối ưu cho dự án, sắp xếp các hành trình du lịch, định tuyến trong các mạng viễn thông…[7] [10] [15] Hiệu quả của thuật toán đàn kiến đã được thể hiện khi so sánh với các thuật toán nổi tiếng khác như thuật toán di truyền (Genetic Algorithm), thuật toán mô phỏng luyện kim (Simulated Annealing), thuật toán tìm kiếm Tabu (Tabu-Search) [7] [29] Xuất phát từ nhu cầu tìm đường đi ngắn nhất với một giải thuật tốt cho không gian tìm kiếm rộng lớn, áp dụng được cho nhiều bài toán tối ưu tổ hợp trong thực tế nên tôi chọn đề tài:“Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch” nhằm tìm hiểu thuật toán đàn kiến, xem xét hiệu quả của thuật toán đàn kiến áp dụng vào bài toán tối ưu tổ hợp và so sánh tính hiệu quả của thuật toán đàn kiến với thuật toán di truyền. 2. Mục tiêu và nhiệm vụ nghiên cứu 2.1. Mục tiêu - Áp dụng thuật toán tối ưu đàn kiến ACO để tìm đường đi ngắn nhất trong bài toán Người du lịch - Xây dựng ứng dụng mô phỏng bài toán người du lịch giải bằng thuật toán tối ưu đàn kiến ACO - Đánh giá hiệu quả của thuật toán tối ưu đàn kiến ACO so với thuật toán di truyền trong bài toán người du lịch 2.2. Nhiệm vụ chính của đề tài - Tìm hiểu về bài toán người du lịch 8 - Tìm hiểu các thuật toán truyền thống và thuật toán di truyền cho bài toán người du lịch - Tìm hiểu thuật toán tối ưu đàn kiến ACO - Áp dụng thuật toán ACO vào bài toán người du lịch - Đánh giá hiệu quả của thuật toán tối ưu đàn kiến ACO so với thuật toán di truyền trong việc giải bài toán người du lịch - Xây dựng chương trình giải quyết bài toán người du lịch với số lượng dữ liệu lớn. 3. Đối tượng và phạm vi nghiên cứu 3.1. Đối tượng nghiên cứu - Bài toán người du lịch - Lý thuyết về thuật toán truyền thống và thuật toán di truyền giải bài toán người du lịch - Lý thuyết về thuật toán đàn kiến 3.2. Phạm vi nghiên cứu - Nghiên cứu thuật toán đàn kiến để xây dựng ứng dụng giải bài toán người du lịch, qua đó đánh giá hiệu quả của thuật toán đàn kiến so với thuật toán di truyền 4. Phương pháp nghiên cứu 4.1. Phương pháp lý thuyết - Nghiên cứu tìm hiểu các phương pháp giải bài toán người du lịch - Nghiên cứu về thuật toán di truyền GA áp dụng cho bài toán người du lịch - Cơ sở lý thuyết về thuật toán đàn kiến - Cơ sở lý thuyết về thuật toán đàn kiến áp dụng cho bài toán người du lịch 4.2. Phương pháp thực nghiệm - Lựa chọn ngôn ngữ lập trình để cài đặt thuật toán - Thực nghiệm thuật toán trên bộ dữ liệu thử nghiệm - Đánh giá, kiểm tra kết quả 5. Dự kiến kết quả 5.1. Kết quả lý thuyết - Hiểu được thuật toán giải bài toán người du lịch truyền thống - Nắm vững được thuật toán đàn kiến 5.2. Kết quả thực tiễn - Xây dựng chương trình ứng dụng thuật toán đàn kiến ACO để giải bài toán người du lịch 9 - Đánh giá hiệu quả thuật toán đàn kiến so với thuật toán di truyền 6. Ý nghĩa khoa học và thực tiễn 6.1. Ý nghĩa khoa học - Áp dụng lý thuyết của thuật toán đàn kiến ACO để áp dụng trong các bài toán tối ưu tổ hợp - So sánh và đánh giá hiệu quả của thuật toán di truyền và thuật toán đàn kiến ACO trong giải bài toán người du lịch 6.2. Ý nghĩa thực tiễn - Thuật toán đàn kiến có thể áp dụng trong các bài toán thực tế: lập lịch đi hành trình với chi phí tối thiểu, định tuyến trên mạng,… 7. Cấu trúc luận văn Bố cục của luận văn gồm 3 chương với các nội dung như sau: Chương 1: Tổng quan đề tài. Tìm hiểu nghiên cứu lý thuyết liên quan về đồ thị; lý thuyết về bài toán tối ưu tổ hợp; tìm hiểu nội dung bài toán người du lịch và các phương pháp giải bài toán người du lịch: thuật toán vét cạn, thuật toán láng giềng gần nhất, thuật toán tìm kiếm cục bộ, thuật toán nhánh cận và thuật toán di truyền. Chương 2: Thuật toán tối ưu đàn kiến ACO. Tìm hiểu về nội dung thuật toán đàn kiến; thuật toán đàn kiến giải bài toán người du lịch; thuật toán tối ưu đàn kiến ACO bao gồm các thuật toán Ant System, Max-Min Ant System và Ant Colony System; cách thức nâng cao hiệu quả của thuật toán ACO và các ứng dụng của thuật toán ACO. Chương 3: Ứng dụng thuật toán ACO vào bài toán người du lịch. Phân tích yêu cầu của bài toán, từ đó phân tích các chức năng, xây dựng chương trình ứng dụng vào bài toán người du lịch đồng thời tiến hành chạy thử, đánh giá kết quả; và so sánh tính hiệu quả của thuật toán tối ưu đàn kiến ACO với thuật toán di truyền. Cuối cùng là kết luận và hướng phát triển của đề tài. 10 CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI Chương này tìm hiểu nghiên cứu lý thuyết liên quan về đồ thị; lý thuyết về bài toán tối ưu tổ hợp; tìm hiểu nội dung bài toán người du lịch và các phương pháp giải bài toán người du lịch: thuật toán vét cạn, thuật toán láng giềng gần nhất, thuật toán tìm kiếm cục bộ, thuật toán nhánh cận và thuật toán di truyền. 1.1. CÁC KHÁI NIỆM CƠ BẢN VỀ ĐỒ THỊ 1.1.1. Định nghĩa đồ thị Đồ thị là một cấu trúc rời rạc gồm các đỉnh và các cạnh (vô hướng hoặc có hướng) nối các đỉnh đó. Người ta phân loại đồ thị tùy theo đặc tính và số các cạnh nối các cặp đỉnh của đồ thị. Nhiều bài toán thuộc những lĩnh vực rất khác nhau có thể giải được bằng mô hình đồ thị. Ta có thể dùng đồ thị để giải các bài toán như bài toán tính số các tổ hợp khác nhau của các chuyến bay giữa hai thành phố trong một mạng hàng không, hay để giải bài toán đi tham quan tất cả các đường phố của một thành phố sao cho mỗi đường phố đi qua đúng một lần, hoặc bài toán tìm số các màu cần thiết để tô các vùng khác nhau của một bản đồ [4] [5] a. Đồ thị vô hướng Đồ thị vô hướng G là một cặp không có thứ tự G:=(V, E), trong đó: − V là tập các đỉnh hoặc nút − E là tập các cặp không thứ tự chứa các đỉnh phân biệt, được gọi là cạnh. Hai đỉnh thuộc một cạnh được gọi là các đỉnh đầu cuối của cạnh đó b. Đồ thị có hướng Đồ thị có hướng G là một cặp có thứ tự G:=(V, A), trong đó: − V là tập các đỉnh hoặc nút − A là tập các cặp có thứ tự chứa các đỉnh, được gọi là các cạnh có hướng hoặc cung. Một cạnh e= (x, y) được coi là có hướng từ x tới y; x được gọi là điểm đầu/gốc và y được gọi là điểm cuối/ngọn của cạnh. c. Đồ thị đơn và Đa đồ thị − Đồ thị đơn là đồ thị mà không có khuyên và không có cạnh song song. − Đa đồ thị là đồ thị mà không thỏa đồ thị đơn. − Đa đồ thị có hướng là một đồ thị có hướng, trong đó, nếu x và y là hai đỉnh thì đồ thị được phép có cả hai cung (x, y) và (y, x). − Đồ thị đơn có hướng (hoặc Đơn đồ thị có hướng) là một đồ thị có hướng, trong đó, nếu x và y là hai đỉnh thì đồ thị chỉ được phép có tối đa một trong hai cung (x, y) hoặc (y, x). 1.1.2. Bậc của đỉnh a. Định nghĩa: Bậc của đỉnh v trong đồ thị G=(V,E), ký hiệu deg(v), là số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh được tính hai lần cho bậc của nó. Đỉnh v gọi là đỉnh treo nếu deg(v)=1 và gọi là đỉnh cô lập nếu deg(v)=0 [5] Ta xem xét ví dụ một đồ thị như trong hình 1.1 để xác định số bậc cho mỗi đỉnh. Ký hiệu: : Cung nối 2 đỉnh : Đỉnh . thuật toán đàn kiến để giải bài toán người du lịch nhằm tìm hiểu thuật toán đàn kiến, xem xét hiệu quả của thuật toán đàn kiến áp dụng vào bài toán tối. bài toán gán, bài toán tô mầu đồ thị, bài toán lập lịch và bài toán nổi tiếng nhất là bài toán người du lịch. Từ bài toán người du lịch này có thể áp dụng

Ngày đăng: 26/11/2013, 13:11

Hình ảnh liên quan

source not found Bảng các thuật toán tối ưuđàn kiến ACO theo thứ tự về thời gian xuất hiện - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

source.

not found Bảng các thuật toán tối ưuđàn kiến ACO theo thứ tự về thời gian xuất hiện Xem tại trang 4 của tài liệu.
Ví dụ: Cho 2 đồ thị G và G1 như hình 1.2: - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

d.

ụ: Cho 2 đồ thị G và G1 như hình 1.2: Xem tại trang 12 của tài liệu.
Hình 1.. Mô tả bài toán TSP - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 1...

Mô tả bài toán TSP Xem tại trang 19 của tài liệu.
Hình 1.. Hình minh họa thuật toán 2-opt: hành trình ban đầu và hành trình sau khi thực hiện thuật toán 2-opt - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 1...

Hình minh họa thuật toán 2-opt: hành trình ban đầu và hành trình sau khi thực hiện thuật toán 2-opt Xem tại trang 22 của tài liệu.
Hình 1.. Hình mình họa thuật toán 3-opt: hành trình ban đầu và hai hành trình có được sau khi áp dụng thuật toán 3-opt. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 1...

Hình mình họa thuật toán 3-opt: hành trình ban đầu và hai hành trình có được sau khi áp dụng thuật toán 3-opt Xem tại trang 23 của tài liệu.
Đàn kiến tự nhiên (hình 2.1): Là một loài có tổ chức cao, mỗi con - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

n.

kiến tự nhiên (hình 2.1): Là một loài có tổ chức cao, mỗi con Xem tại trang 36 của tài liệu.
Hình 2.. Kiến tự nhiên - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 2...

Kiến tự nhiên Xem tại trang 37 của tài liệu.
Hình 2.. Các kiến thực đối mặt với vật cản - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 2...

Các kiến thực đối mặt với vật cản Xem tại trang 37 của tài liệu.
Hình 2.3 mô phỏng sự lựa chọn thành phố kế tiếp để đi trong hành trình dựa vào vệt mùi. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 2.3.

mô phỏng sự lựa chọn thành phố kế tiếp để đi trong hành trình dựa vào vệt mùi Xem tại trang 39 của tài liệu.
Hình 3.. Kết quả thực hiện thuật toán từ tập tin khoảng cách giữa các thành phố - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 3...

Kết quả thực hiện thuật toán từ tập tin khoảng cách giữa các thành phố Xem tại trang 59 của tài liệu.
Hình 3.. Kết quả thực hiện thuật toán ACO từ các điểm được phát ra ngẫu nhiên - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 3...

Kết quả thực hiện thuật toán ACO từ các điểm được phát ra ngẫu nhiên Xem tại trang 60 của tài liệu.
Hình 3.. Kết quả thực hiện thuật toán kiến trên bộ dữ liệu Eil51 - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 3...

Kết quả thực hiện thuật toán kiến trên bộ dữ liệu Eil51 Xem tại trang 61 của tài liệu.
Hình 3.5 và hình 3.6 lần lượt là kết quả thực hiện thuật toán kiến thuật toán di truyền trên bộ dữ liệu Eil76. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 3.5.

và hình 3.6 lần lượt là kết quả thực hiện thuật toán kiến thuật toán di truyền trên bộ dữ liệu Eil76 Xem tại trang 62 của tài liệu.
Hình 3.. Kết quả thực hiện thuật toán di truyền trên bộ dữ liệu Eil101 - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Hình 3...

Kết quả thực hiện thuật toán di truyền trên bộ dữ liệu Eil101 Xem tại trang 64 của tài liệu.
Bảng 3.. Bảng kết quả thực hiện thuật toán với các tham số đầu vào: �=1, �=2, rho=0.2, số kiến=30, Q=2. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Bảng 3...

Bảng kết quả thực hiện thuật toán với các tham số đầu vào: �=1, �=2, rho=0.2, số kiến=30, Q=2 Xem tại trang 65 của tài liệu.
Bảng 3.. Bảng so sánh số vòng lặp mà thuật toán ACO thực hiện khi tìm thấy giá trị tối ưu nhất. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Bảng 3...

Bảng so sánh số vòng lặp mà thuật toán ACO thực hiện khi tìm thấy giá trị tối ưu nhất Xem tại trang 65 của tài liệu.
Bảng 3.. Bảng kết quả thực hiện thuật toán di truyền với các tham số đầu vào: số thế hệ=20, số quần thể=50, đột biến=0.08, lai ghép=0.08. - Nghiên cứu ứng dụng thuật toán đàn kiến để giải bài toán người du lịch

Bảng 3...

Bảng kết quả thực hiện thuật toán di truyền với các tham số đầu vào: số thế hệ=20, số quần thể=50, đột biến=0.08, lai ghép=0.08 Xem tại trang 66 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan