1 1 ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐẶNG THỊ MINH PHƢƠNG BIỂU DIỄN NHIỄM SẮC THỂ TRONG GIẢI THUẬT DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN CHUYÊN BIỆT Chuyên ngành Kho[.]
1 ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - ĐẶNG THỊ MINH PHƢƠNG BIỂU DIỄN NHIỄM SẮC THỂ TRONG GIẢI THUẬT DI TRUYỀN VÀ CÁC TOÁN TỬ DI TRUYỀN CHUYÊN BIỆT Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2012 Tai ngay!!! Ban co the xoa dong chu nay!!! LỜI NÓI ĐẦU Đặt vấn đề Cho đến có nhiều thuật tốn tìm lời giải tối ưu cho nhiều lĩnh vực tốn, ví dụ tốn tìm kiếm danh sách, cây, đồ thị nhà khoa học đưa thuật tốn tìm kiếm quay lui, vét cạn Các thuật tốn tìm nghiệm tối ưu áp dụng cho tốn có khơng gian tìm kiếm nhỏ Để khắc phục hạn chế nhà khoa học đưa thuật tốn tìm kiếm heurictics, thuật tốn có sử dụng tri thức lĩnh vực toán để nhằm giảm thời gian tìm kiếm Tuy nhiên thuật tốn lại vấp phải vấn đề tri thức thường kinh nghiệm người, chưa xác, đầy đủ điều dẫn tới chệch hướng trình tìm kiếm Giải thuật di truyền kỹ thuật tìm kiếm tối ưu giúp ta giải vấn đề đặt trên, cho phép ta tìm kiếm lời giải tối ưu khơng gian lớn, nguyên tắc giải thuật di truyền mơ q trình chọn lọc tự nhiên Cho đến lĩnh vực nghiên cứu giải thuật di truyền thu nhiều thành tựu, giải thuật di truyền ứng dụng nhiều lĩnh vực phức tạp, vấn đề khó giải phương pháp thông thường Với khả tiềm tàng giải thuật di truyền động lực lý để tác giả chọn đề tài “Biểu diễn nhiễm sắc thể giải thuật di truyền toán tử di truyền chuyên biệt” Mục tiêu đề tài - Nghiên cứu khái niệm giải thuật di truyền - Nghiên cứu số phương pháp biểu diễn nhiễm sắc thể giải thuật di truyền toán tử di truyền tương ứng - Nghiên cứu lựa chọn số toán tối ưu ứng dụng giải thuật di truyền để giải toán Phạm vi đề tài - Nghiên cứu khái niệm giải thuật di truyền - Nghiên cứu giải thuật di truyền sử dụng phương pháp biểu diễn nhiễm sắc thể mã hóa nhị phân toán tử di truyền tương ứng - Nghiên cứu giải thuật di truyền sử dụng phương pháp biểu diễn nhiễm sắc thể mã hóa số thực tốn tử di truyền tương ứng - Nghiên cứu phương pháp biểu diễn nhiễm sắc thể hoán vị tập hợp - Ứng dụng giải thuật di truyền sử dụng mã hóa nhị phân giải thuật di truyền sử dụng mã hóa số thực để xác định độ rộng tập mờ toán xấp xỉ mơ hình mờ Cao-Kandel Chƣơng CÁC KHÁI NIỆM CƠ BẢN VỀ GIẢI THUẬT DI TRUYỀN 1.1 Mở đầu Giải thuật di truyền (Gennetic Algorithm) giải thuật tìm kiếm, chọn lựa giải pháp tối ưu để giải toán khác dựa chế chọn lọc tự nhiên ngành di truyền học Trong thể sinh vật, gen liên kết với theo cấu trúc dạng chuỗi gọi nhiễm sắc thể, đặc trưng cho lồi định sống cịn thể Một lồi muốn tồn phải thích nghi với mơi trường, thể sống thích nghi với mơi trường tồn sinh sản với số lượng ngày nhiều hơn, trái lại lồi khơng thích nghi với môi trường bị diệt chủng Môi trường tự nhiên biến đổi, nên cấu trúc nhiễm sắc thể thay đổi để thích nghi với mơi trường hệ sau ln có độ thích nghi cao hệ trước Cấu trúc có nhờ vào trao đổi thơng tin ngẫu nhiên với mơi trường bên ngồi hay chúng với Dựa vào nhà khoa học máy tính xây dựng nên giải thuật tìm kiếm tinh tế dựa sở chọn lọc tự nhiên quy luật tiến hóa gọi giải thuật di truyền Các nguyên lý giải thuật tác giả Holland đề xuất lần đầu vào năm 1962 Nền tảng toán học giải thuật GA tác giả cơng bố sách “Sự thích nghi hệ thống tự nhiên nhân tạo” xuất năm 1975 Giải thuật GA xem phương pháp tìm kiếm có bước chuyển ngẫu nhiên mang tính tổng quát để giải toán tối ưu hoá [1, 2] 1.2 Các khái niệm giải thuật di truyền 1.2.1 Giới thiệu chung Giải thuật GA thuộc lớp giải thuật tìm kiếm tiến hố Khác với phần lớn giải thuật khác tìm kiếm theo điểm, giải thuật GA thực tìm kiếm song song tập gọi quần thể lời giải Thơng qua việc áp dụng tốn tử di truyền, giải thuật GA tráo đổi thông tin cực trị làm giảm thiểu khả kết thúc giải thuật cực trị địa phương Trong thực tế, giải thuật GA áp dụng thành công nhiều lĩnh vực Giải thuật GA lần đầu tác giả Holland giới thiệu vào năm 1962 Giải thuật GA mơ q trình tồn cá thể có độ phù hợp tốt thơng qua q trình chọn lọc tự nhiên, cho giải thuật thực thi, quần thể lời giải tiến hoá tiến dần tới lời giải mong muốn Giải thuật GA trì quần thể lời giải tốn tối ưu hố Thơng thường, lời giải mã hố dạng chuỗi gien Giá trị gien có chuỗi lấy từ bảng ký tự định nghĩa trước Mỗi chuỗi gien liên kết với giá trị gọi độ phù hợp Độ phù hợp dùng trình chọn lọc Cơ chế chọn lọc đảm bảo cá thể có độ phù hợp tốt có xác suất lựa chọn cao Quá trình chọn lọc chép cá thể có độ phù hợp tốt vào quần thể tạm thời gọi quần thể bố mẹ Các cá thể quần thể bố mẹ ghép đôi cách ngẫu nhiên tiến hành lai ghép tạo cá thể Sau tiến hành trình lai ghép, giải thuật GA mơ q trình khác tự nhiên q trình đột biến, gien cá thể tự thay đổi giá trị với xác suất nhỏ [1, 2] Tóm lại, có khía cạnh cần xem xét, trước áp dụng giải thuật GA để giải toán, cụ thể là: - Mã hoá lời giải thành cá thể dạng chuỗi - Hàm xác định giá trị độ phù hợp - Sơ đồ chọn lọc cá thể bố mẹ - Toán tử lai ghép - Toán tử đột biến - Chiến lược thay hay gọi tốn tử tái tạo Có nhiều lựa chọn khác cho vấn đề Phần đưa cách lựa chọn theo J.H Holland thiết kế phiên giải thuật GA Giải thuật gọi giải thuật di truyền đơn giản (SGA) 1.2.2 Giải thuật di truyền đơn giản [1, 2, 3] Trong giải thuật di truyền J H Holland sử dụng mã hoá nhị phân để biểu diễn cá thể, lý phần lớn tốn tối ưu hố mã hố thành chuỗi nhị phân đơn giản Hàm mục tiêu, hàm cần tối ưu, chọn làm sở để tính độ phù hợp chuỗi cá thể Giá trị độ phù hợp cá thể sau dùng để tính tốn xác suất chọn lọc Sơ đồ chọn lọc giải thuật SGA sơ đồ chọn lọc tỷ lệ Trong sơ đồ chọn lọc này, cá thể có độ phù hợp f i có xác suất chọn lựa pi fi / N j f j , N số cá thể có quần thể Toán tử lai ghép giải thuật SGA toán tử lai ghép điểm cắt Giả sử chuỗi cá thể có độ dài L (có L bít), tốn tử lai ghép tiến hành qua hai giai đoạn là: Hai cá thể bố mẹ Hai cá thể 0 1 1 1 0 1 1 0 0 1 1 0 0 1 1 Vị trí lai ghép Hình 1.1 Sơ đồ lai ghép điểm cắt - Hai cá thể quần thể bố mẹ chọn cách ngẫu nhiên với phân bố xác suất - Sinh số ngẫu nhiên j khoảng [1, L - 1] Hai cá thể tạo việc chép ký tự từ đến j tráo đổi ký tự từ j + đến L Quá trình minh hoạ hình Điều đáng lưu ý giải thuật GA không yêu cầu tốn tử lai ghép ln xảy hai cá thể bố mẹ chọn Sự lai ghép xảy số ngẫu nhiên tương ứng với cặp cá thể bố mẹ sinh khoảng [0, 1] Không lớn tham số pc (gọi xác suất lai ghép) Nếu số ngẫu nhiên lớn pc, tốn tử lai ghép khơng xảy Khi hai cá thể trực tiếp hai cá thể bố mẹ Tiếp theo, J H Holland xây dựng toán tử đột biến cho giải thuật SGA Toán tử gọi toán tử đột biến chuẩn Toán tử đột biến duyệt gien cá thể sinh sau tiến hành toán tử lai ghép tiến hành biến đổi giá trị từ sang ngược lại với xác suất pm gọi xác suất đột biến Cuối chiến lược thay hay cịn gọi tốn tử tái tạo Trong giải thuật SGA, quần thể sinh từ quần thể thơng qua tốn tử chọn lọc, lai ghép đột biến thay hoàn toàn quần thể trở thành quần thể hệ Sơ đồ tổng thể giải thuật SGA thể qua thủ tục GSA() trình bày Thủ tục SGA () /* Giải toán tối ưu */ { k = 0; // Khởi tạo quần thể P0 cách ngẫu nhiên khởi_tạo (Pk); // Tính giá trị hàm mục tiêu cho cá thể tính_hàm_mục_tiêu (Pk); // Đặt lời giải giải thuật cá thể có giá trị hàm mục tiêu tốt Xbest = tốt_nhất (Pk); { // Chuyển đổi giá trị hàm mục tiêu thành giá trị độ phù hợp // tiến hành chọn lọc tạo quần thể bố mẹ Pparent Pparent = chọn_lọc (Pk ); // Tiến hành lai ghép đột biến tạo quần thể cá thể Pchild Pchild = đột_biến (lai_ghép (Pparent)); // Thay quần thể quần thể cá thể k = k + 1; Pk = Pchild; tính_hàm_mục_tiêu (Pk); // Nếu giá trị hàm mục tiêu obj cá thể tốt X quần // thể Pk lớn giá trị hàm mục tiêu Xbest thay lời giải X = tốt_nhất (Pk); if ( obj (X) > obj (Xbest) ) Xbest = X; } while ( k < G); /* Tiến hành G hệ */ 10 return (Xbest); /* Trả lời giải giải thuật GA*/ } Giải thuật di truyền phụ thuộc vào (N, pc, pm, G), đó: N - số cá thể quần thể; pc - xác suất lai ghép; pm - xác suất đột biến; G - số hệ cần tiến hố Đó tham số điều khiển giải thuật SGA Cá thể có giá trị hàm mục tiêu tốt hệ lời giải cuối giải thuật SGA Quần thể khởi tạo cách ngẫu nhiên Ví dụ: xét tốn tìm max hàm f(x) = x2 với x số nguyên đoạn [0, 31] Để sử dụng giải thuật di truyền ta mã hóa số nguyên x đoạn [0, 31] số nhị phân có độ dài 5, chẳng hạn chuỗi 11000 mã số nguyên 24 Hàm thích nghi xác định hàm f(x)=x2 Quần thể ban đầu gồm cá thể (kích thước quần thể n=4) Thực q trình chọn lọc ta có bảng sau, bảng ta thấy cá thể có độ thích nghi cao nên chọn lần, cá thể có độ thích nghi thấp khơng chọn lần nào, cá thể chọn lần Số hiệu Quần thể Độ thích nghi Số lần cá thể ban đầu f(x)=x2 đƣợc chọn 01101 13 169 11000 24 576 01000 64 10011 19 361 x 55 Hình 3.8 Tập mờ đƣợc sinh theo ví dụ Với giá trị tham số độ rộng ta xác định tập mờ tương ứng, sử dụng phương pháp lập luận mờ đề cập ta xác định đường cong xấp xỉ mơ hình mờ tính sai số mơ hình so với đường cong thực tế Như ta xây dựng hàm mục tiêu với biến tham số độ rộng đáy tam giác tập mờ hàm trả giá trị sai số mơ hình so với thực tế Việc xác định hàm mục tiêu xác định sau : function out=f() %Các du lieu dac thuc te vongquayr(1)=2000; vongquayr(2)=2000; vongquayr(3)=2000; vongquayr(4)=1900; vongquayr(5)=1800; vongquayr(6)=1640; vongquayr(7)=1480; vongquayr(8)=1400; vongquayr(9)=1320; vongquayr(10)=1180; vongquayr(11)=1040; vongquayr(12)=970; vongquayr(13)=900; vongquayr(14)=800; 56 vongquayr(15)=710; vongquayr(16)=655; vongquayr(17)=600; vongquayr(18)=555; vongquayr(19)=510; vongquayr(20)=495; vongquayr(21)=480; %Tao cac tap mo cho cac bien dau vao va dau x_w1=k(1); %Do rong cua day tam giac cua tap mo N cua bien đầu vào x_w2=k(2); %Do rong cua day tam giac cua tap mo Z x_w3=k(3); %Do rong cua day tam giac cua tap mo S x_w4=k(4); %Do rong cua day tam giac cua tap mo M x_w5=k(5); %Do rong cua day tam giac cua tap mo L x_w6=k(6); %Do rong cua day tam giac cua tap mo VL t_w1=k(7); %Do rong cua day tam giac cua tap mo Z cua bien dau t_w2=k(8);%Do rong cua day tam giac cua tap mo S t_w3=k(9);%Do rong cua day tam giac cua tap mo M t_w4=k(10);%Do rong cua day tam giac cua tap mo L t_w5=k(11);%Do rong cua day tam giac cua tap mo VL %Tao tap mo hinh tam giac cho bien dau vao I t1 = 0:1:20; x_null = tripuls(t1,x_w1); t2 = -4:1:16; x_zero = tripuls(t2,x_w2); t3 = -8:1:12; x_small = tripuls(t3,x_w3); t4 = -12:1:8; x_medium = tripuls(t4,x_w4); 57 t5 = -16:1:4; x_large = tripuls(t5,x_w5); t6 = -20:1:0; x_verylarge = tripuls(t6,x_w6); %Tao tap mo hinh tam giac cho bien dau N t2 = 0:1:16; t_zero = tripuls(t2,t_w1); t3 = -4:1:12; t_small = tripuls(t3,t_w2); t4 = -8:1:8; t_medium = tripuls(t4,t_w3); t5 = -12:1:4; t_large = tripuls(t5,t_w4); t6 = -16:1:0; t_verylarge = tripuls(t6,t_w5); %Xac dinh quan hệ mờ ứng với luật tính quan hệ mờ tổng hợp for i=1:1:21 for j=1:1:17 c1(i,j)=min(x_null(i),t_verylarge(j)); c2(i,j)=min(x_zero(i),t_large(j)); c3(i,j)= min(x_small(i),t_medium(j)); c4(i,j)= min(x_medium(i),t_small(j)); c5(i,j)= min(x_large(i),t_zero(j)); c6(i,j)= min(x_verylarge(i),t_zero(j)); c7(i,j)=c6(i,j)*c5(i,j)*c4(i,j)*c3(i,j)*c2(i,j)*c1(i,j); 58 end; end; emax=0; for p=1:1:21 cuongdo1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; cuongdo1(p)=1; % cuongdo1 for i=1:1:17 tocdo1(i)=0; for j=1:1:21 if tocdo1(i)