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

Các hệ cơ sở tri thức Tuần 7: Các ứng dụng của Thuật giải di truyền

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 (941.84 KB, 110 trang )

Các hệ cơ sở tri thức
Tuần 7: Các ứng dụng của Thuật giải
di truyền

Lê Hoàng Thái


Các ứng dụng của Thuật giải di
truyền
 Giải bài toán tối ưu hàm nhiều biến liên tục
 Giải bài toán tối ưu miền liên tục tổng quát
 Giải bài toán tối ưu trong hóa học

 Giải bài toán tối ưu hàm nhiều biến rời rạc
 Bài toán chứng thực vector
 Bài toán người du lịch


Thuật giải di truyền giải bài
toán tối ưu hàm nhiều biến liên
tục


1. Đặt vấn đề:
 Trong chương này đề cập chi tiết việc áp
dụng giải thuật di truyền cho bài toán cực
tiểu hoá một hàm f có n biến, min
f(x1,x2,...,xn). Biết rằng mỗi biến xi có thể
lấy các giá trị từ miền Di=[ai, bi] là tập
con của R và yêu cầu độ chính xác là k
chữ số thập phân đối với các giá trị biến.




2. Biễu diễn biến nhờ các véc tơ
nhị phân:
 Tham biến x thuộc [Umin, Umax] sẽ
được biểu diễn bởi chuỗi nhị phân có
chiều dài l. L bit mã hoá x ứng với giá
trị trong khoảng [0,2l] sẽ được ánh xạ
lên các giá trị thuộc miền xác định [Umin,
Umax]. Theo cách này có thể kiểm soát
miền trị của các biến và tính chính xác
của chúng. Tỷ lệ co dãn của ánh xạ này
được cho bởi:


2. Biễu diễn biến nhờ các véc tơ
nhị phân:
U max  U min
g
2l  1
 giá trị x tương ứng với mã string2 được xác
định theo công thức:
x=Umin+decimal(string2)*g.
 Decimal(string2) biểu diễn giá trị thập phân của
chuỗi nhị phân string2, g được xác định bởi
công thức trên.
 Ví dụ: decimal(0001)=1; decimal(0011)=3.


2. Biễu diễn biến nhờ các véc tơ

nhị phân:
 Để mã hoá tập các biến, ta ghép nối mã
các biến riêng lẻ lại với nhau. Mỗi mã
tương ứng với một chiều dài các bit riêng
và xác định một giá trị tương ứng của nó
nằm trong khoảng [Umin,Umax].Ví dụ mã
hoá cho 10 biến được cho bởi:
 0001|0101|...|1100|1111
 U1 | U2 |... | U9 | U10


3.Toán tử chọn lọc cá thể (select ):
 Toán tử chọn lọc là thao tác xử lý trong đó
mỗi cá thể được bảo lưu cho vòng sinh
sản tiếp sau tuỳ thuộc vào giá trị thích
nghi của nó. Trong bài toán này áp dụng
toán tử chọn lọc Roulete. Toán tử này là
một phiên bản mô phỏng của quá trình
chọn lọc tự nhiên. Giá trị thích nghi f(i)
được xác định đối với mỗi cá thể trong
tập hợp. Giá trị này càng lớn thì cá thể
được coi là hợp lý.


3.Toán tử chọn lọc cá thể (select ):
 Quá trình xử lý chọn lọc có thể thực hiện theo
các bước :
 1.Tính tổng giá trị thích nghi (fitness) của tất cả
thành viên lực lượng và gọi nó là tổng thích
nghi.

 2.Phát sinh một số n là số ngẫu nhiên trong
khoảng từ 0 đến tổng thích nghi.
 3.Trả lại thành viên tập hợp đầu tiên mà độ
thích nghi 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.


4. Toán tử lai ghép (crossover):
 Toán tử tác động trên các cá thể cha mẹ
để tạo ra những con lai tốt được gọi là lai
ghép. Chúng được áp dụng lên cặp cha
mẹ được chọn lựa với xác suất lai ghép
ký hiệu bởi pcross. Xác suất này cho
chúng ta số lượng pcross*pop_size các
nhiễm sắc thể được dùng cho hoạt động
lai ghép, ở đây pop_size là kích thước
của quần thể được lai tạo.


4. Toán tử lai ghép (crossover):
Với mỗi nhiễm sắc thể trong tập hợp:
Phát sinh một số ngẫu nhiên r trong khoảng [0..1];
Nếu rSau đó, ta kết hợp các nhiễm sắc thể được chọn một cách
ngẫu nhiên:
 Mỗi cặp nhiễm sắc thể, chúng ta có thể phát sinh một số
ngẫu nhiên pos từ khoảng [1..l] (l là tổng số bit trong nhiễm
thể). Số pos báo hiệu vị trí của điểm lai ghép. Hai nhiễm
sắc thể :

 (b1b2.....bposbpos+1...bl) và (c1c2.....cposcpos+1...cl)
được thay thế bởi cặp con cháu:
(b1b2.....bposcpos+1...cl) và (c1c2.....cposbpos+1...bl)
 Như vậy xử lý này sản xuất ra hai chuỗi mới, mỗi chuỗi
đều được thừa hưởng những đặc tính lấy từ cha mẹ của
chúng.






5. Toán tử đột biến (mutation):
 Các toán tử đột biến nhằm tạo ra những
thông tin mới trong quần thể lai tạo tại
các vị trí bit (gen) nào đó (quần thể được
xem xét có pop_size cá thể, mỗi cá thể
được biểu thị qua l bit). Đột biến được áp
dụng với xác suất pmu. Số lượng bit đột
biến là pmu*l*pop_size bit. Mỗi bit có cơ
hội đột biến như nhau và được thay đổi
từ 0 thành 1 hay ngược lại.


5. Toán tử đột biến (mutation):
 Với mỗi nhiễm sắc thể trong quần thể và
mỗi bit trong nhiễm sắc thể :
 Phát sinh một số ngẫu nhiên r khoảng
[0..1]
 Nếu r

 Các thao tác xử lý này được áp dụng lặp
lại cho tới khi các cá thể con cháu của
chúng tăng trưởng tới kích cỡ mong
muốn của quần thể.


6. Hàm thích nghi:
 Ánh xạ giá trị hàm mục tiêu sang giá trị thích
nghi:
 Vì hàm thích nghi phải nhận giá trị không âm,
do đó cần phải xây dựng ánh xạ hàm mục tiêu
đang xét trong bài toán sang hàm thích nghi
thông qua một hoặc nhiều lần ánh xạ. Nếu bài
toán tối ưu là cực tiểu một hàm đánh giá
g(x), việc chuyển từ hàm đánh giá sang hàm
thích nghi để sử dụng với GA như sau:


6. Hàm thích nghi:
 C max  g ( x) khi
g ( x)  C max
f ( x)  
0 Truong hop khac


 Cmax là một tham số đầu vào. Ví dụ, có thể lấy
Cmax là giá trị g lớn nhất trong tập hợp hiện tại,
hoặc lớn nhất sau k vòng lặp.
 Khi hàm mục tiêu gốc tăng hoặc hoặc đang
xét bài toán cực đại hoá một hàm hữu dụng

u(x), chúng ta có thể chuyển sang hàm thích
nghi như sau:


6. Hàm thích nghi:
 u ( x)  C min
khi u ( x)  C min  0
f ( x)  
0 Truong hop khac


 Cmin là tham số đầu vào, có thể là trị tuyệt
đối của u bé nhất trong tập hợp hiện tại
hoặc trong k vòng lặp cuối cùng hoặc là
một hàm của biến tập hợp.


6. Hàm thích nghi:
 Thang đo độ thích nghi:
 Khi một vài cá thể "siêu" có tiềm năng chiếm lĩnh phần
lớn quần thể và làm cho hội tụ sớm. Thang đo độ thích
nghi có thể giúp giải quyết vấn đề này.
 Một kiểu thang đo hay gặp là thang đo tuyến tính. Định
nghĩa độ thích nghi gốc là f và độ thích nghi đã biến đổi
là f'. Thang đo tuyến tính xác định quan hệ giữa f và f'
như sau:
f'=a*f+b
(1)
ở đây, các hệ số a và b được chọn sao cho:
f'avg=favg

(2)

f'max=Cmult*favg (3)


6. Hàm thích nghi:
 Cmult là số các bản sao cần thiết đối với một thành viên
tốt nhất. Với lượng biến tương đối nhỏ (n=50 đến 100),
Cmult thường được chọn từ 1.2 đến 2 và tỏ ra khá hiệu
quả. Biểu thức (2) bảo đảm rằng mỗi thành viên với
độ phù hợp trung bình sẽ cho một con cháu đối với
lần phát sinh tiếp theo. Biểu thức (3) kiểm soát số con
cháu được nạp vào làm thành viên với độ thích nghi
gốc cực đại. Lưu ý rằng thang đo tuyến tính trong biểu
thức từ (1)-(3) có thể làm cho giá trị thích nghi trở
thành âm. Điều này không cho phép vì phải luôn đảm
bảo tính không âm của nó. Một giải pháp thay thế điều
kiện trong biểu thức (3) là sử dụng điều kiện f'min=0.


7. Bài toán cực tiểu hàm f với n
biến vào liên tục:
 Thuật toán
 Khởi tạo tập hợp (thủ tục initpop): nhằm thiết lập số lượng
nhiễm sắc thể ngẫu nhiên ban đầu dưới dạng chuỗi nhị phân với
kích cỡ tập hợp bằng pop_size. Tuy nhiên, nếu chúng ta có thể
ước lượng một số cá thể gần tối ưu, cũng có thể dùng thông tin đó
để thiết lập các giải pháp ban đầu.
 Phần còn lại của thuật toán được tiến hành như sau:
 Với mỗi lần lặp,đánh giá từng nhiễm sắc thể (Sử dụng hàm mục tiêu f

trên tập biến được giải mã (decode));
 Chọn tập hợp mới (áp dụng toán tử chọn cá thể) với phân phối xác
suất căn cứ vào các giá trị thích nghi (fitness values);
 Tái sản xuất nhiễm sắc thể trong tập hợp mới bởi các toán tử đột biến
và lai ghép (Hàm generate mục sau).
 Sau một số lần lặp khi không tìm được cải tiến tốt hơn, nhiễm sắc thể
biễu diễn lời giải tối ưu.



Thường thuật toán kết thúc sau một số vòng lặp được xác định tuỳ
thuộc vào tốc độ và tài nguyên máy tính.


8. Thử nghiệm và đánh giá:
 Chạy thử chương trình
 Chọn kích cỡ lực lượng popsize=40; xác
suất của toán tử di truyền Pcross=0,85 và
Pmu=0,05; số vòng lặp gen=50.


8. Thử nghiệm và đánh giá:
 Trường hợp 1. ứng dụng thuật toán để cực tiểu hoá
một hàm hai biến:
 fmin=(x1-6)*(x1-6)+(x2-4)*(x2-4);
 Biết x1,x2 thuộc [-10,10].
 Chạy lần 1:
 f_min=0,0236
 x1=6,14; x2=3,95.


 Chạy lần 2:
 f_min=0,0168
 x1=5,99; x2=4,13

 Chạy lần 3:
 f_min=0,0207
 x1=5,9; x2=4,1


8. Thử nghiệm và đánh giá:
 Trường hợp 2. ứng dụng thuật toán để cực tiểu một
hàm 3 biến:
 f_min=(x1-6)*(x1-6)+(x2-4)*(x2-4)+(x3-2)*(x3-2)
 Biết x1,x2,x3 thuộc [-10,10].
 Chạy lần 1:
 f_min=0,0700
 x1= 6,19 ; x2=3,99

; x3=2,18

 Chạy lần 2:
 f_min=0,1006
 x1=6,05; x2=3,69

; x3=2,03

 Chạy lần 3:
 f_min=0,0606
 x1=6,11; x2=4,18; x3=1,86



8. Thử nghiệm và đánh giá:





Trường hợp 3. ứng dụng thuật toán để cực tiểu một hàm 4 biến:
f_min=(x1-6)*(x1-6)+(x2-4)*(x2-4)+(x3-2)*(x3-2)+(x4)*(x4)
Biết x1,x2,x3,x4 thuộc [-10,10].
Chạy lần 1:
 f_min=0,2429
 x1=6,18; x2=3,67; x3=2,11; x4=-0,30



Chạy lần 2:
 f_min=0,4327
 x1=6,35; x2= 3,53; x3=1,86; x4=-0,26;



Chạy lần 3:
 f_min=0,8697
 x1=6,04; x2=4,35; x3=2,24; x4=0,83


8. Thử nghiệm và đánh giá:
 Nhận xét: Các kết quả trên tương đối ổn định, ứng với
4 biến vào thuật toán có thể chấp nhận được.

 Đánh giá, kết luận:
Giải thuật di truyền trên có thể giải quyết bài toán tối
ưu bất kỳ (cực tiểu hoá hàm mục tiêu) với n biến vào.
Tuy nhiên, với số lượng biến vào khá nhiều, các giá trị
hàm mục tiêu đạt được thường không gần với kết quả
tối ưu thực sự. Để khắc phục vấn đề này, có thể tăng
số lượng vòng lặp, hy vọng lần sinh sản muộn sẽ hình
thành những con cháu với độ thích nghi cao ứng với
các giá trị hàm mục tiêu gần kết quả tối ưu thực sự
nhất.


THUẬT GIẢI DI TRUYỀN CHO VIỆC
XÁC ĐỊNH THAM SỐ CỦA DẠNG
HÀM – BÀI TOÁN CHIẾT DUNG MÔI


×