Tìm hiểu giải thuật di truyền và ứng dụng giải quyết bài toán người du lịch

44 36 0
Tìm hiểu giải thuật di truyền và ứng dụng 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

Đồ án tốt nghiệp đại học TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN BẢO CHUNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG GIẢI QUYẾT BÀI TOÁN NGƢỜI DU LỊCH Nghệ An, 01/ 2017 SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG GIẢI QUYẾT BÀI TOÁN NGƢỜI DU LỊCH Sinh viên thực hiện: Nguyễn Bảo Chung Mã số sinh viên: 1251075314 Giáo viên hướng dẫn: ThS Trần Thị Kim Oanh Nghệ An, 01/2017 SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học LỜI CẢM ƠN Lời em xin gửi lời cám ơn chân thành sâu sắc tới thầy giáo khoa Cơng nghệ Thơng tin nói chung, mơn Hệ thống Thơng Tin nói riêng tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt em xin gửi lời cảm ơn đến cô giáo, ThS Trần Thị Kim Oanh, tận tình giúp đỡ, trực tiếp bảo, hướng dẫn em suốt trình làm đồ án tốt nghiệp Trong thời gian làm việc với cô, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà cịn học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho em trình học tập cơng tác sau Mặc dù có nhiều cố gắng kiến thức hạn chế với kinh nghiệm chưa có nên khơng tránh khỏi thiếu sót.Vì em mong nhận ý kiến đóng góp bổ sung thầy giáo bạn để làm báo cáo đồ án tốt nghiệp em hoàn thiện Em xin chân thành cảm ơn! Nghệ An, ngày 08 tháng năm 2017 Sinh viên thực Nguyễn Bảo Chung SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học MỤC LỤC Trang LỜI CẢM ƠN LỜI NÓI ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài 1.2 Mục tiêu nghiên cứu 1.3 Đối tượng, phạm vi phương pháp nghiên cứu 1.4 Nội dung nghiên cứu 1.5 Ý nghĩa đề tài CHƢƠNG 2: TỔNG QUAN NGHIÊN CỨU VỀ GIẢI THUẬT DI TRUYỀN (GENETIC ALGORITHMS) 2.1 Giải thuật di truyền 2.2 Các tính chất giải thuật di truyền 2.3 Nội dung cấu trúc Giải thuật di truyền 2.4 Biểu diễn di truyền lời giải tiềm tàng toán 2.4.1 Biểu diễn dạng chuỗi nhị phân 2.4.2 Biểu diễn dạng hoán vị 10 2.4.3 Mã hoá theo giá trị 11 CHƢƠNG 3: GIẢI THUẬT DI TRUYỀN - PHƢƠNG PHÁP TÌM KIẾM CỰC MẠNH 12 3.1 Phương pháp đạo hàm 12 3.2 Phương pháp liệt kê 13 3.3 Phương pháp tìm kiếm ngẫu nhiên 13 3.4 Giải thuật di truyền đơn giản 14 3.4.1 Tái tạo 15 3.4.2 Lai ghép 16 3.4.3 Đột biến 18 SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học 3.5 Giải thuật di truyền cải tiến 20 3.5.1 Các sơ đồ lựa chọn 20 3.5.2 Các toán tử cao cấp 21 3.6 Các ứng dụng giải thuật di truyền 25 CHƢƠNG 4: ỨNG DỤNG GIẢI THUẬT DI TRUYỀN GIẢI QUYẾT BÀI TOÁN NGƢỜI DU LỊCH (TRAVELLING SALESMAN PROBLEM – TSP) 26 4.1 Phát biểu toán 26 4.2 Phân tích độ phức tạp tốn 27 4.3 Giải thuật đề xuất 27 4.3.1 Mã hóa tốn 27 4.3.2 Khởi tạo quần thể 28 4.3.3 Lai ghép 28 4.3.4 Đột biến 28 4.3.5 Tính tốn độ thích nghi 36 4.3.6 Tiến hóa Error! Bookmark not defined 4.4 Giới thiệu chương trình 38 4.5 Kết thử nghiệm 38 KẾT LUẬN 40 Kết đạt 41 Hạn chế 41 Hướng phát triển 41 TÀI LIỆU THAM KHẢO 42 SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học LỜI NÓI ĐẦU Giải thuật di truyền xuất từ đầu năm 50 kỷ XX, số nhà sinh học sử dụng máy tính để tái hệ thống sinh học máy tính Song phải đến gần 30 năm sau giải thuật di truyền gây ý, quan tâm nhà nghiên cứu Giải thuật di truyền xây dựng dựa sở học thuyết tiến hố ĐacUyn, mơ mà tự nhiên làm, đào thải, di truyền tiến hoá Những cá thể tốt trì, sinh sản cá thể mới, cịn cá thể yếu khơng có khả thích nghi bị diệt vong Sự tiến hố diễn khơng ngừng để tạo hệ sau gồm cá thể khoẻ hơn, dễ thích nghi Bài tốn người du lịch toán nghiên cứu sâu lĩnh vực tối ưu hóa Trong khn khổ nội dung đề tài này, em trình bày tổng quan giải thuật di truyền, giải thuật di truyền truyền thống giải thuật di truyền cải tiến, đồng thời trình bày hướng tiếp cận giải tốn người du lịch sử dụng giải thuật di truyền Phần cuối đề tài, em có viết chương trình đơn giản minh hoạ giải thuật di truyền SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học CHƢƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài Hiện nay, tối ưu hóa nội dung quan trọng Tin học ứng dụng, có liên quan đến nhiều lĩnh vực tự nhiên, xã hội Tuy có nhiều phương pháp để giải toán tối ưu, nhìn chung phương pháp dừng lại lớp tốn với thơng tin rõ ràng Do việc tìm phương pháp tối ưu để giải tốn tối ưu thơng tin đưa không thực rõ ràng cần thiết có ý nghĩa thực tế Giải thuật di truyền (GAs) kỹ thuật giúp tìm kiếm lời giải tối ưu đáp ứng yêu cầu tìm lời giải tối ưu cho toán với thời gian nhỏ mà khơng gian tìm kiếm lớn, điều làm cho giải thuật GAs khác biệt giải thuật thông thường khác GAs phương thức giải vấn đề mơ lại tiến hóa thơng qua quy luật tự nhiên Nó tìm giải pháp tối ưu hay tốt điều kiện thời gian không gian cho phép Khác với thuật toán khác, GAs bắt đầu làm việc với tập lời giải ban đầu, sau loại bỏ lời giải khơng thích hợp chọn lời giải có độ thích nghi cao để tái tạo đột biến nhằm tạo hệ có khả thích nghi ngày cao Ngày nay, GAs dùng nhiều lĩnh vực đời sống khoa học, kinh doanh,… Đầu tiên phải kể đến toán tối ưu số toán tối ưu tổ hợp sử dụng GAs để tìm kiếm lời giải tốn người du lịch (Travelling Salesman Problems - TSP), thiết kế điều khiển robo,… Với ưu điểm kể trên, em chọn “Tìm hiểu giải thuật di truyền ứng dụng giải toán người du lịch” làm đồ án Tốt nghiệp đại học cho 1.2 Mục tiêu nghiên cứu - Tìm hiểu giải thuật di truyền - Nghiên cứu ứng dụng giải thuật di truyền giải toán tối ưu SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học - Viết chương trình mơ giải thuật 1.3 Đối tƣợng, phạm vi phƣơng pháp nghiên cứu - Đối tượng nghiên cứu:  Giải thuật di truyền  Bài toán người du lịch (Travelling Salesman Problems - TSP) - Phạm vi nghiên cứu:  Giải thuật di truyền ứng dụng giải toán người du lịch - Phương pháp nghiên cứu:  Nghiên cứu tài liệu  Sử dụng tìm hiểu từ giải thuật di truyền áp dụng vào giải toán người du lịch 1.4 Nội dung nghiên cứu Nội dung nghiên cứu đề tài chia thành phần chính: - Tìm hiểu kiến thức giải thuật di truyền, - Giới thiệu toán người du lịch đề xuất giải toán người du lịch giải thuật di truyền 1.5 Ý nghĩa đề tài - Áp dụng giải thuật di truyền vào máy tính phương pháp áp dụng quy luật tiến hóa tự nhiên vào việc giải tốn phức tạp mà giải thuật trước không đáp ứng - Đề xuất cách giải áp dụng vào tốn người du lịch, áp dụng giải thuật di truyền vào việc biểu diễn, xử lý tốn - Ngồi tốn người du lịch, giải thuật di truyền cịn ứng dụng nhiều tốn tối ưu khác Vì kết nghiên cứu đề tài tạo tảng sở để tiếp tục nghiên cứu sau SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học CHƢƠNG 2: TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN (GENETIC ALGORITHMS) 2.1 Giải thuật di truyền Giải thuật di truyền xuất từ đầu năm 50 kỷ XX, số nhà sinh học sử dụng máy tính để tái hệ thống sinh học máy tính Song phải đến gần 30 năm sau giải thuật di truyền gây ý, quan tâm nhà nghiên cứu Giải thuật di truyền xây dựng dựa sở học thuyết tiến hoá ĐacUyn, mơ mà tự nhiên làm, đào thải, di truyền tiến hố Những cá thể tốt trì, sinh sản cá thể mới, cá thể yếu khơng có khả thích nghi bị diệt vong Sự tiến hố diễn khơng ngừng để tạo hệ sau gồm cá thể khoẻ hơn, dễ thích nghi Trong thực tế, có nhiều tốn ứng dụng tin học lý thú mà việc áp dụng phương pháp giải truyền thống chưa hợp lý, đặc biệt hạn chế mặt thời gian Phần lớn, toán tối ưu mà thường cốt lõi nhiều ứng dụng thực tế Cuối cùng, người tìm phương pháp giải phù hợp cho toán Tuy nhiên, kết thu xấp xỉ tối ưu hoàn toàn chấp nhận Một phương pháp giải thuật di truyền Holland, công bố vào năm 1975 với chứng minh toán học chặt chẽ Holland cho tính hiệu tính dễ thích nghi sống có tiến hố có chọn lọc tự nhiên Do đó, áp dụng ngun lý hệ thống nhân tạo Giải thuật di truyền đời giải có hiệu hầu hết tốn tối ưu từ nhiều ứng dụng tin học hồn thành 2.2 Các tính chất giải thuật di truyền Giải thuật di truyền (GAs) giải thuật mơ mà tự nhiên làm dựa tảng thuyết tiến hố ĐacUyn, chế chọn lọc tự nhiên, di truyền học tiến hoá Đối với toán tối ưu, xuất phát từ tập lời giải ban đầu, qua q trình chọn lọc, tiến hố nhận tập SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học lời giải tốt Mục tiêu GAs không nhằm đưa lời giải xác tối ưu mà đưa lời giải tương đối tối ưu Một cá thể GAs biểu diễn lời giải tốn Tuy nhiên, tự nhiên cá thể có nhiều nhiễm sắc thể (NST) phạm vi GAs, ta quan niệm cá thể có NST Do khái niêm cá thể NST GAs coi tương đương Một NST tạo thành từ nhiều gen, gen có giá trị khác để quy định tình trạng Trong GAs, gen coi phần tử chuỗi NST Quần thể tập hợp cá thể có số đặc điểm chung 2.3 Nội dung cấu trúc giải thuật di truyền Giải thuật di truyền mô tả đơn giản sau: Procedure Giải_thuật_di_truyền { 1) T  0; 2) Khởi tạo P(t); 3) Đánh giá P(t); 4) While (not điều kiện kết thúc) { 5) t=t+1; 6) Chọn lọc P(t) từ P(t-1) 7) Kết hợp cá thể P(t) 8) Đánh giá P(t) } } Giải thích: Ban đầu, giải thuật di truyền khởi tạo ngẫu nhiên tập hợp lời giải (nhiễm sắc thể ) P(t) = (xt1 xt2 xtn), n số lượng cá thể quần thể P(t) Mỗi lời giải xti đánh giá nhằm xác định độ phù hợp Quá SV: Nguyễn Bảo Chung Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học Mỗi chu trình đáp án tốn, giải thuật di truyền coi cá thể Việc tiến hóa sau ta dựa tập chu trình khởi tạo ban đầu tìm kết tốt sau số hệ 4.3.2 Khởi tạo quần thể Quần thể ban đầu khởi tạo cách sinh ngẫu nhiên chu trình Việc sinh ngẫu nhiên sử dụng hàm đột biến (sẽ nói rõ phía dưới) Số kích thước cá thể tối đa tùy biến theo số đỉnh đồ thị cần giải, sau nhiều lần chạy nhóm chọn kích thước quần thể 100 cá thể 4.3.3 Lai ghép Phương thức lai ghép thực dựa cá thể đầu vào : C1 C2 Thực lai ghép điểm cắt với vị trí cắt ngẫu nhiên : • Cắt từ điểm p đến hết chu trình C2 đưa vào chu trình mới, lấy ví dụ p = : Con Xét từ đầu đến cuối chu trình 1, nạp dần điểm chưa có lai theo thứ tự duyệt ta chu trình : Con Tính lại chi phí cho chu trình sinh - Cài đặt code : public static Tour Crossover(Tour parent1, Tour parent2, Cities cityList, Random random) { SV: Nguyễn Bảo Chung 28 Lớp 53K2 – Khoa CNTT Đồ án tốt nghiệp đại học int count = cityList.Count; Tour child = new Tour(count); int[] cityUsage = new int[count]; int city,nextCity; for (city = 0; city

Ngày đăng: 01/08/2021, 10:36

Từ khóa liên quan

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

Tài liệu liên quan