Tải bản đầy đủ (.pdf) (49 trang)

Các hệ cơ sở tri thức Tuần 6: Thuật giải Di Truyền: Kỹ thuật và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (611.68 KB, 49 trang )

Các hệ cơ sở tri thức
Tuần 6: Thuật giải Di Truyền: Kỹ thuật và ứng
dụng

Lê Hoàng Thái


Tổng Quan Nghiên Cứu Về thuật
giải di Truyền
 Thuật giải di truyền
 Các thao tác cơ bản
 Biểu diễn di truyền đối với lời giải tiềm tàng
của bài toán
 Hàm đánh giá
 Cơ chế chọn lọc, lai ghép và đột biến
 Phạm vi ứng dụng


1. Thuật giải di truyền
 Đặt vấn đề:
Từ trước đến nay trong các nghiên cứu và
ứng dụng tin học đã xuất hiện nhiều bài
toán lý thú chưa tìm ra được phương
pháp giải nhanh và hợp lý. Phần lớn đó là
những bài toán tối ưu nảy sinh trong các
ứng dụng. Để giải loại bài toán này, người
ta thường phải tìm đến một thuật giải hiệu
quả mà kết quả thu được chỉ là xấp xỉ tối
ưu. thuật giải di truyền (GA) là một trong
những công cụ đó.



1. Thuật giải di truyền
 Nội dung của GA:
Thuật giải di truyền (GA) là thuật giải áp
dụng quá trình tiến hoá tự nhiên để giải
các bài toán tối ưu trong thực tế (từ tập
các lời giải có thể ban đầu, thông qua
nhiều bước tiến hoá, hình thành các tập
hợp mới với những lời giải tốt hơn, cuối
cùng sẽ tìm được lời giải gần tối ưu
nhất).


1. Thuật giải di truyền
 Cấu trúc thuật giải di truyền được thể hiện qua
sơ đồ sau:
Procedure Tgditruyền;
Begin
t = 0;
Khởi tạo lớp P(t);
Đánh giá lớp P(t);
While not Đk kết thúc do
Begin
t=t+1;
Chọn lọc P(t) từ P(t-1);
Kết hợp các cá thể của P(t);
Đánh giá lớp P(t);
End

End



1. Thuật giải di truyền
 Sơ đồ:


1. Thuật giải di truyền
 Kết luận:
Tóm lại, có thể nhận thấy GA là một thuật giải lặp
nhằm giải đáp các bài toán tìm kiếm. Nó khác với các
thủ tục tối ưu thông thường ở những điểm cơ bản
sau:
 Thứ nhất, thuật giải di truyền làm việc với các xâu, tìm kiếm
tại nhiều đỉnh (điểm tối ưu) cùng một lúc. Nhờ áp dụng các
toán tử di truyền, nó sẽ trao đổi thông tin giữa các đỉnh, như
vậy giúp giảm bớt khả năng kết thúc tại một cực tiểu cục bộ
mà không tìm thấy cực tiểu toàn cục.
 Thứ hai, nó làm việc chỉ với bộ mã của các biến, chứ
không phải với bản thân biến.
 Thứ ba, thuật giải chỉ cần đánh giá hàm mục tiêu để phục
vụ quá trình tìm kiếm, chứ không đòi hỏi các thông tin bổ trợ
khác.
 Cuối cùng, các thao tác cơ bản trong thuật giải di truyền dựa
trên khả năng tích hợp tính ngẫu nhiên trong quá trình xử lý.


2. Các thao tác cơ bản
 Thuật giải di truyền cho một bài toán cụ thể bao
gồm năm vấn đề:
 Biểu diễn di truyền với những lời giải có thể của bài

toán;
 Tạo ra tập hợp ban đầu các lời giải
P(t)={x1t,x2t,....,xnt};
 Hàm đánh giá: đánh giá mức độ phù hợp của lời
giải;
 Các toán tử di truyền được sử dụng để sản sinh con
cháu (Lai ghép và đột biến).
 Giá trị của những tham số mà GA sử dụng (Kích
cỡ tập hợp pop_size, xác suất áp dụng toán tử di
truyền,vv... ).


2. Các thao tác cơ bản
 Minh hoạ các vấn đề trên bằng hai bài
toán
 Bài toán 1: Bài toán tối ưu hoá một hàm
nhiều biến liên tục bất kỳ: ứng dụng trong bài
toán hóa học.
 Bài toán 2: Bài toán tối ưu hóa một hàm
nhiều biến rời rạc: ứng dụng trong bài toán
người du lịch (Travelling Saleman Problem).


3. Biểu diễn di truyền đối với lời
giải tiềm tàng của bài toán
 Biểu diễn nhị phân
 Mỗi lời giải được hiểu là một véc tơ nhiễm
sắc thể, mỗi phần tử (mỗi biến) của vector
nhiễm sắc thể được mã hoá nhờ một số
lượng bit nào đó (0,1).

 Độ chính xác của phương pháp này tùy
thuộc vào số lượng bit thực sự dùng và
bằng (UB-LB)/(2n-1), UB, LB là cận trên và
cận dưới của miền giá trị và n là số lượng bit
một phần tử của nhiễm sắc thể.


3. Biểu diễn di truyền đối với lời
giải tiềm tàng của bài toán
 Cách biểu nhị phân có nhược điểm là:
 Độ chính xác không cao (các phần tử được truy
nhập là những số nguyên).
 Muốn tăng độ chính xác phải tăng số lượng bit
biểu diễn nhưng điều này sẽ làm chậm thuật toán.
 Biểu diễn nhị phân mất tính chính xác khi tăng
kích cỡ miền, vì chiều dài nhị phân cho trước là cố
định.


3. Biểu diễn di truyền đối với lời giải
tiềm tàng của bài toán
 Biểu diễn dấu phẩy động
 Mỗi vector nhiễm sắc thể được mã hoá là một
vector số dấu phẩy động với cùng chiều dài của véc
tơ lời giải. Mỗi phần tử thuộc một miền xác định và
các toán tử được thiết kế để bảo đảm yêu cầu này.
 Độ chính xác của phương pháp tuỳ thuộc vào khả
năng của máy (số chữ số thập phân sau dấu phẩy)
do vậy tốt hơn so với biểu diễn nhị phân.
 Biểu diễn dấu phẩy

động (Floating point
representation, FP) có khả năng biểu diễn được các
miền rộng lớn. Hơn nữa, với biểu diễn FP, có thể dễ
dàng thiết kế các công cụ đặc biệt để biểu thị những
ràng buộc không tầm thường.


4. Hàm đánh giá
 Độ tốt của một cá thể: Là giá trị hàm tương
ứng của cá thể đối với một bài toán cụ
thể.
Ví dụ: Trong bài toán tối ưu cực đại một
hàm f, nếu chọn một cá thể là một nghiệm
của bài toán thì một cá thể càng tốt khi
làm cho giá trị hàm càng lớn.
Để xác định được độ tốt của các cá thể
ta cần một hàm để làm việc này.Hàm này
gọi là hàm mục tiêu.


4. Hàm đánh giá
 Hàm mục tiêu: g(x), với x là một nhiễm
sắc thể.
 Dùng để đánh giá độ tốt của một lời giải hoặc
cá thể .
 Hàm mục tiêu nhận vào tham số là một cá
thể và trả ra một số thực .
 Tùy theo giá trị của số thực này mà ta biết
được độ tốt của cá thể đó .



4. Hàm đánh giá
 Ánh xạ hàm mục tiêu sang hàm thích nghi.
Độ thích nghi của cá thể: là khả năng cá
thể đó được chọn lọc vào thế hệ sau hoặc
là được chọn lọc cho việc lai ghép để tạo
ra cá thể con.


4. Hàm đánh giá
 Hàm mục tiêu g(x) sau khi được tính toán (độ
tốt của cá thể) sẽ là cơ sở để đánh giá tính
thích nghi của cá thể.
 Ánh xạ: g(x) -> f(x).
 Có nhiều cách để ánh xạ g(x) -> f(x), tùy vào
từng mục đích của bài toán mà ta có các
phương pháp ánh xạ khác nhau.


5. Cơ chế chọn lọc, lai ghép và đột
biến

 Chọn lọc:

 Một kĩ thuật thông dụng thường được sự dụng trong tiến trình
chọn lọc là chọn lọc theo bàn Roulete.

1.Tính tổng giá trị phù hợp (fitness) của tất cả thành
viên lực lượng và gọi nó là tổng phù hợp.
2.Phát sinh một số n là số ngẫu nhiên trong khoảng

từ 0 đến tổng phù hợp.
3.Trả lại thành viên tập hợp đầu tiên mà độ phù hợp
của nó cộng với độ phù hợp của các thành viên tập
hợp trước đấy lớn hơn hoặc bằng n.


5. Cơ chế chọn lọc, lai ghép và đột biến
Ví dụ: Ta có các cá thể (nhiễm sắc thể) sau:
No.

String

Fitness

% of Total

Running Total

1

01110

8

16

8

2


11000

15

30

23

3

00100

2

4

25

4

10010

5

10

30

5


01100

12

24

42

6

00011

8

16

50


5. Cơ chế chọn lọc, lai ghép và đột biến

Sốngẫunhiên
0< n < 50

26

2

49


15

40

36

9

NST

4

1

6

2

5

5

2


5. Cơ chế chọn lọc, lai ghép và đột
biến
 Đột biến:
Toán tử đột biến sẽ thay đổi một hoặc nhiều
gen (những vị trí trong nhiễm sắc thể) với xác

suất bằng tỷ lệ đột biến.
Giả sử rằng gen thứ năm từ nhiễm sắc thể
v = (1110000000111111000101) được chọn
cho đột biến, vì gen này bằng 0, dẫn đến nó sẽ
được chuyển đổi thành 1. Vì thế, nhiễm sắc
thể v sau khi đột biến sẽ là:
v'=(1110100000111111000101)


5. Cơ chế chọn lọc, lai ghép và đột
biến
 Lai ghép: tại vị trí thứ 5:
v1=(00000|01110000000010000)
v2=(11100|00000111111000101)
Kết quả sản sinh ra hai con:
v2'=(00000|00000111111000101).
v3'=(11100|01110000000010000).


5. Cơ chế chọn lọc, lai ghép và đột
biến
 Nhóm toán tử đột biến:
 Đột biến đều, được định nghĩa tương tự như các toán tử cổ điển:

Nếu xit =(v1,...., vn) là một nhiễm sắc thể , thì mỗi phần tử vk có cơ
hội bằng nhau để thực hiện xử lý đột biến. Kết quả việc ứng
dụng của toán tử này là một véc tơ (v1,......., vk’,......, vn), với
1<=k<=n, và vk’ là một giá trị ngẫu nhiên từ miền tham số tương
ứng.
 Đột biến không đều là một trong những toán tử có nhiệm vụ tinh

chỉnh cho hệ thống. Nó được định nghĩa như sau :

Nếu Svt=(v1,.......,vm) là một nhiễm sắc thể và phần tử vk được
chọn cho đột biến này (miền của vk là [lk , uk]), kết quả là một
vec tơ Svt+1= (v1,. ...vk’,.......,vm), với k [1,...,m], và :
vk’=vk + (t,uk-vk) nếu số ngẫu nhiên bằng 0 hoặc
vk’=vk - (t,vk- lk) nếu số ngẫu nhiên bằng 1


5. Cơ chế chọn lọc, lai ghép và đột
biến
 Hàm  (t,y) trả lại một giá trị trong khoảng
[0,y], khi t tăng thì xác suất
( (t,y) ->0 ) tăng
(t,y)=y*(1- r(1-t/T))b
 r là một số ngẫu nhiên trong khoảng [0,1],
T là số vòng lặp tối đa , b là một tham số
hệ thống xác định mức độ không đồng
dạng. Hình sau trình bầy giá trị  trong
hai lần lựa chọn.


5. Cơ chế chọn lọc, lai ghép và đột
biến


5. Cơ chế chọn lọc, lai ghép và đột
biến
 Nhóm toán tử lai ghép:
 Lai ghép đơn giản, được định nghĩa một

cách thông thường, nhưng chỉ tại các vị trí
giữa các phần tử của vector nhiễm thể x.
 Lai ghép số học: được định nghĩa như một
kết hợp tuyến tính giữa hai vector: nếu Svt
và Swt lai ghép, thì sản sinh ra con cháu là :

Svt+1 = a*Swt + (1- a)*Svt và
Swt+1 = a*Svt + (1 - a)*Swt.


×