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

Dùng genetic programming giải bài toán symbolic regression

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 (617.28 KB, 14 trang )

1
DÙNG GENETIC PROGRAMMING GIẢI BÀI TOÁN
SYMBOLIC REGRESSION
Trần Ngọc Anh
Khoa Toán Tin
Đề tài nghiên cứu khoa học cấp trường 2006
TÓM TẮT
Trong đề tài này, tác giả tìm hiểu và áp dụng Genetics Programming (GP) giải bài
toán Symbolic Regression (SR). Các thử nghiệm trên bảy hàm một biến thực đã chỉ ra
rằng có thể giải bài toán này bằng GP. Tiếp theo đó, tác giả áp dụng chiến lược động vào
phép lai chuẩn nhằm khắc phục nhược điểm tìm kiếm cục bộ của phép lai này. Kết qủa
chạy 6 thử nghiệm khi xấp xỉ hai hàm một biến được chọn từ bảy hàm trên đã chỉ ra: phép
lai chuẩn có áp dụng chiến lược động đạt được độ chính xác cao hơn và ổn đònh hơn trong
khoảng thời gian ít hơn.
1. Mở đầu
Genetic Programming (GP) là một nhánh của Genetics Algorithm được nghiên cứu
đầu tiên bởi John Koza từ năm 1972, sau đó bởi William Langdon, Ricardo Poli, ...
GP là một phương pháp tối ưu ký hiệu dựa trên biểu diễn cây – cây là cấu trúc linh
hoạt có thể biểu diễn các chương trình máy tính, các biểu thức, phương trình toán
học, … GP có nhiều ứng dụng quan trọng như lập trình tự động, giải bài toán hồi
quy ký hiệu (Symbolic Regression).
Phần 2 giới thiệu bài toán SR và mô hình áp dụng GP giải bài toán SR. Phần 3 áp
dụng chiến lược động vào phép lai chuẩn trong GP nhằm tăng độ chính xác của lời
giải. Phần 4 là giao diện chương trình thử nghiệm và kết qủa thử nghiệm. Phần 5 là
các vấn đề cần nghiên cứu thêm.
2. Mô hình GP giải bài toán SR
2.1 Bài toán SR
Cho trước tập các điểm
RyRxNiyxD
i
M


iii
∈∈== ,},,...,1),{(
,
tập các hàm cơ sở
2
F = ...}tan,cos,sin,,exp,ln,,/,,*,,{ sqrtabspow−+
và tập các toán hạng T =
,...},,...,,{
21
21
consconsxx
. Bài toán đặt ra là tìm một hàm
RRf
M
→:* , f* được tạo bởi các hàm trong F và các toán hạng trong T sao cho
0
%100*
)(*
)*,(
1


=

=
N
y
yxf
DfE
N

i
i
ii
. (1)
2.2 Thuật giải di truyền – GA
Hoạt động của GA được cho trong hình 1.
Tạo ngẫu nhiên PopSize (PS) cá thể ban đầu (Q), t = 0
while (t < T)
Q
b
r
Q
Q
m
r
Q
cm
r
Q
rep
= Q
cm
r
U Q
m
r
. U Q
b
r
U Q

g
r
Q = Opt (Q
rep
)
Tính độ thích nghi cho các cá thể trong Q, t = t+1
Đột biến
(V)
Chọn (III)
các cá thể
từ Q và lai
(IV) chúng
Q
c
r
Đột biến
(V)
(1)
(2)(4)
(3)
(5)
Sinh ngẫu
nhiên (I)
Q
g
r
Hình 1: Các bước thực hiện của GA
3
Trong đó, số lượng các phần tử được:
(1) chọn (theo độ thích nghi) từ Q để lai là PS

C
= (p
C
PS % 2 = 0 ? p
C
PS :
p
C
PS+1),
(2) chọn (ngẫu nhiên) từ Q
c
r
để đột biến là PS
CM
= p
cm
*PS,
(3) chọn (ngẫu nhiên) từ Q để đột biến là PS
M
= p
m
PS,
(4) chọn (xén theo độ thích nghi) từ Q để tái tạo là PS
b
= p
b
PS; và
(5) có (1 – (p
C
+ p

m
+ p
b
))PS được sinh ngẫu nhiên.
Các phép chọn trên dựa vào thủ tục chọn phần tử từ tập L phần tử theo bàn xoay
roulette thêm vào tập T ở vò trí thứ r.
Gọi sel
i
là xác suất chọn L
i
(chú ý:
1≤

i
i
sel
). Sắp tăng L theo }{
i
sel và đặt: p
0
:= 0,

=
=
)(
1
:
LCard
i
i

selS . Thủ tục như sau:
RWS (L, p, kind, r)
begin
do
- q = random(0; S) ∈ (0; S)
- if (p
i-1
< q ≤ p
i
), vi i = 1..Card(L)
T[r] = L
i
while (





=<∃∧=
∨=∧=∧=
∧<>

)]}:()_[(
)]()02%()_{[(
)
1
jr
rr
TTrjALLDIFFkind
TTrTWODIFFkind

FREEkind
)
return T[r]
end
với kind là hình thức chọn:





≠≠
≠∀≠
=
elseFREE
TTTTTWODIFF
nmTTALLDIFF
kind
nm
:
,...,:_
,:_
3210
Từ đó, để:
- chọn ngẫu nhiên:
o bước chọn (2): T[r] := RWS(Q
C
R
, 1/PS, DIFF_ALL, r), r=1, .., PS
CM
o bước chọn (3): T[r] := RWS(Q, 1/PS, DIFF_ALL, r), r=1, .., PS

M
- chọn theo độ thích nghi g:
o bước chọn (1): lấy PS
b
cá thể có độ thích nghi cao nhất từ Q, T :=
PopTop (Q, g, PS
b
).
4
o bước chọn (4): T[r] := RWS(Q, g, DIFF_TWO, r), r=1, …, PS
C
.
2.3 p dụng GP giải bài toán SR
Thuật giải di truyền tiến hóa trên cấu trúc cá thể có dạng cây được gọi là GP.
Biểu diễn hàm bằng cây nhò phân ta có thể dùng GP để giải bài toán SR. Ở thế hệ
đầu tiên, một quần thể các hàm (hay cây hay cá thể) được sinh ngẫu nhiên. Trong
các thế hệ sau, ở mỗi thế hệ, các hàm tốt có E bé được chọn lựa để biến hóa (lai
ghép, đột biến) nhằm tạo ra thế hệ sau tốt hơn. Hàm tốt nhất ở thế hệ cuối cùng
được chọn làm lời giải.
2.3.1 Biểu diễn hàm bằng cây nhò phân
Các nút trong chứa các toán tử, các nút lá chứa các toán hạng. Chẳng hạn, xem
hình 2.
2.3.2 Khởi tạo quần thể
Khởi tạo quần thể ban đầu chứa PopSize cây có độ cao tối đa là d. Có 3 phương
pháp khởi tạo: Full, Grow, Ramped.
2.3.2.1 Khởi tạo Full
Các hàm cơ sở được chọn làm các nút của cây cho đến khi đạt đến độ sâu d-2, các
toán hạng được chọn làm các nút ở độ sâu d-1.
Đặc điểm của phương pháp này là: mọi cá thể đều có cùng độ cao d, quần thể
không đa dạng về cấu trúc.

2.3.2.2 Khởi tạo Grow
Đầu tiên, chọn hàm cơ sở làm nút gốc. Sau đó, chọn ngẫu nhiên hàm cơ sở hoặc
toán hạng cho các nút ở độ sâu 1. Nếu một nút ở độ sâu 1 là toán hạng thì chấm
dứt khởi tạo trên nhánh con tương ứng đó, tiếp tục khởi tạo các nhánh còn lại.
Hình 2: Biểu diễn một số hàm bằng cây nhò phân
5
Ngược lại, nếu một nút ở độ sâu 1 là hàm cơ sở thì tiếp tục khởi tạo các nút ở độ
sâu 2. Tiếp tục khởi tạo cho các nhánh cho đến khi các nhánh đều đã có toán hạng
hoặc nút cuối của nhánh có độ sâu d-2. Khi nút cuối của nhánh có độ sâu d-2, ta
chọn ngẫu nhiên một hoặc hai toán hạng làm các nút có độ sâu d-1 và kết thúc
nhánh.
Đặc điểm của phương pháp Grow là: các cá thể có độ cao ngẫu nhiên thuộc đoạn
[2, d], quần thể sẽ chứa nhiều cá thể có độ cao nhỏ (2, 3, …) và ít cá thể có độ cao
lớn (d, d-1, …).
2.3.2.3 Khởi tạo Ramped half-and-half
Để khởi tạo quần thể chứa PopSize cá thể có độ cao nhỏ hơn giới hạn độ cao d cho
trước, ta trải qua m giai đoạn, giai đoạn k khởi tạo N/m cá thể chứa: a) N/m/2 cá
thể có cùng độ cao k bằng phương pháp Full, b) N/m/2 cá thể có độ cao trong đoạn
[1, k] bằng phương pháp Grow.
Phương pháp này kết hợp đặc điểm của hai phương pháp Full và Grow để tạo ra
quần thể đa dạng về cấu trúc.
2.3.3 Độ thích nghi của cá thể
Độ thích nghi của cá thể thể hiện khả năng tham gia của cá thể (so với quần thể)
vào qúa trình tái tạo – các qúa trình chọn (1), (4) trong hình 1 – ra thế hệ sau. Nó
phụ thuộc chính vào lỗi của cá thể trên tập D: cá thể f có E(f) lớn/nhỏ sẽ có độ
thích nghi cao/thấp.
Các công thức sau chỉ ra các cách tính độ thích nghi g
i
cho cá thể f
i

(G(f
i
)):
),(:)(
ii
fEfStdFit =
(2)
),(:
,...,1
j
Kj
fStdFitMaxMaxStdFit
=
=
(3)
)(1
:)(
,
)(1
1
:)(
,)(:)(
)0(
i
i
i
i
ii
fStdFit
MaxStdFit

fAdjFit
or
fStdFit
fAdjFit
orfStdFitMaxStdFitfAdjFit
+
=
+
=
+−=
>
ε
(4)

=
=
Nj
j
i
i
fAdjFit
fAdjFit
fG
,...,1
)(
)(
:)( (5)
2.3.4 Lai ghép
Lai ghép giữa hai cá thể được chọn (có độ thích nghi cao) nhằm tạo ra hai cá thể
mơi có độ thích nghi cao. Phép lai ghép chuẩn giữa hai cá thể cha, mẹ diễn ra như

×