Báo cáo nghiên cứu khoa học: Thuật toán kiến song song giải quyết bài toán Maxsat

25 34 0
Báo cáo nghiên cứu khoa học: Thuật toán kiến song song giải quyết bài toán Maxsat

Đ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

Đề tài nghiên cứu khoa học Thuật toán kiến song song giải quyết bài toán Maxsat trình bày nội dung tổng quan thuật toán kiến, xây dựng khung thuật kiến và sử dụng thuật toán kiến để giải quyết bài toán Maxsat. Để biết rõ hơn về nội dung chi tiết, mời các bạn cùng tham khảo.

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI Khoa Công nghệ thông tin  BÁO CÁO NGHIÊN CỨU KHOA HỌC Đề tài THUẬT TOÁN KIẾN SONG SONG GIẢI QUYẾT BÀI TOÁN MAXSAT Giáo viên hướng dẫn: Thầy Đỗ Trung Kiên Sinh viên thực : Quách Thị Hái Oanh _K54A Nguyễn Thị Hiện_K55B Trần Thị Hằng_K55B Nguyễn Thị Hương _K55B Hà Nội, 04-2008 LỜI MỞ ĐẦU Sự phức tạp toán tối ưu tổ hợp xuất nhiều lĩnh vực khác như: kinh tế, thương mại, khoa học, cơng nghiệp y học Tuy nhiên, có số tốn giải gặp khó khăn ứng dụng Cái khó vốn có việc giải toán nêu lý thuyết khoa học máy tính thực tế số tốn biết NP-hard, khơng có thuật toán biết giải chúng thời gian đa thức Metaheuristics hợp khái niệm từ nhiều lĩnh vực khác di truyền học, sinh vật học, trí tuệ nhân tạo, tốn học vật lý… Ví dụ metaheuristics bao gồm thuật tốn luyện thép, ngăn cản tìm kiếm, tìm kiếm lặp, tìm kiếm biến gần đúng, thủ tục tìm kiếm thích ứng tham lam ngẫu nhiên thuật toán tiến hoá Thuật toán metaheuristics gần thuật toán kiến (ACO), sáng tạo đường tìm kiếm ngắn cách kiếm ăn kiến khác Tuy nhiên từ công việc ban đầu Dorigo, Maniezzo, Colorni hệ thống kiến (Ant System), ACO nhanh chóng trở thành tìm kiếm hồn thiện lĩnh vực: số lượng lớn tác giả phát triển mơ hình phức tạp để sử dụng thành công giải lượng lớn kết hợp toán tối ưu phức tạp sâu vào lý thuyết thuật toán trở thành sẵn có Ở đây, em tìm hiểu thuật toán kiến sử dụng thuật toán để giải tốn Maxsat Thuật tốn có ứng dụng để giải toán tổ hợp tối ưu, đặc biệt số tốn gặp khó khăn việc tìm lời giải MỤC LỤC Chương I: TỔNG QUAN THUẬT TOÁN KIẾN I Thuật toán kiến Đàn kiến tự nhiên (natural ant colonies) 2.Từ kiến tự nhiên tới thuật toán ACO Các loại mô hình ACO Ứng dụng ACO Các bước để giải toán ACO II Một số ví dụ minh hoạ 10 Bài toán người du lịch 10 Xác định ma trận trọng số mạng Neuron 10 Chương II: XÂY DỰNG KHUNG THUẬT TOÁN KIẾN 11 I Thiết kế khung thuật toán kiến 11 * Sơ đồ chung thuật toán kiến 11 Lớp đòi hỏi (require) 16 II Khung thuật toán 17 III Khung thuật toán song song 19 Chương III: SỬ DỤNG KHUNG THUẬT TOÁN KIẾN ĐỂ GIẢI QUYẾT BÀI TOÁN MAXSAT 22 I Giải toán Maxsat 22 Bài toán Maxsat 22 II Kết thực nghiệm 24 Chương I: TỔNG QUAN THUẬT TỐN KIẾN I Thuật tốn kiến Đàn kiến tự nhiên (natural ant colonies) Loài kiến loài sâu bọ có tính chất xã hội, chúng sống thành đàn, có tác động lẫn nhau, chúng thạo tìm kiếm thức ăn hồn thành nhiệm vụ từ kiến huy Một điều thú vị tìm kiếm thức ăn vài kiến đặc biệt khả chúng để tìm kiếm đường ngắn tổ kiến nguồn thức ăn Trên thực tế, điều dễ nhận thấy có suy nghĩ nhiều kiến hầu hết khơng nhận chúng khơng dùng thị giác để tìm kiếm đầu mối thức ăn Trong trình tổ nguồn thức ăn, vài kiến tích tụ chất gọi mùi lạ (pheromone) Nếu khơng có mùi lạ sẵn có, kiến di chuyển ngẫu nhiên, có mặt mùi lạ chúng có xu hướng theo mùi lạ Trên thực tế, thí nghiệm nhà nghiên cứu sinh kiến theo thuyết tự nhiên thích đường đánh dấu tập hợp nhiều mùi lạ Trong qúa trình thực hiện, lựa chọn đường tìm thấy khác có vài đường phân cách Sau kiến lựa chọn xác suất đường qua số lượng mùi lạ: mùi lạ nhiều lựa chọn cao Bởi kiến đổi hướng theo mùi lạ đường đi, chúng đề cập sau: kết tìm kiếm thức ăn trình tăng cường ảnh hưởng từ hình thành đường đánh dấu tập hợp nhiều mùi lạ Cách tìm thức ăn tập trung kiến tìm đường ngắn tổ nguồn thức ăn Kĩ thuật tập trung kiến tới phạm vi đường ngắn minh hoạ hình Ở đó, khơng có mùi lạ môi trường và, kiến đến chỗ giao nhau, chúng ngẫu nhiên lựa chọn ngả đường Tuy nhiên, kiến du lịch, đường triển vọng tiếp nhận số lượng mùi lạ nhiều sau vài lần Nhờ đó, đường ngắn hơn, kiến lựa chọn chúng để tới thức ăn nhanh để bắt đầu trở lại hành trình kiếm thức ăn sớm Từ ngả đường ngắn chọn mùi lạ tồn nhiều hơn, định kiến có xu hướng tiến ngả đường ngắn hơn, thế, lựa chọn đường nhiều mùi kiến trở lại nhiều ngả đường dài Kết cuối trình tăng xu hướng tiến tới ngả đường ngắn kết thúc, hội tụ lại đường ngắn Thủ tục sau bổ sung mơi trường tự nhiên thực tế mùi lạ bị bay sau vài lần Con đường triển vọng dần dần mùi lạ kiến ngày Tuy nhiên vài nhà sinh vật học nghiên cứu mùi lạ bền, ảnh hưởng bay đường ngăn trình tìm kiếm thức ăn Hình Vài thí nghiệm báo cáo cho thấy số đông lấy thêm tự nhiên với giới hạn, kết tồn lâu dài mùi lạ, điều khó để kiến quên đường với nhiều mùi lạ, chúng tìm thấy đường ngắn Chú ý, thức ăn trực tiếp dịch máy để thiết kế thuật tốn tìm kiếm, có thuật toán nhanh trở thành tối ưu 2.Từ kiến tự nhiên tới thuật toán ACO Thuật toán ACO lấy ý tưởng từ việc kiếm thức ăn đàn kiến thực tế để giải toán tối ưu tổ hợp Chúng dựa sở đàn kiến nhân tạo, chúng tính tốn tìm kiếm thức ăn nhờ mùi lạ nhân tạo Cấu trúc thuật toán ACO: thuật toán, tất kiến xây dựng cách giải toán cách xây dựng đồ thị Mỗi cạnh đồ thị miêu tả bước kiến kết hợp từ hai loại thơng tin hướng dẫn kiến di chuyển: Thông tin kinh nghiệm (heuristic information): giới hạn kinh nghiệm ưu tiên di chuyển từ nút r tới s…của cạnh ars Nó đánh dấu rs Thông tin không thay đổi kiến suốt q trình chạy thuật tốn Thơng tin mùi lạ nhân tạo (artificial pheromone trail information), giới hạn “nghiên cứu thèm muốn” chuyển động kiến nhân tạo bắt chước mùi lạ thực tế đàn kiến tự nhiên Thông tin bị thay đổi suốt q trình thuật tốn chạy phụ thuộc vào cách giải tìm thấy kiến Nó đánh dấu rs Giới thiệu bước ảnh hưởng từ kiến thật vào ACO Có hai vấn đề cần ý: - Chúng trừu tượng hố vài mơ hình thức ăn kiến ngồi thực tế để tìm đường tìm kiếm thức ăn ngắn - Chúng bao gồm vài đặc điểm không giống với tự nhiên lại cho phép thuật toán phát triển chứa đựng cách giải tốt tới tốn bị cản (ví dụ: sử dụng thơng tin kinh nghiệm để hướng dẫn chuyển động kiến) Cách thức hoạt động thuật toán ACO sau: m kiến nhân tạo di chuyến, đồng thời không đồng bộ, qua trạng thái liền kề toán Sự di chuyển theo tập quy tắc làm sở từ vùng thông tin có sẵn thành phần (các nút) Vùng thông tin bao gồm thông tin kinh nghiệm thơng tin mùi lạ để hướng dẫn tìm kiếm Qua di chuyển đồ thị kiến xây dựng cách giải Những kiến giải phóng mùi lạ lần chúng qua cạnh (kết nối) xây dựng cách giải (cập nhật bước mùi lạ trực tuyến) Mỗi lần kiến sinh cách giải quyết, đánh giá tạo luồng mùi lạ hoạt động chất lượng cách giải kiến (cập nhật lại mùi lạ trực tuyến) Thông tin hướng dẫn tìm kiếm cho kiến sau Hơn nữa, cách thức sinh hoạt động thuật toán ACO bao gồm thêm hai thủ tục, bay mùi lạ (pheromone trail evaporation) hoạt động lạ (daemon actions) Sự bay mùi lạ khởi từ mơi trường sử dụng kĩ thuật để tránh tìm kiếm bị dừng lại cho phép kiến khảo sát vùng không gian Daemon actions hoạt động tối ưu tự nhiên để thực nhiệm vụ từ mục tiêu xa tới vùng kiến Các loại mơ hình ACO - Hệ thơng kiến (AS): thuật tốn ACO đầu tiên, có ba loại: AS-density, ASquantity AS-cycle, khác đường mùi lạ cập nhật đề xuất - Hệ thống đàn kiến (ACS): mở rộng AS, cải tiến cách giải thuật toán kiến trước cập nhật mùi lạ - Hệ thống kiến MAX-MIN: thuật toán mở rộng tốt AS - Rank-based Ant System: kết hợp loại cập nhật mùi lạ từ thuật toán trước - Best-Worst Ant System: khai thác hệ thống vùng tối ưu để cải tiến cách giải thuật toán kiến Ứng dụng ACO Thuật toán ACO ứng dụng cho số lượng lớn toán tối ưu tổ hợp Những ứng dụng ACO chia thành hai lớp ứng dụng: lớp toán tối ưu tổ hợp NP-hard cho cơng nghệ cũ thường thức ăn Đặc tính thành cơng ứng dụng ACO tới tốn mà kiến kết hợp với vùng tìm kiếm để có cách giải tốt Lớp ứng dụng thứ hai tốn tìm đường ngắn nhất, khoảng cách tốn giải thay đổi thời gian thực thi toán Những thay đổi ảnh hưởng khơng đổi tốn có sẵn, Nếu ảnh hưởng bị lẫn lộn, đặc tính coi chi phí cạnh, thay đổi theo thời gian Trong trường hợp này, thuật tốn mơ theo tốn động Lớp ứng dụng thứ hai ACO để kết nối đường thông tin Thay cho việc đưa chi tiết ứng dụng khác ACO, mô tả ngắn lịch sử phát triển ứng dụng, tổng quan mở rộng ứng dụng ACO Bài toán tổ hợp giải thuật toán ACO tốn người du lịch (TSP) tốn biết nhiều NP-hard, tìm đường ngắn nhất, để dễ dàng mô sinh hoạt lồi kiến để giải Từ ứng dụng AS luận án Dorigo’sPhD năm 1991, trở thành đánh giá chung vài đóng góp tốt mơ hình thực thi ACO AS Theo trình tự, hai ứng dụng tốn nhiệm vụ phương trình bậc hai (QAP) toán lập lịch cho cửa hàng năm 1994 Giữa ứng dụng đường thông tin ứng dụng đầu tiên, bắt đầu năm 1996 với công việc Schoonderwoerd công việc AntNet Di Caro Dorigo Năm 1997, sau năm công bố nhà báo cho ACO năm 1996, số ứng dụng ACO bắt đầu tăng nhanh Ứng dụng sớm từ 1997 bao gồm bao toán đường xe cũ (vehicle routing), trình tự chuỗi, lập lịch trình cho cửa hàng tốn đồ hoạ Sau đó, nhiều tác giả khác sử dụng ACO metaheuristics để giải số lượng lớn toán tối ưu tổ hợp chuỗi chung ngắn nhất, tổng quát nhiệm vụ, tập che phủ, nhiều túi toán hợp lý…Thú vị người đọc thấy tổng kết ứng dụng có sẵn năm 2000 Từ phần ứng dụng trước đó, ACO gần sử dụng cho mục đích kĩ thuật, cụ thể để thiết kế nghiên cứu thuật toán cho đọc giả biểu diễn cấu trúc tập quy tắc lôgic classical, quy tắc logic fuzzy thông tin Bayesian, đưa kết hứa hẹn Ngày nay, ACO gần kết trạng thái cho vài toán để áp dụng cho: QAP, trình tự chuỗi, đường đi, lập lịch thơng tin gói điều khiển…Kết tính tốn sẵn có cho tốn khác thường tốt đóng tất trạng thái lại điều đáng ý, nhiều tốn sẵn sàng bị cơng mạnh mẽ nỗ lực tìm kiếm Bên cạnh đó, ACO metaheuristics áp dụng để giải toán giới với kết đầy hứa hẹn Các bước để giải toán ACO Từ ứng dụng biết nay, có vài hướng dẫn để giải toán ACO Các hướng dẫn tổng kết lại thành sáu nhiệm vụ sau: Thể toán khung tập thành phần chuyển đổi đồ thị đánh dấu kiến đề xây dựng cách giải Định nghĩa thích hợp cho mùi lạ rs xu hướng định Đó bước chủ yếu việc hình thanhg thuật tốn ACO xác định rõ mùi lạ không nhiệm vụ tầm thường tính tốn u cầu bên toán sau đáp án Định nghĩa thích hợp kinh nghiệm cho định để kiến xây dựng cách giải quyết, ví dụ: định nghĩa thông tin kinh nghiệm rs kết hợp thành phần trạng thái chuyển đổi Thông tin kinh nghiệm chủ yếu cho việc tìm kiếm tốt thuật tốn tìm kiếm vùng khơng có sẵn khơng thể ứng dụng Nếu thực được, tạo vùng thuật tốn tìm kiếm hiệu cho tốn sau đáp án kết nhiều ứng dụng ACO cho toán tổ hợp tối ưu NP-hard thể qua tìm kiếm tốt đạt ACO có vùng lạc quan Lựa chọn thuật tốn ACO ứng dụng vào toán cần giải Các tham số phù hợp thuật toán ACO Một điểm bắt đầu tốt cho tham số phù hợp sử dụng cài đặt tham số để tìm kiếm tốt ứng dụng thuật toán ACO vào toán đơn giản toán khác Một vấn đề khác chi phối thời gian nhiệm phù hợp để sử dụng thủ tục động cho tham số phù hợp Nó nên xố bước tiếp đưa hướng dẫn sử dụng thuật toán ACO Thêm nữa, việc sử dụng kết hợp trình với vài tốn sâu hoạt động thuật toán, vài lựa chọn ban đầu cần phải sửa lại Cuối cùng, muốn thực tế, điều quan trọng bước phải khớp lựa chọn tồi trạng thái tính khơng thể tính với tham số gốc phù hợp tốt II Một số ví dụ minh hoạ Bài toán người du lịch 1.1 Phát biểu toán Một người du lịch thăm n thành phố T1…Tn Xuất phát từ thành phố đó, người du lịch muốn thăm tất thnàh phố lại, thành phố lần trở lại thành phố xuất phát Gọi Cij chi phí từ T i đến Tj Tìm hành trình với tổng chi phí nhỏ 1.2 Tư tưởng giải toán người du lịch thuật toán kiến - Kiến sau sử dụng vết mùi lạ (lớp Trail) kinh nghiệm (lớp Heuristics) kiến trước để tìm kiếm đường cho mình, sau đường tốt cập nhật lại - Cứ cho ta kết đường ngắn cần tìm Xác định ma trận trọng số mạng Neuron 1.1 Phát biểu toán − Giả sử có D trọng số cần phải huấn luyện − Ký hiệu WPi tập giá trị tham số Pi (1 ≤ i ≤ D) − Cho số lượng M agents duyệt qua D tập WPi theo thứ tự lần chọn giá trị thuộc WPi theo quy tắc lựa chọn cho trước 1.2 Tư tưởng giải toán người du lịch thuật toán kiến − Khi Agents duyệt xong, chúng trở vị trí ban đầu theo đường cho bay lượng Pheromone định Sau trọng số tương 10 ứng với sai số nhỏ tìm tăng Pheromone theo nguyên tắc thủ tục PHEROMONE-UPDATE − Quá trình tìm kiếm kết thúc điều kiện chấm dứt tìm kiếm thoả mãn (Sai số mạng nhỏ giá trị cho trước thuật tốn đạt số vòng lặp định.) Chương II: XÂY DỰNG KHUNG THUẬT TOÁN KIẾN * Lý do: Chúng ta phải xây dựng khung thuật toán vì:  Hỗ trợ thiết kế tối đa khả tái sử dụng code: Khung phải cung cấp cho người dùng toàn kiến trúc phương pháp giải tốn họ Hơn lập trình viên tái dụng đoạn code có Do người dùng cần phát triển đoạn code định cho vấn đề  Tiện ích khả mở rộng: Khung phải cho phép người dùng qua số lượng lớn giải thuật giả quyết, vấn đề, mô hình song song đưa Nó có khả cho phép người dùng dễ dàng thêm thay đổi đặc tính/ giải thuật mà ko cần liên quan đến thành phần khác Giúp cho người sau thử nghiệm bai tốn mơi trường song song  Tính linh động: Khung hỗ trợ nhiều kiến trúc phần cứng phần mềm khác nên đáp ứng số lượng lớn người dùng I Thiết kế khung thuật toán kiến * Sơ đồ chung thuật toán kiến Chương trình khung thuật tốn: 1t=0 initialize pheromone trail, PT(t) initialize heuristic information, H 11 while not end t=t+1 generate solutions S(t) using PT(t-1) and H update PT(t) using S(t) and PT(t-1) Khi cài đặt sơ đồ ACO yêu cầu gồm ba lớp sau:  Problem  Solution  Heuristic Lớp Problem tương ứng với định nghĩa toán Người viết khung phải cung cấp định nghĩa hoàn chỉnh cho lớp Lớp Solution tương ứng với lời giải (tốt khơng tốt) tốn Người viết khung phải cung cấp định nghĩa hoàn chỉnh cho lớp Lớp Heuristic tương ứng thông tin yêu cầu tốn Thơng tin lấy từ việc giải bước thuật toán từ hoạt động kiến Người viết khung phải cung cấp định nghĩa hoàn chỉnh cho lớp Ngồi ra, người sử dụng phải có tham số thuật tốn file cấu hình gồm:  Số phần tử thực độc lập  Số phần tử phát sinh  Số lượng kiến  Thông tin vết mùi lạ (trail) gồm: kích thước(trail dimension), giá trị nhỏ lớn (minimum and maximum trail values),cập nhật phần (local update), kích thước lựa chọn (selection size), mùi lạ ban đầu (initial trial pheromone) q0  Alpha (mùi lạ quan trọng), beta (thông tin kinh nghiệm quan trọng)  Inter operators parameters: số lượng (operator number), tỉ lệ(operator rate), số lượng cá thể lựa chọn cá thể để gửi thay (number of individuals and selection of individual to send and replace) 12  Parallel Configuracion: khoảng thời gian phát sinh trạng thái (interval of generation to refresh global state), phương thức chạy (đồng không đồng bộ) (running mode(synchronized or asyncronized) khoảng thời gian phát sinh kiểm tra lời giải từ phần tử khác) interval of generations to check solutions from other populations * Xây dựng cài đặt cho sơ đồ thuật tốn Hệ thống gồm hai nhóm: nhóm lớp cung cấp (Provided) bao hàm thủ tục chung cho thuật tốn kiến (ví dụ khung thuật toán kiến tuần tự, khung thuật toán kiến song song ) nhóm lớp đòi hỏi (Required) bao hàm thủ tục riêng thuật toán kiến tốn cụ Dưới mơ hình UML tổng quan hệ thống Lớp cung cấp (provides) - Lớp Trail (const Problem& pbm,const SetUpParams& setup): cập nhật thông tin vết mùi lạ - Lớp Trail1D (const Problem& pbm,const unsigned long size,const SetUpParams& setup) Các hàm chính: - clear_delta (): gán cho _delta=0.0 (Giải phóng mùi lạ sau lần kiến qua cạnh) - get_trail (unsigned long index): trả giá trị biến _trail 13 - local_update (Solution* _sol): cập nhật bước mùi lạ - global_update (const Rarray *_sols): cập nhật mùi lạ - update_delta (Solution* _sol) : cập nhật mùi lạ - Lớp Trail2D (const Problem& pbm,const unsigned long size,const SetUpParams& setup) Gồm hàm Trail1D biến lưu vào mảng chiều cập nhật mùi lạ kiến đường - Lớp Feasibles (const unsigned long size,const SetUpParams& setup) - Select_best (Trail &trail,Heuristic &heuristic,const unsigned long last_selection): với biến thông tin mùi lạ, thông tin kinh nghiệm, lựa chọn sau (lựa chọn tốt nhất) Sau tính tổng xác suất kiến theo đường, hàm trả số lượng kiến lớn theo đường - Select (Trail &trail, Heuristic &heuristic,const unsigned long last_selection): tính xác suất cách ngẫu nhiên Hàm trả số lượng kiến theo đường - Lớp Colony (const Problem& pbm,const SetUpParams& setup): trả lựa chọn tốt phù hợp với toán - ostream& operator> (istream& is, Colony& colony): hiển thị thông tin - operator= (const Colony& colony): khởi tạo biến: _heuristic (thông tin kinh nghiệm), _best_solution (giải pháp tốt nhất), _best_cost (chi phí tốt nhất), _worst_cost (chi phí tồi nhất).Có vòng lặp duyệt qua tất giải pháp, tìm giá trị phù hợp cách giải - advance(): cập nhật lại thơng tin mùi lạ cho hàm global_update (_sols) - generate_solution(Solution* sol): với vết mùi lạ, kinh nghiệm tìm cách giải cuối - solution(const unsigned int index) const: trả giải pháp thời 14 - trail() const: trả thông tin vết mùi lạ - fitness(const unsigned int index) const: trả giá trị phù hợp - Lớp Statistics - ostream& operator> (istream& is, SetUpParams& setup): sscanf (buffer," %s ",command): Nhập vào chuỗi lưu vào biến command Sau so sánh chuỗi sau: chuỗi “General" gán nb_section=0; "Heuristic" gán nb_section=1; "Inter-Operators" gán nb_section=2; "LAN-configuration" gán nb_section=3; Tùy vào giá trị đoạn nb_section khác mà ta lựa chọn thực công việc khác nhau: thiết lập thông tin vết mùi lạ lớn nhất, nhỏ nhất, thông tin kinh nghiệm lớn nhất, nhỏ nhất, cập nhật lại,… - ostream& operator

Ngày đăng: 13/01/2020, 17:19

Từ khóa liên quan

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

Tài liệu liên quan