1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Trí tuệ nhân tạo: Giải thuật di truyền - PGS.TS. Lê Thanh Hương

15 175 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 448,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.

Trang 1

Giải thuật di truyền

1

Lịch sử

• GA đề xuất bởi John Holland năm 1970

• Phổ biến những năm 1980

• Dựa trên ý tưởng về luật tiến hóa Darwin

• Dùng để giải quyết nhiều bài toán không dễ giải quyết bằng các kỹ thuật khác

2

3

Tiến hóa trong thế giới thực

• Mỗi tế bào sống bao gồm các nhiễm sắc thể (chromosomes)

– là các xâu DNA

• Mỗi NST bao gồm 1 tập các gene – các khối DNA

• Mỗi gene quyết định một số đặc điểm của cá thể (như màu

mắt)

• Một tập các gene được gọi là kiểu di truyền (genotype)

• Một tập các đặc điểm (như màu mắt) được gọi là kiểu hình (

phenotype)

• Việc tái tạo (reproduction) là việc kết hợp các gene từ bố mẹ

cộng với một số lượng nhỏ các đột biến (mutation) trong bản

sao

• Độ phù hợp (fitness) của 1 cá thể là số con nó có thể sinh ra

trước khi nó chết

• Tiến hóa dựa trên “sự sống sót của các cá thể phù hợp nhất”

4

Đặt vấn đề

• Giả sử có 1 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 thế nào?

Trang 2

Giải pháp tệ nhất

Thuật toán “thử và sai”

Repeat

Sinh một giải pháp ngẫu nhiên

Thử giải pháp đó và kiểm tra sự phù hợp của nó

Until giải pháp đủ tốt

5

Có thể làm như vậy không?

• Đôi khi – có:

– Nếu chỉ có vài đáp án – Và có đủ thời gian

• Với đa phần các vấn đề - không:

– Có quá nhiều đáp án – Không có thời gian thử

6

Ý tưởng ít tệ hơn (GA)

Sinh 1 tập các giải pháp ngẫu nhiên

Repeat

Thử mỗi giải pháp trong tập (xếp hạng chúng)

Loại bỏ 1 số giải pháp kém trong tập

Nhân các giải pháp tốt lên

Tạo ra một số thay đổi trong các cá thể này

Until giải pháp tốt nhất đủ tốt

7

Làm cách nào để mã hóa 1 giải

pháp

• Phụ thuộc vào vấn đề

• GA mã hóa giải pháp như 1 chuỗi cố định các bit (ví dụ 101110, 111111, 000101)

• Mỗi bit biểu diễn một số đặc điểm của giải pháp đề xuất

• Để có thể sử dụng GA, cần “thử” các chuỗi

và cho điểm mức độ “tốt” của giải pháp

8

Trang 3

Ví dụ, khoan dầu

• Giả sử cần khoan dầu ở đâu đó dọc theo

1km đường sa mạc

• Vấn đề: chọn chỗ tốt nhất trên đường có thể

cho nhiều dầu nhất

• Mỗi giải pháp là 1 vị trí trên đường, tức là 1

số trong khoảng [0 1000]

9

Khoan chỗ nào

Đường

Giải pháp2

= 900

Giải pháp

1 = 300

10

Khoan dầu

• Tập các giải pháp có thể [0 1000] được gọi

là không gian tìm kiếm hoặc không gian

trạng thái

• Chuyển sang xâu nhị phân

11

Khoan dầu

Đường

Giải pháp2 = 900 (1110000100)

Giải pháp1 = 300 (0100101100)

Vị trí

30

5

12

Trang 4

Khụng gian tỡm kiếm

• Khụng gian tỡm kiếm ứng với cỏc hàm như f(x),

f(x,y), cú thể một chiều hoặc nhiều chiều.

• Khụng gian tỡm kiếm cú thể được mụ hỡnh húa như

1 bề mặt trong đú độ phự hợp là độ sõu

• Mỗi kiểu di truyền (genotype) là 1 điểm trong

khụng gian

• GA cố gắng tỡm cỏc điểm tốt hơn (độ phự hợp cao

hơn) trong khụng gian

13

Bề mặt

• GA cú thể vấp phải tối ưu húa cục bộ (local maxima) nếu

Sơ đồ tổng thể của GA

• Khởi động quần thể đầu tiờn P gồm N cỏ thể một cỏch ngẫu

nhiờn

• REPEAT

– Giải mó cỏc cỏ thể thành tham số

– Tớnh giỏ trị hàm mục tiờu cho từng cỏ thể trong 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 ra quần thể bố mẹ tạm

thời P1

– Tiến hành toỏn tử lai ghộp từ P1 tạo ra quần thể cỏc con

P2

– Tiến hành toỏn tử đột biến trờn P2 tạo ra quần thể P3

– Tiến hành toỏn tử tỏi tạo để tạo ra quần thể cho thế hệ

tiếp theo từ hai quần thể P2 và P3

• UNTIL (Điều kiện dừng thoả)

15

Sinh thờm cỏ thể - Phộp lai ghộp

(Crossover)

• Kết hợp gene của 2 cỏ thể bố mẹ cú độ phự hợp cao để tạo nờn cỏ thể con

• Việc kết hợp 2 cỏ thể bố mẹ phụ thuộc vào xỏc suất lai ghộp

• Sinh 2 cỏ thể mới (offspring)

• Mỗi cỏ thể mới cú thể bị thay đổi một cỏch

ngẫu nhiờn (đột biến - mutation)

16

Trang 5

Lai ghép

1010000000

1001011111

Lai ghép 1

điểm – ngẫu

nhiên

1011011111 1010000000

Parent1 Parent2

Offspring1 Offspring2

Lai ghép được áp dụngvới tỉ lệ cao (khoảng 0.8 đến 0.95)

17

Đột biến

1011011111 1010000000

Offspring1 Offspring2

1011001111

1000000000

Offspring1 Offspring2

mutation rate được áp dụng với tỉ lệ thấp (thường giữa 0.1

và 0.001)

mutate

18

Các biến thể của GA

• Các chiến lược lựa chọn (không phải roulette)

– Vòng loại (Tournament)

– Elitism, v.v…

• Các chiến lược trao đổi chéo

– Multi-point crossover

– 3 way crossover, v.v…

• Các cách mã hóa khác

– Các giá trị nguyên

– Tập có thứ tự các ký tự

• Các kiểu biến dị khác nhau

19

Các tham số

• Kích thước quần thể (N), tỉ lệ đột biến (m),

tỉ lệ lai ghép (c)

• Các giá trị này cần phù hợp với kết quả mong muốn

• Các giá trị thường dùng

N = 50, m = 0.05, c = 0.9

20

Trang 6

Đặc điểm của giải thuật GA

• GA tìm kiếm trên một quần thể các cá thể

• GA làm việc với mã của các thông số

• GA chỉ sử dụng thông tin của hàm mục tiêu

• GA sử dụng các luật chuyển đổi mang tính ngẫu

nhiên

21

Các bước tiến hành

Bước 1:

• 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 hơn ví dụ {a,b, , z}

– Biểu diễn số thực

• Xây dựng các toán tử thao tác trên biểu diễn gen đã chọn

• Xây dựng sơ đồ mã hoá và giải mã cho các 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 các tham số của GA:

– Số cá thể trong quần thể N – Xác suất lai ghép – Xác suất đột biến – Số thế hệ cần tiến hoá G Bước 2:

• Tiến hành quá trình tiến hoá theo sơ đồ của giải thuật

c

p

m

p

22

Ví dụ

• Bài toán: tìm giá trị cực đại của hàm: x2

trên{0,1,…,31}

• GA:

– Biểu diễn dưới dạng chuỗi nhị phân VD

– Kích thước quần thể : 4

– toán tử lai ghép 1 điểm cắt, đột biến tại 1 điểm

– Lựa chọn kiểu Roulette wheel

– Khởi tạo ngẫu nhiên

23

Toán tử lựa chọn

24

11100 11001 11011 10100

Trang 7

Lai ghộp

25

Đột biến

26

28

784

2538 634.5

Vớ dụ về tối ưu hoỏ hàm

• Bài toỏn: tỡm giỏ trị cực đại của hàm: với

nguyờn trong khoảng [0,15] và nguyờn trong khoảng [0,31]

Bước 1:

• Chọn mó hoỏ nhị phõn {0,1} với 4 gen cho x1, và 5 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 1 điểm cắt, toỏn tử

đột biến biến đổi 0 thành 1 và ngược lại, toỏn tử tỏi tạo khụng tinh

hoa quần thể con P3 trở thành quần thể cho thế hệ tiếp theo.

• Fitness = Target - min Target trong quần thể + 1

• Chọn tham số N = 4, Pc = 0.75, Pm = 0.25, G = 100

2 2

1 x x

2

x

27

• Bước 2:

• Khởi động quần thể đầu tiờn ngẫu nhiờn

• Tiến hành lai ghộp và đột biến tạo ra quần thể của thế hệ tiếp theo

Cá thể x1 x2 giá trị

hàm mục tiêu

giá trị độ phù hợp Xác suấtchọn lựa Số bảncopy

trong P2

Giá trị trung bình 1

2 3 4

010011101 100001110 101010011 011101100

4 8 10 7

29 14 19 12

-13 50 81 37

1 64 95 51

0.0047 0.3033 0.4502 0.2417

0 1 2 1 38.75

thể số

Bố mẹ Vị trí lai ghép

con con sau đột

biến x1 x2 Giá trị hàm mục tiêu

Giá trị trung bình 2

3 100001110101010011 3 100010011101001110 100010011101001110 108 1913 4587 86.5 3

4 101010011011101100 7 101010000011101111 111010000

011101111 147 1615 18034

28

101001001 001110110 111010100 101101111

Trang 8

Lai ghép n điểm

• Chọn n điểm lai ghép ngẫu nhiên

• Cắt dọc theo các điểm này

• Gắn các đoạn giữa các cá thể

29

Lai ghép đồng nhất

• Gán ‘đầu’ vào 1 cha, ‘đuôi’ vào 1 cha khác

• Tung đồng xu cho mỗi gene của con đầu tiên

• Làm 1 bản sao đảo của gene cho con thứ 2

• Sự kế thừa độc lập vị trí

30

Lai ghép hay đột biến

– Phụ thuộc vào bài toán, nhưng

– Tốt nhất nên có cả 2

– Nếu chỉ đột biến, có thể tiến hóa

– Nếu chỉ lai ghép , không tiến hóa

31

Khám phá: Phát hiện các vùng hứa hẹn trong không gian tìm kiếm, tức là lấy được thông tin từ bài toán

Khai thác: Tối ưu hóa trong vùng hứa hẹn, tức là sử dụng thông tin

Thường kết hợp cả 2 phương pháp này

• Lai ghép là việc khám phá, nó sẽ là 1 bước nhảy đến 1 miền nào

đó trong 2 cá thể bố mẹ

• Đột biến là việc khai thác, nó tạo ra 1 sự thay đổi nhỏ, vì vậy nó

ở gần miền của cha nó

Lai ghép hay đột biến

32

Trang 9

• Chỉ có lai ghép có thể kết hợp các thông tin từ thế hệ cha

• Chỉ có đột biến tạo ra các thông tin mới (gene)

• lai ghép không thay đổi tần suất của gene trong quần thể

• Để đạt được kết quả tối ưu, cần 1 chút may mắn trong phép

đột biến

Lai ghép hay đột biến

33

Các cách biểu diễn khác

Có thể mã hóa các biến số trực tiếp dưới dạng:

• Số nguyên

• Các biến dấu phẩy động

34

Biểu diễn dạng số nguyên

• Một số bài toán sử dụng số nguyên để biểu diễn như xử lý

ảnh

• Một số bài toán khác sử dụng các giá trị từ 1 tập cố định, vd

{blue, green, yellow, pink}

• Có thể sử dụng phép toán lai ghép 1 điểm hoặc N điểm

35

Lai ghép theo công thức đơn

• Bố mẹ:x1,…,xn và y1,…,yn

• Lấy ngẫu nhiên 1 NST k

• Con thứ 1 là

• Con thứ 2 ngược lại

• VD: = 0.5

n k k

x

x1, , ,   ( 1  )  , ,

36

Trang 10

Lai ghép theo công thức đơn

• Bố mẹ:x1,…,xn và y1,…,yn

• Lấy ngẫu nhiên 1 NST k Sau điểm này, các giá trị là

• Con thứ 2 ngược lại

• VD: = 0.5

n k

k

k

n ., , 1 ) 1 ( 1 ,

,

,

37

• Hay dùng

• Bố mẹ:x1,…,xn và y1,…,yn

• Con 1:

• Con thứ 2 ngược lại

• VD: = 0.5

Lai ghép toàn bộ theo công thức

y a x

a   ( 1  ) 

38

Biểu diễn phép hoán vị

• Bài toán sắp thứ tự

• VD: thuật toán sắp xếp: các thành phàn quan trọng được xếp

trước

• VD bài toán người du lịch - Travelling Salesman Problem

(TSP) :

39

Biểu diễn phép hoán vị: VD bài toán TSP

• Bài toán:

• Có n thành phố

• Tìm hành trình với độ dài ngắn nhất

• Mã hóa:

• Các thành phố 1,2, … , n

• 1 đường đi hoàn chỉnh là 1 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!  1032hành trình

40

Trang 11

Phép đột biến cho hoán vị

• 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 bài toán

• Cần thay đổi ít nhất 2 biến

• Tham số cho đột biến phản ánh xác suất 1 số

thao tác được áp dụng cho toàn xâu, thay vì

cho 1 vị trí

41

Đột biến kiểu chèn

• Lấy ngẫu nhiên 2 NST

• Chuyển NST thứ 2 theo sau cái thứ 1, dịch phần còn lại sang phải

• Phép đột biến này giữ lại hầu hết trật tự các NST và thông tin về sự liền kề của chúng

42

Đột biến kiểu trộn

• Lấy ngẫu nhiên 2 NST và đổi chỗ của

chúng

• Giữ lại được hầu hết thông tin về sự liền kề

của chúng, phá vỡ trật tự nhiều hơn

43

Đột biến kiểu đảo

• Lấy ngẫu nhiên 2 NST và đổi chỗ các NST nằm giữa chúng

• Giữ lại được hầu hết thông tin về sự liền kề của chúng, nhưng phá vỡ trật tự các NST

44

Trang 12

Đột biến kiểu ngẫu nhiên

• Lấy ngẫu nhiên 1 tập con các NST

• Sắp xếp lại 1 cách ngẫu nhiên các NST đó

(các tập con không nhất thiết phải liên tục)

45

• Phép lai ghép thông thường dẫn đến kết quả

vi phạm ràng buộc của hoán vị

• Các giải pháp đề xuất tập trung vào trật tự khi kết hợp và thông tin về tính liền kề từ các cặp

bố mẹ

Phép lai ghép cho chuỗi hoán vị

1 2 3 4 5

5 4 3 2 1

1 2 3 2 1

5 4 3 4 5

46

Lai ghép 1 điểm

• Ý tưởng: giữ nguyên trật tự của các phần tử

• Thủ tục:

1 Chọn ngẫu nhiên 1 phần từ cha thứ 1

2 Chép nó sang con thứ 1

3 Chép các số còn lại sang con thứ 1 theo quy tắc sau:

• Bắt đầu từ điểm cắt của phần sao chép

• Sử dụng trật tự của cha thứ 2

• Đến đuôi thì quay vòng lại từ đầu

4 Làm tương tự với con thứ 2

47

Ví dụ về lai ghép 1 điểm

• Lấy ngẫu nhiên 1 tập con từ cha thứ 1

• Chép phần còn lại từ cha thứ 2 theo trật tự 1,9,3,8,2

48

1 4| 5 9 3| 2 7 8 6

2 5| 7 8 9| 1 6 3 4

Trang 13

Lai ghép P1 và P2:

1 Chọn ngẫu nhiên 1 phần trong P1 và chép nó sang con thứ 1.

2 Bắt đầu từ điểm cắt đầu tiên, tìm các phần tử trong phần tương ứng

của P2 chưa được chép

3 Với mỗi phần tử i trong các phần tử đó, tìm phần tử j trong con đã

chiếm vị trí của nó

4 Đặt i vào vị trí của j trong P2, vì ta biết rằng sẽ không đặt j vào đó

(do j đã có trong xâu con rồi)

5 Nếu vị trí chiếm bởi j trong P2 đã bị chiếm trong xâu con bởi k, đặt

i vào vị trí của k trong P2

6 Sau khi đã xử lý hết các phần tử trong mảnh đã lai ghép, phần còn

lại được điền theo P2

Con thứ 2 được sinh ra tương tự.

Lai ghép đối sánh một phần

49

Ví dụ

• Step 1

• Step 2

• Step 3

50

2 5| 7 8 9| 1 6 3 4

Lai ghép chu trình

Ý tưởng:

Mỗi gen đến từ 1 cha kết hợp với vị trí của nó

Thủ tục:

1 Tạo 1 chu trình các gen từ P1 theo cách sau:

(a) Bắt đầu với gen thứ 1 của P1

(b) Tìm gen ở cùng vị trí trong P2

(c) Tìm vị trí chứa cùng gen đó trong P1

(d) Thêm gen đó vào chu trình

(e) Lặp lại bước b đến d đến khi gặp lại gen đầu tiên của P1.

2 Đặt các gen của chu trình trong con thứ 1 vào các vị trí nó có trong

cha thứ 1

3 Thực hiện chu trình tiếp theo từ cha thứ 2

51

Lai ghép chu trình

• Bước 1: xác định các chu trình

• Bước 2: chép chu trình khác vào con

52

1 4 5 9 3 2 7 8 6

2 5 7 8 9 1 6 3 4

Trang 14

Kết hợp cạnh

• Xây dựng bảng liệt kê các cạnh xuất hiện trong 2 cha, nếu

1 cạnh xuất hiện ở cả 2, đánh dấu bằng dấu +

• vd [1 2 3 4 5 6 7 8 9] và [9 3 7 8 2 6 5 1 4]

53

1 4 5 9 3 2 7 8 6

Sau khi xây dựng bảng, thực hiện các bước sau:

1 Lấy ngẫu nhiên 1 phần tử, đưa vào offspring

2 Đặt current element = entry

3 Loại tất cả các phần tử nối với phần tử hiện tại khỏi bảng

4 Kiểm tra danh sách của phần tử hiện tại:

– Nếu có cạnh chung, lấy phần tử đó làm phần tử tiếp theo – Nếu không, lấy phần tử trong danh sách mà bản thân nó có danh sách cạnh nối

ít nhất – Các trường hợp còn lại: lấy ngẫu nhiên

5 Khi gặp danh sách rỗng:

– Mở rộng đầu kia của offspring – Nếu không chọn ngẫu nhiên 1 phần tử mới

54

Kết hợp cạnh

55

1 4 5 9 3 2 7 8 6

• SGA sử dụng mô hình:

– Mỗi cá thể chỉ tồn tại trong 1 thế hệ – Tất cả các cha được thay thế bởi các con

• Mô hình trạng thái ổn định SSGA : – 1 con được sinh qua 1 thế hệ – 1 thành viên của quần thể được thay thế

• Khoảng cách thế hệ – tỉ lệ dân số được thay thế – 1.0 với SGA, 1/pop_size với SSGA

56

Trang 15

• Lựa chọn có thể xảy ra tại 2 chỗ:

– Lựa chọn từ thế hệ hiện tại để tham gia vào lai

ghép

– Lựa chọn từ các bố mẹ + con cho thế hệ tiếp theo

• Phân biệt các 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 được sử dụng

57

Ngày đăng: 27/06/2020, 08:42

HÌNH ẢNH LIÊN QUAN

• Xõy dựng bảng liệt kờ cỏc cạnh xuất hiện tron g2 cha, nếu 1 cạnh xuất hiện ở cả 2, đỏnh dấu bằng dấu + - Bài giảng Trí tuệ nhân tạo: Giải thuật di truyền - PGS.TS. Lê Thanh Hương
y dựng bảng liệt kờ cỏc cạnh xuất hiện tron g2 cha, nếu 1 cạnh xuất hiện ở cả 2, đỏnh dấu bằng dấu + (Trang 14)
3. Loại tất cả cỏc phần tử nối với phần tử hiện tại khỏi bảng - Bài giảng Trí tuệ nhân tạo: Giải thuật di truyền - PGS.TS. Lê Thanh Hương
3. Loại tất cả cỏc phần tử nối với phần tử hiện tại khỏi bảng (Trang 14)
Sau khi xõy dựng bảng, thực hiện cỏc bước sau: - Bài giảng Trí tuệ nhân tạo: Giải thuật di truyền - PGS.TS. Lê Thanh Hương
au khi xõy dựng bảng, thực hiện cỏc bước sau: (Trang 14)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w