GIỚI THIỆU Thuật toán di truyền (Genetic Algorithm GA) là thuật toán tìm kiếm lời giải dựa trên cơ chế chọn lọc và di truyền trong tự nhiên. Thuật toán là những thủ tục được thực hiện theo từng bước một để tìm các giải pháp cho các vấn đề. Thuật toán di truyền cũng cung cấp các thủ tục như thế để giải quyết vấn đề nhưng chúng được dựa trên các mô hình di truyền. Giải thuật di truyền đã được chứng minh về mặt lý thuyết lẫn thực nghiệm và cho thấy được hiệu quả mạnh mẽ trong việc tìm kiếm giải pháp ở những vấn đề phức tạp. Các thuật toán di truyền có khả năng cho tăng hiệu quả tìm kiếm trong kinh doanh, khoa học và kỹ thuật. Các thuật toán sẽ ít phức tạp hơn nhưng mạnh mẽ hơn trong tìm kiếm khi áp dụng nguyên lý di truyền. Trong tiểu luận này sẽ thảo luận các loại khác nhau của di truyền các thuật toán như GA song song, phân tán, ….
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH CÁC DẠNG CỦA THUẬT TOÁN DI TRUYỀN (CLASSIFICATION OF GENETIC ALGORITHM) Tiểu luận môn Các hệ sở tri thức NHÓM THỰC HIỆN: NGUYỄN MINH PHƯƠNG GVHD: PGS TS LÊ HOÀNG THÁI TP HỒ CHÍ MINH - 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH CÁC DẠNG CỦA THUẬT TOÁN DI TRUYỀN (CLASSIFICATION OF GENETIC ALGORITHM) Tiểu luận môn Các hệ sở tri thức Người hướng dẫn khoa học: PGS.TS LÊ HOÀNG THÁI TP HỒ CHÍ MINH – 2015 Mục lục DANH MỤC CÁC TỪ VIẾT TẮT Genetic Algorithm Simple Genetic Algorithm Parallel Genetic Algorithm Distributed Genetic Algorithm GA SGA PGA DGA DANH MỤC CÁC HÌNH DANH MỤC CÁC BẢNG CHƯƠNG GIỚI THIỆU Thuật toán di truyền (Genetic Algorithm - GA) thuật toán tìm kiếm lời giải dựa chế chọn lọc di truyền tự nhiên Thuật toán thủ tục thực theo bước để tìm giải pháp cho vấn đề Thuật toán di truyền cung cấp thủ tục để giải vấn đề chúng dựa mô hình di truyền Giải thuật di truyền chứng minh mặt lý thuyết lẫn thực nghiệm cho thấy hiệu mạnh mẽ việc tìm kiếm giải pháp vấn đề phức tạp Các thuật toán di truyền có khả cho tăng hiệu tìm kiếm kinh doanh, khoa học kỹ thuật Các thuật toán phức tạp mạnh mẽ tìm kiếm áp dụng nguyên lý di truyền Trong tiểu luận thảo luận loại khác di truyền thuật toán GA song song, phân tán, … CHƯƠNG THUẬT TOÁN DI TRUYỀN ĐƠN GIẢN (SIMPLE GENETIC ALGORITHM - SGA) Đối với nhiều thuật toán tìm kiếm cần nhiều thông tin phụ trợ có liên quan đến cấu trúc liệu toán để đưa kết Ví dụ kỹ thuật tìm kiếm truyền thống thuật toán tham lam cần quyền truy cập vào thông số để tính toán, thuật toán di truyền không cần phải truy cập tất Đối với GA, tìm kiếm kết đạt hiệu cao “mù” cấu trúc thông tin GA sử dụng quy tắc chuyển đổi kiểu xác suất để hướng đến không gian tìm kiếm có khả đạt kết có hiệu Các chế thuật toán di truyền đơn giản phức tạp, đơn giản chép chuỗi trao đổi phần chuỗi Một thuật toán di truyền đơn giản mà mang lại kết tốt nhiều vấn đề thực tế gồm ba hoạt động Đó là: • Sinh sản • Lai ghép • Đột biến Sinh sản trình chép phần chuỗi (còn gọi gen) cá thể theo giá trị hàm mục tiêu f Ta xem xét hàm mục tiêu f biện pháp tối đa hóa lợi nhuận, hữu ích, hay điều tốt đẹp mà ta muốn có Chuỗi chép theo kiểu xác suất để độ thích nghi cao hệ Trong thuật toán thực sinh sản với nhiều phương thức khác Cách đơn giản thực sinh sản sử dụng vòng Roulette Trong vòng Roulette chuỗi quần thể có có kích thước tỷ lệ thuận với độ thích nghi Các bước chuẩn cho việc chạy thuật toán di truyền đơn giản là: randomly generate population // tạo cách ngẫu nhiên quần thể select parents (using fitness function) // chọn cha mẹ (dùng hàm thích nghi) selection methods: // phương pháp lựa chọn roulette wheel// dựng vòng tròn roulette tournament // chạy vòng tròn chọn số lượng cá thể demetic// nhóm cá thể crossover parent chromosomes // lai ghép chéo mutate offspring chromosomes // đột biến add offspring back into pool // thêm cá thể vào quần thể e litism // xét quần thể ưu tú (select parents) // chọn lại cá thể cha mẹ SGA có tác dụng hiệu khi: không gian tìm kiếm lớn, phức tạp chưa hiểu rõ Khó mã hóa để thu hẹp không gian tìm kiếm Không có phân tích toán học Các phương pháp tìm kiếm truyền thống thất bại Ưu điểm phương pháp SGA dễ dàng xử lý khó khăn đạt mục tiêu; tất điều xử lý thành phần có trọng số hàm thích nghi, làm cho dễ dàng để thích ứng với tiến trình SGA để cụ thể yêu cầu có phạm vi rộng mục tiêu tổng thể 10 cạnh” (edge map) để xây dựng cá thể mà kế thừa nhiều thông tin tốt từ cấu trúc cha mẹ Bản đồ lưu trữ thông tin tất kết nối dẫn vào thành phố toán Do khoảng cách đỉnh hay cạnh khoảng cách hai thành phố, thành phố có hai tối đa bốn cạnh (trong có hai từ bố mẹ) giao Thuật toán sau: Bước 1: Chọn điểm ban đầu từ hai đường cha mẹ (có thể từ bước cách tạo ngẫu nhiên” Đặt tên “điểm tại” Bước 2: Hủy bỏ tất lần xuất “điểm tại” từ phía bên trái danh sách cạnh đồ Bước 3: Nếu “điểm tại” có danh sách cạnh (edgelist) đến bước xử lý; không, đến bước Bước 4: Xác định thành phố edgelist “điểm tại”, có cạnh ngắn với “điểm tại” Các thành phố với cạnh ngắn bao gồm tour thành phố trở thành “điểm tại” Dừng việc tạo ngẫu nhiên đến bước Bước 5: Nếu không thành phố chưa đến, sau DỪNG Nếu không, ngẫu nhiên chọn thành phố chưa đến đến bước Sự khác biệt thuật toán lai chéo Darrell Whitley thuật toán chuẩn bước thứ tư Ông chọn thành phố với cạnh đến thành phố kế tiếp, thông thường chọn thành phố gần đến thành phố nay, điều cho thấy vận dụng heuristic lai chéo 4.2 Khởi tạo theo hướng Heuristic Thủ tục InitializationHeuristics (IH) áp dụng TSP theo ý tưởng sau: Dùng thuật toán tham lam để khởi tạo quần thể cách xếp thứ tự thành phố phụ thuộc vào tọa độ x y Các tour du lịch đại diện danh sách kết nối với Danh sách ban đầu lấy theo thứ tự đầu vào InputList (danh sách nhập) Các danh sách kết nối thu sau áp dụng heuristic OutputList 21 Trong trình áp dụng heuristic cho tất thành phố InputList di chuyển đỉnh vào OutputList Thuật toán cho TSP sau: Bước 1: Chọn bốn thành phố, có tọa độ x, y mang giá trị lớn nhỏ chuyển vào OutputList từ InputList Bước 2: Từ trình tự di chuyển có bốn thành phố, ta tìm chuỗi có chi phí tối thiểu thay đổi trình tự bốn thành phố OutputList đến trình tự có mức tối thiểu Bước 3: Chọn ngẫu nhiên đỉnh lại Inputlist Bước 4: Loại bỏ đỉnh phía trước InputList chèn vào OutputList vị trí mà gia tăng chi phí tour du lịch tối thiểu Giả sử M chi phí tour du lịch trước chèn N chi phí chuyến sau chèn Các vị trí chèn lựa chọn mà NM tối thiểu Bước 5: Lặp lại bước tất đỉnh InputList chuyển đến OutputList Tùy thuộc vào tiêu chí phân loại Bước kết lấy khác Áp dụng heuristic cho RemoveSharp LocalOpt ta thu cá thể thêm vào dân số ban đầu 4.3 Thủ tục RemoveSharp Thủ tục RemoveSharp nhằm loại bỏ tăng mạnh mẽ chi phí tour thành phố bị xem cá thể xấu Thủ tục trải qua bước đây: Bước 1: Một danh sách (NEARLIST) chứa m thành phố gần đến thành phố chọn Bước 2: RemoveSharp loại bỏ thành phố lựa chọn từ tour du lịch tạo thành tour du lịch với N - 1cities Bước 3: Bây thành phố chọn lồng vào tour trước sau thành phố NEARLIST chi phí tour du lịch tính cho trường hợp Bước 4: Theo trình tự đó, chi phí thấp chọn Bước 5: Các bước lặp lại cho thành phố tour 22 4.4 Thủ tục LocalOpt Thuật toán LocalOpt chọn q thành phố liên tiếp (Sp + 0, Sp + 1, , Sp + q-1) từ tour du lịch xếp thành phố Sp + 1, Sp + 2, , Sp + q-2 theo cách khoảng cách tối thiểu thành phố Sp + Sp + q-1 cách tìm kiếm tất thỏa thuận Giá trị p thay đổi từ đến n-q, n số thành phố 4.5 Độ phức tạp thủ tục RemoveSharp LocalOpt 4.5.1 Độ phức tạp thủ tục RemoveSharp Như thảo luận bước thủ tục, thành phố loại bỏ RemoveSharp có sụt giảm chi phí tour Giả sử trình tự thành phố - - -P - C - N - - - - - - - AP - A - AN - - - C thành phố phải loại bỏ để thực RemoveSharp Ví dụ P thành phố trước đến thành phố C N thành phố bên cạnh RemoveSharp di chuyển thành phố C đến vị trí, độ tăng chiều dài chuyến sau di chuyển đến vị trí so với việc giảm chi phí loại bỏ từ vị trí P N Nếu thành phố A danh sách gần đó, RemoveSharp kiểm tra khả chuyển đến địa điểm trước A (như AP) sau A (tức AN) Việc giảm chiều dài tour du lịch là: DECREASE = Khoảng cách (P, C) + Khoảng cách (C, N) – Khoảng cách (P, N) Nếu C di chuyển đến vị trí trước đến A (ví dụ AP), tăng chi phí tour là: INCREASEP = Khoảng cách (AP, C) + Khoảng cách (C, A) - Khoảng cách (AP, A) Nếu C di chuyển vị trí bên cạnh A tức AN tăng chi phí tour là: INCREASEN = Khoảng cách (A, C) + Khoảng cách (C, AN) - Khoảng cách (A, AN) Khi áp dụng RemoveSharp, DECREASE tính lần, INCREASEN INCREASEP tính cho thành phố NEARLIST Phức tạp thời gian cho DECREASE, INCREASEN INCREASEP x INCREASEN INCREASEP nên so sánh với DECREASE cho thành phố NEARLIST Nếu y thời gian thực cho so sánh Tất tính toán cần phải thực cho tất thành phố tour Thời gian thực với RemoveSharp = n * (x + 2m * x + 2m * y) Ở đây, m kích thước NERALIST, x thời gian cho DECREASE, INCREASEN INCREASEP y thời gian thực để so sánh số Do đó, Độ phức tạp thủ tục RemoveSharp O (n) 4.5.2 Độ phức tạp thủ tục LocalOpt Độ phức tạp LocalOpt thay đổi theo giá trị q, số liên tiếp thành phố thực cho LocalOpt thời điểm Khi xếp q thành phố theo trình tự kết hợp từ q-2 thành phố xen Ta có (q-2)! kết hợp, trường hợp có q-1 bổ sung để thực đánh giá chi phí trình tự so sánh để kiểm tra xem chuỗi tối thiểu hay không Do đó, chuỗi n liên tiếp thành phố q có độ phức tạp LocalOpt n * (((q-2)! * (q-1)) (phép bổ sung) + (q-2)! (phép so sánh) 23 Trong đó: n biến Xét với q nhỏ (q≤6) độ phúc tạp LocalOpt O(n) 24 CHƯƠNG 5: THUẬT TOÁN DI TRUYỀN THÍCH NGHI (ADAPTIVE GENETIC ALGORITHM-AGA) Các thuật toán di truyền thích nghi (AGA) thuật toán di truyền cho phép tham số thay đổi, chẳng hạn quy mô dân số, xác suất lai ghép, hay xác suất đột biến,… trình GA chạy thực Một biến thể đơn giản sau: Tỷ lệ đột biến thay đổi theo quy mô dân số; tăng quy mô dân số tăng ngược lại, giảm sau cải tiến dân số xảy Thuật toán tiến hành sau: Bước 1: Khởi tạo dân số ban đầu Tạo dân số hệ số ngẫu nhiên Bước 2: Thực di truyền Lựa chọn: tạo chiến lược không gian lấy mẫu mở rộng Lai ghép: Có thứ tự ưu tiên lai ghép Đột biến: Tìm kiếm cho đột biến có tính chất cục Bước 3: Áp dụng tìm kiếm cục lặp lại theo phương pháp leo đồi Bước 4: Áp dụng heuristic cho việc tinh chỉnh thông số GA (các giá lai ghép đột biến) Bước 5: Dừng điều kiện Nếu số hệ đạt tối đa xác định giải pháp tối ưu sau dừng lại; không, chuyển sang Bước Khác với SGA, tham số xác xuất lai ghép pc xác suất đột biến pm cố định, thuật toán cho phép tự động thay đổi 02 tham số pc pm cách vận dụng heuristic để thuật toán có tính thích nghi cho kết tốt 5.1 Khởi tạo Xác định số nguyên H số nhiễm sắc thể quần thể ngẫu nhiên ban đầu, ta áp dụng dạng mã hóa số thực Mỗi nhiễm sắc thể bao gồm n gen Xem xét thiết lập hàm sau: Trong xi…x giá trị gen, (ui, wi) miền giá trị tương ứng xi 25 Hàm tạo số ngẫu nhiên từ Ω kiểm tra tính khả thi Nếu khả thi thành viên dân số ban đầu, không, tạo số ngẫu nhiên khác từ Ω có giải pháp khả thi Khi số mẫu đạt mức hữu hạn, ta có H nhiễm sắc thể khả thi ban đầu 5.2 Hàm đánh giá Thông qua hàm đánh giá eval (V), ta thiết lập xác suất cho nhiễm sắc thể V, xác suất lựa chọn có tỷ lệ thuận với độ thích nghi Bằng cách lựa chọn bánh xe roulette, nhiễm sắc thể có giá trị thích nghi cao có hội cao để lựa chọn nhằm tạo cá thể cho hệ Để đánh giá tốt xấu, ta thiết lập α ∈ (0,1) xác định hàm đánh sau: 5.3 Hàm lựa chọn Việc lựa chọn tạo theo bước sau, xem giải pháp mở rộng vòng tròn roulette Bước 1: Theo quy tắc mà hàm lựa chọn quy định lựa chọn thể với xác suất tương ứng với độ thích nghi NST với độ thích nghi cao lựa chọn để tạo thể cho hệ tiếp, hai cá nhân lựa chọn, gọi cha mẹ Ta xác định xác suất sinh sản cho vj (k) j = có nghĩa nhiễm sắc thể tốt j = H có nghĩa nhiễm sắc thể xấu Bước 2: Đối với vj (k), j = 1, 2, Λ, H tính toán xác suất qj: Bước 3: Tạo số ngẫu nhiên r(0, qH) Nếu qj-1 [...]... (Parallel and Distributed Genetic Algorithm - PGA và DGA) Thuật toán di truyền dạng lai (Hybrid Genetic Algorithm - HGA) Thuật toán di truyền thích nghi (Adaptive Genetic Algorithm-AGA) Thuật toán di truyền nhanh (Fast Messy Genetic Algorithm - FmGA) Thuật toán di truyền với mẫu độc lập (Independent Sampling Genetic Algorithm - ISGA) Câu 2: Các trạng thái trong thuật toán di truyền đơn giản: Sinh sản... số ưu điểm của việc chia nhóm Ngoài ra, các mô hình thuật thoán di truyền khác như: thuật toán di truyền lai, thuật toán di truyển thích nghi hay thuật toán di truyền nhanh đã khẳng định được sự cần thiết của mình bằng cách đưa ra cách phương pháp tìm kiếm khả năng cải thiện độ thích nghi của các cá thể như chiến lượt leo đồi, BBDS Đặt biệt là hàm chiến lượt Royal Road của thuật toán di truyền lấy... như thuật toán tuần tự không tốt bằng giải thuật tuần tự Bảng Bảng so sánh về phương thức thực hiện của giải thuật di truyền song song Fined – Grained (Mô hình chia mịn) Coarse – Grained Phương (Mô hình chia thô) Cá thể Đánh giá thích nghi Thuật toán di truyền Dùng thuật toán di truyền Dùng mô hình thuật kiểu tế bào, đồng nhất việc toán di truyền Master tạo ngẫu nhiên các tế bào - Slave Thuật toán di. .. di truyền Phát sinh tế bào theo kiểu Dùng mô hình thuật dùng mô hình đảo không đồng nhất toán di truyền Master thức đồng dùng mô hình đảo bộ Phương thức không đồng bộ - Slave 19 CHƯƠNG 4: THUẬT TOÁN DI TRUYỀN DẠNG LAI (HYBRID GENETIC ALGORITHM - HGA) Thuật toán di truyền dạng lai đã được thiết kế bằng cách kết hợp một biến thể lai ghép một thuật toán di truyền hiện với một phương thức sử dụng theo dạng. .. lý do này mà thuật toán di truyền song song chi kiểu hạt thô còn được gọi là thuật toán di truyền phân phối Câu 7: Phân biệt giữa thuật toán di truyền song song và thuật toán di truyền phân tán Mô hình Coarse – Grained (Mô hình chia thô) Fined – Grained (Mô hình chia mịn) Tiêu chí Cấu trúc thuật toán Quần thể Thời gian thực hiện Phá vỡ cấu trúc thuật toán tuần tự Phá vỡ cấu trúc thuật toán Quần thể... lại cho đến khi số cá thể của quần thể đạt quy mô nhất định và điều này là một chu kỳ sinh sản Vì vậy, thuật toán di truyền với lấy mẫu độc lập hai giai đoạn hiệu quả hơn so với các thuật toán di truyền thông thường 31 CHƯƠNG 8: TỔNG KẾT Trong tiểu luận này, ta đã thảo luận về các dạng (mô hình) khác nhau của giải thuật di truyền Trong đó thuật toán di truyền song song bằng cách chia nhiều nhóm được... hóa của mình làm đa dạng khả năng thích nghi của quần thể Sau đó, với một kế hoạch lựa chọn người bạn đời hợp lý cho phép các cá thể chủ động lựa chọn giao phối của họ đối tác có hiệu quả hơn 32 TRẢ LỜI CÂU HỎI CUỐI CHƯƠNG Câu 1: Liệt kê các loại khác nhau của thuật toán di truyền: Thuật toán di truyền đơn giản (Simple Genetic Algorithm-SGA) Thuật toán di truyền song song và phân tán (Parallel and Distributed... toán cao, thuật toán thỉnh thoảng được gọi là Thuật toán di truyền xử lý song song bằng cách chia thô Cuối cùng, thuật toán hoạt động đa nhóm giống với “mô hình đảo” trong Di truyền học dân số, do đó thuật toán còn được gọi là di truyền song song theo hình thức đảo Vì kích thước của nhóm nhỏ hơn quần thể so với sử dụng bởi một GA tuần tự, thuật toán GA song song sẽ hội tụ nhanh hơn 15 Hình Sơ đồ của. .. nhóm (demes) Các nhóm được tách rời nhau và cá thể cạnh tranh chỉ trong một nhóm Câu 4: Sự cần thiết của thuật toán di truyền song song: Thuật toán di truyền song song (Parallel Genetic Algorithm - PGA) là thực hiện song song của nhiều tiến trình SGA khác nhau Các thuật toán di truyền song song (PGAs) được phát triển để giảm thời gian thực hiện tìm kiếm các giải pháp gần tối ưu trong các bài toán có không...CHƯƠNG 3 THUẬT TOÁN DI TRUYỀN SONG SONG VÀ PHÂN TÁN (PARALLEL AND DISTRIBUTED GENETIC ALGORITHM - PGA VÀ DGA) Thuật toán di truyền song song (Parallel Genetic Algorithm - PGA) là thực hiện song song của nhiều tiến trình SGA khác nhau Các thuật toán di truyền song song (PGAs) được phát triển để giảm thời gian thực hiện tìm kiếm các giải pháp gần tối ưu trong các bài toán có không gian tìm