Bài giảng "Trí tuệ nhân tạo: Giải thuật di truyền" cung cấp cho người học các kiến thức về lịch sử trí tuệ nhân tạo, tiến hóa trong thế giới thực, giải pháp tệ nhất, làm cách nào để mã hóa giải pháp,... Mời các bạn cùng tham khảo nội dung chi tiết.
4/27/2017 Lịch sử • • • • Giải thuật di truyền GA đề xuất John Holland năm 1970 Phổ biến năm 1980 Dựa ý tưởng luật tiến hóa Darwin Dùng để giải nhiều tốn không dễ giải kỹ thuật khác Tiến hóa giới thực • Mỗi tế bào sống bao gồm nhiễm sắc thể (chromosomes) – xâu DNA • Mỗi NST bao gồm tập gene – khối DNA • Mỗi gene định số đặc điểm cá thể (như màu mắt) • Một tập gene gọi kiểu di truyền (genotype) • Một tập đặc điểm (như màu mắt) gọi kiểu hình ( phenotype) • Việc tái tạo (reproduction) việc kết hợp gene từ bố mẹ cộng với số lượng nhỏ đột biến (mutation) • Độ phù hợp (fitness) cá thể số sinh trước chết • Tiến hóa dựa “sự sống sót cá thể phù hợp nhất” Đặt vấn đề • • • • • Giả sử có vấn đề Ta chưa biết cách giải Có thể làm gì? Sử dụng máy tính để tìm lời giải? Làm nào? 4/27/2017 Giải pháp tệ Có thể làm khơng? • Đơi – có: Thuật tốn “thử sai” – Nếu có vài đáp án – Và có đủ thời gian Repeat • Với đa phần vấn đề - không: Sinh giải pháp ngẫu nhiên Thử giải pháp kiểm tra phù hợp – Có q nhiều đáp án – Khơng có thời gian thử Until giải pháp đủ tốt Làm cách để mã hóa giải pháp Ý tưởng tệ (GA) • Phụ thuộc vào vấn đề • GA mã hóa giải pháp chuỗi cố định bit (ví dụ 101110, 111111, 000101) • Mỗi bit biểu diễn số đặc điểm giải pháp đề xuất • Để sử dụng GA, cần “thử” chuỗi cho điểm mức độ “tốt” giải pháp Sinh tập giải pháp ngẫu nhiên Repeat Thử giải pháp tập (xếp hạng chúng) Loại bỏ số giải pháp tập Nhân giải pháp tốt lên Tạo số thay đổi cá thể Until giải pháp tốt đủ tốt 4/27/2017 Khoan chỗ Ví dụ, khoan dầu Giải pháp = 300 • Giả sử cần khoan dầu dọc theo 1km đường sa mạc • Vấn đề: chọn chỗ tốt đường cho nhiều dầu • Mỗi giải pháp vị trí đường, tức số khoảng [0 1000] Giải pháp2 = 900 Đường 500 1000 10 Khoan dầu Khoan dầu • Tập giải pháp [0 1000] gọi khơng gian tìm kiếm khơng gian trạng thái • Chuyển sang xâu nhị phân 64 32 16 900 1 0 0 0 300 0 1 0 1023 1 1 1 1 1 Giải pháp2 = 900 (1110000100) Đường OIL 512 256 128 Giải pháp1 = 300 (0100101100) 11 1000 30 Vị trí 12 4/27/2017 Bề mặt Khơng gian tìm kiếm • Khơng gian tìm kiếm ứng với hàm f(x), f(x,y), chiều nhiều chiều • Khơng gian tìm kiếm mơ hình hóa bề mặt độ phù hợp độ sâu • Mỗi kiểu di truyền (genotype) điểm khơng gian • GA cố gắng tìm điểm tốt (độ phù hợp cao hơn) khụng gian 13 Sơ đồ tổng thể GA Khởi động quần thể P gồm N cá thể cách ngẫu nhiên • REPEAT – Giải mã cá thể thành tham số – Tính giá trị hàm mục tiêu cho cá thể P – Chuyển đổi giá trị hàm mục tiêu (Target) thành giá trị độ phù hợp (Fitness) – Tiến hành toán tử chọn lọc tạo quần thể bố mẹ tạm thời P1 – Tiến hành toán tử lai ghép từ P1 tạo quần thể P2 – Tiến hành toán tử đột biến P2 tạo quần thể P3 – Tiến hành toán tử tái tạo để tạo quần thể cho hệ từ hai quần thể P2 P3 15 • UNTIL (Điều kiện dừng thoả) • GA vấp phải tối ưu hóa cục (local maxima) KGTK có nhiều điểm 14 Sinh thêm cá thể - Phép lai ghép (Crossover) • Kết hợp gene cá thể bố mẹ có độ phù hợp cao để tạo nên cá thể • Việc kết hợp cá thể bố mẹ phụ thuộc vào xác suất lai ghép • Sinh cá thể (offspring) • Mỗi cá thể bị thay đổi cách ngẫu nhiên (đột biến - mutation) 16 4/27/2017 Lai ghép 1010000000 Parent1 Offspring1 1011011111 1001011111 Parent2 Offspring2 1010000000 Lai ghép điểm – ngẫu nhiên mutate Đột biến Offspring1 1011011111 Offspring1 1011001111 Offspring2 1010000000 Offspring2 1000000000 Original offspring Lai ghép áp dụng với tỉ lệ cao (khoảng 0.8 đến 0.95) Mutated offspring mutation rate áp dụng với tỉ lệ thấp (thường 0.1 0.001) 17 Các biến thể GA 18 Các tham số • Các chiến lược lựa chọn (khơng phải roulette) • Kích thước quần thể (N), tỉ lệ đột biến (m), tỉ lệ lai ghép (c) • Các giá trị cần phù hợp với kết mong muốn • Các giá trị thường dùng N = 50, m = 0.05, c = 0.9 – Vòng loại (Tournament) – Elitism, v.v… • Các chiến lược trao đổi chéo – Multi-point crossover – way crossover, v.v… • Các cách mã hóa khác – Các giá trị nguyên – Tập có thứ tự ký tự • Các kiểu biến dị khác 19 20 4/27/2017 Các bước tiến hành Bước 1: Đặc điểm giải thuật GA • • • • • Chọn biểu diễn gen: – Nhị phân: tập ký tự {0,1} – Biểu diễn với tập ký tự lớn ví dụ {a,b, , z} – Biểu diễn số thực GA tìm kiếm quần thể cá thể GA làm việc với mã thông số GA sử dụng thông tin hàm mục tiêu GA sử dụng luật chuyển đổi mang tính ngẫu nhiên • Xây dựng toán tử thao tác biểu diễn gen chọn • Xây dựng sơ đồ mã hố giải mã cho cá thể • Xây dựng hàm chuyển đổi từ giá trị hàm mục tiêu sang giá trị độ phù hợp • Chọn tham số GA: – – – – Số cá thể quần thể N Xác suất lai ghép pm Xác suất đột biến pc Số hệ cần tiến hoá G Bước 2: 21 11100 11001 11011 10100 Ví dụ • Bài tốn: tìm giá trị cực đại hàm: trên{0,1,…,31} • GA: • Tiến hành q trình tiến hố theo sơ đồ giải thuật x2 22 Toán tử lựa chọn – Biểu diễn dạng chuỗi nhị phân VD 01101 13 – Kích thước quần thể : – toán tử lai ghép điểm cắt, đột biến điểm – Lựa chọn kiểu Roulette wheel – Khởi tạo ngẫu nhiên 23 24 4/27/2017 Lai ghép Đột biến 28 784 20 400 2538 634.5 25 26 • Bước 2: Ví dụ tối ưu hố hàm • Bài tốn: tìm giá trị cực đại hàm: f x12 x2 với x1 nguyên khoảng [0,15] x2 ngun khoảng [0,31] Bíc 1: • Chọn mã hoá nhị phân {0,1} với gen cho x1, gen cho x2 011010001 tương ứng với x1 = 0110 =6; x2 = 10001=17 • Sử dụng sơ đồ chọn lọc tỷ lệ, toán tử lai ghép điểm cắt, toán tử đột biến biến đổi thành ngược lại, tốn tử tái tạo khơng tinh hoa quần thể P3 trở thành quần thể cho hệ • Fitness = Target - Target quần thể + • Chọn tham số N = 4, Pc = 0.75, Pm = 0.25, G = 100 27 • Khởi động quần thể ngu nhiờn Cá thể x1 x2 giá trị giá trị độ Xác suất hàm mục phù hợp chọn lựa tiêu 101001001 001110110 Số 111010100 Giá trị copy trung P2 b×nh 101101111 010011101 29 -13 0.0047 100001110 14 50 64 0.3033 101010011 10 19 81 95 0.4502 011101100 12 37 51 0.2417 38.75 • Tiến hành lai ghép đột biến tạo quần thể h tip theo Cá thể số Bố mẹ Vị trí lai ghép con sau đột biến x1 x2 Giá trị Giá trị hàm mục trung tiêu bình 100001110 101010011 100010011 101001110 100010011 101001110 10 19 13 45 87 101010011 011101100 101010000 011101111 111010000 011101111 14 16 15 180 34 86.5 28 4/27/2017 Lai ghép đồng Lai ghép n điểm • Chọn n điểm lai ghép ngẫu nhiên • Cắt dọc theo điểm • Gắn đoạn cá thể • • • • Gán ‘đầu’ vào cha, ‘đuôi’ vào cha khác Tung đồng xu cho gene Làm đảo gene cho thứ Sự kế thừa độc lập vị trí 29 30 Lai ghép hay đột biến Lai ghép hay đột biến Khám phá: Phát vùng hứa hẹn khơng gian tìm – – – – Phụ thuộc vào toán, Tốt nên có Nếu đột biến, tiến hóa Nếu lai ghép , khơng tiến hóa kiếm, tức lấy thơng tin từ tốn Khai thác: Tối ưu hóa vùng hứa hẹn, tức sử dụng thông tin Thường kết hợp phương pháp • Lai ghép việc khám phá, bước nhảy đến miền cá thể bố mẹ • Đột biến việc khai thác, tạo thay đổi nhỏ, gần miền cha 31 32 4/27/2017 Lai ghép hay đột biến Các cách biểu diễn khác • Chỉ có lai ghép kết hợp thơng tin từ hệ cha Có thể mã hóa biến số trực tiếp dạng: • Chỉ có đột biến tạo thơng tin (gene) • Số ngun • lai ghép không thay đổi tần suất gene quần thể • Các biến dấu phẩy động • Để đạt kết tối ưu, cần chút may mắn phép đột biến 33 34 Lai ghép theo công thức đơn Biểu diễn dạng số nguyên • Một số toán sử dụng số nguyên để biểu diễn xử lý ảnh • Một số tốn khác sử dụng giá trị từ tập cố định, vd {blue, green, yellow, pink} • Có thể sử dụng phép tốn lai ghép điểm N điểm 35 • • • Bố mẹ: x1,…,xn y1,…,yn Lấy ngẫu nhiên NST k Con thứ • • Con thứ ngược lại VD: = 0.5 x1 , , xk , yk (1 ) xk , , xn 36 4/27/2017 Lai ghép theo cơng thức đơn • • Lai ghép tồn theo cơng thức Bố mẹ: x1,…,xn y1,…,yn Lấy ngẫu nhiên NST k Sau điểm này, giá trị x , , x , y (1 ) x , , y (1 ) x k k 1 k 1 n n • • Con thứ ngược lại VD: = 0.5 • • • Hay dùng Bố mẹ: x1,…,xn y1,…,yn Con 1: • • Con thứ ngược lại VD: = 0.5 a x (1 a ) y 37 38 Biểu diễn phép hoán vị: VD toán TSP Biểu diễn phép hoán vị • • • Bài toán thứ tự VD: thuật toán xếp: thành phàn quan trọng xếp trước VD toán người du lịch - Travelling Salesman Problem (TSP) : • • Mã hóa: • 39 Bài tốn: • Có n thành phố • Tìm hành trình với độ dài ngắn • Các thành phố 1,2, … , n • đường hồn chỉnh phép hoán vị (vd n =4 [1,2,3,4], [3,4,2,1] ) Khơng gian tìm kiếm lớn : 30 thành phố 30! 1032 hành trình 40 10 4/27/2017 Phép đột biến cho hốn vị Đột biến kiểu chèn • Các phép đột biến thông thường đem lại giải pháp vi phạm điều kiện tốn • Cần thay đổi biến • Tham số cho đột biến phản ánh xác suất số thao tác áp dụng cho tồn xâu, thay cho vị trí • Lấy ngẫu nhiên NST • Chuyển NST thứ theo sau thứ 1, dịch phần lại sang phải • Phép đột biến giữ lại hầu hết trật tự NST thông tin liền kề chúng 41 42 Đột biến kiểu đảo Đột biến kiểu trộn • Lấy ngẫu nhiên NST đổi chỗ chúng • Giữ lại hầu hết thông tin liền kề chúng, phá vỡ trật tự nhiều • Lấy ngẫu nhiên NST đổi chỗ NST nằm chúng • Giữ lại hầu hết thông tin liền kề chúng, phá vỡ trật tự NST 43 44 11 4/27/2017 Đột biến kiểu ngẫu nhiên Phép lai ghép cho chuỗi hốn vị • Phép lai ghép thơng thường dẫn đến kết vi phạm ràng buộc hốn vị • Lấy ngẫu nhiên tập NST • Sắp xếp lại cách ngẫu nhiên NST 12345 12321 54321 54345 (các tập khơng thiết phải liên tục) • Các giải pháp đề xuất tập trung vào trật tự kết hợp thơng tin tính liền kề từ cặp bố mẹ 45 46 4| 3| Ví dụ lai ghép 5|17điểm 9| Lai ghép điểm • Ý tưởng: giữ nguyên trật tự phần tử • Thủ tục: Chọn ngẫu nhiên phần từ cha thứ Chép sang thứ Chép số lại sang thứ theo quy tắc sau: • Bắt đầu từ điểm cắt phần chép • Sử dụng trật tự cha thứ • Đến quay vòng lại từ đầu Làm tương tự với thứ • Lấy ngẫu nhiên tập từ cha thứ • Chép phần lại từ cha thứ theo trật tự 1,9,3,8,2 47 48 12 4/27/2017 6| 5| Ví dụ2 5| 9| Lai ghép đối sánh phần Lai ghép P1 P2: Chọn ngẫu nhiên phần P1 chép sang thứ Bắt đầu từ điểm cắt đầu tiên, tìm phần tử phần tương ứng P2 chưa chép Với phần tử i phần tử đó, tìm phần tử j chiếm vị trí Đặt i vào vị trí j P2, ta biết khơng đặt j vào (do j có xâu rồi) Nếu vị trí chiếm j P2 bị chiếm xâu k, đặt i vào vị trí k P2 Sau xử lý hết phần tử mảnh lai ghép, phần lại điền theo P2 Con thứ sinh tương tự • Step • Step • Step 49 50 145932786 5trình 7891634 Lai ghép chu Lai ghép chu trình Ý tưởng: Mỗi gen đến từ cha kết hợp với vị trí • Bước 1: xác định chu trình Thủ tục: Tạo chu trình gen từ P1 theo cách sau: (a) Bắt đầu với gen thứ P1 (b) Tìm gen vị trí P2 (c) Tìm vị trí chứa gen P1 (d) Thêm gen vào chu trình (e) Lặp lại bước b đến d đến gặp lại gen P1 • Bước 2: chép chu trình khác vào Đặt gen chu trình thứ vào vị trí có cha thứ Thực chu trình từ cha thứ 51 52 13 4/27/2017 8Kết hợp cạnh 257891634 Kết hợp cạnh • Xây dựng bảng liệt kê cạnh xuất cha, cạnh xuất 2, đánh dấu dấu + • vd [1 9] [9 4] Sau xây dựng bảng, thực bước sau: Lấy ngẫu nhiên phần tử, đưa vào offspring Đặt current element = entry Loại tất phần tử nối với phần tử khỏi bảng Kiểm tra danh sách phần tử tại: – Nếu có cạnh chung, lấy phần tử làm phần tử – Nếu không, lấy phần tử danh sách mà thân có danh sách cạnh nối – Các trường hợp lại: lấy ngẫu nhiên Khi gặp danh sách rỗng: – Mở rộng đầu offspring – Nếu không chọn ngẫu nhiên phần tử 53 145932786 Kết hợp cạnh 257891634 55 54 Các mơ hình quần thể • SGA sử dụng mơ hình: – Mỗi cá thể tồn hệ – Tất cha thay • Mơ hình trạng thái ổn định SSGA : – sinh qua hệ – thành viên quần thể thay • Khoảng cách hệ – tỉ lệ dân số thay – 1.0 với SGA, 1/pop_size với SSGA 56 14 4/27/2017 Cạnh tranh độ phù hợp • Lựa chọn xảy chỗ: – Lựa chọn từ hệ để tham gia vào lai ghép – Lựa chọn từ bố mẹ + cho hệ • Phân biệt phép lựa chọn – Các thao tác: xác định xác suất lựa chọn – Thuật toán: xác định cách xác suất sử dụng 57 15 ... điểm mức độ “tốt” giải pháp Sinh tập giải pháp ngẫu nhiên Repeat Thử giải pháp tập (xếp hạng chúng) Loại bỏ số giải pháp tập Nhân giải pháp tốt lên Tạo số thay đổi cá thể Until giải pháp tốt đủ... Until giải pháp đủ tốt Làm cách để mã hóa giải pháp Ý tưởng tệ (GA) • Phụ thuộc vào vấn đề • GA mã hóa giải pháp chuỗi cố định bit (ví dụ 101110, 111111, 000101) • Mỗi bit biểu di n số đặc điểm giải. ..4/27/2017 Giải pháp tệ Có thể làm khơng? • Đơi – có: Thuật tốn “thử sai” – Nếu có vài đáp án – Và có đủ thời gian Repeat • Với đa phần vấn đề - không: Sinh giải pháp ngẫu nhiên Thử giải pháp