Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
179,03 KB
Nội dung
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỒ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN MÔN HỌC:TRÍ TUỆ NHÂN TẠO TÊN ĐỀ TÀI TIỂU LUẬN:THUẬT TOÁN DI TRUYỀN GVHD: TS. TRƯƠNG KHẮC TÙNG LỚP ĐHCNTT: 9A THÀNH PHỐ HỒ CHÍ MINH, THÁNG 5, NĂM 2015 Danh sách thành viên nhóm và phân công. HỌ VÀ TÊN MSSV PHÂN CÔNG GHI CHÚ LÊ NGUYỄN TRUNG HIẾU 13008481 Tìm hiểu thuật toán di truyền và các toán tử di truyên Nhóm trưởng NGUYỄN QUỐC ĐIỀN 13035171 Tìm hiểu thuật toán di truyền song song và thích nghi HOÀNG TRUNG HIẾU 13065111 Tìm hiểu thuật toán di truyền song song và các toán tử di truyền thích nghi Tp.HCM, ngày 15 tháng 3 năm 2015 Nhóm trưởng Lê Nguyễn Trung Hiếu Lời Nhận Xét Của Giáo Viên A. GIỚI THIỆU Thuật toán di truyền là một sự thể hiện của một lớp các phương pháp dựa trên kỹ thuật tìm kiếm ngẫu nhiên Heuristic. Thuật toán di truyền khi thực hiện đòi hỏi một lượng lớn thời gian tính toán. Song song hóa thuật toán di truyền là một thử nghiệm đầu tiên để tăng tốc thuật toán mà không ảnh hưởng đến các tính chất của nó. Vấn đề mấu chốt để nâng cao hiệu suất trong tính toán song song là phải giảm truyền thông giữa các tiến trình. Sức mạnh của thuật toán di truyền chủ yếu là ở khả năng xác định vị trí tối ưu toàn cục trong một môi trường đa phương thức. Tuy nhiên, cho dù hiệu quả của thuật toán di truyền là thế ào đi chăng nữa thì lời giải của phương pháp này cũng không xác định một cách tuyệt đối. Nhiều công trình đang nghiên cứu để tìm cách tăng độ chính xác đó. Để đạt mục tiêu này, hai hướng tiếp cận chính có thể được chấp nhận: thứ nhất là thiết kế một thuật toán di truyền cho một lớp các bài toán mà tao đang giải quyết, bao gồm tạo ra cấu trúc dữ liệu và đặc tả các phép toán di truyền cho một bài toán, tạo ra môt chương trình tiến hóa. Thứ hai là hoạt động trực tiếp trên thuật toán và cố gắng để tăng hiệu quả bằng cách thay đổi cấu trúc nội tại của nó. Phương pháp thích nghi được giới thiệu ở đây là một ví dụ của tiếp cận này. Bài tiểu luận cấu trúc gồm 4 phần. Phần 1: Trình bày tổng quan về thuật toán di truyền và hoạt động của các toán tử di truyền. Phần 2: Trình Bày thuật toán di truyền song song. Trong đó nhấn mạnh trên thuật toán di truyền song song song song với các luồng bằng nhau. Phần 3: Trình bày các toán tử di truyền thích nghi. Phần 4: Giới thiệu một sự thực hiện của thuật toán di truyền song song thích nghi, trong đó mô tả sự thực hiện của một thuật toán di truyền song song kết hợp với kỹ thuật thích nghi. A. NỘI DUNG 1. THUẬT TOÁN DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN 1.1) Thuật toán di truyền. Thuật toán di truyền là thuật toán bắt chước chọn lọc tự nhiên và di truyền. Trong tự nhiên, các cá thể mạnh, có khả năng thích nghi tốt với môi trường sẽ được tái sinh và nhân bản ở thế hệ sau. Mỗi cá thể có cấu trúc gien của nó mang một phần cấu trúc gien của cha và mẹ. Ngoài ra trong quá trình tiến hóa, có thể xảy ra hiện tượng đột biến, cấu trúc gien của cá thể con có thể chưa các gien mà cả cha và mẹ đều không có. Trong thuật toán di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu mô tả cấu trúc gien của cá thể đo, ta gọi đó là nhiễm sắc thể. Mỗi nhiểm sắc thể được tạo thành từ các đơn vị được gọi là gien. Chẳng hạn trong các thuật toán di truyền cổ điển, mỗi nhiễm sắc thể (tương ứng với mỗi cá thể) được biểu diễn bằng một chuỗi nhị phân. Thuật toán di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể. Mỗi quần thể ứng với một giai đoạn phát triển sẽ được gọi là một thế hệ. Từ thế hệ ban đầu được tạo ra, thuật toán di truyền bắt chước chọn lọc tự nhiên và di truyền để biến các thế hệ, trong đó nó sư dụng các toán tử cơ bản sau đây: • Toán tử chọn lọc (toán tử tái sinh): Các cá thể tốt được chọn lọc để đưa và thế hệ sau. Sự chọn lóc này được thực hiễn dựa vào độ thích nghi với môi trường của mỗi cá thể. Ta gọi hàm ứng với mỗi cá thể với độ thích nghi của nó là hàm thích nghi. • Toán tử lai ghép: hai cá thể cha mẹ trao đổi các gien để tạo ra hai cá thể con. • Toán tử đột biến: Một cá thể thay đổi một số gien để tao thành cá thể mới. Tất cả các toán tử trên , khi thực hiện đều mang tính ngẫu nhiên. Cấu trúc cơ bản của thuật toán di truyền như sau. PROCEDURE GA; Begin t<- 0; Khởi tạo thế hệ đầu P(t); Đánh giá P(t) the hàm thích nghi; Repeat t<-t+1; Sinh ra thế hệ mới p(t) từ P(t-1) bởi: +Chọn lọc +Lai ghép +Đột biến Đánh giá P(t); Until điều kiện kết thúc được thỏa mãn; End ; Trong thủ tục trên, điều kiện kết thúc vòng lặp có thể là một số thế hệ đủ lớn nào đó, hoặc độ thích nghi của các cá thể tốt nhất trong các thế hệ kế tiếp nhau là khác nhau không đáng kể. Khi thuật toán dừng, cá thể tốt nhất trong thế hệ cuối cùng được chọn làm nghiệm cần tìm. 1.2-Các toán tử di truyền a) Toán tử chọn lọc: Việc chọn lọc các cá thể từ một quần thể dựa trên độ thích nghi của mỗi cá thể. Các cá thể có độ thích nghi cao có nhiều khả năng được chon. Hàm thích nghi chỉ cần là một hàm thực dương, nó có thể không truyền tính, không liên tục, không khả thi. Quá trình chọn lọc được thực hiện theo kỹ thuật quay bánh xe. Giả sử thế hệ hiện thời P(t) gồm có n cá thể {x 1 , x 2 ,…x n}. Số n được gọi là kích cỡ của quần thể. Với mỗi cá thể x i , ta tính độ thích nghi của nó f(x i ). Tính tổng các độ thích nghi của tất cả các cá thể trong quần thể. F(n)=f(x1)+f(x2)+…+f(xn) Da Mỗi lần chọn lọc, ta thực hiện hai bước sau: -Sinh ra một số thực ngẫu nhiên q trong khoảng (0,F); -x k là cá thể được chọn, nếu k là số nhỏ nhất sao cho F(k)>=4 Việc chọn lọc theo hai bước trên có thể minh hoa như sau: Ta có mộ bánh xe chia thành n phần, mỗi thành phần ứng với độ thích nghi của một cá thể. Một mũi tên chỉ vào bánh xe. Quay bánh xe, khi bánh xe dừng, mũi tên chỉ vào phần nào thì có thể ứng bới phần đó được chọn Hình minh họa kỹ thuật chọn lọc theo kiểu quay bánh xe Rõ ràng với cách chọn này, các cá thể có độ thích nghi càng cao càng có khả năng được chon. Các cá thể có độ thích nghi cao có thể có một hay nhiều bản sao, các cá thể có độ thích nghi thấp có thể không có mặt ở thế hệ sau. b) Toán tử lai ghép: Trên cá thể được chọn lọc, ta tiến hành lai ghép. Đầu tiên ta cần đưa ra xác suất lai ghép p c . Xác suất này cho ta hy vọng có np c cá thể được lai ghép(n là kích cỡ của quần thể). Với mỗi cá thể ta thực hiện các bước sau: +Sinh ra số thực ngẫu nhên r trong đoạn [0…1]; +Nếu r<p c thì cá thể đó được chọn để lai ghép; Từ các cá thể được chọn để lai ghép, người ta cặp đôi chúng một cách ngẫu nhiên. Trong trường hợp các nhiễm sắc thể là các chuỗi nhị phân có độ dài cố định m ta có thể thực hiện lai ghép như sau: Với mỗi cặp sinh ra một số nguyên ngẫu nhiên p trên đoạn từ [0,m-1], p là vị trí điểm ghép. Cặp gồm hai nhiễm sắc thể. VD: a=(a 1 ……,a p ,a p+1 ,… ,a m ) b=(b 1 ,… ,b p ,b p+1 ,… ,b m ) được thay bởi hai con là: a’=(a 1 ,….,a p ,b p+1 ,… b m ) b’=(b 1 ,….,b p ,a p+1 ,… ,a m ) c) Toán tử đột biến: Ta thực hiện đột biến trên các cá thể có được sau quá trình lai ghép. Đột biến là thay đổi trạng thái một số gien nào đó trong nhiễm sắc thể. Mỗi gien chịu đột biến với xác suất p m . Xác suất đột p m do ta xác định và là xác suất thấp. Sau đây minh họa toán tử đột biến trên các nhiễm sắc thể chuỗi nhị phân. Với mỗi vị trí i trong nhiễm sắc thể a=(a l ,….,a i ,… a m ), ta sinh ra một số thực ngẫu nhiên p i trong [0,1]. Qua đột biến a được biến thành a’ như sau: a’=(a’ l ,….,a’ i ,… a’ m ), a’ i = a i nếu p i >= p m l-a i nếu p i < p m Sau quá trình chọn lọc, lai ghép, đột biến, một thế hệ mới được sinh ra. Công việc còn lại của thuật toán di truyền là lặp lại các bước trên. Nói chung thuật ngữ thuật toán di truyền là để chỉ thuật toán di truyền cổ điển, khi mà cấu trúc nhiểm sắc thể được biểu diễn dưới dạng chuỗi nhị phân với các toán tử di truyền đã được mô tả ở trên. Song trong nhiều vấn đề thực tế, để thuận tiên hơn ta có thể biểu diễn nhiễm sắc thể bởi các cấu trúc khác như: véc tơ thực, mảng hai chiều, cây… Tương ứng với cấu trúc của nhiễm sắc thể, có thể có nhiều cách xác định các toán tử di truyền. Quá trình sinh ra thế hệ mới p(t) từ thế hệ cũ p(t-1) cũng có nhiều cách lựa chọn. Người ta gọi chung các thuật toán này là thuật toán tiến hóa. II. THUẬT TOÁN DI TRUYỀN SONG SONG Thuật toán di truyền là một phương pháp tìm kiếm ngẫu nhiên Heuristic dựa trên sự tiến hóa tự nhiên trong đó đòi hỏi một lượng lớn thời gian CPU. Vì bài toán tối ưu phải được giải quyết trong giới hạn thời gian và tính toán đã cho nên thuật toán di truyền song song là một thử nghiệm để tăng tốc chương trình mà không ảnh hưởng đến các tính chất khác của thuật toán. Có thế chia thành hai nhóm thuật toán di truyền mà thưc hiện song song: +Những thuật toán di truyền phân tán (mô hình song song độc lập) Trong loại thuật toán này các quần thể con khác nhau tiến hóa một cách song song. +Những thuật toán di truyền song song. Trong thuật toán này các tiến trình song song khác nhau làm việc trên một quần thể chung. Thuật toán di truyền song song (PGA) có thể được thực hiện thông qua việc dùng những luồng khác nhau. Lợi ích chính từ đa luồng là: cấu trúc chương trình tốt hơn (bất kỳ chương trình nào mà trong đó các hoạt động không phụ thuộc vào nhau có thể được thiết kế lại sao cho mỗi hoạt động được thực hiện như một luồng) và sử dụng đa bộ xử lý một cách hiệu quả. Để áp dụng kỹ thuật đa luồng cho một thuật toán, truớc hết ta phải xác định được các phần độc lập và gán chúng cho mỗi luồng. Một hoặc nhiều luồng có thể được gán vào mỗi toán tử di truyền (phép chọn lọc, phép lai ghép và phép đột biến). Ngoài ra, ta có thể gán một luồng cho giao diện người dùng, một luồng cho điều khiển tham số, một luồng để so sánh những kết quả với những phương pháp khác (ví dụ, ta có thể thực hiện một cơ chế tìm kiếm ngẫu nhiên và so sánh kết quả với thuật toán di truyền). 2.1- Các loại phép chọn lọc Một số phép chọn lọc được liệt kê trong bảng dưới đây. Đe trình bày ngắn gọn, trong tiểu luận ta sử dụng một thuật ngữ tiếng Anh cho một loại phép chọn lọc. Tham số M và sự tải sinh Steady-state (POP SIZE là kích cở của quần thế) Phép chọn lọc steady-state có một tham số M (là số lượng nhiễm sắc thể mới được tạo ra). Phép chọn lọc Generation là trường hợp đặc biệt của phép chọn lọc steady- state trong đó tham số M bằng kích cở của quần thể. Phép chọn lọc tournament cũng là trường họp đặc biệt của phép chọn lọc steady-state trong đó tham số M bằng 1. Phép chọn lọc Steady-state thay thế M cá thể trong mỗi lần lặp của quá trình tiến hóa. Ta chia thuật toán thành ba phần độc lập và gán mỗi phần cho một luồng. Luồng thứ nhất chỉ thực hiện lai ghép và tạo ra các cá thế mới. Luồng thứ hai thực hiện chọn lọc và xóa những cá thể được chọn. Luồng thứ ba chỉ thực hiện đột biến. Neu không có sự đồng bộ hóa thì kích thước quần thể sẽ bị thay đổi. Neu luồng xóa là nhanh hơn luồng tạo ra thì sau một lúc quần thể sẽ gồm có một cá thế (cá thế cuối cùng không thể bị xóa vì nó là cái tốt nhất tại thời điểm đó). Toán tử lai ghép cần hai cá thể để tạo ra một con và nó chờ cho sự tạo ra cá thể khác mãi mãi, bởi vì không có cá thể nào tạo ra nó. Kết quả là gây ra sự tắc nghẽn {deadlock). Khả năng khác là tràn bộ nhớ nếu luồng tạo ra nhanh hơn luồng xóa. Vấn đề đó có thể được giải quyết bởi một cơ chế đồng bộ đơn giản. Neu kích thước quần thể quá nhỏ, luồng xóa chờ, nếu kích thước quần thể quá lớn, luồng tạo ra chờ. Sự thay đổi của biến POP SIZE phải được gán vào một phần tới hạn để ngăn chặn sự thay đổi nó một cách đồng thời của nhiều luồng khác nhau. Một số thí nghiệm chỉ ra rằng thuật toán di truyền song song được mô tả ở trên tốn nhiều thời gian cho sự đồng bộ hóa hơn so với sự tối ưu. Kết quả là có thể chương trình song song chậm hơn chương trình tuần tự. Tham số M Loại toán tử chọn lọc Mô tả M=POP SIZE Chọn Generation Thay thế toàn bộ quần thể 1 <M<POP_SIZE Chọn Steady-state Thay thế M cá thể M=1 Chọn tournament Thay thế chỉ một cá thể (cá thể xấu nhất của ba cái được chọn) Đối với phép toán chọn lọc steady-state với tham số M=l, phép chọn cá thể xấu bằng kỹ thuật quay bánh xe không phải là sự lựa chọn tốt. Vì mỗi vòng quay xác suất lựa chọn đối với toàn bộ quần thể phải được tính toán nên phép chọn quay bánh xe làm chậm thuật toán. Trong trường hợp đó, giải pháp là sử dụng phép chọn tournament. Trong phép chọn cá thể xấu tournament, mỗi bước của sự tiến hóa chọn ba cá thể với xác suất bằng nhau. Sau đó xóa cá thể yếu nhất trong ba cá thế đó. Hai cá thế còn lại sẽ sinh ra một cá thể con và thay thế cá thế bị xóa. 2.2- Các phép toán di truyền Trong sự thực hiện của thuật toán di truyền steady-state song song với phép chọn cá thế xấu tournament gồm có hai luồng: một luồng thực hiện phép chọn tournament và lai ghép; luồng khác dùng để đột biến. Procedure TTDT song song đon giản; Begin Khởi tạo quần thể; Repeat Chọn loc; {Tạo luồng cho toán tủ’ chọn lọc tournament và lai ghép} Đột biến; {Tạo luồng cho toán tủ' đột biến} Until điều kiện dừng đạt được; Xóa; {Xóa tất cả các luồng} End; Procedure Đột biến; {Luồng cho toán tử đột biến} Begin Chọn ngẫu nhiên một cá thể; Đột biến nó; End; Procedure Chọn lọc; {Luồng cho toán tử chọn tournament và lai ghép} Begin Chọn ngẫu nhiên ba cá thể; Xóa cá thể xấu nhất của ba cá thể được chọn; Cá thể mới: bằng lai ghép của hai cá thể còn lại; End; Cấu trúc cửa thuật toán di truyền song song dơn giản Vấn đề chính của sự thực hiện song song đơn giản là nó không có sự điều khiển [...]... dừng được dùng ở đây là các tập hợp các hàm lượng giá được thực hiện bởi thuật toán Tìm hiểu cụ thể code thuật toán đi truyền Đề xuất giải thuật cho bài toán người du lịch Giải thuật đề xuất: Nhóm sẽ đề xuất giải thuật di truyền đơn giản giải bài toán người du lịch Giải thuật được cài đặt bằng ngôn ngữ lập trình Java Mã hóa bài toán: 1.1 Đồ thị được mã hóa bằng danh sách mảng các điểm và tọa độ tương... lý Thuật toán di truyền song song mở rộng đã mô tả (EPGA1) được chia thành hai luồng là phù hợp cho việc thực hiện trên hệ thống hai bộ xử lý 2. 3Thuật toán di truyền song song vói các luồng bằng nhau Neu ta muốn tạo một cách sử dụng tốt của hệ thống với hai hoặc nhiều hơn hai bộ vi xử lý, thuật toán di truyền phải được chia thành nhiều hơn hai luồng Ý tưởng xuất phát từ việc chia thuật toán di truyền. .. LUẬN Tiểu luận đã tìm hiểu được một sự hiện thực hiệu quả của thuật toán di truyền song song với các toán tử di truyền thích nghi Một mặt nó mở rộng thuật toán di truyền kinh điển với cơ chế song song, mặt khác mở rộng phương pháp các toán tử thích nghi Sự song song hóa của một thuật toán đạt được thông qua cơ chết đa luồng đó là một kỹ thuật thực hiện dễ dàng và rất hiệu quả Bằng sự song song hóa... chương trình thực hiện không nhanh hơn bởi vì thuật toán chỉ được chia thành hai luồng EPGA 2 được chia thành NT luồng đúng bằng Np bộ xử lý Thời gian tối ưu cho EPGA 2 bằng thời gian tối ưu cho cùng thuật toán di truyền không song song được chia theo số lượng bộ xử lý CÁC TOÁN TỬ DI TRUYỀN THÍCH NGHI Có hai đặc tính cần được thiết lập trong thuật toán di truyền để tối ưu hóa các hàm đa phương thức Đặc... nó Thuật toán di truyền song song thích nghi được áp dụng trong sự tối ưu hóa những hàm đa phương thức với nhiều mức độ thức tạp Ngoài ra, tiểu luận còn giới thiệu một toán tử đột biến không đồng dạng của nó trên hiệu suất của thuật toán Trong hầu hết các trường hợp test, PAGA thực hiện tốt hơn các phiên bản chuẩn Kỹ thuật thích nghi làm cho thuật toán có để thực hiện một cách tương tự với thuật toán. .. hiện của một thuật toán di truyền song song kết hợp với kỹ thuật thích nghi Mô hình song song được dùng là một thuật toán di truyền song song với các luồng bằng nhau (EPGA_2) Mỗi luồng thực hiện một cách độc lập và hoạt động trên toàn bộ quần thể,nhưng không nhiều hơn ba cá thể trong cùng một lúc Một luông thực hiện toán tử chọn lọc tournament và xóa cá thể được chọn Sau đó thực hiện một kỹ thuật chọn... phải được chia thành nhiều hơn hai luồng Ý tưởng xuất phát từ việc chia thuật toán di truyền thành nhiều phần độc lập và bằng nhau Thuật toán này giống với EPGA1, nhưng nó được chia theo một cách khác Mỗi luồng thực hiện tất cả các phép toán di truyền như thuật toán di truyền không song song Một luồng chỉ hoạt động trên một phần của quần thế, bởi vì phép chọn tournament chỉ làm việc trên ba nhiễm sắc... tiến, ta còn đưa ra một loại toán tử đột biến đó là toán tử đột biến không đồng dạng Trong toán tử đột biến không đồng dạng có sự xem xét giá trị thích nghi của một lời giải và chọn phạm vi trong đó nghiệm sẽ bị thay đối Điều này được thực hiện trong thực tiễn bằng cách hạn chế số lượng các bít mà toán tử đột biến có thể làm ảnh hưởng trong một nhiễm sắc thể đơn IV THUẬT TOÁN DI TRUYỀN SONG SONG THÍCH NGHI... biến, trong suốt sự thực hiện của thuật toán di truyền khoảng một nửa nhiễm sắc thế được tạo ra hai lần Neu quần thế là thuần nhất hơn thì xác suất đột biến phải tăng Việc điều khiển của xác suất đột biến có thể được giải quyết dễ dàng bàng một số kỹ thuật đồng bộ hóa, nhưng nó lại làm chậm thuật toán Một giải pháp khác là bổ sung thêm xác suất đột biến thích nghi Trước khi toán tử lai ghép được thực hiện... thiệu ở đây xác định phương pháp áp dụng những toán tử di truyền, mà không ảnh hưởng đến chính bản thân những phép toán này Nó dùng những giá trị đặc tính quần thể nhất định để đánh giá tính đa dạng của lời giải trong không gian bài toán và hành động dựa vào việc được độ hội tụ tạm thời hoặc thăm dò những vùng có nhiều triển vọng Với kỹ thuật thích nghi, thuật toán được thực thiện thiết kế tốt hơn trên . hợp với kỹ thuật thích nghi. A. NỘI DUNG 1. THUẬT TOÁN DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN 1.1) Thuật toán di truyền. Thuật toán di truyền là thuật toán bắt chước chọn lọc tự nhiên và di truyền. . Trình bày tổng quan về thuật toán di truyền và hoạt động của các toán tử di truyền. Phần 2: Trình Bày thuật toán di truyền song song. Trong đó nhấn mạnh trên thuật toán di truyền song song song. hiện bởi thuật toán. Tìm hiểu cụ thể code thuật toán đi truyền Đề xuất giải thuật cho bài toán người du lịch Giải thuật đề xuất: Nhóm sẽ đề xuất giải thuật di truyền đơn giản giải bài toán người