1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phương pháp chc song song

24 0 0

Đ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

Lời nói đầu Những năm gần đây, với phát triển khoa học kỹ thuật, người ta giải nhiều tốn hóc búa máy tính Nhưng bên cạnh đó, cịn nhiều tốn chưa tìm giải thuật phù hợp để giải nó, tốn tối ưu, trí tuệ nhân tạo tốn xuất phát từ thực tế sống toán lập lịch, toán điều khiển Robot, toán người du lịch, Đây tốn có nhiều ràng buộc phức tạp, khơng rõ ràng, ko gian tìm kiếm lớn Do phương pháp truyền thống quay lui vét cạn, leo đồi, mô luyện thép, … tỏ hiệu quả, người ta sử dụng phương pháp tối ưu phương pháp CHC sử dụng mơ hình song song Trong nghiên cứu nhóm tác giả nghiên cứu phương pháp CHC sử dụng mơ hình song song để giải toán MAXSAT Chúng ta thấy độ tối ưu sử dụng mơ hình song song so với mơ hình thời gian, độ thích nghi … Trong tương lai nhóm tiếp tục phát triển đề tài nghiên cứu cách sử dụng thuật toán để giải số tốn khác Nhóm tác giả xin chân thành cảm ơn giúp đỡ tận tình thầy giáo Đỗ Trung Kiên giúp cho nhóm q trình thực Cuối xin chúc hội nghị nghiên cứu khoa học thành công rực rỡ Hà Nội, tháng 04 năm 2008 Nhóm tác giả MỤC LỤC Chương I: Tổng quan phương pháp CHC .3 I Tìm hiểu chung thuật toán di truyền .3 II Tổng quan phương pháp CHC Khái niệm Tư tưởng thuật toán CHC Sự Chọn lọc Elitist Tránh giao phối gần Chương II: Xây dựng khung thuật toán CHC I Thiết kế khung thuật toán CHC Các lớp đòi hỏi (Requires) 10  Lớp toán (Problem) 10  Lớp lời giải (Solution) .10  Lớp toán tử người sử dụng (Uer_Operator) 10  Lớp kiểm tra điều kiện dừng (StopCondition) 10 Các lớp cung cấp (Provided) 11  Lớp thiết lập tham số đầu vào (SetUpParams) 11  Lớp quần thể (Population) 11  Lớp lựa chọn (Selection) 12  Lớp định toán tử sử dụng (Intra_Operator): .13  Lớp định nghĩa giao diện toán tử (Inter_Operator) 13  Lớp lai ghép (Crossover) 13  Lớp thực thi giải thuật (Solver) .14 II Khung thuật toán 14 Hàm void Solver_Seq::DoStep() 14 III Khung thuật toán song song .16 Chương III Sử dụng khung thuật toán giải toán MAXSAT 17 I Đọc file cấu hình 17 II Sử dụng khung thuật toán giải bai toán MAXSAT 18 III Kết thực nghiệm 24 Kết 24 Kết song song 24 BÁO CÁO KHOA HỌC Đề tài:: PHƯƠNG PHÁP CHC SONG SONG Chương I: Tổng quan phương pháp CHC I Tìm hiểu chung thuật tốn di truyền Giải thuật di truyền kĩ thuật giúp giải tốn cách mơ theo tiến hố đấu tranh sinhh tồn sinh vật tự nhiên theo thuyết tiến hố mn lồi Darwin Mục tiêu giải thuật di truyền: giải thuật di truyền không đưa lời giải tối ưu mà đưa lời giải gần (tương đối tối ưu) Bản chất thuật tốn di truyền tốn tìm kiếm dựa theo qui luật q trình tiến hố tự nhiên Thuật toán di truyền kết hợp sống sót cấu trúc khoẻ số cấu trúc biểu diễn nhiễm sắc thể (NST) với trao đổi thông tin lựa chọn ngẫu nhiên để tạo thành thuật tốn tìm kiếm Thuật tốn di truyền sử dụng biểu diễn nhị phân kết hợp với sơ đồ để mơ hình hố chọn lọc, lai ghép đột biến Ứng dụng thuật toán di truyền: + Trong tin học: xây dựng chương trình tin học đặc biệt trí tuệ nhân tạo để hướng dẫn người sử dụng lĩnh vực giáo dục, quản trị + Trong công việc khác: Ứng dụng giải toán xếp thời khoá biểu, điều khiển robot, toán vận tải, toán đồ thị… II Tổng quan phương pháp CHC Khái niệm CHC giải thuật di truyền phi truyền thống kết hợp chiến lược chọn lọc (dựa cá thể đơn lẻ tốt nhất) để đưa lai tốt khác với cha mẹ Tư tưởng thuật toán CHC CHC từ viết tắt cross – generational selection, Heterogeneous recombination, and Cat – aclysmic mutation Giải thuật CHC phát triển Eshelman (1991) trình bày hình vẽ: CHC lựa chọn trang quần thể có kích cỡ µ (µ =50) thay chọn cha mẹ tốt để tái kết hợp giống cách làm giải thuật gi truyền, cha mẹ chọn cách ngẫu nhiên cặp điều kiện để sinh chung Giải thuật sau chọn tập cá thể tốt từ cha mẹ kết hợp quần thể sinh hệ Vì giải thuật CHC trì quần thể tốt mà bắt gặp qua trình tìm kiếm Cha mẹ không phép giao phối chúng khơng có khác biệt thích đáng xác định ngưỡng giao phối liên tục giảm Toán tử chéo (crossover) sử dụng CHC toán tử HUX, với HUX đại diện cho crossover nửa khơng đổi Tốn tử HUX đảm bảo xác nửa số bit khác cha mẹ trao đổi để sản sinh CHC khơng sử dụng tốn tử đột biến trường hợp thông thường, thực tế với quần thể nhỏ CHC lựa chọn hệ giao làm cho quần thể hội tụ nhanh chóng Khi quần thể hội tụ, CHC khởi động lại phần việc chép thành viên tốt quần thể sang quần thể sinh phần lại quần thể với phiên biến đổi ạt (35% bit) thành viên tốt quần thể Sự Chọn lọc Elitist Trong suốt chọn lọc cho việc sinh sản thay thiên chọn lọc C(t) cho việc sinh sản lợi ích thành viên thực tốt quần thể cha mẹ P(t-1) Mỗi thành viên P(t-1) chép thành C(t) ghép đôi cách ngẫu nhiên (Nói cách khác, C(t) đồng với P(t-1) ngoại trừ trật tự cấu trúc bị thay đổi) Mặt khác, suốt giai đoạn chọn lọc sinh tồn thay thay quần thể cha mẹ cũ P(t-1) quần thể C’(t) để hình thành P(t), hệ tạo phải cạnh tranh với thành viên quần thể cha mẹ P(t-1) cho sinh tồn - ví dụ cạnh tranh hệ lai Cụ thể hơn, thành viên P(t-1) C’(t) hoà trộn xếp hạng theo thích hợp, P(t) tạo việc chọn lọc M tốt (trong M kích thước quần thể), thành viên quần thể hoà trộn (Trong trường hợp mà thành viên P(t-1) thành việc C’(t) có thích hợp giống nhau, thành viên P(t-1) xếp hạng cao hơn) Ta gọi thủ tục giữ lại thành viên xếp hạng tốt quần thể quần thể cha mẹ xáo trộn chọn lọc elitist đảm bảo cá thể M tốt ln sống sót Một vài chọn lọc sinh tồn thiên tính thích hợp sử dụng giải thuật di truyền khác - Whitley’s GENITOR (1989), Syswerda’s Steady State GA (SSSGA(1989), Ackley’s Iterated Generic Search(IGS) (1987) CHC khác với tất ba loại giải thuật việc cạnh tranh sinh tồn hệ lai-thế hệ thay thành viên quần thể cha mẹ tốt Hơn nữa, không giống ba giải thuât này, CHC vận hành chu kỳ hệ với nhiều bạn đời bạn đời cho chu kỳ Sự tin cậy chọn lọc sinh tồn cho thiên lệch lợi ích cá nhân thực thi tốt hơn phân biệt với GENITOR SSSGA IGS Cuối cùng, phương pháp dựa xếp hạng tất yếu việc thực chọn lọc phân biệt với SSGA Và IGS GENITOR Tránh giao phối gần Sự tăng trưởng theo số mũ trường hợp lược đồ tốt có giá trị dẫn đến quy tụ non Một hậu phép lai nửa bit khác hệ cha mẹ nguy có hội tụ cịn non giảm Thậm chí hệ hệ cháu gần giao phối với tổ tiên (con giống lần) Nó mang hệ log2h để quy tụ (trong vòng bit) đến tổ tiên h khoảng cách tín hiệu hệ cha mẹ Mặc khác, trường hợp phép lai hai điểm hai hệ khác so với hệ cha mẹ gần (được đo khoảng cách tín hiệu) số lượng dao động từ bit không nửa chiều dài chuỗi L Chính vậy, thời gian dài mà tạo quy tụ vịng bit tổ tiên hệ log 2h thời gian ngắn hệ Tất nhiên, hệ không giao phối lại với tổ tiên xa cá thể tốt có nhiều hậu duệ Vì vậy, hợp lý cá giao phối với họ hàng gần Cho đến bây giờ, điều dẫn đến việc lai cá thể mà chia sẻ nhiều Alen, thơng dị tái tổ hợp nhanh chóng thối hố Mặc dù luôn lai nửa khác nhau( sử dụng HUX) làm chậm trình cá thể ghép đôi lại có vài khác biệt Nếu hay hai hệ sống sót giao phối chắn việc xảy hệ CHC có chế bổ sung để làm chậm lại tốc độ quy tụ- chế để giúp tránh giao phối gần Trong suốt thời kỳ sinh sản, thành viên quần thể cha mẹ chọn cách ngẫu nhiên mà không thay ghép đôi cho việc giao phối Tuy nhiên, trước giao phối khoảng cách tín hiệu hệ cha mẹ tiềm tính tốn, nửa khoảng cách ( khoảng cách tín hiệu hệ mong đợi từ hệ cha mẹ) không vượt ngưỡng khác Chúng không giao phối bị loại từ quần thể con.(ngưỡng khác thiết lập phần bắt đầu L/4) Chính vậy, phần quần thể giao phối để tạo hệ hệ Khơng hệ chấp nhận vào quần thể cha mẹ ( khơng có bạn giao phối tiềm hay khơng hệ tốt quần thể cha mẹ), ngưỡng khác bị giảm Hậu chế có quần thể cha mẹ tiềm đa dạng giao phối đa dạng đòi hỏi ngưỡng khác tự động giảm quần thể quy tụ cách tự nhiên Số lượng sống sót cho hệ xem thích hợp suốt q trình tìm kiếm CHC gặp khó khăn việc tăng tiến trình ngưỡng khác giảm xuống nhanh khoảng cách tín hiệu trung bình để có nhiều cá nhân đánh giá Ngược lại, CHC xem dễ dàng để tạo hệ mà sống sót ngưỡng khác giảm tỷ lệ thấp số lượng giao phối giảm Chương II: Xây dựng khung thuật toán CHC Việc xây dựng khung thuật tốn có ý nghĩa quan trọng q trình lập trinh Nó cho phép nhiều người dùng khai thác hiệu giải thuật sở liệu nhờ khung thuật tốn có sẵn Một số tiểu ứng dụng khung thuật toán:  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 CHC Cấu trúc chung thuật toán CHC: t = initialize P(t) evaluate structures in P(t) while not end t = t + select: C(t) = P(t-1) recombine: C'(t) = 'incest prevention' + HUX(C'(t)) evaluate structures in C'(t) replace P(t) from C''(t) and P(t-1) 10 if convergence(P(t)) 11 diverge P(t) Khung thuật toán gồm hai phần Provides Requires Lớp Provided thực thi phía bên khung bao hàm thủ tục chung cho tốn giải giải thuật di truyền Thơng thường giải thuật thường có số giải pháp, tất mơ hình nhóm vào lớp Solver_Seq Các mơ hình song song nhóm vào lớp Solver_Lan Solver_Wan Lớp Required định thông tin liên quan đến vấn đề (bài tốn) Để cho tồn khung hoạt động lớp phải bổ xung thông tin tốn phụ thuộc Các lớp địi hỏi (Requires) Các lớp đòi hỏi sử dụng để lưu trữ liệu thuật tốn Ta hình dung lớp Requre xây dựng giống sườn, mẫu, tốn cụ thể lại phải đắp thêm thơng tin riêng tốn cho hồn chỉnh Nhóm lớp Requires bao gồm lớp sau:  Lớp tốn (Problem) Diễn tả thơng tin tốn cần giải Dưới thủ tục lớp tốn Trong đó: - Tốn tử chồng cout: Đưa thơng số tốn pbm theo luồng os - Tốn tử chồng cin: nhận vào thơng số toán pbm từ luồng is  Lớp lời giải (Solution) Lớp lời giải diễn tả lời giải tốn, q trình tiến hố, ln trì quần thể lời giải toán áp dụng thao tác q trình tiến hố lời giải quần thể để tìm lời giải tối ưu cho tốn Dưới thủ tục lớp lời giải: Trong - operator> nhận vào thông số lời giải theo luồng is - char *to_String(): Chuyển nhiễm sắc thể biểu diễn lời giải thành xâu ký tự - to_Solution(char *_cadena_) : Hàm tạo đối tượng lời giải từ xâu ký tự - initialize(): Hàm khởi tạo giá trị ngẫu nhiên cho phần tử lời giải - fitness (): Hàm tính độ thích nghi làm sở đánh giá lời giải  Lớp toán tử người sử dụng (Uer_Operator) Thừa kế từ lớp Intra_Operator  Lớp kiểm tra điều kiện dừng (StopCondition) Để xác định điều kiện dừng toán, toán điều kiện dừng khác nhau, thường vào một vài tham số số hệ, thời gian chạy, điều kiện đặc thù toán Các lớp cung cấp (Provided) Bao gồm thủ tục chung cho toán giải giải thuật CHC Ta hình dung lớp loại provide giống thư viện, giải tốn việc gọi  Lớp thiết lập tham số đầu vào (SetUpParams) Lớp chứa thủ tục để thiết đặt tham số cho toán nêu cho toán tử giải thuật từ file đầu vào: oindependent_runs : số lần thực q trình tiến hóa lần thực chương trình opopulation_size : kích thước quần thể onb_evolution_steps : số bước tiến hóa oselect_parents : phương thức lựa chọn cha oselect_offsprings : phương thức lựa chọn ocombine : có kết hợp quần thể cũ hay lựa chọn từ quần thể oHàm istream& operator>> (istream& is, SetUpParams& setup) có nhiệm vụ thiết đặt tham số cho tốn Cụ thể, nhận vào thơng số cấu hình từ file liệu (file gọi file cấu hình), dựa vào thơng số nhận vào mà chương trình chọn phương pháp lựa chọn dùng toán (trong phương pháp lựa chọn kể trên), tham số lựa chọn dấu hiệu dừng thuật tốn, làm sở cho cấu hình giải thuật giải toán  Lớp quần thể (Population) Lớp lưu trữ thông tin quần thể nhiễm sắc thể Dưới thủ tục lớp quần thể Trong : oEvaluate(Solution *sol, struct individual &_f) : tạo cá thể _f (độ thích nghi, vị trí ) tương ứng với nhiễm sắc thể sol 10 oinitialize() : Sinh tập cá thể quần thể oevolution() : Tiến hóa quần thể phương pháp: lụa chọn, lai ghép, đột biến oevaluate_parents() : Tạo mảng chứa đựng độ thích nghi tất cá thể vị trí quần thể Cùng với việc đánh giá độ thích nghi cha tốt nhất, cha tồi giá trị trung bình oevaluate_offsprings() : Tạo mảng chứa đựng độ thích nghi tất cá thể vị trí quần thể oselect_parents() : Lựa chọn cha để tiến hành lai ghép, sử dụng phương pháp để tiến hành lựa chọn oselect_offsprings() : Lựa chọn cá thể cho quần thể Có hai phương pháp lựa chọn từ quần thể (combine = 0) lựa chọn từ quần thể quần thể cũ (combine = 1) Hàm quan trọng lớp hàm evolution(), để thực cơng việc tiến hố quần thể hay sinh quần thể qua phép chọn lọc, lai ghep, đột biến tìm hiểu  Lớp lựa chọn (Selection) Để thực việc chọn lọc cá thể có độ thích nghi cao vào bể lai ghép để thực phép biến đổi cho quần thể có độ thích nghi cao Dưới thủ tục lớp lựa chọn Trong : oprepare: thực việc chuẩn bị điều kiện cho việc tiến hành chuẩn bị, phương pháp chọn lựa yêu cầu chuẩn bị khác oselect_onechọn cá thể quần thể vào bể ghép đôi, việc chọn lựa ngẫu nhiên theo xác xuất chọn lựa tính từ độ thích nghi, cách tính tuỳ thuộc theo phương pháp chọn lựa Có lớp kế thừa từ lớp Selection tương ứng với phương pháp lựa chọn phổ biến… Trong : oSelection_Tournament : lựa chọn cạnh tranh, giới thiệu phần lý thuyết chương I oSelection_Roulette_Wheel : Lựa chọn bánh xe số 11 oSelection_Rank : Lựa chọn theo danh sách xếp loại oSelection_Best : Lựa chọn tốt oSelection_Worst : Lựa chọn tồi  Lớp định toán tử sử dụng (Intra_Operator): Để xác định phép biến đổi quần thể lai ghép hay đột biến theo xác xác xuất lai ghép đột biến cho Hàm gồm có cách thuộc tính phương thức chính: - int _number_operator: số hiệu toán tử áp dụng, quy ước toán tử Crossover, toán tử Mutation - probability: xác xuất (lai ghép hay đột biến) - Intra_Operator *create(unsigned int _number_op): để tạo đối tượng thuộc lớp Crossover Mutation tuỳ theo tham số truyền vào (unsigned int _number_op) hay - operator

Ngày đăng: 29/09/2023, 12:52

Xem thêm:

w