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

Giải thuật di truyền và ứng dụng trong bài toán tối ưu hóa khẩu phần thức ăn chăn nuôi

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 (1005.05 KB, 76 trang )
























ĐẠI HỌC THÁI NGUN
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG


LỤC TRỌNG HIẾU


GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG


TRONG BÀI TỐN TỐI ƯU HĨA KHẨU PHẦN
THỨC ĂN CHĂN NI





LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH










Thái Ngun - 2014
Số hóa bởi Trung tâm Học liệu –ĐHTN />




















ĐẠI HỌC THÁI NGUN
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG


LỤC TRỌNG HIẾU


GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG
TRONG BÀI TỐN TỐI ƯU HĨA KHẨU PHẦN
THỨC ĂN CHĂN NI

CHUN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ : 60.48.01


LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Phạm Thanh Hà





Thái Ngun – n 2014
Số hóa bởi Trung tâm Học liệu –ĐHTN />i

LỜI CẢM ƠN

Trước hết cho tơi gửi lời cảm ơn chân thành đến tồn thể các thầy cơ
giáo Viện Cơng nghệ Thơng tin, cùng tồn thể q Thầy Cơ trong trường Đại
học Cơng nghệ Thơng tin & Truyền thơng đã tận tình dạy dỗ tận tình truyền
đạt những kiến thức q báu và tạo điều kiện thuận lợi cho tơi trong suốt q
trình học tập, nghiên cứu và cho đến khi thực hiện luận văn.
Đặc biệt tơi xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo TS.Phạm
Thanh Hà, Trưởng bộ mơn Cơng nghệ phần mềm, Phó Trưởng khoa Cơng
nghệ thơng tin, Trường Đại học Giao thơng vận tải - Hà Nội đã quan tâm
hướng dẫn và đưa ra những gợi ý, góp ý, chỉnh sửa vơ cùng q báu cho tơi
trong q trình làm luận văn tốt nghiệp. Xin gửi lời tri ân nhất của tơi đối với
những điều mà Thầy đã dành cho tơi
Cuối cùng xin chân thành cảm ơn những người bạn đã giúp đỡ, chia sẽ
với tơi trong suốt q trình làm luận văn.



Thái Ngun, tháng 04 năm 2014
Học viên thực hiện


Lục Trọng Hiếu





Số hóa bởi Trung tâm Học liệu –ĐHTN />ii

LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tơi.
Các kết quả nêu trong luận văn là trung thực và chưa từng được ai cơng
bố trong bất kỳ cơng trình nào


Thái Ngun, ngày 12 tháng 04 năm 2014
Tác giả luận văn



Lục Trọng Hiếu












Số hóa bởi Trung tâm Học liệu –ĐHTN />iii


DANH MỤC BẢNG
Bảng 1.1. Minh họa q trình chọn lọc 9
Bảng 1.2. Minh họa q trình lai ghép 9
Bảng 2.1. Minh họa q trình đột biến 23
Bảng 2.2. Các vị trí đột biến 24
Bảng 3.1: Bảng dinh dưỡng tại 3 thời kỳ ni 38
Bảng 3.2. Bảng ví dụ chất dinh dưỡng cần thiết cho lợn 39
Bảng 3.3: Thành phần thức ăn thường sử dụng cho lợn 40















Số hóa bởi Trung tâm Học liệu –ĐHTN />iv

DANH MỤC HÌNH
Hình 1.1. Sơ đồ lai ghép điểm cắt 6
Hình 2.1. Minh họa bánh xe rulet 13
Hình 2.2. Biểu diễn giá trị của 29




















Số hóa bởi Trung tâm Học liệu –ĐHTN />v

MỤC LỤC
MỞ ĐẦU 1
Chương 1.CÁC KHÁI NIỆM CƠ BẢN VỀ GIẢI THUẬT DI TRUYỀN 3
1.1. Mở đầu 3
1.2. Các khái niệm cơ bản của giải thuật di truyền 4
1.2.1. Giới thiệu chung 4
1.2.2. Giải thuật di truyền đơn giản 5
Chương 2.VẤN ĐỀ BIỂU DIỄN NHIỄM SẮC THỂ TRONG GIẢI THUẬT
DI TRUYỀN 11
2.1. Phương pháp biểu diễn nhiễm sắc thể bằng mã hóa nhị phân 11

2.2. Giải thuật di truyền với biểu diễn thực 26
2.2.1 Biểu diễn nhiễm sắc thể bằng số thực 26
2.2.2 Nhóm tốn tử đột biến 27
2.2.3. Nhóm tốn tử lai tạo 29
2.3. Giải thuật di truyền với biểu diễn nhiễm sắc thể bằng mã hóa ký tự 32
2.3.1. Bài tốn người du lịch 32
2.3.2. Mã hóa ký tự và các kỹ thuật ghéo chép mới 32
Chương 3.ỨNG DỤNG GIẢI THUẬT DI TRUYỀN TRONG BÀI TỐN
TỐI ƯU HĨA KHẨU PHẦN THỨC ĂN CHĂN NI 37
3.1. Bài tốn tối ưu hóa khẩu phần thức ăn chăn ni 37
3.2. Vấn đề tối ưu số và xử lý ràng buộc 43
3.2.1 Bài tốn tối ưu số 43
3.2.2 Đột biến đồng dạng 47
3.2.3 Đột biến biên 47
3.3.1 Đột biến khơng đồng dạng 47
3.3.2 Lai số học 48
3.3.3 Lai đơn giản 48
Số hóa bởi Trung tâm Học liệu –ĐHTN />vi

3.4. Ứng dụng giải thuật di truyền xác định khẩu phần thức ăn chăn ni49
3.4.1. Xác định hàm mục tiêu và các ràng buộc 49
3.4.2 Xây dựng giải thuật di truyền tối ưu hóa khẩu phần thức ăn lợn 51
3.4.3 Kết quả thử nghiệm 61
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
Số hóa bởi Trung tâm Học liệu –ĐHTN />1

PHẦN MỞ ĐẦU
Đặt vấn đề
Trong các trang trại ni lợn, chăn ni lợn có hiệu quả và lợi nhuận phụ

thuộc vào sự hiểu biết về mơi trường, y tế, sự quản lý, và dinh
dưỡng. Tuy nhiên, thực ăn gia súc chiếm từ 60 đến 70% của tổng chi
phí của chăn ni lợn. [5]
Vì vậy trong chăn ni cơng nghiệp, hầu hết trang trại cần phải lập khẩu
phần thức ăn cho lợn càng rẻ càng tốt. Năng lượng, chất béo, protein, khống
chất và vitamin phải được cung cấp và cân bằng để đáp ứng các u cầu về
tiêu chuẩn dinh dưỡng của lợn. Ngồi ra, một số trang trại ni lợn có các
loại lợn ni khác nhau do đó cần chế độ dinh dưỡng khác nhau. [5,6]
Bài tốn lập khẩu phần thức ăn cho lợn là bài tốn tối ưu về giá thành
nhưng phải đảm bảo các tiêu chuẩn dinh dưỡng. Xét về tổng thể đây là bài
tốn tối ưu với nhiều ràng buộc.
Giải thuật di truyền là một trong những kỹ thuật tìm kiếm tối ưu giúp ta
giải quyết được những vấn đề đã đặt ra ở trên, nó cho phép ta tìm kiếm lời
giải tối ưu trên các khơng gian lớn, ngun tắc cơ bản của giải thuật di truyền
là mơ phỏng q trình chọn lọc của tự nhiên. Cho đến nay lĩnh vực nghiên
cứu về giải thuật di truyền đã thu được nhiều thành tựu, giải thuật di truyền
được ứng dụng trong nhiều lĩnh vực phức tạp, các vấn đề khó có thể giải
quyết được bằng phương pháp thơng thường [3,4].
Với những khả năng tiềm tàng của giải thuật di truyền đã là động lực và
lý do chính để tác giả chọn đề tài “Giải thuật di truyền và ứng dụng trong bài
tốn tối ưu hóa khẩu phần thức ăn chăn ni”.
Mục tiêu của đề tài
- Nghiên cứu các khái niệm cơ bản của giải thuật di truyền
Số hóa bởi Trung tâm Học liệu –ĐHTN />2

- Nghiên cứu một số phương pháp biểu diễn nhiễm sắc thể trong giải
thuật di truyền và các tốn tử di truyền tương ứng
- Ứng dụng giải thuật di truyền để giải quyết bài tốn tối ưu hóa khẩu
phần thức ăn chăn ni.
Phạm vi của đề tài

- Nghiên cứu các khái niệm cơ bản của giải thuật di truyền.
- Nghiên cứu giải thuật di truyền sử dụng phương pháp biểu diễn nhiễm
sắc thể bằng mã hóa nhị phân và các tốn tử di truyền tương ứng.
- Nghiên cứu giải thuật di truyền sử dụng phương pháp biểu diễn nhiễm
sắc thể bằng mã hóa số thực và các tốn tử di truyền tương ứng.
- Ứng dụng giải thuật di truyền để giải quyết bài tốn tối ưu hóa khẩu
phần thức ăn chăn ni.
Phương pháp nghiên cứu.
+ Nghiên cứu tài liệu, các bài báo trên các tạp chí và trên internet và viết
tổng quan để nắm vững nội dung lý thuyết chun ngành và khả năng ứng
dụng.
+ Nghiên cứu so sánh tìm ra sự khác biệt giữa các cách tiếp cận, giữa các
phương pháp lập luận làm cơ sở cho việc đề xuất các giải pháp của đề tài.
+ Lập trình mơ phỏng thuật tốn trên máy tính để thuận lợi trong nghiên
cứu hiệu quả của phương pháp.

Số hóa bởi Trung tâm Học liệu –ĐHTN />3

Chương 1
CÁC KHÁI NIỆM CƠ BẢN VỀ GIẢI THUẬT DI TRUYỀN
1.1. Mở đầu
Giải thuật di truyền (Gennetic Algorithm, viết tắt là GA) là giải thuật tìm
kiếm, chọn lựa các giải pháp tối ưu để giải quyết các bài tốn khác nhau dựa
trên cơ chế chọn lọc tự nhiên của ngành di truyền học.
Trong cơ thể sinh vật, các gen liên kiết với nhau theo cấu trúc dạng chuỗi
gọi là nhiễm sắc thể, nó đặc trưng cho mỗi lồi và quyết định sự sống còn của
cơ thể đó.
Một lồi muốn tồn tại phải thích nghi với mơi trường, cơ thể sống nào
thích nghi với mơi trường hơn thì sẽ tồn tại và sinh sản với số lượng ngày
càng nhiều hơn, trái lại những lồi khơng thích nghi với mơi trường sẽ dần

dần bị diệt chủng.
Mơi trường tự nhiên ln biến đổi, nên cấu trúc nhiễm sắc thể cũng thay
đổi để thích nghi với mơi trường, và ở thế hệ sau ln có độ thích nghi cao
hơn ở thế hệ trước. Cấu trúc này có được nhờ vào sự trao đổi thơng tin ngẫu
nhiên với mơi trường bên ngồi hay giữa chúng với nhau.
Dựa vào đó các nhà khoa học máy tính xây dựng nên một giải thuật tìm
kiếm tinh tế dựa trên cơ sở chọn lọc tự nhiên và quy luật tiến hóa, gọi là giải
thuật di truyền.
Các ngun lý cơ bản của giải thuật được tác giả Holland đề xuất lần đầu
vào năm 1962. Nền tảng tốn học của giải thuật GA được tác giả cơng bố
trong cuốn sách “Sự thích nghi trong các hệ thống tự nhiên và nhân tạo” xuất
bản năm 1975.
Giải thuật GA được xem như một phương pháp tìm kiếm có bước chuyển
Số hóa bởi Trung tâm Học liệu –ĐHTN />4

ngẫu nhiên mang tính tổng qt để giải các bài tốn tối ưu hố [1,3,4].
1.2. Các khái niệm cơ bản của giải thuật di truyền
1.2.1. Giới thiệu chung
Giải thuật GA ,[3,4] thuộc lớp các giải thuật tìm kiếm tiến hố. Khác với
phần lớn các giải thuật khác tìm kiếm theo điểm, giải thuật GA thực hiện tìm
kiếm song song trên một tập được gọi là quần thể các lời giải có thể.
Thơng qua việc áp dụng các tốn tử di truyền, giải thuật GA tráo đổi
thơng tin giữa các cực trị và do đó làm giảm thiểu khả năng kết thúc giải thuật
tại một cực trị địa phương. Trong thực tế, giải thuật GA đã được áp dụng
thành cơng trong nhiều lĩnh vực.
Giải thuật GA lần đầu được tác giả Holland giới thiệu vào năm 1962. Giải
thuật GA mơ phỏng q trình tồn tại của các cá thể có độ phù hợp tốt nhất
thơng qua q trình chọn lọc tự nhiên, sao cho khi giải thuật được thực thi,
quần thể các lời giải tiến hố tiến dần tới lời giải mong muốn.
Giải thuật GA duy trì một quần thể các lời giải có thể của bài tốn tối ưu

hố. Thơng thường, các lời giải này được mã hố dưới dạng một chuỗi các
gien. Giá trị của các gien có trong chuỗi được lấy từ một bảng các ký tự được
định nghĩa trước. Mỗi chuỗi gien được liên kết với một giá trị được gọi là độ
phù hợp. Độ phù hợp được dùng trong q trình chọn lọc.
Cơ chế chọn lọc đảm bảo các cá thể có độ phù hợp tốt hơn có xác suất
được lựa chọn cao hơn. Q trình chọn lọc sao chép các bản sao của các cá
thể có độ phù hợp tốt vào một quần thể tạm thời được gọi là quần thể bố mẹ.
Các cá thể trong quần thể bố mẹ được ghép đơi một cách ngẫu nhiên và tiến
hành lai ghép tạo ra các cá thể con.
Số hóa bởi Trung tâm Học liệu –ĐHTN />5

Sau khi tiến hành q trình lai ghép, giải thuật GA mơ phỏng một q
trình khác trong tự nhiên là q trình đột biến, trong đó các gien của các cá
thể con tự thay đổi giá trị với một xác suất nhỏ.
Tóm lại, có 6 khía cạnh cần được xem xét, trước khi áp dụng giải thuật
GA để giải một bài tốn [1,3,4], cụ thể là:
+ Mã hố lời giải thành cá thể dạng chuỗi.
+ Hàm xác định giá trị độ phù hợp.
+ Sơ đồ chọn lọc các cá thể bố mẹ.
+ Tốn tử lai ghép.
+ Tốn tử đột biến.
+ Chiến lược thay thế hay còn gọi là tốn tử tái tạo.
Có nhiều lựa chọn khác nhau cho từng vấn đề trên. Phần tiếp theo sẽ đưa
ra cách lựa chọn theo J.H. Holland khi thiết kế phiên bản giải thuật GA đầu
tiên. Giải thuật này được gọi là giải thuật di truyền đơn giản (SGA).
1.2.2. Giải thuật di truyền đơn giản
Trong giải thuật di truyền của mình J. H. Holland sử dụng mã hố nhị
phân để biểu diễn các cá thể, lý do là phần lớn các bài tốn tối ưu hố đều có
thể được mã hố thành chuỗi nhị phân khá đơn giản [3].
Hàm mục tiêu, hàm cần tối ưu, được chọn làm cơ sở để tính độ phù hợp

của từng chuỗi cá thể. Giá trị độ phù hợp của từng cá thể sau đó được dùng để
tính tốn xác suất chọn lọc.
Sơ đồ chọn lọc trong giải thuật SGA là sơ đồ chọn lọc tỷ lệ. Trong sơ đồ
chọn lọc này, cá thể có độ phù hợp
i
f
có xác suất chọn lựa
N
j
jii
ffp
1
/
, ở đây N là số cá thể có trong quần thể.
Số hóa bởi Trung tâm Học liệu –ĐHTN />6

Tốn tử lai ghép trong giải thuật SGA là tốn tử lai ghép một điểm cắt.
Giả sử chuỗi cá thể có độ dài L (có L bít), tốn tử lai ghép được tiến hành qua
hai giai đoạn là:
+ Hai cá thể trong quần thể bố mẹ được chọn một cách ngẫu nhiên với
phân bố xác suất đều.
+ Sinh một số ngẫu nhiên j trong khoảng [1, L - 1] . Hai cá thể con được
tạo ra bằng việc sao chép các ký tự từ 1 đến j và tráo đổi các ký tự từ j + 1 đến
L.







Hình 1.1. Sơ đồ lai ghép 1 điểm cắt
Điều đáng lưu ý là giải thuật GA khơng u cầu tốn tử lai ghép ln xảy
ra đối với hai cá thể bố mẹ được chọn. Sự lai ghép chỉ xảy ra khi số ngẫu
nhiên tương ứng với cặp cá thể bố mẹ được sinh ra trong khoảng [0, 1) khơng
lớn hơn một tham số p
c
(gọi là xác suất lai ghép). Nếu số ngẫu nhiên này lớn
hơn p
c
, tốn tử lai ghép khơng xảy ra. Khi đó hai cá thể con là bản sao trực
tiếp của hai cá thể bố mẹ.
Tiếp theo, J. H. Holland xây dựng tốn tử đột biến cho giải thuật SGA.
Tốn tử này được gọi là tốn tử đột biến chuẩn. Tốn tử đột biến duyệt từng
gien của từng cá thể con được sinh ra sau khi tiến hành tốn tử lai ghép và
Vị trí lai

ghép
1 0 0 1 1 1 0 1 0 1
0 1 0 0 1 1 1 1 1 0
1 0 0 1 1 1 0 1 1 0
0 1 0 0 1 1 1 1 0 1
Hai cá thể bố mẹ
Hai cá thể con
Số hóa bởi Trung tâm Học liệu –ĐHTN />7

tiến hành biến đổi giá trị từ 0 sang 1 hoặc ngược lại với một xác suất p
m
được
gọi là xác suất đột biến.
Cuối cùng là chiến lược thay thế hay còn gọi là tốn tử tái tạo. Trong giải

thuật SGA, quần thể con được sinh ra từ quần thể hiện tại thơng qua 3 tốn tử
là chọn lọc, lai ghép và đột biến thay thế hồn tồn quần thể hiện tại và trở
thành quần thể hiện tại của thế hệ tiếp theo.
Sơ đồ tổng thể của giải thuật được thể hiện qua thủ tục GSA() trình bày
dưới đây.
Thủ tục SGA() /* Giải bài tốn tối ưu */
{ k = 0;
// Khởi tạo quần thể P
0
một cách ngẫu nhiên.
khởi_tạo (P
k
);
// Tính giá trị hàm mục tiêu cho từng cá thể.
tính_hàm_mục_tiêu (P
k
);
// Đặt lời giải của giải thuật bằng cá thể có giá trị hàm mục tiêu tốt nhất.
X
best
= tốt_nhất (P
k
);
do { // Chuyển đổi giá trị hàm mục tiêu thành giá trị độ phù hợp và
// tiến hành chọn lọc tạo ra quần thể bố mẹ P
parent

P
parent
= chọn_lọc (P

k
);
// Tiến hành lai ghép và đột biến tạo ra quần thể cá thể con P
child
P
child
= đột_biến (lai_ghép (P
parent
));
// Thay thế quần thể hiện tại bằng quần thể cá thể con
k = k + 1;
Số hóa bởi Trung tâm Học liệu –ĐHTN />8

P
k
= P
child
;
tính_hàm_mục_tiêu (P
k
);
// Nếu giá trị hàm mục tiêu obj của cá thể tốt nhất X trong quần
// thể P
k
lớn hơn giá trị hàm mục tiêu của X
best
thì thay thế lời giải
X = tốt_nhất (P
k
);

if ( obj (X) > obj (X
best
) ) X
best
= X;
} while ( k < G); /* Tiến hành G thế hệ */
return (X
best
); /* Trả về lời giải của giải thuật GA*/
}
Giải thuật di truyền phụ thuộc vào bộ 4 (N, p
c
, p
m
, G), trong đó:
N - số cá thể trong quần thể; p
c
- xác suất lai ghép; p
m
- xác suất đột biến;
G - số thế hệ cần tiến hố
Đó chính là các tham số điều khiển của giải thuật SGA. Cá thể có giá trị
hàm mục tiêu tốt nhất của mọi thế hệ là lời giải cuối cùng của giải thuật SGA.
Quần thể đầu tiên được khởi tạo một cách ngẫu nhiên.
Ví dụ: xét bài tốn tìm max của hàm f(x) = x
2
với x là số ngun trên đoạn
[0,31].
Để sử dụng giải thuật di truyền ta mã hóa mỗi số ngun x trong đoạn
[0,31] bởi một số nhị phân có độ dài 5, chẳng hạn chuỗi 11000 là mã của số

ngun 24
Hàm thích nghi được xác định chính là hàm f(x)=x
2
Quần thể ban đầu gồm 4 cá thể (kích thước quần thể n=4).
Số hóa bởi Trung tâm Học liệu –ĐHTN />9

Thực hiện q trình chọn lọc ta có bảng sau, trong bảng này ta thấy cá thể
2 có độ thích nghi cao nhất nên nó được chọn 2 lần, cá thể 3 có độ thích nghị
thấp nhất khơng được chọn lần nào, mỗi cá thể 1 và 4 được chọn 1 lần
Bảng 1.1. Minh họa q trình chọn lọc
Số hiệu
cá thể
Quần thể ban
đầu
x
Độ thích nghi
f(x)=x
2

Số lần được
chọn
1
0 1 1 0 1
13
169
1
2
1 1 0 0 0 24
576
2

3
0 1 0 0 0 8
64
0
4
1 0 0 1 1 19
361
1

Thực hiện q trình lai ghép với xác suất lai ghép p
c
=1, cả 4 cá thể sau
chọn lọc đều được lai ghép.
Kết quả lai ghép được cho trong bảng sau, trong bảng này, chuỗi thứ nhất
được lai ghép với chuỗi thứ hai với điểm lai ghép là 4, hai chuỗi còn lại được
lai ghép với nhau với điểm ghép là 2.
Bảng 1.2. Minh họa q trình lai ghép
Quần thể sau
chọn lọc
Điểm
ghép
Quần thể sau
lai ghép
x
Độ thích nghi
f(x)=x
2

0 1 1 0|1
4

0 1 1 0 0
12
144
1 1 0 0|0
4
1 1 0 0 1
25
625
1 1|0 0 0
2
1 1 0 1 1
27
729
1 0|0 1 1
2
1 0 0 0 0
16
256

Số hóa bởi Trung tâm Học liệu –ĐHTN />10

Để thực hiện q trình đột biến, ta chọn xác suất đột biến p
m
=0.001, tức là
ta hy vọng có 5 x 4 x 0.001 = 0.02 bit được đột biến, do đó sẽ khơng có bit
nào được đột biến.
Như vậy thế hệ quần thể mới là quần thể sau lai ghép.
Ta thấy rằng trong thế hệ ban đầu độ thích nghi cao nhất là 576 và độ
thích nghi trung bình là 292. Còn trong thế hệ mới, độ thích nghi cao nhất là
729 và độ thích nghi trung bình là 438. Như vậy chỉ qua một thế hệ, các cá thể

đã “tốt lên” rất nhiều.
Số hóa bởi Trung tâm Học liệu –ĐHTN />11

Chương 2
VẤN ĐỀ BIỂU DIỄN NHIỄM SẮC THỂ
TRONG GIẢI THUẬT DI TRUYỀN
2.1. Phương pháp biểu diễn nhiễm sắc thể bằng mã hóa nhị phân
Giải thuật di truyền với biểu diễn nhiễm sắc thể bằng mã hóa nhị phân đã
được đề cập sơ bộ trong chương 1. Trong phần này chúng ta sẽ tìm hiểu sâu
hơn về giải thuật di truyền này thơng qua một bài tốn tối ưu số [4].
Khơng làm mất tính tổng qt, ta giả định bài tốn tối ưu là bài tốn tìm
cực đại của hàm nhiều biến f. Bài tốn tìm cực tiểu hàm g chính là bài tốn
tìm cực đại hàm f = -g, hơn nữa ta có thể giả định hàm mục tiêu f có giá trị
dương trên miền xác định của nó, nếu khơng ta có thể cộng thêm một hằng số
C dương
Cụ thể bài tốn được đặt ra như sau: Tìm cực đại một hàm k biến f(x
1
, ,
x
k
): R
k
R. Giả sử thêm là mỗi biến x
i
có thể nhận giá trị trong miền D
i
=
[a
i
,b

i
] R và f(x
1
, , x
k
) 0 với mọi x
i
D
i
. Ta muốn tối ưu hàm f với độ
chính xác cho trước: giả sử cần n số lẻ đối với giá trị của các biến
Để đạt được độ chính xác như vậy mỗi miền D
i
cần được phân cắt thành
(b
i
- a
i
) 10
n
miền con bằng nhau, gọi m là số ngun nhỏ nhất sao cho
1210)(
i
m
n
ii
ab

Như vậy mỗi biến x
i

được biểu diễn bằng một chuỗi nhị phân có chiều dài
m
i
. Biểu diễn như trên rõ ràng thoả mãn điều kiện về độ chính xác theo u
cầu. Cơng thức sau tính giá trị thập phân của mỗi chuỗi nhị phân biểu diễn
biến x
i
12
)(
2
i
m
ii
ii
ab
stringdecimalax
(1.1)

Số hóa bởi Trung tâm Học liệu –ĐHTN />12

Trong đó hàm decimal(string
2
) cho biết giá trị thập phân của chuỗi nhị
phâ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 một
chuỗi nhị phân có chiều dài
k
i
i
mm

1
, m
1
bit đầu tiên biểu diễn giá trị trong
khoảng [a
1
,b
1
], m
2
bit kế tiếp biểu diễn giá trị trong khoảng [a
2
,b
2
], …
Để khởi tạo quần thể, chỉ cần đơn giản tạo pop_size nhiễm sắc thể ngẫu
nhiên theo từng bit
Phần còn lại của giải thuật 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 thoả 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ể 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 giải thuật sau một số bước lặp cố định tuỳ ý tuỳ
thuộc vào điều kiện tốc độ và tài ngun máy tính.
Đối với tiến trình chọn lọc (chọn quần thể mới thoả phân bố xác suất dựa
trên các độ thích nghi), ta dùng bánh xe quay Rulet với các rãnh được định
kích thước theo độ thích nghi. Ta xây dựng bánh xe Rulet như sau (giả định
rằng các độ thích nghi đều dương)

+ Tính độ thích nghi eval(v
i
) của mỗi nhiễm sắc thể v
i
(i = 1,…, pop_size)
+ Tìm tổng giá trị thích nghi tồn quần thể:
sizepop
i
i
vevalF
1
)(
(1.2)
+ Tính xác suất chọn p
i
cho mỗi nhiễm sắc thể v
i
, (i = 1,…, pop_size):

Fvevalp
ii
/)(

(1.3)
Số hóa bởi Trung tâm Học liệu –ĐHTN />13

+ Tính vị trí xác suất q
i
của mỗi nhiễm sắc thể v
i

, (i = 1,…, pop_size):
i
j
ii
pq
1

(1.4)
Tiến trình chọn lọc thực hiện bằng cách quan bánh xe Rulet pop_size 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:
+ Phát sinh ngẫu nhiên một số r trong khoảng [0 1]
+ Nếu r q
1
thì chọn nhiễm sắc thể đầu tiên v
1
, ngược lại thì chọn nhiễm
sắc thể thứ i, v
i
(2 i pop_size) sao cho q
i-1
r q
i

Như vậy có thể có một số nhiễm sắc thể được chọn nhiều lần, điều này là
phù hợp vì các nhiếm sắc thể tốt nhất cần 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.









Hình 2.1. Minh họa bánh xe rulet
Bây giờ ta có thể áp dụng phép tốn di truyền: kết hợp và lai ghép các cá
thể trong quần thể vừa được chọn từ quần thể cũ như trên.
eval(v
n
)

eval(v
2
)
eval(v
1
)
Số hóa bởi Trung tâm Học liệu –ĐHTN />14

Một trong những tham số của giải thuật là xác suất lai p
c
. Xác suất này
cho ta số nhiếm sắc thể pop_size p
c
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 mỗi nhiễm sắc thể trong quần thể mới:
+ Phát sinh ngẫu nhiên một số r trong khoảng [0,1]
+ Nếu r p

c
, hãy chọn nhiễm sắc thể đó để lai tạo
Bây giờ ta ghép đơi các nhiễm sắc thể đã được chọn 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 phát sinh ngẫu nhiên một số
ngun pos trong khoảng [1, m-1] (m là tổng chiều dài - số bit - 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ể:
(b
1
b
2
…b
pos
b
pos+1
…b
m
) và (c
1
c
2.
…c
pos
c
pos+1
…c
m
)
được thay bằng một cặp con của chúng:
(b
1

b
2
…b
pos
c
pos+1
…c
m
) và (c
1
c
2.
…c
pos
b
pos+1
…b
m
)
Phép tốn kế tiếp là phép đột biến, được thực hiện trên cơ sở từng bit. Một
tham số khác của giải thuật là xác suất đột biến p
m
, cho ta số bit đột biến
p
m
m pop_size mong đợi. Mỗi bit (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 bit trong nhiễm sắc thể:

+ Phát sinh ngẫu nhiên một số r trong khoảng [0,1]
+ Nếu r<p
m
hãy đột biến bit đó
Sau q trình chọn lọc, lai và đột biến, quần thể mới đến lượt lượng giá
kế tiếp của nó. Lượng giá này được dùng để xây dựng phân bố xác suất (cho
Số hóa bởi Trung tâm Học liệu –ĐHTN />15

tiến trình chọn lựa kế tiếp), nghĩa là để xây dựng lại bánh xe Rulet với các
rãnh được định kích thước theo các giá trị thích nghi hiện hành. Phần còn lại
của tiến hố 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 hoạ trong một ví dụ cực đại hố hàm:
)20sin()4sin(5.21),(
221121
xxxxxxf

Giả sử kích thước quần thể pop_size = 20, các xác suất di truyền tương
ứng là P
c
= 0.25 và P
m
= 0.01
Giả sử 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 x
1

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 cần 18 bit làm phần đâu tiên của nhiễm sắc thể: 2
17
151000 2

18

Miền của biến x
2
có chiều dài là 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 là
1.7 10000 khoảng, điều này nghĩa là cần 15 bit làm thành phần cuối của
nhiễm sắc thể: 2
14
17000 2
15

Chiều dài tồn bộ nhiễm sắc thể (vectơ lời giải) là m =18+15 = 33
Để cực đại hố hàm f bằng giải thuật di truyền ta tạo ra một quần thể có
pop_size = 20 nhiễm sắc thể. Cả 33 bit trong tất cả các nhiễm sắc thể đều
được khởi tạo ngẫu nhiên
Giả sử sau tiến trình khởi tạo ta có quần thể sau đây:
v
1
= (100110100000001111111010011011111)
v
2
= (111000100100110111001010100011010)
v
3
= (000010000011001000001010111011101)
v
4
= (100011000101101001111000001110010)
Số hóa bởi Trung tâm Học liệu –ĐHTN />16


v
5
= (000111011001010011010111111000101)
v
6
= (000101000010010101001010111111011)
v
7
= (001000100000110101111011011111011)
v
8
= (100001100001110100010110101100111)
v
9
= (011000000101100010110000001111100)
v
10
= (000001111000110000011010000111011)
v
11
= (011001111110110101100001101111000)
v
12
= (110100010111101101000101010000000)
v
13
= (111011111010001000110000001000110)
v
14

= (010010011000001010100111100101001)
v
15
= (111011101101110000100011111011110)
v
16
= (110011110000011111100001101001011)
v
17
= (011010111111001111010001101111101)
v
18
= (011101000000001110100111110101101)
v
19
= (000101010011111111110000110001100)
v
20
= (101110010110011110011000101111110)
Trong giai đoạn lượng giá ta giải mã từng nhiễm sắc thể và tính giá trị
hàm thích nghi từ các giá trị (x
1
, x
2
) mới giải mã, ta có
eval(v
1
) = f(6.084492,5.652242) = 26.019600
eval(v
2

) = f(10.348434,4.380264) = 7.580015
eval(v
3
) = f(-2.516603,4.390381) = 19.626329
eval(v
4
) = f(5.278638,5.593460) = 17.406725
Số hóa bởi Trung tâm Học liệu –ĐHTN />17

eval(v
5
) = f(-1.255173,4.734458) = 25.341160
eval(v
6
) = f(-1.811725,4.391937) = 18.100417
eval(v
7
) = f(-0.991471,5.680258) = 16.020812
eval(v
8
) = f(4.910618,4.703018) = 17.959701
eval(v
9
) = f(0.795406,5.381472) = 16.127799
eval(v
10
) = f(-2.554851,4.793707) = 21.278435
eval(v
11
) = f(3.130078,4.996097) = 23.410669

eval(v
12
) = f(9.356179,4.239457) = 15.011619
eval(v
13
) = f(11.134646,5.378671) = 27.316702
eval(v
14
) = f(1.335944,5.151378) = 19.876294
eval(v
15
) = f(11.089025,5.054515) = 30.060205
eval(v
16
) = f(9.211598,4.993762) = 23.967227
eval(v
17
) = f(3.367514,4.571343) = 13.696165
eval(v
18
) = f(3.843020,5.158226) = 15.414128
eval(v
19
) = f(-1.746635,5.395584) = 20.095903
eval(v
20
) = f(7.935998,4.757338) = 13.666916
Rõ ràng nhiễm sắc thể v
15
mạnh nhất và nhiễm sắc thể v

2
yếu nhất
Tiếp theo ta xây dựng bánh xe Rulet cho tiến trình chọn lọc. Tổng độ
thích nghi của quần thể là:
776822.387)(
20
1i
i
vevalF

Xác suất chọn lọc p
i
của mỗi nhiễm sắc thể v
i
(i = 1,…,20) là:
p
1
= eval(v
1
)/F = 0.067099
Số hóa bởi Trung tâm Học liệu –ĐHTN />

×