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

Tính toán cân bằng khối lượng cơ cấu phẳng bằng 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 (1.52 MB, 131 trang )

HOÀNG XUÂN KHOA

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
NGÀNH: CƠ HỌC KỸ THUẬT

CƠ HỌC KỸ THUẬT

TÍNH TỐN CÂN BẰNG KHỐI LƯỢNG CƠ CẤU
PHẲNG BẰNG THUẬT GIẢI DI TRUYỀN

HOÀNG XUÂN KHOA

2005-2007
Hà Nội
2007

HÀ NỘI 2007


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
TÍNH TỐN CÂN BẰNG KHỐI LƯỢNG CƠ CẤU PHẲNG
BẰNG THUẬT GIẢI DI TRUYỀN


NGÀNH: CƠ HỌC KỸ THUẬT
MÃ SỐ: 62.52 02 01

HOÀNG XUÂN KHOA

Người hướng dẫn khoa học: GS. TSKH. NGUYỄN VĂN KHANG

HÀ NỘI 2007


MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................... 4
Chương I......................................................................................................................... 6
THUẬT GIẢI DI TRUYỀN .......................................................................................... 6
1.1. Giới thiệu ............................................................................................................. 6
1.2. Cấu trúc của thuật giải di truyền.......................................................................... 6
1.3 Thuật giải di truyền - cơ chế thực hiện............................................................... 11
Chương II: .................................................................................................................... 36
CẦN BẰNG KHỐI LƯỢNG CƠ CẤU....................................................................... 36
2.1 Thu gọn hệ lực quán tính của hệ nhiều vật rắn................................................... 36
2.2 Các điều kiện cân bằng khối lượng của cơ cấu dưới dạng vi phân .................... 38
2.2.1 Định nghĩa về cân bằng khối lượng ............................................................. 38
2.2.2 Điều kiện cân bằng tổng quát....................................................................... 38
2.2.3 Điều kiện cân bằng khối lượng của cơ cấu phẳng một bậc tự do ................ 39
2.2.4 Điều kiện cân bằng khối lượng của cơ cấu phẳng nhiều bậc tự do ............. 41
2.3 Biến đổi các điều kiện cân bằng khối lượng của cơ cấu về dạng đại số ............ 42
2.3.1 Các tọa độ suy rộng dư tối thiểu .................................................................. 42
2.3.2Cơ cấu phẳng................................................................................................. 43
2.4 Thiết lập các điều kiện cân bằng khối lượng cho một số cơ cấu phẳng............. 51
2.4.1 Thiết lập các điều kiện cân bằng khối lượng cho cơ cấu 4 khâu phẳng ...... 51

2.4.2 Cơ cấu năm khâu phẳng ............................................................................... 71
CHƯƠNG III................................................................................................................ 86
ÁP DỤNG THUẬT GIẢI DI TRUYỀN TÍNH TỐN............................................... 86
CÂN BẰNG KHỐI LƯỢNG CỦA CƠ CẤU ............................................................. 86
KẾT LUẬN .................................................................................................................. 94
TÀI LIỆU THAM KHẢO............................................................................................ 95
PHỤ LỤC..................................................................................................................... 98

1


DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ CÁI VIẾT TẮT
Thuật giải di truyền (Genetic Algorithms)

GA

Véc tơ đại số, ma trận

p, A, z, v, w,…

Khối lượng các khâu

mi (Kg)

Véc tơ lực qn tính chính

F*

Véc tơ mơmen lực qn tính chính


M*O

Tọa độ khối tâm của khâu (hệ tọa độ động ξ Si , ηSi , ς Si
gắn với khâu đó)
Các tọa độ khối tâm của khâu ( hệ tọa độ cố xSi, ySi, zSi
định)
Ma trận tenxơ quán tính của khâu thứ i

Ii

Véc tơ hình học

→ → →

p , l , v ,...

Vận tốc khối tâm của khâu

.

.

.

x Si , y Si , z Si

2


DANH MỤC CÁC HÌNH VẼ

Hình 1.1

Đồ thị hàm f (x ) = x × sin (10πx ) + 1

Hình 1.2

Hình 2 Đồ thị hàm
f (x1 , x 2 ) = 21.5 + x1 sin (4πx1 ) + x 2 sin (20πx 2 )

Hình 2.1

Định nghĩa các hệ tọa độ tại khâu thứ i của cơ cấu
khơng gian

Hình 2.2

Các hệ tọa độ tại khâu thứ i của cơ cấu phẳng

Hình 2.3

Sơ đồ động học và các hệ tọa độ của cơ cấu 4 khâu

Hình 2.4

Cân bằng mơ men lực qn tính cơ cấu 4 khâu

Hình 2.5

Cơ cấu năm khâu phẳng


3


LỜI NÓI ĐẦU
Các khái niệm cân bằng động lực thường được hiểu theo nghĩa làm giảm
tác dụng xác định nào đó của lực khối lượng (lực qn tính, mơmen lực quán
tính) của các khâu hoặc làm giảm tác dụng xác định nào đó của các lực cơng
nghệ biến đổi. Bài toán cân bằng động lực đã được đề cập đến trong nhiều sách
về động lực học máy [2] và lý thuyết cơ cấu [7], [8].
Cân bằng khối lượng (hoặc cân bằng lực qn tính chính và mơmen qn
tính) là các biện pháp nhằm mục đích làm tối thiểu lực quán tính chính và
mơmen chính lực qn tính của cơ cấu tác dụng lên giá đỡ. Bài toán này bao
gồm cả việc làm triệt tiêu các điều hòa của lực khối lượng hoặc giữ cho khối tâm
chung của cớ cấu đứng n.
Thuật tốn di truyền hình thành dựa trên quan niệm cho rằng, q trình
tiến hóa tự nhiên là q trình hồn hảo nhất, hợp lý nhất, và tự nó đã mang tính
tối ưu. Quan niệm này có thể được xem là một tiên đề đúng, không chứng minh
được, nhưng phù hợp với thực tế khách quan. Q trình tiến hóa thể hiện tính tối
ưu ở chỗ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ
trước. Cá thể nào khơng thích ứng được với môi trường sẽ bị đào thải.
Luận án này đã áp dụng thuật toán di truyền để tối ưu các điều kiện cân
bằng khối lượng của bài toán.
Tương ứng với chủ đề nêu ở trên, luận án này được chia làm ba chương và
một phụ lục. Chương một tìm hiểu về thuật toán di truyền, chương hai xây dựng
điều kiện cân bằng khối lượng của cơ cấu phẳng và cuối cùng chương ba ứng
dụng thuật toán di truyền cho bài toán cân bằng khối lượng cơ cấu phẳng.
Do thuật toán di truyền còn khá mới mẻ, và đặc biệt ở Việt Nam các tài
liệu chỉ viết dưới dạng minh họa thuật tốn, nhưng chưa được cài đặt nên cơng
việc tiếp cận ban đầu gặp nhiều khó khăn, đặc biệt trong quá trình triển khai cài
đặt thuật giải. Tuy nhiên được sự chỉ bảo tận tình của GS Nguyễn Văn Khang,

tơi đã hồn thành luận án này. Tơi xin trân thành gửi lời cảm ơn tới giáo sư và

4


các thầy cô giáo trong bộ môn đã giúp đỡ tôi về chuyên môn trong suốt thời gian
học tập cao học và giúp đỡ tơi hồn thành luận văn này

5


Chương I
THUẬT GIẢI DI TRUYỀN
1.1. Giới thiệu
Trong thực tiễn có nhiều bài tốn tối ưu quan trọng địi hỏi những thuật

giải chất lượng cao. Nói chung bài tốn tối ưu có thể được xem như bài tốn tìm
kiếm giải pháp (tốt nhất) trong không gian (vô cùng lớn) các giải pháp. Khi
khơng gian tìm kiếm nhỏ, các phương pháp cổ điển cũng đủ thích hợp, nhưng
khi khơng gian tìm kiếm lớn cần phải dùng đến kỹ thuật mới. Thuật giải di
truyền (GA: Genetic Algorithm) là một trong những kỹ thuật đó. GA là một loại
thuật tốn mơ phỏng các hiện tượng tự nhiên: kế thừa và đấu tranh sinh tồn để
cải tiến lời giải và khảo sát không gian lời giải.
Thực ra GA thuộc lớp các thuật giải xác suất, nhưng lại rất khác những
thuật giải ngẫu nhiên vì chúng kết hợp các phần tử tìm kiếm trực tiếp và ngẫu
nhiên. Khác biệt quan trọng giữa tìm kiếm của GA và các phương pháp tìm kiếm
khác là GA duy trì và xử lý một tập các lời giải (ta gọi là một quần thể) – tất cả
những phương pháp khác chỉ xử lý một điểm trong khơng gian tìm kiếm. Chính
vì thế GA mạnh hơn các phương pháp tìm kiếm hiện có rất nhiều.
Thuật giải di truyền do D.E Goldberg đề xuất, được L.David và

Michaleviz phát triển. Đây là thuật tốn sẽ được trình bày chi tiết trong chương
này.
1.2. Cấu trúc của thuật giải di truyền
Thuật giải di truyền sử dụng các thuật ngữ vay mượn của di truyền học. Ta

có thể nói về các cá thể (hay kiểu gen, cấu trúc) trong một quần thể, những cá thể
này cũng còn được gọi là chuỗi hay các nhiễm sắc thể. Điều này có thể gây chút

6


lẫn lộn: mỗi tế bào của một cơ thể của một chủng loại đã cho, mang một số
những nhiễm sắc thể nào đó (thí dụ, người có 46 nhiễm sắc thể) nhưng trong
thuật giải di truyền, ta chỉ có thể nói về những cá thể có một nhiễm sắc thể. Các
nhiễm sắc thể được tạo thành từ các đơn vị – các gen – biểu diễn trong một chuỗi
tuyến tính, mỗi gen kiểm soát một (số) đặc trưng. Gen với những đặc trưng nhất
định có vị trí nhất định trong nhiễm sắc thể. Bất cứ đặc trưng nào của mỗi cá thể
có thể tự biểu hiện một cách phân biệt và gen có thể nhận một số giá trị khác
nhau (các giá trị về tính năng).
Mỗi kiểu (nhóm) gen (ta gọi là nhiễm sắc thể) sẽ biểu diễn một lời giải của
bài toán đang giải (ý nghĩa của một nhiễm sắc thể cụ thể được người sử dụng xác
định trước), một tiến trình tiến hóa được thực hiện trêm một quần thể các nhiễm
sắc thể tương ứng với một quá trình tìm kiếm lời giải trong khơng gian lời giải.
Tìm kiếm đó cần cân đối hai mục tiêu: khai thác những lời giải tốt nhất và khảo
sát khơng gian tìm kiếm.
Thuật giải di truyền cũng như các thuật toán tiến hóa nói chung, hình
thành trên quan niệm cho rằng q trình tiến hóa tự nhiên là q trình hồn hảo
nhất, hợp lý nhất và tự nó đã mang tính tối ưu. Quan niệm này có thể xem như
một tiên đề đúng không chưng minh được nhưng phù hợp với thực tế khách
quan. Q trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt

hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước. Tiến hóa tự nhiên được duy trì
nhờ 2 q trình tiến hóa cơ bản: sinh sản và chọn lọc tự nhiên. Xun suốt q
trình tiến hóa tự nhiên, các thế hệ mới luôn được sản sinh ra để bổ sung thay thế
thế hệ cũ. Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại. Cá
thể nào khơng thích ứng được với mơi trường sẽ bị đào thải. Sự thay đổi môi

7


trường là động lực thúc đẩy q trình tiến hóa. Ngược lại tiến hóa cũng tác động
trở lại góp phần làm thay đổi môi trường.
Các cá thể mới sinh ra trong q trình tiến hóa nhờ sự lai ghép ở thế hệ
cha mẹ. Một cá thể mới có thể mang những tính trạng của cha mẹ (di truyền)
cũng có thể mang những tính trạng hồn tồn mới (đột biến). Di truyền và đột
biến là hai cơ chế có vai trị quan trọng như nhau trong q trình tiến hóa, dù
rằng đột biến xảy ra với xác suất nhỏ hơn nhiều so với hiện tượng di truyền. Các
thuật tốn tiến hóa tuy có những điểm khác biệt nhưng đều mơ phỏng bốn quá
trình cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên.
Quá trình lai ghép (phép lai)

Phép lai là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm
sắc thể cha mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều)
nhiễm sắc thể cha mẹ với nhau. Phép lai xảy ra với xác xuất Pc có thể mơ phỏng
như sau:
• Chọn ngẫu nhiên hai (hay nhiều) cá thể trong quần thể. Giả sử các nhiễm
sắc thể của cha mẹ đều có m gen.
• Tạo một số ngẫu nhiên trong khoảng từ 1 đến m – 1 (gọi là điểm lai).
Điểm lai chia các chuỗi cha mẹ dài m thành hai nhóm chuỗi con dài m1, và m2.
Hai chuỗi nhiễm sắc thể con mới sẽ là m11+m22 và m21+m12
• Đưa hai cá thể mới này vào quần thể mới tiếp theo.

Quá trìn đột biến (phép đột biến)

Đột biến là hiện tượng cá thể con mang một số tính trạng khơng có trong
di truyền của cha mẹ. Phép đột biến này xảy ra với xác xuất Pm nhỏ hơn rất nhiều
so với xác xuất Pc. Phép đột biến có thể mơ phỏng như sau:
• Chọn ngẫu nhiên một các thể bất kì cha mẹ trong quần thể.

8


• Tạo một số ngẫu nhiên k trong khoảng từ 1 đến m-1, 1≤ k ≤ m
• Thay đổi gen thứ k và trả cá thể này về quần thể để tham gia q trình
tiến hóa tiếp theo.
Q trình sinh sản và chọn lọc (Phép tái sinh và phép chọn lọc)

Phép tái sinh là q trình trong đó các các thể được sao chép trên cơ sở độ
thích nghi của nó. Độ thích nghi là một hàm gán một giá trị thực cho các cá thể
trong quần thể, các độ thích nghi đều dương (trong trường hợp các độ thích nghi
âm thì ta có thể dùng một vài phép biến đổi tương ứng để định lại tỷ lệ sao cho
các độ thích nghi đều dương). Trong bài tốn tối ưu thì hàm mục tiêu thường
được dùng để tính tốn độ thích nghi cho các cá thể.
Q trình sinh sản có thể được mơ phỏng như sau:
• Tính độ thích nghi của từng cá thể trong quần thể hiện hành, lập bảng
cộng dồn các giá trị thích nghi (theo số thứ tự gán cho từng cá thể) như sau:
Giả sử quần thể có n cá thể. Gọi độ thích nghi của cá thể thứ i là Fi, tổng
i

n

j =1


j =1

dồn thứ i là Fti = ∑ Fj , tổng độ thích nghi của tồn quần thể là Fn = ∑ Fj
• Tạo một số ngẫu nhiên F trong đoạn từ 0 đến Fn
• Chọn cá thể thứ k đầu tiên thỏa mãn F ≥ Ftk đưa vào quần thể của thế hệ
mới
Phép chọn là quá trình loại bỏ các cá thể xấu trong quần thể để chỉ dữ lại
trong quần thể các cá thể tốt. Phép chọn có thể được mơ phỏng như sau:
• Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần
• Loại bỏ các cá thể cuối dãy chỉ giữ lại n cá thể tốt nhất (giả sử quần thể
có kích thước cố định n)
Thuật giải di truyền giải một bài tốn phải có năm thành phần sau đây:

9


• Một cấu trúc dữ liệu I biểu diễn không gian lời giải của bài tốn
• Phương pháp khởi tạo quần thể ban đầu P(0)
• Hàm định nghĩa độ thích nghi eval() đóng vai trị mơi trường
• Các phép tốn di truyền như đã mơ phỏng
• Các tham số thuật giải di truyền sử dụng (kích thước quần thể, xác suất
lai, đột biến,…)
Tiến trình khởi tạo quần thể ban đầu rất đơn giản: ta tạo một quần thể gồm
n cá thể (hay n nhiễm sắc thể) trong đó mỗi cá thể là một véctơ nhị phân gồm m
bít nhị phân (mỗi bít chỉ nhận một trong hai giá trị 0 và 1), tất cả m bít đều được
khởi tạo ngẫu nhiên.
Thuật giải di truyền có thể được mơ tả tóm tắt như sau:
Bắt đầu


t=0
Khởi tạo P(t)
Tính độ thích nghi cho các cá thể thuộc P(t)
Khi (điều kiện dừng chưa thỏa mãn) lặp

t = t + 1;
Tái sinh P(t) từ P(t-1)
Lai Q(t) từ P(t-1)
Đột biến R(t) từ P(t-1)
Chọn lọc P(t) từ P(t-1) ∪ Q(t) ∪ R(t) ∪ P(t)
Hết lặp
Kết thúc

10


1.3 Thuật giải di truyền - cơ chế thực hiện
Trong phần này, sẽ trình bày về cơ chế thực hiện của thuật giải di truyền

thơng qua một bài tốn tối ưu đơn giản. Ta sẽ bắt đầu thảo luận một vài ý kiến
chung trước khi đi vào chi tiết ví dụ. Khơng mất tính tổng qt, ta giả định bài
tốn tối ưu là bài tốn tìm giá trị cực đại. Bài tốn tìm giá trị cực tiểu hàm f
chính là tìm cực đại hàm g = -f.
Bây giờ giả sử ta muốn tìm cực đại của một hàm k biến f(x1,…,xk): Rk →
R Giả sử thêm là mỗi biến xi có thể nhận giá trị trong miền D = [ai, bi]⊆ R. Ta
muốn tối ưu hóa hàm f với một độ chính xác cho trước: giả sử có 6 số lẻ đối với
giá trị của các biến. Rõ ràng để đạt được độ chính xác như vậy thì các miền được
phân cắt thành (bi - ai) × 106 miền con bằng nhau. Gọi mi là số nguyên nhỏ nhất
sao cho: (bi - ai) × 106 ≤ 2 mi − 1 . Như vậy mỗi biến xi được biểu diễn bằng một
chuỗi nhị phân có chiều dài mi. Biểu diễn như trên rõ ràng thỏa mãn điều kiện về

độ chính xác u cầu. Cơng thức sau tính trị thập phân của mỗi chuỗi nhị phân
biểu diễn xi:
x i = a i + decimal(binarystring )

bi − a i
trong đó decimal(binarystring) cho
2 mi − 1

biết giá trị thập phân của mỗi chuỗi nhị phân đó.
Thí dụ ta sử dụng một véctơ nhị phân làm nhiễm sắc thể để biểu diễn các
giá trị thực của biến x nằm trong khoảng [-1, 2]. Chiều dài nhiễm sắc thể phụ
thuộc vào độ chính xác cần có, chẳng hạn cần tính chính xác đến 6 số lẻ. Miền
giá trị của x có chiều dài 2-(-1) = 3, với yêu cầu về độ chính xác 6 số lẻ như thế
thì ta phải chia khoảng [-1, 2] thành ít nhất 3 × 106 khoảng có kích thước bằng
nhau. Điều này có nghĩa là cần có 22 bít nhị phân cho véctơ nhiễm sắc thể vì:
2097152=221 < 300000< 222 = 4194304

11


Ánh xạ biến chuỗi nhị phân b21b20…b0 từ cơ số 2 sang cơ số 10 như sau:
⎛ 21

decimal(b 21b 20 ...b 0 )2 = ⎜⎜ ∑ b i 2i ⎟⎟ = x '
⎝ 0
⎠10

Tìm số thực tương ứng:
x = −1 + x '


3
2 22 − 1

với -1 là cận dưới của miền giá trị và 3 là chiều dài của miền.
Thí dụ nhiễm sắc thể (1000101110110101000111) biểu diễn số 0.637197 vì:
x ' = (1000101110 1101010001 11)2 = 228896710

và x = −1 + 2288967 ×

3
= 0.637197
4194303

Đương nhiên nhiễm sắc thể:
(0000000000000000000000) và (1111111111111111111111) biểu diễn các cận
của miền, -1 và 2 cho mỗi cận.
Bây giờ mỗi nhiễm sắc thể (là một lời giải) được biểu diễn bằng chuỗi nhị
k

phân có chiều dài m = ∑ m i , với m1 bít đầu tiên biểu diễn giá trị x1 trong
i =1

khoảng [a1, b1], m2 bít kế tiếp biểu diễn giá trị x2 trong khoảng [a2,b2],… nhóm
mk bít cuối cùng biểu diễn giá trị xk trong khoảng [ak, bk].
Để khởi tạo quần thể, chỉ cần đơn giản tạo n nhiễm sắc thể ngẫu nhiên
theo từng bít. Phần cịn lại của thuật giải di truyền rất đơn giản: Trong mỗi thế
hệ, ta lượng giá từng nhiễm sắc thể (tính giá trị hàm f trên các chuỗi biến nhị
phân đã được giải mã), chọn quần thể mới thỏa mãn phân bố xác suất dựa trên
độ thích nghi và thực hiện các phép đột biến và lai để tạo ra các cá thể thế hệ
mới. Sau một số thế hệ, khi khơng cịn cải thiện thêm được gì nữa, nhiễm sắc thể


12


tốt nhất sẽ được xem như lời giải của bài tốn tối ưu (thường là tồn cục). Thơng
thường ta cho dừng thuật giải di truyền sau một số bước lặp cố định tùy thuộc
vào tài nguyên và tốc độ máy tính.
Đối với tiến trình chọn lọc (chọn quần thể mới thỏa mãn phân bố xác suất
dựa trên độ thích nghi) ta dùng bánh xe quay Roulette (Roulette wheel selection
methods) với các rãnh được định kích thước theo độ thích nghi. Ta xây dựng
bánh xe Roulette như sau:
• Tính độ thích nghi eval( ν i ) của mỗi nhiễm sắc thể ν i , i=1…n
n

• Tính tổng giá trị thích nghi tồn quần thể F = ∑ eval(ν i )
i =1

• Tính xác suất chọn pi cho mỗi nhiễm sắc thể ν i , i=1…n: pi = eval( ν i )/F
i

• Tính vị trí xác suất qi của mỗi nhiễm sắc thể ν i , i=1…n: q i = ∑ Pj
j =1

Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Roulette n lần,
mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể mới theo
cách sau:
• Tạo một số ngẫu nhiên r có phân bố đều trong khoảng [0, 1]
• Nếu r < qi thì chọn nhiễm sắc thể đầu tiên ν1 , ngược lại thì chọn nhiễm
sắc thể thứ i, ν i ( 2 ≤ i ≤ n ) sao cho qi-1 < r < qi
Hiển nhiên có thể sẽ có một số nhiễm sắc thể được chọn nhiều lần. Các

nhiễm sắc thể tốt nhất có nhiều bản sao hơn, các nhiễm sắc thể trung bình khơng
thay đổi, các nhiễm sắc thể kém nhất thì chết đi.
Bây giờ có thể áp dụng phép toán di truyền: kết hợp, lai tạo và đột biến
vào các cá thể trong quần thể mới, vừa được chọn từ quần thể cũ như trên. Một
trong những tham số của hệ di truyền là xác suất lai tạo pc. Xác suất này cho ta

13


số nhiễm sắc thể n × pc mong đợi, các nhiễm sắc thể này được dùng trong tác vụ
lai tạo. Ta tiến hành theo cách sau đây. Đối với nhiễm sắc thể trong quần thể
mới:
• Tạo một số ngẫu nhiên r có phân bố đều trong khoảng [0, 1]
• Nếu r < pc thì chọn nhiễm sắc thể đó để lai tạo
Bây giờ ta ghép đôi các nhiễm sắc thể đã chọn được một cách ngẫu nhiên
đối với mỗi cặp nhiễm sắc thể được ghép đôi, ta tạo một số ngẫu nhiên pos trong
khoảng [1, m-1] (m là tổng chiều dài, số bít của một nhiễm sắc thể). Số pos cho
biết vị trí của điểm lai. Hai nhiễm sắc thể:
b1b2…bposbpos+1…bm và c1c2…cposcpos+1…cm được thay bằng một cặp con
của chúng
b1b2…bposcpos+1…cm và c1c2…cposbpos+1…bm.
Phép toán kế tiếp, đột biến được thực hiện trên cơ sở từng bít. Một tham
số khác của hệ thống di truyền pm cho ta số bít đột biến pm × m × pop – size mong
đợi. Mỗi bít (trong tất cả các nhiễm sắc thể trong quần thể) có cơ hội bị đột biến
như nhau nghĩa là đổi từ 0 thành 1 hoặc ngược lại. Vì thế ta tiến hành theo cách
sau đây:
Đối với mỗi nhiễm sắc thể trong quần thể hiện hành (nghĩa là sau khi lai)
và đối với mỗi bít trong nhiễm sắc thể:
• Tạo một số ngẫu nhiên r có phân bố đều trong khoảng [0, 1]
• Nếu r < pm hãy đột biến bít đó

Sau quá trình chọn lọc, lai tạo và đột biến, ta tiến hành đánh giá quần thể
mới, tức là tính độ thích nghi cho các cá thể trong quần thể mới. Đánh giá này
được dùng để xây dựng phân bố xác suất (cho tiến trình chọn lọc kế tiếp), nghĩa
là để xây dựng lại bánh xe Roulette với các rãnh được xác định kích thước theo

14


giá trị thích nghi hiện hành. Phần cịn lại của tiến hóa chỉ là lặp lại chu trình của
những bước trên.
Tồn bộ tiến trình sẽ được minh họa trong một số ví dụ sau.
A) Tối ưu hàm một biến

Xét bài tốn tối ưu khơng ràng buộc sau:
Max f (x ) = x × sin (10πx ) + 1.0; x ∈ [− 1;2] .

Hình 1 là đồ thị của f. Bài tốn có nghĩa là tìm x trong khoảng [-1;2] để f
có giá trị lớn nhất, nghĩa là tìm x0 sao cho:
f (x 0 ) ≥ f (x ), ∀x ∈ [− 1;2]

Hình 1 đồ thị hàm f (x ) = x × sin (10πx ) + 1
Khi đạo hàm bậc nhất bằng 0, nghĩa là,

15


f ' (x ) = sin (10πx ) + 10πx × cos(10πx ) = 0
⇔ tan g(10πx ) = −10πx

Rõ ràng là phương trình trên có vơ số lời giải,


2i − 1
+ ε i , i = 1,2,...
20
x0 = 0
xi =

xi =

2i + 1
− ε i , i = −1,−2,...
20

trong đó các số hạng ε i là các dãy số thực giảm (i = 1, 2,…và i = -1, -2,…) dần
về 0.
Cũng chú ý rằng hàm f đạt đến cực đại (cục bộ) tại điểm xi, khi i là số
nguyên lẻ, và đạt đến cực tiểu tại xi, khi i chẵn (xem hình 1.1).
Vì miền giá trị của bài tốn là [-1;2], hàm đạt cực đại tại
x19 =

37
+ ε19 = 1.85 + ε19 , ở đây f(x19) hơi lớn hơn
20

π⎞

f (1.85) = 1.85 × sin ⎜18π + ⎟ + 1.0 = 2.85
2⎠



Bây giờ ta dùng thuật giải di truyền để giải bài tốn trên, nghĩa là, tìm một điểm
trong đoạn [-1;2] sao cho f có giá trị lớn nhất. Ta sẽ lần lượt bàn về 5 thành phần
chính của thuật giải di truyền giải bài toán này.
a. Biểu diễn

Ta sử dụng một véc tơ nhi phân làm nhiễm sắc thể để biểu diễn các giá trị
thực của biến x. Chiều dài véctơ phụ thuộc vào độ chính xác cần có, trong thí dụ
này, ta tính chính xác đến 6 số lẻ.
Miền giá trị của x có chiều dài 2-(-1)=3; với yêu cầu về độ chính xác 6 số
lẻ như thế phải chia khoảng [-1;2] thành ít nhất 3 × 106 khoảng cách có kích

16


thước bằng nhau. Điều này có nghĩa là cần có 22 bít cho véctơ nhị phân (nhiễm
sắc thể):
2097152 = 2 21 < 3000000 < 2 22 = 4194304

Ánh xạ biến chuỗi nhị phân (b21b20…b0) thành số thực x trong khoảng [1;2] được thực hiện qua hai bước sau:
• Đổi chuỗi nhị phân (b21b20…b0) từ cơ số 2 sang cơ số 10:

( b 21b 20 ...b 0 )2 = ⎛⎜⎜ ∑ b i 2i ⎞⎟⎟
21



0

⎠10


= x'

• Tìm số thực tương ứng
x = −1 + x '

3
2 22 − 1

với -1 là cận dưới của miền giá trị và 3 là chiều dài của miền.
Thí dụ nhiễm sắc thể (1000101110110101000111) biểu diễn số 0.637197 vì:
x ' = (1000101110 1101010001 11)2 = 228896710

và x = −1 + 2288967 ×

3
= 0.637197
4194303

Đương nhiên nhiễm sắc thể:
(0000000000000000000000) và (1111111111111111111111) biểu diễn các cận
của miền, -1 và 2 cho mỗi cận.
b. Khởi tạo quần thể

Tiến trình khởi tạo rất đơn giản: Ta tạo một quần thể các nhiễm sắc thể,
trong đó mỗi nhiễm sắc thể là một véctơ nhị phân 22 bít, tất cả 22 bít của mỗi
nhiễm sắc thể đều được khởi tạo ngẫu nhiên.
c. Hàm lượng giá

Hàm lượng giá eval của các véctơ nhị phân ν chính là hàm f:


17


eval(ν ) = f (x )
trong đó nhiễm sắc thể ν biểu diễn giá trị thực x như đã nói ở trên, hàm lượng
giá đóng vai trị mơi trường, đánh giá từng lời giải theo độ thích nghi của chúng.
Thí dụ, 3 nhiễm sắc thể:
ν1 = (1000101110110101000111),

ν 2 = (0000001110000000010000 ),
ν 3 = (1110000000111111000101),

tương ứng với các giá trị x1 = 0.637197, x2 = -0.958973, và x3 = 1.627888. Và có
độ thích nghi tương:

eval(ν1 ) = f (x1 ) = 1.586345,

eval(ν 2 ) = f (x 2 ) = 0.078878
eval(ν 3 ) = f (x 3 ) = 2.250650

d. các phép tốn di truyền

Trong giai đoạn tiến hóa quần thể, ta có thể dùng 2 phép tốn di truyền cổ
điển: đột biến và lai
Như đã trình bày ở trên, đột biến làm thay đổi một (số) gen (các vị trí
trong một nhiễm sắc thể) với xác suất bằng tốc độ đột biến. Giả định rằng gen
thứ 5 trong nhiễm sắc thể ν 3 được chọn để đột biến. Và đột biến chính là thay
đổi giá trị gen này: 0 thành 1 và 1 thành 0. Như vậy, sau đột biến này, ν 3 sẽ là:
ν 3' = (1110100000 1111110001 01)


( )

Nhiễm sắc thể này biểu diễn giá trị x 3' = 1.721638 và f x 3' = −0.082257 .
Điều này có nghĩa là đột biến cụ thể này làm giảm khá nhiều giá trị của nhiễm
sắc thể ν 3 . Bây giờ, nếu gen thứ 10 được chọn để đột biến trong nhiễm sắc thể
ν 3 thì

18


ν 3'' = (1110000001 1111110001 01)

( )

Giá trị tương ứng x 3'' = 1.630818 và f x 3'' = 2.343555 , khá hơn giá trị
f (x 3 ) = 2.250650 .

Ta sẽ minh họa phép lai trên các nhiễm sắc thể ν 2 và ν 3 . Giả định rằng
điểm lai được chọn (ngẫu nhiên) ở vị trí thứ 6:

ν 2 = (00000 | 1110000000010000),

ν 3 = (11100 | 00000111111000101).
Hai con của kết quả lai là:
ν '2 = (00000 | 00000111111000101),
ν 3' = (11100 | 1110000000010000 ).

Các con số này có độ thích nghi:

( )

f (ν ) = f (1.666028) = 2.459245

f ν '2 = f (− 0.998113) = 0.940865
'
3

Chú ý rằng con thứ 2 thích nghi hơn cả cha lẫn mẹ của nó.
e. Các tham số

Đối với bài tốn đặc biệt này, ta đã dùng các tham số sau đây: kích thước
quần thể pop-size=50, xác suất lai tạo Pc=0.25, xác xuất đột biến pm=0.01. Xác
suât lai Pc=0.25 nghĩa là cá thể ν trong quần thể có 25% cơ hội được chọn để
thực hiện phép lai; còn xác suất đột biến pm=0.01 lại là 1% 1 bít bất kì của 1 cá
thể bất kì trong quần thể bị đột biến.
f. Các kết quả thử nghiệm

Bảng 1.1 trình bày một số kết quả hàm mục tiêu f ở một số thế hệ. Cột bên
trái cho biết thế hệ được xem xét, và cột bên phải cho biết giá trị của hàm f.
Nhiễm sắc thể tốt nhất sau 150 thế hệ là

19


ν max = (1110011010 0010000010 1) ,

tương ứng với giá trị xmax=1.850773.
Đúng như ta mong đợi, xmax=1.85+ ε , và f(xmax) lớn hơn 2.85 một chút.
Bảng 1.1 Kết quả của 150 thế hệ
Thế hệ thứ


Hàm lượng giá

1

1.441942

6

2.250003

8

2.250283

9

2.250284

10

2.250363

12

2.328077

39

2.344251


40

2.345087

51

2.738930

99

2.849246

137

2.850217

145

2.850227

B) Tối ưu hàm nhiều biến

Giả sử kích thước quần thể n=20 và các xác suất di truyền tương ứng là
Pc=0.25 và PM=0.01
Ta cần cự đại hóa hàm sau đây:
f (x1 , x 2 ) = 21.5 + x1 sin (4πx1 ) + x 2 sin (20πx 2 )

với − 3.0 ≤ x1 ≤ 12.1 và 4.1 ≤ x 2 ≤ 5.8
Đồ thị của hàm số có dạng như hình vẽ 2


20


Giả sử ta cần tính chính xác đến 4 số lẻ đối với mỗi biến. Miền của biến x1
có chiều dài 15.1, điều kiện chính xác địi hỏi đoạn [-3.0, 12.1] cần được chia
thành các khoảng có kích thước bằng nhau, ít nhất là 15.1 × 10000 khoảng. Điều
này nghĩa là cần 18 bít làm phần đầu tiên của nhiễm sắc thể vì:
217 ≤ 151000 ≤ 218

Miền của biến x2 có chiều dài 1.7, điều kiện chính xác địi hỏi đoạn [4.1,
5.8] cần được chia thành các khoảng có kích thước bằng nhau, ít nhất 1,7 × 10000
khoảng.

Hình 2 Đồ thị hàm f (x1 , x 2 ) = 21.5 + x1 sin (4πx1 ) + x 2 sin (20πx 2 )
Điều này nghĩa là cần 15 bít làm phần đầu tiên của nhiễm sắc thể vì:
214 ≤ 17000 ≤ 215

21


Chiều dài toàn bộ nhiễm sắc thể (véctơ lời giải) lúc này là m =18+15=33
bít, 18 bít đầu tiên mã hóa x1 và 15 bít cịn lại (từ 19 đến 33) mã hóa x2.
Ta hãy xét một nhiễm sắc thể làm ví dụ:
(010001001011010000111110010100010)
18 bít đầu tiên, 010001001011010000 biểu diễn
x1 = −3.0 + decimal(010001001011010000 )2 ×
= −3.0 + 70352

12.1 − (− 3.0)
218 − 1


15.1
= −3.0 + 4.0524 = 1.0524
2262143

15 bít kế tiếp 111110010100010 biểu diễn
x 2 = 4.1 + decimal(111110010100010 )2 ×
= 4.1 + 31960

5.8 − 4.1
215 − 1

1.7
= 4.1 + 1.6553 = 5.7553
32767

Như vậy nhiễm sắc thể (010001001011010000111110010100010) tương ứng với
x1 , x 2 = 1.0524,5.7553
Độ thích nghi của nhiễm sắc thể này là:
f (1.0524,5.7553) = 20.2526
Để cực đại hóa hàm f bằng thuật giải di truyền, ta tạo một quần thể có n=20
nhiễm sắc thể. Cả 33 bít trong tất cả các nhiễm sắc thể đều được khởi tạo ngẫu
nhiên.
Giả sử rằng sau tiến trình khởi tạo ta có quần thể sau đây:
ν1 = (1001101000 0000111111 1010011011 111)
ν 2 = (1110001001 0011011100 1010100011 010 )
ν 3 = (0000100000 1100100000 1010111011 101)

ν 4 = (1000110001 0110100111 1000001110 010 )


22


ν 5 = (0001110110 0101001101 0111111000 101)

ν 6 = (0001010000 1001010100 1010111111 011)
ν 7 = (0010001000 0011010111 1011011111 011)
ν 8 = (1000011000 0111010001 0110101100 111)

ν 9 = (0100000001 0110001011 0000001111 100 )
ν10 = (0000011110 0011000001 1010000111 011)
ν11 = (0110011111 1011010110 0001101111 000 )

ν12 = (1101000101 1110110100 0101010000 000 )
ν13 = (1110111110 1000100011 0000001000 110 )
ν14 = (0100100110 0000101010 0111100101 001)

ν15 = (1110111011 0111000010 0011111011 110 )
ν16 = (1100111100 0001111110 0001101001 011)
ν17 = (0110101111 1100111101 0001101111 101)

ν18 = (0111010000 0000111010 0111110101 101)
ν19 = (0001010100 1111111111 0000110001 100 )
ν 20 = (1011100101 1001111001 1000101111 110 )

Trong giai đoạn lượng giá ta giải mã từng nhiễm sắc thể và tính các giá trị
hàm thích nghi từ các giá trị (x1,x2) mới giải mã. Ta có:
eval(ν1 ) = f (6.0844,5.6522 ) = 26.0196
eval(ν 2 ) = f (10.3484,4.3802 ) = 7.5800
eval(ν 3 ) = f (− 2.5166,4.3903 ) = 19.6263


eval(ν 4 ) = f (5.2786,5.5934 ) = 17.4067
eval(ν 5 ) = f (− 2.2551,4.7344 ) = 25.3411

23


×