BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------------------------- HOÀNG QUỐC VIỆT HOÀNG QUỐC VIỆT CÔNG NGHỆ THÔNG TIN TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT TABU SEARCH LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN 2011-2013 Hà Nội - Năm 2013 17061131646961000000 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------------------------- HOÀNG QUỐC VIỆT TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT TABU SEARCH CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TRẦN ĐÌNH KHANG Hà Nội – Năm 2013 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI --------------------*-------------------- HOÀNG QUỐC VIỆT TÌM HIỂU VÀ ÁP DỤNG GIẢI THUẬT TABU SEARCH LUẬN VĂN THẠC SĨ KĨ THUẬT CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS TRẦN ĐÌNH KHANG HÀ NỘ1I - 2013 LỜI CẢM ƠN Để hoàn thành luận văn tốt nghiệp Search lời đầu tiên tôi xin gửi lời cảm ơn sâu sắc nhất tới PGS.TS Trần Đình Khang, đã hƣớng dẫn và chỉ bảo tôi tận tình trong suốt thời gian làm khóa luận. Tôi xin chân thành cảm ơn các thầy cô giáo Viện Công nghệ Thông tin và Truyền thông Trƣờng ĐH Bách khoa Hà Nội, các giảng viên đã truyền đạt những kiến thức, kỹ năng, kinh nghiệm nghề nghiệp. Tôi xin chân thành cảm ơn Ban giám hiệu, tập thể giáo viên khoa Công nghệ Thông tin trƣờng Đại học Sƣ phạm Kỹ thuật Hƣng Yên, gia đình cùng các bạn trong lớp cao học Công nghệ Thông tin khoá 2011- 2013 đã tạo mọi điều kiện giúp đỡ, động viên, chia sẻ để tôi hoàn thành bản luận văn này.
Bản luận văn chắc còn nhiều thiếu sót, rất mong đƣợc các thầy cô giáo trong hội đồng chấm luận văn xem xét, góp ý kiến để luận văn đƣợc hoàn thiện hơn. Tôi xin chân thành cảm ơn! Hà Nội, tháng 03 năm 2013 HỌC VIÊN Hoàng Quốc Việt 2 LỜI CAM ĐOAN Với mục đích học tập, nghiên cứu để nâng cao trình độ chuyên môn nên tôi đã làm luận văn này một cách nghiêm túc và hoàn toàn trung thực. Trong luận văn, tôi có sử dụng tài liệu tham khảo của một số tác giả, tôi đã nêu trong phần tài liệu tham khảo ở cuối luận văn. Tôi xin cam đoan và chịu trách nhiệm về nội dung, sự trung thực trong luận văn tốt nghiệp Thạc sĩ của mình.
Hà Nội, tháng 03 năm 2013 HỌC VIÊN Hoàng Quốc Việt 3 MỤC LỤC LỜI CẢM ƠN. 1 LỜI CAM ĐOAN. 3 DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT. 7 DANH MỤC CÁC BẢNG.
8 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ. Lý do chọn đề tài. Mục đích nghiên cứu. Đối tƣợng và phạm vi nghiên cứu.
Phƣơng pháp nghiên cứu. 11 CHƢƠNG 1: TỔNG QUAN VỀ TÌM KIẾM. Giải quyết vấn đề bằng tìm kiếm. Bài toán tìm kiếm trong không gian trạng thái.
Các kĩ thuật tìm kiếm cơ bản. Tìm kiếm không có thông tin. Tìm kiếm trên danh sách. Tìm kiếm trên cây.
Tìm kiếm trên đồ thị. Tìm kiếm có thông tin. Bài toán tối ƣu hóa tổ hợp .18 CHƢƠNG 2: TÌM KIẾM CỤC BỘ. Giải thuật Tìm kiếm Cục bộ.
Một số thuật toán Tìm kiếm Cục bộ cơ bản. Thuật toán Leo đồi. Thuật toán Luyện thép. Một số thuật toán tìm kiếm cục bộ khác.
Giải thuật Di truyền. Giải thuật tìm kiếm Lân cận lớn. Giải thuật tìm kiếm Tabu .28 CHƢƠNG 3: TÌM KIẾM TABU. Tổng quan tìm kiếm Tabu.
Nguyên lý chung của tìm kiếm Tabu. Sơ đồ giải thuật tìm kiếm Tabu. Giải thuật tìm kiếm Tabu. Cách sử dụng bộ nhớ.
Lập trình với bộ nhớ thích nghi. Làm việc với bộ nhớ dài hạn. Chiến lƣợc Tăng cƣờng và chiến lƣợc Đa dạng. Các chiến lƣợc tăng cƣờng.
Các chiến lƣợc đa dạng. Thay đổi các luật lựa chọn. Khởi động lại .40 CHƢƠNG 4: ÁP DỤNG GIẢI THUẬT TÌM KIẾM TABU VÀO BÀI TOÁN N-QUEENS. Mô tả bài toán n-queens.
Phân tích bài toán. Xây dựng ứng dụng giải quyết bài toán n-queens. Giải thuật tìm kiếm tabu cho bài toán n-queens. Cấu trúc chƣơng trình và mối quan hệ giữa các lớp chính.
Kết quả khi chạy chƣơng trình. Đánh giá hiệu quả của giải thuật tìm kiếm Tabu. Cài đặt bài toán n-queens bằng một số giải thuật. Cài đặt bằng giải thuật Quay lui.
Cài đặt bằng giải thuật Luyện thép. Đánh giá hiệu quả của giải thuật tìm kiếm Tabu. Xây dựng phƣơng án đánh giá. Kết quả thực nghiệm của đề tài.
Kết quả đạt đƣợc của đề tài. Hạn chế của đề tài. Hƣớng phát triển của đề tài .59 TÀI LIỆU THAM KHẢO .60 6 DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT Từ viết tắt Từ đầy đủ Giải thích AI Artificial Intelligent Trí tuệ nhân tạo BFS Breadth First Search Tìm kiếm theo chiều rộng CNTT Công nghệ Thông tin CNPM Công nghệ Phần mềm DFS Depth First Search Tìm kiếm theo chiều sâu GA Genetic Algorithms Giải thuật Di truyền LNS Large Neighborhood Search Tìm kiếm Lân cận lớn LS Local Search Tìm kiếm Cục bộ LTM Long Term Memory Bộ nhớ dài hạn SA Simulated Annealing Luyện thép STM Short Term Memory Bộ nhớ ngắn hạn TS Tabu Search Tìm kiếm Tabu TTNT Trí tuệ Nhân tạo TSP Travelling Salesman Problem OR Operation Research Nghiên cứu tối ƣu 7 DANH MỤC CÁC BẢNG Bảng 3.1: bài toán sắp công việc .2: khởi động lại bài toán sắp việc .1: kết quả chạy bài toán n-queens với giải thuật Quay lui .2: kết quả chạy bài toán n-queens với giải thuật Luyện thép .3: kết quả chạy bài toán n-queens với giải thuật tìm kiếm Tabu .4: so sánh thời gian chạy giữa các giải thuật .56 8 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 2.1: bài toán tìm kiếm cục bộ với không gian trạng thái và hàm mục tiêu .1: cấu trúc bộ nhớ tìm kiếm Tabu .2: minh họa bài toán cây tối ƣu .3: tăng cƣờng và đa dạng .1: một số lời giải cho bài toán 8 quân hậu .2: cấu trúc lớp SolutionTabuSearch .3: cấu trúc lớp TabuSearch.4: giao diện khi chạy chƣơng trình.5: khởi tạo bàn cờ với kích thƣớc đƣợc chọn .6: kết quả hiển thị khi tìm thấy kết quả .7: cấu trúc lớp Backtracking .8: minh họa chạy chƣơng trình với giải thuật quay lui .9: cấu trúc lớp SoluionSimulatedAnnealing .10: cấu trúc lớp SimulatedAnnealing .11: minh họa chạy chƣơng trình với giải thuật Luyện thép. 54 Biểu đồ 1: so sánh thời gian chạy giữa ba giải thuật .57 Biểu đồ 2: so sánh thời gian chạy giữa hai giải thuật Luyện Thép và Tabu.
Lý do chọn đề tài Lớp các bài toán tối ƣu hóa tổ hợp xuất hiện trong nhiều lĩnh vực quan trọng của cuộc sống: tin sinh học, tài chính, lập lịch, sản xuất…và là lớp bài toán có nhiều ứng dụng trên thực tế, một số bài toán kinh điển trong lớp bài toán này: bài toán ngƣời du lịch, bài toán n-queens, bài toán tô màu đồ thị, bài toán xếp lịch trực y tá, bài toán tìm tập phủ đỉnh của đồ thị… Lớp các bài toán tối ƣu tổ hợp thƣờng có tập không gian trạng thái lớn mà không thể sử dụng các phƣơng pháp tìm kiếm thông thƣờng để xem xét tất cả không gian trạng thái. Tìm kiếm Cục bộ đƣợc thiết kế cho bài toán tìm kiếm với không gian trạng thái rất lớn và cho phép tìm kiếm trạng thái tƣơng đối tốt với thời gian tìm kiếm chấp nhận đƣợc. Tuy nhiên phƣơng pháp tìm kiếm cục bộ, vẫn còn một số nhƣợc điểm: thời gian giải quyết các bài toán có thể vẫn còn dài, thuật toán có thể không tìm ra lời giải tốt nhất trong một số lần chạy…. Giải thuật tìm kiếm Tabu đƣợc cải tiến từ phƣơng pháp tìm kiếm cục bộ.
Bằng kết quả thực nghiệm đã cho thấy kỹ thuật tìm kiếm Tabu có thể giải quyết hiệu quả các bái toán tối ƣu. Trong khuôn khổ của khóa luận, đề tài tập trung tìm hiểu các nguyên lý chung và nền tảng của tìm kiếm Tabu, áp dụng giải thuật này để giải quyết bài toán n-queens, từ đó đánh giá hiểu quả của giải thuật này so với một số giải thuật khác. Mục đích nghiên cứu Tìm hiểu một số giải thuật tìm kiếm cục bộ cho các bài toán tối ƣu hóa tổ hợp. Nghiên cứu cơ bản giải thuật tìm kiếm Tabu: nguyên lí chung của tìm kiếm Tabu, cách sử dụng bộ nhớ, nền tảng của tìm kiếm Tabu.
Sử dụng phƣơng pháp tìm kiếm Tabu để giải quyết bài toán n-queens, đánh giá đƣợc hiệu quả của giải thuật này so với một số giải thuật tìm kiếm khác. Đối tƣợng và phạm vi nghiên cứu Nghiên cứu tìm hiểu lý thuyết về giải thuật tìm kiếm Tabu. Từ đó sử dụng giải thuật này để giải quyết bài toán n-queens, sau đó đánh giá đƣợc hiệu quả của giải thuật này đem lại so với một số giải thuật tìm kiếm khác. Phƣơng pháp nghiên cứu Nghiên cứu tài liệu khoa học về các giải thuật tìm kiếm Cục bộ.
Nghiên cứu tài liệu khoa học về các phƣơng pháp tìm kiếm Cục bộ. Nghiên cứu lý thuyết về giải thuật tìm kiếm Tabu. Sử dụng giải thuật tìm kiếm Tabu cài đặt cho bài toán mô phỏng n-queens. Đánh giá hiệu quả của giải thuật này so với một số giải thuật khác.
11 CHƢƠNG 1: TỔNG QUAN VỀ TÌM KIẾM 1. Giải quyết vấn đề bằng tìm kiếm Tìm kiếm là một trong những hƣớng nghiên cứu quan trọng trong CNTT. Trong thực tế, nhiều bài toán có thể đƣa về bài toán tìm kiếm, ví dụ: Trò chơi: nhiều trò chơi, ví dụ cờ vua, thực chất là quá trình tìm kiếm nƣớc đi của các bên trong số những nƣớc mà luật chơi cho phép, để giành lấy ƣu thế cho bên mình. Lập thời khóa biểu: lập thời khóa biểu là lựa chọn thứ tự, thời gian, tài nguyên (máy móc, địa điểm, con ngƣời) thỏa mãn một số tiêu chí nào đó.
Nhƣ vậy, lập thời khóa biểu có thể coi nhƣ quá trình tìm kiếm trong số tổ hợp phƣơng án sắp xếp phƣơng án đáp ứng yêu cầu đề ra. Tìm đƣờng đi: trong số những đƣờng đi, lựa chọn đƣờng đi tới đích, có thể thỏa mãn một số tiêu chí nào đó nhƣ tiêu chí tối ƣu về độ dài, thời gian, giá thành… Lập kế hoạch: là lựa chọn chuỗi hành động cơ sở cho phép đạt mục tiêu đề ra đồng thời thỏa mãn các yêu cầu phụ.