Nghiên cứu giải thuật di truyền cho bài toán người du lịch

64 30 1
Nghiên cứu giải thuật di truyền cho 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Ộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH _ THÁI THANH CHƯƠNG NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN CHO BÀI TOÁN NGƯỜI DU LỊCH LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Nghệ An, 06-2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH _ THÁI THANH CHƯƠNG NGHIÊN CỨU GIẢI THUẬT DI TRUYỀN CHO BÀI TỐN NGƯỜI DU LỊCH Chun ngành: CƠNG NGHỆ THÔNG TIN Mã số: 60.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS HOÀNG HỮU VIỆT Nghệ An, 06-2017 LỜI CAM ĐOAN Tôi xin cam đoan: Những kết nghiên cứu trình bày luận văn: “Nghiên cứu giải thuật di truyền cho tốn người du lịch” hồn tồn trung thực, tôi, không vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn tồn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Thái Thanh Chương LỜI CẢM ƠN Trước hết, xin bày tỏ lịng biết ơn sâu sắc đến thầy giáo TS Hồng Hữu Việt tận tình bảo tạo điều kiện thuận lợi cho tơi hồn thành luận văn Xin bày tỏ lòng biết ơn chân thành tới thầy cô giáo khoa Công nghệ Thông tin - Trường Đại học Vinh truyền thụ kiến thức, kinh nghiệm, giúp đỡ em trình học tập Cuối xin gửi lời cám ơn đến Ban giám hiệu, phòng đào tạo Trường Trung cấp Việt - Anh, gia đình, bạn bè, người ln bên tơi, động viên khuyến khích tơi q trình thực đề tài nghiên cứu Nghệ An, ngày 18 tháng 04 năm 2017 TÁC GIẢ LUẬN VĂN THÁI THANH CHƯƠNG MỤC LỤC Trang TRANG PHỤ BÌA LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH VÀ BẢNG MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 Bài toán người du lịch 1.1.1 Phát biểu toán 1.1.2 Lịch sử toán 1.1.3 Phân loại toán TSP 1.2 Biểu diễn toán theo đồ thị 1.2.1 Các khái niệm đồ thị 1.2.2 Biểu diễn đồ thị 10 1.2.3 Chu trình Euler Hamilton 12 1.3 Tình hình nghiên cứu toán TSP 14 1.3.1 Các hướng tiếp cận giải toán TSP 15 1.3.2 Tình hình nghiên cứu nước nước 21 CHƯƠNG 2: GIẢI THUẬT DI TRUYỀN 23 2.1 Giới thiệu 23 2.2 Giải thuật di truyền nhị phân 23 2.2.1 Giải thuật 23 2.2.2 Ví dụ tìm giá trị lớn hàm biến …………………25 2.3 Giải thuật di truyền với biến liên tục ………………………… 29 CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN DI TRUYỀN CHO BÀI TOÁN NGƯỜI DU LỊCH 34 3.4 Một số kết thử nghiệm 43 3.4.1 Phương pháp tạo liệu thử nghiệm 43 3.4.2 Một số kết thử nghiệm 44 3.5 So sánh hiệu giải thuật di truyền tối ưu hóa đàn kiến 47 3.5.1 Thuật tốn tối ưu hóa đàn kiến 47 3.5.2 So sánh hiệu giải thuật 50 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 DANH MỤC CÁC TỪ VIẾT TẮT ACO Ant colony optimization ACS Ant Colony System AS Ant System DNA Deoxyribo Nucleic Acid GA Genetic Algorithm NST Nhiễm sắc thể TSP Travelling Salesman Problem DANH MỤC CÁC HÌNH Trang Hình 1.1 Đồ thị minh họa bậc đỉnh Hình 1.2 Đồ thị minh họa ma trận kề 11 Hình 1.3 Đồ thị minh họa đồ thị Euler 12 Hình 1.4 Đồ thị minh họa đồ thị Hamilton 13 Hình 1.5 Thuật tốn tham lam với số đỉnh 17 Hình 1.6 Thuật tốn tham lam cho trường hợp xấu 17 Hình 1.7 Hình minh họa thuật tốn 2-opt 19 Hình 18 Hình họa thuật toán 3-opt 19 Hình 2.1 Sơ đồ khối thuật tốn di truyền nhị phân 24 Hình 2.2 Đồ thị hàm số f(x) = -x2/10 + 3x 26 Hình 2.3 Đồ thị hàm số 30 Hình 2.4 Mơ tả thuật tốn thực Matlab 32 Hình 2.5 Đồ thị giá trị thống kê 33 Hình 3.2 Kết chạy thuật toán 43 Hình 3.3 Đồ thị chu trình tìm đồ thị K10 44 Hình 3.4 Giá trị bé trung bình hệ đồ thị K10 44 Hình 3.5 Đồ thị chu trình tìm đồ thị K15 45 Hình 3.6 Giá trị bé trung bình hệ đồ thị K15 45 Hình 3.7 Đồ thị chu trình tìm đồ thị K30 46 Hình 3.8 Giá trị bé trung bình hệ đồ thị K30 46 DANH MỤC CÁC BẢNG Bảng 2.1 Khởi tạo quần thể ban đầu 27 Bảng 2.2 Kết hệ 28 Bảng 2.3 Khởi tạo quần thể ban đầu giá trị hàm thích nghi 31 Bảng 2.4 50% cá thể giữ lại 31 Bảng 3.1 Tọa độ đỉnh ma trận kề đỉnh đồ thị 36 Bảng 3.2 Quần thể khởi tạo 37 Bảng 3.3 Sắp xếp nhiễm sắc thể theo chiều dài giảm dần hệ 37 Bảng 3.4 Lai ghép nhiễm sắc thể hệ 38 Bảng 3.5 Thay nhiễm sắc thể quần thể hệ 38 Bảng 3.6 Đột biến nhiễm sắc thể hệ 39 Bảng 3.7 Quần thể đạt hệ 39 Bảng 3.8 Quần thể đạt hệ xếp theo thứ hạn chiều dài 40 Bảng 3.9 Lai ghép nhiễm sắc thể hệ 40 Bảng 3.10 Thay cá thể sinh hệ 41 Bảng 3.11 Các cá thể đột biến hệ 41 Bảng 3.12 Quần thể đạt hệ 42 Bảng 3.13 Xếp hạng cá thể theo chiều dài hệ 42 Bảng 3.14 Kết so sánh giải thuật di truyền ACS 52 MỞ ĐẦU Sự cần thiết vấn đề nghiên cứu Trong ngành khoa học máy tính, tìm kiếm lời giải tối ưu cho toán vấn đề nhà khoa học máy tính đặc biệt quan tâm Mục đích thuật tốn tìm kiếm lời giải tìm lời giải tối ưu cho toán thời gian nhỏ Các thuật tốn tìm kiếm khơng có thơng tin / vét cạn (tìm kiếm danh sách, đồ thị) sử dụng phương pháp đơn giản trực quan thuật tốn tìm kiếm có thông tin sử dụng heurictics để áp dụng tri thức cấu trúc khơng gian tìm kiếm nhằm giảm thời gian cần thiết cho việc tìm kiếm sử dụng nhiều với khơng gian tìm kiếm nhỏ khơng hiệu tìm kiếm khơng gian tìm kiếm lớn Tuy nhiên, thực tiễn có nhiều tốn tối ưu với khơng gian tìm kiếm lớn cần phải giải Vì vậy, việc đòi hỏi thuật giải chất lượng cao sử dụng kỹ thuật trí tuệ nhân tạo đặc biệt cần thiết giải tốn có khơng gian tìm kiếm lớn Thuật giải di truyền (genetic algorithm) kỹ thuật tìm kiếm lời giải tối ưu đáp ứng yêu cầu nhiều toán ứng dụng Thuật giải di truyền phát minh để bắt chước trình phát triển tự nhiên điều kiện quy định sẵn môi trường Các đặc điểm trình thu hút ý John Holand (ở đại học Michigan) từ năm 1970 Holand tin gắn kết thích hợp thuật giải máy tính tạo kỹ thuật giúp giải vấn đề khó khăn giống tự nhiên diễn thơng qua q trình tiến hóa Bài tốn Người du lịch (Travelling Salesman Problem - TSP) tốn kinh điển Bài tốn có phát biểu đơn giản tốn khó (NP-hard problem) trường hợp tổng quát độ phức tạp tính tốn tăng theo hàm 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 toán vét cạn, kỹ thuật nhánh cận, dừng lại liệu nhỏ Gần có 41 1.2 Thay cá thể có thứ hạng 6, 7, 8, 9, 10 cá thể sinh ra, quần thể tạo bảng sau (các cá thể ký hiệu NST 11, 12, 13, 14, 15): NST 10 11 12 13 14 15 Thứ hạng 5 5 4 5 5 2 2 2 1 8 1 1 7 6 7 7 6 3 6 6 8 7 8 8 3 2 3 3 4 4 4 Bảng 3.10 Thay cá thể sinh hệ 1.3 Chọn cá thể ngẫu nhiên thực toán tử đột biến Ví dụ cá thể chọn sau: NST 11 Kết 15 Kết 11’ Kết 10 Kết 8 7 8 1 8 2 Bảng 3.11 Các cá thể đột biến hệ Vị trí 1,2 2,7 8,1 1,8 42 Quẩn thể đạt sau vòng lặp 2, tức hệ 3: NST 10 11 12 13 14 15 5 2 2 1 8 7 6 6 6 3 8 7 3 2 4 4 5 5 2 1 7 6 8 3 4 Bảng 3.12 Quần thể đạt hệ Sắp xếp cá thể theo giá giảm dần ký hiệu lại nhiễm sắc thể, ta có quần thể đưa vào cho vòng lặp (thế hệ thứ 3) bảng sau: NST 10 Thứ hạng 10 Cost 5 5 5 2 2 2 1 1 1 8 7 7 7 6 6 6 6 3 8 8 8 7 4 4 4 1 4 Giá trị bé Giá trị trung bình Bảng 3.13 Xếp hạng cá thể theo chiều dài hệ 4.0563 4.0563 4.0563 4.0563 4.0563 4.0563 4.1475 4.6223 4.7301 5.0806 4.0563 4.2918 43 Q trình lặp tiếp tục kể từ vịng lặp thứ 4, thuật toán hội tụ giá trị bé 3.0767 với chu trình tìm là: Hình 3.2 đồ thị giá trị bé giá trị trung bình hệ (vịng lặp chu trình tìm thuật tốn Dễ thấy chu trình tìm đương bao đỉnh chu trình ngắn 4.5 the minimum cost the mean cost 0.9 0.8 0.7 cost 0.6 0.5 3.5 0.4 0.3 0.2 3 generation 10 0.1 0.2 0.4 0.6 0.8 a) Giá trị bé giá trị trung bình hệ từ đến 10 b) Chu trình tìm Hình 3.2 Kết chạy thuật toán 3.4 Một số kết thử nghiệm 3.4.1 Phương pháp tạo liệu thử nghiệm Để thử nghiệm giải thuật di truyền cho toán TSP, xây dựng đồ thị mà tọa độ đỉnh tạo ngẫu nhiên đoạn [0,1] Ma trận kề đồ thị xây dựng dựa khoảng cách Euclidian tọa độ đỉnh 44 3.4.2 Một số kết thử nghiệm a) Đồ thị 10 đỉnh 1 0.9 108 0.9 108 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 1 0.1 0.2 0.4 0.1 0.6 0.8 0.4 0.2 0.6 0.8 1 b) Chu trình tìm a) Đồ thị Hình 3.3 Đồ thị chu trình tìm đồ thị K10 5.5 cost 4.5 3.5 2.5 10 20 30 40 50 60 generation 70 80 90 100 Hình 3.4 Giá trị bé trung bình hệ đồ thị K10 b) Đồ thị 15 đỉnh 45 0.9 0.9 5 15 0.8 15 0.8 12 0.7 10 0.6 0.5 0.5 14 0.2 0.3 0.1 0.2 0.2 0.4 0.6 11 0.4 13 0.3 10 0.6 11 0.4 12 0.7 0.8 0.1 13 14 0.2 0.4 0.6 0.8 b) Chu trình tìm a) Đồ thị Hình 3.5 Đồ thị chu trình tìm đồ thị K15 6.5 5.5 cost 4.5 3.5 20 40 60 80 100 120 generation 140 160 180 200 Hình 3.6 Giá trị bé trung bình hệ đồ thị K15 46 a) Đồ thị 30 đỉnh 0.9 26 0.8 12 24 0.9 13 11 29 12 0.8 26 24 13 11 29 22 22 0.7 0.7 27 27 0.6 0.6 15 28 0.5 10 14 30 0.4 20 21 0.3 10 14 30 0.3 21 17 20 28 0.5 0.4 16 15 16 17 0.2 0.2 19 23 0.1 25 0 18 0.4 0.2 23 19 0.1 0.6 0.8 0 a) Đồ thị 25 0.2 18 0.4 0.6 0.8 b) Chu trình tìm Hình 3.7 Đồ thị chu trình tìm đồ thị K30 15 14 13 12 cost 11 10 500 1000 1500 2000 2500 3000 generation 3500 4000 4500 5000 Hình 3.8 Giá trị bé trung bình hệ đồ thị K30 47 3.5 So sánh hiệu giải thuật di truyền tối ưu hóa đàn kiến 3.5.1 Thuật tốn tối ưu hóa đàn kiến Thuật tốn tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) lớp thuật toán heuristic cho phép giải toán tối ưu hóa tổ hợp Ý tưởng chung lớp thuật tốn ACO dựa mơ hành vi đàn kiến trình tìm nguồn thức ăn [7] Bằng quan sát thực tế, đàn kiến có khả tìm đường ngắn từ nguồn thức ăn tới tổ chúng nhờ vào vết mùi (pheromone) rãi đường mà không cần sử dụng trực giác Trong tìm mồi, kiến thả vết mùi mặt đất, theo xác suất, vết mùi thả tiếp tục kiến khác Sau thời gian, vết mùi đường kiến bay dần khơng có kiến lại đường bổ sung thêm kiến khác chọn đường Theo thời gian, kiến tìm mồi có xu hướng chọn đường có nồng độ mùi dày đặc loại bỏ đường có nồng độ mùi Đường có nồng độ mùi dày đặc trở thành đường ngắn từ tổ kiến đến nguồn thức ăn Initialize Loop /* at this level each loop is called an iteration */ Each ant is positioned on a starting node Loop /* at this level each loop is called a step */ Each ant applies a state transition rule to incrementally build a solution Until all ants have built a complete solution A global pheromone updating rule is applied Until End_condition Thuật toán 3.1 Thuật toán Ant System [7] Thuật toán Ant System (AS) thuật toán thuật tốn ACO áp dụng tìm nghiệm cho toán TSP Khi áp dụng thuật toán AS, tốn TSP mơ tả sau: đặt V = {a, b, …, z} tập thành phố, A = {(r,s): r, s  V} tập cạnh (r,s) = (s,r) chi phí cạnh 48 (r,s)  A Bài toán TSP tìm chu trình ngắn để thăm thành phố lần Thuật tốn AS mơ tả thuật tốn 3.1 Trong thuật tốn AS, ngồi việc sử dụng tham số (r,s), cạnh (r,s) định nghĩa thêm tham số (r,s) để biểu diễn vết mùi cạnh đàn kiến Chú ý AS áp dụng cho toán TSP đối xứng (r,s) = (s,r), áp dụng cho tốn TSP khơng đối xứng (r,s) ≠ (s,r) Thuật tốn AS làm việc sau Bắt đầu vịng lặp (dòng 3), kiến đặt ngẫu nhiên thành phố Tiếp theo, kiến tạo chu trình hồn chỉnh cách chọn thành phố theo luật xác suất chuyển trạng thái (probabilistic state transition rule), tức kiến chọn thành phố mà cạnh kết nối với có nhiều vết mùi Khi tất kiến hồn thành chu trình (từ dòng 4-7), luật cập nhật vết mùi tổng thể (global pheromone updating rule) áp dụng (dòng 8) Luật chuyển trạng thái kiến k thành phố r chọn thành phố s để di chuyển tới sau: ( (3.1) (r,s) vết mùi cạnh r-s, (r,s) = 1/(r,s), Jk(r) tập thành phố chưa qua kiến k thành phố r  tham số xác định quan hệ vết mùi khoảng cạnh ( > 0) Trong (4), nhân lượng vết mùi cạnh (r,s) với giá trị kinh nghiệm (heuristic) (r,s), điều có nghĩa kiến chọn cạnh ngắn hay có nhiều vết mùi để Luật cập nhật tổng định nghĩa sau: (3.2) 49 với <  < tham số bay vết mùi, Lk chiều dài chu trình tạo kiến k m số kiến Mục đích luật cập nhật tổng thể cập nhật nhiều giá trị vết mùi cho chu trình ngắn ngắn Initialize Loop /* at this level each loop is called an iteration */ Each ant is positioned on a starting node Loop /* at this level each loop is called a step */ Each ant applies a state transition rule to incrementally build a solution and a local pheromone updating rule Until all ants have built a complete solution A global pheromone updating rule is applied 10 Until End_condition Thuật toán 3.2 Thuật toán Ant Colony System [7] Thuật toán Ant Colony System (ACS) đề xuất thuật toán 3.2 [5] Thuật toán ACS khác với thuật tốn AS ba điểm chính: (i) luật chuyển trạng thái nhằm cân thăm dò cạnh khai thác kiến thức tích lũy tốn; (ii) luật cập nhật tổng thể áp dụng cho cạnh thuộc đường tốt nhất; (iii) kiến xây dựng nghiệm, luật cập nhật vết mùi cục cho đường kiến sử dụng Trong ACS, luật chuyển trạng thái sau: kiến thành phố r chọn thành phố s để di chuyển theo luật sau: (3.3) q biến ngẫu nhiên phân bố đoạn [0 1], q0 tham số (0 ≤ q0 ≤ 1) S biến ngẫu nhiên chọn theo phân bố xác suất (3.1) 50 Sau tất kiến hồn thành xong chu trình nó, luật cập nhật tổng thể cập nhật cho chu trình ngắn vịng lặp thời thuật toán Luật cập nhật tổng thể định nghĩa sau: (3.4) với < α

Ngày đăng: 10/02/2021, 21:58

Từ khóa liên quan

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

Tài liệu liên quan