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

Phát triển một số kỹ thuật trong tính toán tiến hoá

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 (242.85 KB, 28 trang )

1
BỘ GIÁO DỤC & ĐÀO TẠO VIỆN KH & CN VIỆT NAM
VIỆN CÔNG NGHỆ THÔNG TIN
VŨ MẠNH XUÂN
PHÁT TRIỂN MỘT SỐ KỸ THUẬT
TRONG TÍNH TOÁN MỀM
Chuyên ngành: Bảo đảm toán học cho máy tính
và hệ thống tính toán
Mã số: 62.46.35.01
TÓM TẮT LUẬN ÁN TIẾN SĨ
HÀ NỘI - 2007
2
Công trình được hoàn thành tại: Viện Công nghệ thông tin
thuộc Viện Khoa học và Công nghệ Việt Nam
Người hướng dẫn khoa học:
1. PGS.TS Nguyễn Thanh Thủy
2. PGS.TS Lương Chi Mai
Phản biện 1: . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
Phản biện 2: . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
Phản biện 3: . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
Luận án sẽ được bảo vệ trước Hội đồng chấm luận án cấp nhà nước
họp tại: . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
vào hồi giờ ngày tháng năm 200
Có thể tìm hiểu luận án tại: Thư viện Quốc gia
Viện Công nghệ thông tin - Viện KH & CN Việt nam
Khoa Khoa học Tự nhiên – Đại học Thái Nguyên
3


MỞ ĐẦU
Trong thời gian gần đây, cùng với sự gia tăng mạnh mẽ cả về số lượng
lẫn chất lượng các công cụ tính toán hiện đại như máy tính, nhiều lĩnh vực
nghiên cứu tính toán không truyền thống cũng không ngừng phát triển. Tính
toán mềm (Soft Computing) hay còn gọi là trí tuệ tính toán (Computational
Intelligence) nhằm nghiên cứu các mô hình tính toán mô phỏng hoạt động
của con người hay tiến hóa tự nhiên. Nói chung, tính toán mềm dựa trên các
kỹ thuật cơ bản gồm: logic mờ (FL – Fuzzy Logic), mạng nơron nhân tạo
(NN – Neural Network), giải thuật di truyền (GA – Genetic Algorithm) và
giải thuật mô phỏng tôi luyện (SA – Simulated Annealing).
Các nghiên cứu về tính toán mềm thường tập trung vào hai khía cạnh:
một mặt phát triển các kỹ thuật cơ bản tạo nền tảng cho khả năng ứng dụng,
mặt khác tìm cách tích hợp các kỹ thuật này nhằm nâng cao hiệu quả tính
toán. Cũng như các lĩnh vực trí tuệ nhân tạo khác, tính toán mềm dành được
sự quan tâm đặc biệt trong giới nghiên cứu và ứng dụng. Chỉ trong lĩnh vực
tính toán tiến hóa cũng đã thu hút được nhiều tạp chí lớn, nhiều hội thảo quốc
tế tổ chức hàng năm dành riêng cho chủ đề này. Ở nước ta, trí tuệ nhân tạo và
tính toán mềm cũng đã và đang được những người nghiên cứu công nghệ
thông tin và ứng dụng quan tâm phát triển. Các Hội thảo Quốc gia về Công
nghệ thông tin và truyền thông đều có các tiểu ban chuyên về trí tuệ nhân tạo
và tính toán mềm. Một số luận án tiến sĩ ở Việt Nam thời gian gần đây cũng
tập trung khai thác lĩnh vực này. Các tác giả Manuel Lozano, Francisco
Herrera, Natalio Krasnogor và Daniel Molina đã tổng hợp nhiều hướng
nghiên cứu trong những năm gần đây (2001 – 2004) và chỉ ra xu hướng phát
4
triển các kỹ thuật tính toán mềm bằng cách tích hợp tính toán tiến hóa với kỹ
thuật tìm kiếm địa phương.
Nghiên cứu về tính toán mềm nói chung là một lĩnh vực rất rộng, riêng
mỗi kỹ thuật cơ bản của nó cũng đã là một chủ đề lớn, vì vậy luận án chỉ đi
sâu vào một mảng là “Phát triển một số kỹ thuật trong tính toán tiến hóa”.

Mục tiêu của luận án là nghiên cứu vấn đề thích nghi và tự thích nghi trong
tính toán tiến hóa; đề xuất các giải pháp cải tiến thuật toán và ứng dụng cơ
chế thích nghi giải các bài toán tối ưu.
Như vậy, đối tượng chính của luận án là các thuật toán tiến hóa bao
gồm giải thuật di truyền, chiến lược tiến hóa, giải thuật mô phỏng tôi luyện,
áp dụng để giải một lớp bài toán tối ưu số và ứng dụng. Phương pháp làm
việc là nghiên cứu các tài liệu trong và ngoài nước về tính toán tiến hóa,
trọng tâm là giải thuật di truyền; khảo sát, đề xuất một số giải pháp nhằm
nâng cao hiệu quả của giải thuật, tiến hành thử nghiệm trên một số bài toán
mẫu và ứng dụng các kỹ thuật này trong bài toán tối ưu đa mục tiêu thực tế.
Nội dung luận án gồm ba chương không kể các phần mở đầu, kết luận.
Chương một nêu khá chi tiết về giải thuật di truyền (GA) và tính toán
tiến hóa nói chung. Trước hết là GA kinh điển với các toán tử di truyền cơ
bản và minh họa bằng một ví dụ cụ thể. Phần kế tiếp trình bày nền tảng toán
học của GA với hai nội dung chính là định lý sơ đồ của Holland và mô hình
xích Markov của GA. Giải thuật di truyền mã hóa số thực (RCGA – Real-
Coded Genetic Algorithm) với các toán tử di truyền được đề cập đến một
cách chi tiết. Toán tử lai ghép với nhiều dạng khác nhau kể cả các dạng lai
ghép nhiều cá thể cha mẹ cũng được mô tả một cách cẩn thận. Phần này cũng
nêu lên một số mô hình tiến hóa được giới thiệu trong thời gian gần đây.
Phần cuối của chương đề cập đến các dạng tính toán tiến hóa khác là chiến
lược tiến hóa (ES – Evolutionary Straitegy) và quy hoạch tiến hóa (EP -
5
Evolutionary Programming). Giải thuật mô phỏng tôi luyện (SA-Simulated
Annealing) cũng được trình bày làm cơ sở cho việc tích hợp với các kỹ thuật
khác.
Chương hai tập trung trình bày các kết quả nghiên cứu của tác giả về
vấn đề tự thích nghi trong giải thuật di truyền mã hóa số thực và tính toán
tiến hóa nói chung. Cụ thể trong chương này đưa ra một số kết quả sau:
1) Phân tích tác động các tham số của RCGA đến sự hội tụ của giải thuật, tập

trung vào tác động của kích cỡ quần thể và toán tử lai ghép.
2) Sử dụng một số hàm phân phối xác suất để điều chỉnh tham số tỷ lệ
khoảng cách giữa các cá thể con sinh ra đối với cha mẹ chúng trong toán
tử lai ghép.
3) Đề xuất thuật toán OAGA (Operator Adaptive Genetic Algorithm) cho
phép lựa chọn thích nghi toán tử lai ghép trong quá trình tiến hóa.
4) Đề xuất thuật toán BEA (Blend Evolutionary Algorithm) tích hợp các kỹ
thuật tính toán mềm giải các bài toán tối ưu số. Thuật toán này có thể xem
là những đề xuất cải tiến cơ bản với toán tử lai ghép của giải thuật di
truyền mã hóa số thực trong một mô hình sử dụng giải thuật di truyền
(GA), chiến lược tiến hóa (ES) cùng với yếu tố nhiệt độ của giải thuật mô
phỏng tôi luyện (SA).
Các đề xuất trên đều đã được kiểm chứng qua một số hàm benchmark
và cho kết quả tốt.
Chương ba của luận án bao gồm những nghiên cứu về giải thuật di
truyền đa mục tiêu và trình bày kết quả ứng dụng trong một số bài toán thuộc
lĩnh vực Khí tượng thủy văn là bài toán thiết kế hồ chứa nước, bài toán phân
bố dòng chảy và bài toán bốn hồ chứa. Các giải pháp đề xuất gồm:
1) Sử dụng giải thuật di truyền tìm lời giải theo các giá trị mục tiêu đã xác
định trước.
6
2) Thuật toán tự xác định giá trị mục tiêu tùy theo yêu cầu bài toán căn cứ
vào quần thể khởi tạo và các giá trị này được cập nhật ngay trong quá
trình tiến hóa.
3) Thuật toán tối ưu từng mục tiêu, các giá trị mục tiêu được tự động cập
nhật cho mỗi hàm mục tiêu theo từng giai đoạn. Có thể xem thuật toán
này là dạng giải thuật di truyền với mục tiêu biến đổi theo thời gian.
Các đề xuất trên được áp dụng để giải bài toán thực tế đã nêu, trong đó
giải thuật di truyền sử dụng các toán tử như trình bày ở chương hai và thu
được kết quả tốt hơn so với các kết quả đã được công bố trước đó.

Chương 1
MỘT SỐ VẤN ĐỀ CƠ BẢN
Chương này trình bày chủ yếu về giải thuật di truyền (GA), bao gồm
GA kinh điển, nền tảng toán học của GA, GA mã hóa số thực (RCGA), chiến
lược tiến hóa (ES) và quy hoạch tiến hóa (EP). GA kinh điển được trình bày
chi tiết từ việc mã hóa, các toán tử di truyền đến mô tả tường minh trong một
ví dụ cụ thể. Nền tảng toán học của GA được trình bày thông qua định lý sơ
đồ của Holland và mô hình Markov của GA dựa trên các kết quả của
Rudolph và Suzuki. Phần tiếp theo trình bày giải thuật di truyền mã hóa số
thực (RCGA) khá tường tận, đặc biệt là những dạng khác nhau của toán tử
lai ghép. Phần cuối chương là chiến lược tiến hóa (ES), quy hoạch tiến hóa
(EP) và một số dạng của giải thuật mô phỏng tôi luyện (SA).
7
Chương 2
NGHIÊN CỨU CƠ CHẾ TỰ THÍCH NGHI
TRONG TÍNH TOÁN TIẾN HÓA
Chương này trình bày những kết quả nghiên cứu và đề xuất một số kỹ
thuật tự thích nghi trong tính toán tiến hóa. Trước tiên là khái quát về vấn đề
tự thích nghi trong tính toán tiến hóa, phân tích tác động của các tham số sử
dụng trong giải thuật di truyền chủ yếu là kích cỡ quần thể. Tiếp theo là
nghiên cứu về toán tử lai ghép SBX, cùng với các phiên bản tính tham số
điều khiển sử dụng các biến ngẫu nhiên với các phân phối xác suất khác
nhau. Tiếp theo là một thuật toán đề xuất cho phép chọn lựa thích nghi toán
tử lai ghép ngay trong quá trình thực hiện. Phần cuối chương là một phương
pháp tích hợp giải thuật di truyền, chiến lược tiến hóa và giải thuật mô phỏng
tôi luyện nhằm làm tăng hiệu quả tính toán. Các kết quả chính được trình bày
trong chương hai gồm:
2.1. TỰ THÍCH NGHI TRONG TÍNH TOÁN TIẾN HÓA
Phần này trình bày khái quát về vấn đề thích nghi và tự thích nghi
trong tính toán tiến hóa.

2.2. TÁC ĐỘNG CỦA KÍCH CỠ QUẦN THỂ TRONG RCGA
Phần này khảo sát quan hệ giữa các tham số: kích cỡ quần thể, số chiều
không gian tìm kiếm, các dạng toán tử lai ghép kinh điển và các hàm mục
tiêu khác nhau đến sự hội tụ của giải thuật. Nội dung chi tiết gồm:
2.2.1. Quan hệ giữa kích cỡ quần thể và số lần lặp
Để khảo sát tác động của kích cỡ quần thể đến các toán tử khác và sự
hội tụ của giải thuật, ta xét giải thuật chỉ sử dụng một loại toán tử lai ghép và
sơ đồ tạo sinh sau: Hai cá thể cha mẹ được chọn tiến hành lai ghép theo một
8
dạng toán tử lai ghép chọn trước. Sau đó chọn hai cá thể có giá trị hàm mục
tiêu tốt nhất trong bốn cá thể (hai cha mẹ và hai con) thay thế cho hai cá thể
cha mẹ ban đầu. Với các giả thiết trên, có thể rút ra kết luận:
RCGA chỉ sử dụng các toán tử lai ghép kinh điển như: lai ghép một
điểm, lai ghép nhiều điểm hay lai ghép mặt nạ (lai ghép đều), không sử dụng
toán tử đột biến và việc tạo sinh theo chiến lược phần tử ưu tú thì tốt nhất là
thực hiện M
2
bước lai ghép với M là kích cỡ quần thể.
Kết quả này đã được kiểm chứng trên một số hàm benchmark, dưới
đây chỉ minh họa một ví dụ.
Thử nghiệm với hàm Rastringin
)10)2cos(10()(
1
2
5
+−=

=
i
n

i
i
xxxf
π

với n = 30, -5.12 x
i
5.12.
Hàm này có rất nhiều cực trị địa phương trong miền đang xét, số cực
trị này tăng theo lũy thừa khi số chiều tăng. Hình 2.12 là kết quả thực hiện
chương trình.
Trong đồ thị trên, trục tung là giá trị hàm mục tiêu, trục hoành ứng với
các mốc lặp 1000, 2000, , 10000. Mỗi đường đồ thị biểu diễn giá trị trung
bình hàm mục tiêu của quần thể ứng với kích cỡ chọn từ dưới lên là 10, 20,
, 100. Kết quả phù hợp với nhận xét trên.
-
100.00
200.00
300.00
400.00
500.00
600.00
1 2 3 4 5 6 7 8 9 10
Hình 2.12. Hàm Rastringin sử dụng
lai ghép một điểm
9
2.2.2. Quan hệ giữa kích cỡ quần thể và số chiều không gian tìm kiếm
Phần này khảo sát mối quan hệ giữa kích cỡ quần thể và số chiều
không gian tìm kiếm trên các hàm khác nhau với các dạng toán tử lai ghép
khác nhau. Kết quả cho thấy giá trị trung bình hàm mục tiêu của quần thể

thay đổi không nhiều khi thay đổi số chiều không gian và kích cỡ quần thể.
Hình 2.17 minh họa kết quả thử nghiệm với hàm Rastringin nêu trên. Trục
tung chỉ giá trị trung bình hàm mục tiêu của quần thể. Trục hoành chỉ số
chiều của không gian tìm kiếm biến đổi từ 10, 20, 30, 40, 50. Mỗi đường đồ
thị ứng với một kích cỡ quần thể từ 10, 20, 30, 40, 50.
Từ các phân tích và thử nghiệm trên, ta có thể nhận thấy kích cỡ quần
thể quan hệ chủ yếu đến số lần tạo sinh, ít bị ảnh hưởng bởi hàm mục tiêu,
dạng toán tử lai ghép và số chiều của không gian tìm kiếm. Hơn nữa việc
chọn kích cỡ quần thể có ảnh hưởng quan trọng đến độ hội tụ của giải thuật.
2.3. ĐIỀU CHỈNH THAM SỐ CỦA TOÁN TỬ LAI GHÉP
2.3.1 Phân tích các dạng lai ghép kinh điển trong RCGA
Để phân tích tác động của toán tử lai ghép, ta có thể biểu diễn các dạng
khác nhau của toán tử lai ghép kinh điển bởi các phép toán đại số, cụ thể như
sau: Mỗi cá thể được mã hóa là một véc tơ thực n chiều; giả sử cặp cá thể cha
mẹ được chọn để lai ghép là X = (x
1
, x
2
, , x
m
) và Y = (y
1
, y
2
, , y
m
); hai cá
0
200
400

600
800
1000
1200
1400
1600
1 2 3 4 5
Hình 2.17 Lai ghép mặt nạ với hàm
Rastringin
10
thể con tạo được sau lai ghép là X’ = (x’
1
, x’
2
, , x’
m
) và Y’ = (y’
1
, y’
2
, , y’
m
).
Khi đó quan hệ giữa (X’, Y’) và (X, Y) được biểu diễn bởi phép nhân ma
trận:
(X', Y') = (X, Y). F(a, b)
trong đó









=
BAI
BIA
baF ),(
với A và B là các ma trận đường chéo cấp m với các phần tử trên đường chéo
tương ứng là các a
i
và b
i
.
Từ đó dễ dàng tính F(a,b)
-1
theo công thức :








=

''
''

),(
1
BAI
BIA
baF
ở đây A' và B' là các ma trận đường chéo cấp m với các phần tử trên đường
chéo tương ứng là các a'
i
và b'
i
, trong đó:
1
';
1
'
−+
=
−+
=
ii
i
i
ii
i
i
ba
a
b
ba
b

a
Với cách biểu diễn trên, có thể tính xác suất để cặp phần tử (X', Y')
được sinh ra từ (X, Y) thuộc một tập M trong không gian R
2m
sau phép lai
ghép.
Dựa trên các phân tích và tính toán, có thể rút ra kết luận: Giá trị trung
bình của mật độ quần thể không thay đổi qua phép lai ghép dạng "tuyến
tính".
2.3.2 Điều kiện thành công của toán tử lai ghép
Giả sử F
Z
là hàm phân phối của biến ngẫu nhiên Z với trung vị 0. Theo
định lý giá trị trung bình, xác suất để biến ngẫu nhiên Z chuyển từ điểm 0 đến
lân cận (z- , z+ ) của điểm z được tính bởi:
P{0 (z - , z + )} = P{z - < Z < z + }
11
= F
Z
(z + ) – F
Z
(z - )
= 2* *f
Z
((z - + *2* )
trong đó 0 < < 1 và
)()( xF
dx
d
xf

ZZ
=
.
Do z > > 0 nên xác suất chuyển có thể gộp lại như sau:
2* *f
Z
(z + ) P{0 (z - , z + )} 2* *f
Z
(z - ) (2.1)
Như vậy, xác suất lai ghép thành công (tạo được con có xu hướng
chuyển từ tối ưu cục bộ đến tối ưu toàn cục) tại bước thứ k là:
p
k
= P{0 (z - , z + ) tại bước k} q
k
= 2* *f
Z
(z + )
(2.2)
Do đó, xác suất chuyển đến lân cận (z - , z + ) của z sau t bước lặp
(t 0) là:
∏∏
==
−−≥−−
t
k
k
t
k
k

qp
11
)1(1)1(1
hay điều kiện để lai ghép thành công là:
∞→

⇔→−


=
=
t
k
k
t
k
k
q
q
1
1
)
1
1
log(0)1(
khi t (2.3)
Như vậy, khi điều kiện (2.3) được thoả, thuật toán tiến hoá sẽ đạt đến
lân cận (z- , z+ ) của z sau một số hữu hạn bước với xác suất bằng 1.
2.3.3 Toán tử lai ghép SBX
Giả sử x = (x

1
, x
2
, x
n
) và y = (y
1
, y
2
, , y
n
) là hai cá thể cha mẹ đã
chọn để tạo sinh. Khi đó hai cá thể con c
1
= (c
1
1
, , c
1
n
) và c
2
= (c
2
1
, , c
2
n
)
được sinh ra theo công thức

c
1
i
= 0.5*((1 + ) * x
i
+ (1 - ) * y
i
) (2.4)
c
2
i
= 0.5*((1 - ) * x
i
+ (1 + ) * y
i
) (2.5)
trong đó được tính bởi công thức
12









=
+
+

otherwise
u
uifu
1
1
1
1
)
)1(*2
1
(
5.0)*2(
η
η
β
(2.6)
với u là số ngẫu nhiên trong [0, 1]; là tham số điều khiển.
Toán tử SBX có thể mô tả vắn tắt như sau:
Bước 1. Chọn ngẫu nhiên số thực u [0, 1].
Bước 2. Tính theo công thức (2.6), tham số này có thể tính riêng với mỗi
thành phần hoặc dùng chung.
Bước 3. Tính các con c
1
và c
2
theo công thức (2.4) và (2.5).
Nghiên cứu toán tử này, ta có một số nhận xét sau
a) SBX có thể biểu diễn nhiều dạng toán tử lai ghép khác
+ Lai ghép 1 điểm với điểm lai ghép là t (1 t n-1) ứng với cách chọn
k

= -1 với 0 < k < t và
k
= 1 trong đoạn còn lại.
+ Lai ghép nhiều điểm ứng với cách đặt
k
= -1 trong từng đoạn con của
[1,n] và
k
= 1 tại các đoạn còn lại.
+ Lai ghép mặt nạ ứng với cách đặt
k
= -1 hoặc
k
= 1 với một xác suất
đều tại các giá trị k [1, n].
+ Lai ghép trung bình ứng với cách đặt
k
= 0 với mọi k.
+ Lai ghép số học ứng với cách đặt
k
= 2*r – 1 trong đó r là số ngẫu nhiên
với phân phối đều trên (0, 1).
+ Lai ghép heuristic : Giả sử x là cá thể tốt hơn y (f(x) < f(y) với bài toán
tìm min và f(x) > f(y) với bài toán tìm max). Bằng cách đặt
k
= 1 + 2*d
trong đó d là số ngẫu nhiên trong [0, 1], ta tính được cá thể con duy nhất với
các thành phần cho bởi: c
k
= x

k
+ d*(x
k
– y
k
).
13
+ Lai ghép BLX- ứng với cách đặt
k
= 2*r – 1, trong đó r là số ngẫu
nhiên được lấy trong [- , 1+ ].
b) Tác động của tham số
Từ các công thức (2.4) và (2.5), ta thấy ngay khoảng cách mỗi thành
phần của các cá thể con sinh ra tỷ lệ với khoảng cách tương ứng của cha mẹ
chúng. Thật vậy trừ theo từng vế (2.4) và (2.5) ta được:
c
1
i
– c
2
i
= *(x
i
– y
i
)
Kết quả này rất quan trọng vì ở đây chúng ta quan tâm đến việc cá thể
con sinh ra gần hay xa nhau nhằm đảm bảo tính đa dạng của quần thể.
2.3.4 Toán tử SBX sử dụng phân phối Cauchy
Xét biến ngẫu nhiên Z theo phân phối Cauchy có hàm mật độ xác suất:


22
1
)(
xs
s
xf
Z
+
=
π
trong đó tham số s đóng vai trò là tham số điều khiển kích cỡ bước.
Nếu ta chọn s
k
= 1/k với k là chỉ số lần tạo sinh (k 1), thay vào (2.3)
có thể chứng minh được nó thỏa mãn điều kiện lai ghép thành công.
Từ phân tích trên, tác giả đề xuất toán tử lai ghép như sau:
Đầu vào: Quần thể cũ Q;
Đầu ra: Quần thể mới Q’ sau khi thực hiện lai ghép;
Thuật toán:
B1) (x,y) = Selection(Q); (Chọn ngẫu nhiên cặp cha mẹ)
B2) Với mỗi i = 1 n (n là số chiều không gian) tính (u, v) bởi:
B2.1) := (1/ )*(s/(s*s + r*r)); (s=1/k; r=random(0,1)
B2.2) u[i] := 0.5*((1- )*x[i] + (1+ )*y[i]);
14
v[i] := 0.5*((1+ )*x[i] + (1- )*y[i]);
B3) Chọn hai cá thể tốt nhất trong {x, y, u, v} thay cho cặp (x, y);
Như vậy, trong toán tử này, hệ số được tính theo biến ngẫu nhiên Z
có phân phối xác suất Cauchy với tham số điều khiển s = 1/k, trong đó k là số
lần lặp. Cũng có thể xem đây là một cách kết hợp giải thuật mô phỏng tôi

luyện và toán tử lai ghép với sơ đồ tôi luyện là T
k
= 1/k.
Bảng 2.3 dưới đây cho kết quả trung bình sau năm lần chạy độc lập đối
với mỗi hàm thử nghiệm, mỗi lần chạy thực hiện tạo sinh 500 thế hệ cho một
dạng toán tử đã nêu.
Bảng 2.3 Kết quả thử nghiệm với các toán tử khác nhau
Hàm số Giá trị
khởi tạo
Lai ghép
số học
Lai ghép
1 điểm
Lai ghép
mặt nạ
Lai ghép
BLX-0.5
Lai SBX-
Cauchy
f
1
68223 16075.8 22405.4 7602.7 3026.2 1373.6
f
3
3.04E+12 45.237 67.223 29.793 18.832 17.041
f
4
233230 13223.9 53038.6 6133.9 1914.5 492.3
f
5

451.02 204.10 260.46 139.53 147.20 191.39
f
8
64693.4 14169 25011.2 7898.2 2408.6 1437.4
2.3.5 SBX với một số phân phối xác suất khác
Với kết quả nghiên cứu trên, một cách tự nhiên là hoàn toàn có thể sử
dụng các biến ngẫu nhiên với phân phối xác suất khác nhau để tính hệ số tỷ lệ
. Thuật toán như đã nêu phần trên, ở đây chỉ thay đổi công thức (2.6) tính
tham số , việc tính các cá thể con vẫn theo (2.4) và (2.5).
- Phân phối chuẩn: Tính tùy thuộc số ngẫu nhiên x theo công thức:














−=
2
2
2
1
exp

2
1
σ
πσ
β
x
(2.7)
15
Phân phối này có kỳ vọng EX = 0 và phương sai VX =
2
. Đường cong
mật độ có dạng hình chuông nhận trục hoành làm tiệm cận. Trong tự nhiên,
nhiều quy luật biến đổi theo phân phối chuẩn, chẳng hạn trọng lượng, chiều
cao của người lớn, chỉ số thông minh của trẻ em, các sai số đo đạc, độ bền
dẻo của máy móc, .
- Phân phối Loga chuẩn: Tương tự như phân phối chuẩn, một dạng khác
được quan tâm đến là phân phối loga chuẩn. Trong trường hợp này được
tính theo số ngẫu nhiên x bởi công thức:






−=
2
2
2
)(ln
exp

1
2
1
σ
πσ
β
x
x
(2.8)
Phân phối này có kỳ vọng EX = exp(
2
/2) và phương sai là VX = exp(
2
/2)*(exp(
2
)-1).
- Phân phối mũ: Tham số được tính tùy thuộc số ngẫu nhiên x theo công
thức: = *exp(- *x) (2.9)
Phân phối này có kỳ vọng EX = 1/ và phương sai VX = 1/
2
. Trong
thực tế, nhiều đại lượng ngẫu nhiên phù hợp với phân phối mũ, chẳng hạn
thời gian phục vụ của một hệ đám đông, thời gian phục vụ của một dụng cụ
điện tử, sự phân rã của nguyên tử phóng xạ, . Phân phối mũ là trường hợp
riêng của họ phân phối Veibull có ứng dụng nhiều trong lâm nghiệp.
Cũng có thể xem xét và thử nghiệm với những phân phối xác suất khác
để tính hệ số tỷ lệ . Song ở đây ta chỉ chọn những phân phối trên vì về cơ
bản chúng phản ánh những quy luật của tự nhiên phù hợp với tính chất của
giải thuật di truyền, mặt khác đây cũng là những công thức mà việc tính toán
không quá phức tạp có thể làm tăng thời gian thực hiện chương trình.

16
Kết quả thử nghiệm
Dưới đây chỉ trình bày kết quả thử nghiệm đối với một bài toán.
Bài toán 2.3.5: Hàm Griewangk
1)cos(
4000
1
)(
1
1
2
6
+−=


=
=
n
i
i
n
i
i
i
x
xxf

với n = 30, -5.12 x
i
5.12

Hàm Griewangk là hàm liên tục, đa phương thức. Hàm này rất khó tối
ưu vì nó không phân ly, nó có cực tiểu toàn cục tại = (0,0, , 0) và f
6
( ) = 0.
Kết quả thử nghiệm cho trong bảng 2.8. Chỉ số cột (1000, 2000, ) là các
mốc lặp, chỉ số dòng (1, 2, ) gồm:
- Dòng thứ nhất là kết quả khi sử dụng toán tử lai ghép mặt nạ.
- Dòng thứ hai là kết quả khi sử dụng toán tử lai ghép BLX-0.5
- Dòng thứ ba là kết quả sử dụng toán tử SBX trong đó được tính theo
(2.3), tham số chọn bằng 0.1.
- Các dòng thứ tư, năm và sáu là kết quả tương ứng với toán tử SBX mà
tham số được tính lần lượt theo các công thức (2.7), (2.8) và (2.9) với
các tham số là = 0.07 và = 25.
Bảng 2.8. Kết quả thử nghiệm hàm f
5
(Griewangk)
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
1 18.534 18.534 18.534 18.534 18.534 18.534 18.534 18.534 18.534 18.534
2 5.8434 5.8314 5.8314 5.8314 5.8314 5.8314 5.8314 5.8314 5.8314 5.8314
3 15.307 7.9454 3.5889 1.9034 0.75165 0.25695 0.11711 0.06927 0.0351 0.02078
4 0.72336 0.20178 0.15249 0.10969 0.10667 0.10507 0.10505 0.10503 0.10477 0.10476
5 0.5911 0.11398 0.02912 0.01688 0.01289 0.01078 0.01038 0.01034 0.01013 0.01011
6 0.75766 0.0471 0.00187 9.57E-05 6.02E-06 3.68E-07 1.45E-08 1.02E-09 7.10E-11 3.52E-12
Từ các kết quả thử nghiệm, có một số nhận xét như sau:
- Các toán tử lai ghép kinh điển như lai ghép mặt nạ, BLX- thường chỉ có
tác dụng đối với số lần lặp nhỏ, với số lần tạo sinh lớn thì không tìm được
17
cá thể tốt hơn (xem cột thứ nhất trong các bảng ứng với lần lặp thứ 1000
và cột cuối ứng với lần lặp thứ 10000). Trong khi toán tử SBX với cách
chọn tham số điều khiển như nêu trên thì vẫn tạo được các cá thể tốt hơn

nếu tiếp tục tăng số lần tạo sinh.
- Khi tiến hành thử nghiệm tác động của kích cỡ quần thể đối với toán tử
SBX sử dụng các phân phối xác suất nêu trên, kết quả là SBX với phân
phối mũ trong hầu hết các hàm thử nghiệm đều cho kết quả tốt nhất khi
kích cỡ quần thể khoảng 20 đến 30 cá thể. Giá trị này không phụ thuộc
vào số lần lặp như các dạng lai ghép kinh điển khác.
- Khi tiến hành thử nghiệm cùng các hàm trên với miền xác định của mỗi
biến không đối xứng như trường hợp trên và lời giải đúng không nằm giữa
mà gần biên của miền xác định (chẳng hạn -1 x
i
12 với mọi i) thì kết
quả cũng không biến động mấy so với các bảng đã trình bày ở trên. Nói
chung biến đổi theo phân phối mũ vẫn cho kết quả tốt nhất.
2.4. CƠ CẤU LỰA CHỌN THÍCH NGHI TOÁN TỬ LAI GHÉP
Phần này đề xuất một cơ cấu lựa chọn thích nghi toán tử lai ghép thích
hợp ngay trong quá trình tiến hóa. Để tiện việc trình bày, ta xem xét trường
hợp sử dụng hai toán tử lai ghép. Với hai toán tử lai ghép đã được thiết kế
trước, tại mỗi lần lặp, thuật toán sẽ quyết định sử dụng toán tử nào phụ thuộc
vào tỷ lệ áp dụng thành công của toán tử đó. Ký hiệu LG1 và LG2 là hai toán
tử lai ghép,
apply
LG
P
1

apply
LG
P
2
là xác suất áp dụng LG1 hay LG2, các giá trị này

được tính bởi :
)(
21
1
1
success
LG
success
LG
success
LG
apply
LG
PP
P
P
+
=
(2.10)
apply
LG
apply
LG
PP
12
1−=
(2.11)
18
trong đó
success

LG
P
1

success
LG
P
2
là tỷ lệ để toán tử lai ghép tương ứng tạo được con
tốt hơn cha mẹ trong lần áp dụng cuối cùng của LG1 hay LG2 tương ứng.
Thuật toán đề xuất tạm gọi là OAGA (Operator Adaptive Genetic
Algorithm) được mô tả như sau:
Input : Quần thể có m cá thể được khởi tạo ngẫu nhiên.
Output : Cá thể có độ thích nghi (theo giá trị hàm mục tiêu F) cao nhất.
Algorithm:
B1) Tạo sinh quần thể ban đầu:
Tạo ngẫu nhiên m véc tơ thực (mỗi véc tơ ứng với một cá thể).
Khởi tạo
apply
LG
P
1
bởi người sử dụng. Đặt
apply
LG
apply
LG
PP
12
1−=

B2) Khởi tạo các tham số
Các tham số N
1
; N
2
; TC
1
và TC
2
khởi tạo bằng 0. (N
1
, N
2
đếm số lần thực
hiện toán tử LG1 hay LG2. TC
1
và TC
2
đếm số lần LG1 hay LG2 tạo được
con tốt hơn cha mẹ).
B3) Tạo sinh
Chọn cá thể cha mẹ: Chọn một cặp cá thể Parent1 và Parent2 ngẫu
nhiên từ quần thể hiện tại.
Sinh cá thể con:
- Chọn LG1 hay LG2 theo xác suất
apply
LG
P
1


apply
LG
P
1
. Ký hiệu toán tử
được chọn là LG.
- Áp dụng toán tử LG trên Parent1 và Parent2 tạo ra hai con Child1 và
Child2.
- N
i
= N
i
+ 1 (trong đó N
i
tương ứng LG)
Chọn cá thể sống sót:
19
Chọn hai cá thể từ quần thể chứa cả cha mẹ và các con của chúng như
sau: cá thể thứ nhất là cá thể có độ thích nghi cao nhất, cá thể thứ hai được
chọn từ các cá thể còn lại theo cách chọn tỷ lệ.
Thay thế hai cha mẹ bởi hai cá thể vừa chọn.
Nếu có con tốt hơn cả hai cha mẹ thì TC
i
= TC
i
+1 (TC
i
tương ứng với
toán tử LG đã chọn).
B4) Tính lại xác suất chọn toán tử

apply
LG
P
1
,
apply
LG
P
2
theo (2.10) và (2.11) trong đó
success
LG
P
1
= TC
1
/N
1
;
success
LG
P
2
= TC
2
/N
2
B5) Lặp lại từ bước 2 đến bước 4 khi điều kiện dừng chưa thoả. Cá thể có giá
trị hàm mục tiêu tốt nhất trong quần thể cuối cùng là cá thể cần tìm.
Trong luận án cũng trình bày một phương pháp khác cho phép chọn nhiều

toán tử trong quá trình thực hiện giải thuật. Dưới đây đưa ra kết quả thử
nghiệm với một bài toán cụ thể.
Bài toán 2.4.4. Min

=
+=
n
i
iin
xxnxxxf
1
21
))||sin(*(*9828.418), ,,(
với n = 30; -500 x
i
500 với i = 1, ,30
Bảng 2.12 Kết quả thử nghiệm bài toán 2.4.4
Lần
chạy
Cá thể tốt
nhất khởi tạo
Cá thể tốt
nhất khi lai
BLX-0.5
Cá thể tốt
nhất khi lai
mặt nạ
Cá thể tốt nhất theo
cơ chế chọn thích
nghi

1 10500.48774 2787.67522 2069.80611 270.14869
2 10285.84499 5715.07773 2075.52312 27.92845
3 9937.92722 7252.29452 2581.90905 92.30387
4 10815.51780 5161.55513 2482.93591 8.60257
5 10630.67775 6420.70504 1710.45171 63.64511
2.5 TÍCH HỢP MỘT SỐ DẠNG TÍNH TOÁN TIẾN HÓA
20
Một trong những hướng phát triển các kỹ thuật tính toán mềm là xây
dựng những hệ thống lai, kết hợp các điểm mạnh của từng kỹ thuật trong một
hệ thống.
Dựa trên nhận xét trên, tác giả đề xuất giải thuật như sau tạm gọi là
BEA (Blend Evolutionary Algorithm):
Bước 1) Khởi tạo quần thể ban đầu gồm M cá thể P = {X
1
, X
2
, , X
M
}
Khởi tạo các tham số ban đầu: T
o
, T
dong
(nhiệt độ ban đầu và độ đông)
k = 1; T
k
= T
o
.
Bước 2) Tạo quần thể trung gian Q gồm quần thể ban đầu và M cá thể mới

bằng cách:
- Chọn ngẫu nhiên một cặp cha mẹ.
- Thực hiện toán tử lai ghép, tạo thêm hai cá thể mới đưa vào Q.
Quá trình này tiến hành (M div 2) lần.
Bước 3) Với mỗi cá thể của quần thể trung gian Q, thực hiện toán tử sinh cá
thể mới theo phương pháp của SA:
- Child(i) = generate(X
i
, T
k
).
- Nếu Child(i) tốt hơn X
i
thì thay X
i
bởi Child(i).
Bước 4) Trong Q chọn (m-1) cá thể tốt nhất; cá thể thứ m được chọn theo
cách chọn tỷ lệ trong các cá thể còn lại đưa vào quần thể thế hệ kế tiếp.
T
k+1
= Update(T
k
). {cập nhật lại nhiệt độ}
k = k+1.
Bước 5) Nếu T
k
< T
dong
hoặc số lần lặp đủ lớn thì chuyển sang Bước 6, còn
nếu không quay lại Bước 2.

Bước 6) Cá thể tốt nhất trong quần thể cuối cùng là lời giải cần tìm.
Chương trình thử nghiệm được tiến hành trên một số hàm benchmark.
Kết quả thực hiện được cho trong bảng 2.15.
Bảng 2.15 Kết quả thử nghiệm giải thuật tích hợp BEA
Hàm
Giải thuật
BEA
Giải thuật
(1+1)ES
Giải thuật
SA
Giải thuật
RCGA
21
(1) (2) (3) (4) (5)
f
1
49.32 6002.1 4718.2 96.26
f
2
488.38 10653.4 4447.7 4396.1
f
3
5.69 4.01E+11 5.51E+10 11.36
f
4
293.54 1.97E+05 1.29E+05 328.02
f
5
-9514.9 -2389 -3770.4 -2683.4

f
6
37.51 410.86 401.08 174.16
Rõ ràng thuật toán mới cho kết quả tốt hơn các thuật toán sử dụng
riêng lẻ. Mặt khác, tư tưởng chính của thuật toán là sử dụng cả hai toán tử di
truyền nhằm tăng tính đa dạng của quần thể. Điều này cũng cho thấy trong
các thuật toán tiến hoá, tính đa dạng của quần thể có một vai trò quan trọng.
Chương 3
MỘT SỐ ỨNG DỤNG TRONG
BÀI TOÁN TỐI ƯU ĐA MỤC TIÊU
Chương này trình bày một ứng dụng cụ thể của giải thuật di truyền
trong lĩnh vực khí tượng thủy văn. Phần đầu của chương này dành để giới
thiệu vắn tắt giải thuật di truyền đa mục tiêu. Phần kế tiếp trình bày các thuật
toán đề xuất và kết quả thực nghiệm giải một số bài toán trong khí tượng thủy
văn là bài toán thiết kế hồ chứa nước (Rei-Vemuri), bài toán phân bố dòng
chảy và bài toán bốn hồ chứa.
3.1. GIẢI THUẬT DI TRUYỀN ĐA MỤC TIÊU
Phần này trình bày những vấn đề cơ bản của bài toán tối ưu đa mục
tiêu và giải thuật di truyền đa mục tiêu dựa trên xếp hạng không trội các cá
thể.
3.2. TỐI ƯU ĐA MỤC TIÊU SỬ DỤNG TÀI NGUYÊN NƯỚC
Sau đây sẽ trình bày một số bài toán cụ thể trong lĩnh vực này.
22
3.2.1. Bài toán Reid-Vemuri
Phát biểu bài toán: Cần thiết kế hồ chứa nước với thời gian lao động x
1
và bán kính mặt nước là x
2
. Ba vấn đề (mục tiêu) cần quan tâm là:
Tổng giá thành công trình f

1
(x
1
, x
2
) tính theo công thức:
f
1
(x
1
, x
2
) = e
0.01*x1
* x
1
0.02
* x
2
2
(3.8)
Lượng tổn thất bay hơi f
2
(x
2
) tính theo công thức:
f
2
(x
2

) = 0.5 * x
2
2
(3.9)
Dung tích hồ chứa f
3
(x
1
, x
2
) tính theo công thức:
f
3
(x
1
, x
2
) = e
0.005*x1
* x
1
0.01
* x
2
2
(3.10)
Cần tính các giá trị x
1
và x
2

sao cho tổng giá thành đầu tư nhỏ nhất, tổn
thất bay hơi nhỏ nhất và dung tích hồ chứa lớn nhất. Nghĩa là ta có bài toán:
min f
1
(x
1
, x
2
) ;
min f
2
(x
2
) ;
max f
3
(x
1
, x
2
) ;
với các điều kiện: 50 x
1
250; 1 x
2
50
Bài toán trên có giá trị trung bình chấp nhận được của mỗi hàm mục
tiêu xấp xỉ là f
1
= 5000; f

2
= 423; f
3
= 1973.
Lời giải đã biết của bài toán này là: x
1
= 200; x
2
= 26.24; giá trị các
hàm mục tiêu tương ứng là f
1
= 5656.36; f
2
= 344.27; f
3
= 1973.
Ta tiến hành giải bài toán như sau:
a) Sử dụng phương pháp vét cạn:
Tiến hành chạy chương trình với các mục tiêu cần đạt cho trước là
A = 4800; B = 400; C = 2000 (các giá trị này đều chọn “tốt hơn” giá trị trung
bình cần đạt) và ngưỡng sai số đối với mỗi hàm mục tiêu đều là 40. Với độ
chính xác của lời giải là 0.1, các lời giải cho cả ba mục tiêu nằm trong
ngưỡng sai số cho phép được ghi lại để theo dõi, chương trình chạy mất 3.9
giây, có 191 lời giải nằm trong ngưỡng. Lời giải có sai số tổng cộng nhỏ nhất
23
thu được là 21.42 với các giá trị cụ thể: x
1
= 165.4; x
2
= 28.8; giá trị các hàm

mục tiêu tương ứng là f
1
= 4802.6; f
2
= 414.72; f
3
= 1995.9.
b) Sử dụng giải thuật di truyền với toán tử lai ghép SBX và phân phối mũ:
Sử dụng giải thuật di truyền, chương trình tiến hành khởi tạo ngẫu
nhiên quần thể gồm 30 cá thể và thực hiện 500 lần tạo sinh, chỉ dùng toán tử
lai ghép SBX như đã nêu trên. Kết quả chạy chương trình mất 0.26 giây, lời
giải tốt nhất thu được có tổng sai số 16.698 so với mục tiêu cần đạt. Bảng 3.2
cho một số lời giải cụ thể theo cách này.
Bảng 3.2 Một số lời giải bằng giải thuật di truyền
x
1
x
2
f
1
f
2
f
3
164.91 28.864 4800.1 416.56 1999.8
165 28.85 4800 416.17 1998.8
164.91 28.873 4803.3 416.84 2001.1
Các kết quả trên được đánh giá tốt hơn kết quả đã biết.
3.2.2. Bài toán phân bố dòng chảy
Một hệ thống gồm một hồ chứa và có N đối tượng sử dụng nước, đồng

thời lại thải nước ở hạ lưu. Hồ chứa với dung tích S có tác dụng cấp nước và
thông rửa dòng chảy ở hạ lưu.
Giả sử các biến quyết định x
i
(i=1,2,…,N) là lượng chất thải phải xử lý
cần thỏa mãn điều kiện 0.45 x
i
0.99. Gọi y là lượng nước cần thông rửa
mà hồ chứa sẽ cung cấp cho hệ thống. Khi đó các mục tiêu cần đạt được là:
1) Cực tiểu hóa giá thành xử lý nước thải
2) Cực đại hóa lượng nước trữ trong hồ chứa.
3) Cực tiểu hóa nồng độ nhiễm bẩn ở dòng chảy.
Tổng giá thành xử lý nước thải f
1
được tính theo công thức:
24

=
−+++=
N
i
i
xqqf
1
2
111
))45.0(*)*7.2557.640(*7.268.160(
(3.11)
trong đó q
i

là lượng nước thải của đối tượng thứ i.
Lượng nước trữ trong hồ chứa tính bởi
f
2
= S – y, (3.12)
Nồng độ ô xy trong nước ở dòng chảy tại bất kỳ điểm nào tính bởi:
ybbc
cbybaxa
f
N
i
N
i
iii
*)(
))(**45.0)45.0(*(
222
1 1
111
3
−−
−+++−
=
∑ ∑
= =
(3.13)
trong đó các a
i
(i=1,…,N), b
1

, b
2
, c
1
, c
2
là các tham số được xác định
tùy thuộc vào vị trí và điều kiện cụ thể của dòng chảy. Giá trị các biến x
i
và y
cần thỏa mãn: 0.45 x
i
0.99 (i=1, …, N) và 0 y S = 3.47.
Kết quả đã biết của bài toán này là:
X=(0.52,0.45,0.7,0.518,0.642,0.542,0.58,0.83,0.51,0.85,0.61,0.65,0.53,0.71,
0.861) và y=0.178; với giá trị các hàm mục tiêu tương ứng là
f
1
= 6422.7; f
2
= 3.292; f
3
= 6.233.
Một số phương pháp giải bài toán này đã được đề xuất như sau:
1) Cho trước các giá trị cần đạt được ứng với từng mục tiêu, thuật toán
cho phép tìm các nghiệm mà giá trị hàm mục tiêu tương ứng gần nhất
với các giá trị này với thời gian rất ngắn.
2) Thuật toán có thể tự ước lượng giá trị căn cứ vào các hàm mục tiêu và
quần thể khởi tạo, sau đó trong quá trình tiến hóa, các giá trị này được
định kỳ cập nhật lại.

3) Tự động khởi tạo (hoặc cho trước) các giá trị mục tiêu, trong quá trình
tiến hóa, tại mỗi giai đoạn cập nhật lại giá trị mục tiêu tốt nhất ứng với
từng hàm mục tiêu.
25
Kết quả thực hiện mỗi thuật toán này được cho trong các bảng 3.4; 3.5;
3.6 với các giá trị mục tiêu cho trước là MT
1
= 6300; MT
2
= 3.35; MT
3
= 6.5.
Dưới đây chỉ nêu ra một bảng 3.5 sử dụng thuật toán BEA đã nêu trong
chương 2 và theo phương pháp tự xác định giá trị mục tiêu.
Bảng 3.5 Một số lời giải theo thuật toán tự xác định giá trị mục tiêu
X
1
X
2
X
3
X
4
X
5
f
1
6374.4 6336.8 6289 6428.1 6437.8
f
2

3.3197 3.3232 3.3391 3.3594 3.4156
f
3
6.2554 6.2289 6.2343 6.2511 6.2301
Rõ ràng so với các kết quả đã biết thì các lời giải này đều tốt hơn.
3.2.3. Bài toán bốn hồ chứa
Giả sử có bốn hồ chứa nước S
i
(i=1 4) với mục đích sản xuất điện và
tưới tiêu ở hạ lưu. Lợi ích của toàn hệ thống được tính như sau:
∑∑∑∑
=== =
++=
4
1
12
1
45
4
1
12
1
)),13(()().()().(
i
iii
ki k
ii
dsgkukbkukbB
(3.21)
Giả sử các dòng chảy đến S

1
và S
2
là q
1
= 2 và q
2
= 3 không đổi. Dung
lượng các hồ chứa cần thoả: 0 < S
i
< 10 (i=1,2,3), 0 < S
4
< 15 (3.16); Điều
kiện ban đầu của hệ thống là S
1
= S
2
= S
3
= S
4
= 5 (3.17); các biến u
i
cần thoả
0 < u
1
< 3; 0 < u
2
, u
3

< 4; 0 < u
4
< 7 (3.18)
Bài toán đặt ra là điều khiển các u
i
(i = 1, 2, 3, 4) để tổng lợi ích thu
được theo công thức (3.21) đạt giá trị cực đại, đồng thời tại thời điểm k = 13
hệ thống cần thỏa mãn điều kiện S
1
= S
2
= S
3
= 5; S
4
= 7 (3.19). Phương trình
cân bằng của hệ thống tại thời điểm (k+1) có thể tính bởi công thức (3.20):
S
1
(k+1) = S
1
(k) + q
1
– u
1
(k)
S
2
(k+1) = S
2

(k) + q
2
– u
2
(k)
S
3
(k+1) = S
3
(k) + u
2
(k) – u
3
(k)

×