1
HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN HỌC
TRÍ TUỆ NHÂN TẠO
Giáo viên hướng dẫn: Ngô Hữu Phúc
HÀ NỘI 3/2010
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
2
Lời nói đầu
Em chân thành cảm ơn thầy giáo Ngô Hữu Phúc đã giảng dạy và hướng dẫn
môn học.
Do hạn chế về trình độ, nên bài tập còn nhiều thiếu sót, em mong thầy góp ý và chỉ
bảo thêm.
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
3
Mục lục
I. Khái quát
Chúng ta giả sử gene bước đầu tiếp cận cho giải thuật gene. Nó mạnh
hơn nếu được so sánh với cách tiếp cận truyền thống trong giải thuật gene.
Sự tiếp cận được ứng dụng cho bài toán 0/1 kapsack .Giải thuật này tìm ra
được kết quả cận tối ưu trong tất cả kết quả đặc biệt được biểu diễn trong tài
liệu này, trong khi các cách tiếp cận truyền thống thất bại phần lớn các ví dụ
bởi những đặc điểm lợi thế riêng biệt của các cá thể trong quần thể. Trong sự
kết hợp giữa toán tử tìm kiếm đột biến , phương pháp này cung cấp một kết
quả tốt hơn cho tất cả các vấn đề của các thực thể đã được nghiên cứu.
1. Giới thiệu Genetic Algorithms (GAs)
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
4
Giải thuật Gene (GAs) cơ bản dựa trên thuyết chọn lọc tự nhiên
của Darwin. Bắt đầu sinh ngẫu nhiên một quần thể từ các cá thể, cho
thấy một giải pháp tiềm năng cho vấn đề sau nghie cứu. Những cá thể
này được lựa chọn theo các giá trị phù hợp nhất thể tạo ra một thế hệ
kế tiếp. Toán tử gene, chủ yếu là lai ghép và đột biến, biến đổi các cá
thể và làm chúng trở thành một phần của quần thể của thế hệ sau. Các
cá thể trong thế hệ có bình quân thích nghi cao hơn so với thế hệ
trước. Hai hai thành phần gene, lai ghép và đột biến, là nền tảng cho
giải thuật gene. Đột biến thay thế một hoặc nhiều các gene ở mỗi cá
thể. Nó giữ vai trò duy trì sự đa dạng quần thể.
Về lý thuyết, giải thuật gene được tin để xử lý những mẫu động
dạng được gọi là các lược đồ. Mỗi lược đồ định lý [3], còn được gọi là
đinh lý cơ sở của giả thuật gene ,’ lược đồ ngắn, lược đồ yêu cầu
thấp,lược đồ trên mức trung bình nhận những giá trị thử tăng theo
hàm mũ trong những quần thể sau đó. Như một lược đồ triển vọng
được đặt tên là khối xây dựng . Giải thuật gene xử lý một số lượng lớn
các lược đồ cùng lúc, cuối cùng hội tụ về giải pháp tốt nhất cho vấn
đề. Trên thực tế, lược đồ và khối xây dựng này là một liên kết của
gene.Giả thiết một cách tiếp cận gene đệ quy là giới thiệu từng gene
một tới quần thể. Các gene này liên kết thông qua hoạt động của thực
thể gene để cấu thành các cá thể. Quá trình này tương tự như những
hiện tượng tự nhiên của sự tiến hóa từ những cá thể đơn bào tới dạng
sống phức tạp hiện nay.
2. Baì toán 0/1 knapsack :
Một người ăn xin, gặp may được cho một số lượng lớn đồ vật với
giá trị và khối lượng khác nhau. Người ăn xin này chỉ có một cái ba lô
( knapsack) mang được một khối lượng giới hạn, và anh ta muốn sao
cho lấy được đầy ba lô với giá trị lớn nhất có thể. Xong mỗi đồ vật
chỉ được lấy một lần.
Bài tập này sẽ xây dựng giải thuật sao cho anh ta có sự lựa chọn tối
ưu nhất.
• Áp dụng GAs đệ quy để tiếp cận với cách giải quyết 0/1
knapsack
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
5
Vấn đề bài toán 0/1 knapsack được xác định như sau
Đưa ra vector giá trị : P
i
Vector khối nượng : w
i
Giá trị cực đại : ∑
n
i=1
p
i
x
i
Số vật thể phải thỏa mãn điều kiện : ∑
n
i=1
w
i
x
i ≤ C
x
i
nhận giá trị 0 hoặc 1 ,( i= 1,… ,n) n là số các phần tử
0 : đồ vật ( nhiễm sắc thể ) không được chọn .
1 : đồ vật ( nhiễm sắc thể ) được chọn .
Số thứ tự đồ vật được tính từ trái sang phải .
Mã hóa gene cho bài toan 0/1 knapsack có thể làm trực tiếp từ
các bit để kết luận biến quyết định (gene quyết định) có thể là một
giải pháp cho vấn đề hay không.
II. Algorithms
1. Mã hóa (encoding ) :
x
i
nhận giá trị 0 hoặc 1 ,( i= 1,… ,n) n là số các phần tử
0 : đồ vật ( nhiễm sắc thể ) không được chọn .
1 : đồ vật ( nhiễm sắc thể ) được chọn .
Số thứ tự đồ vật được tính từ trái sang phải .
Dùng biến là một mảng 2 chiều : knapsack [i,j] , để biểu diễn
quần thể trong chiếc ba lô.
Trong đó :
+ i : biểu diễn cho yếu tố giá trị.
+ j : biểu diễn cho yếu tố khối lượng.
2. Khởi tạo quần thể ( initial population generation ) :
Thuật toán bắt đầu bằng cách từ những nhiễm sắc thể, hình
thành một số lượng lớn các cá thể .sinh một quần thể ngẫu nhiên từ
những cá thể trên.
Trong thử nghiệm này ta truyền vào 7 nhiễm sắc thể là mảng 2
chiều :
public int[,] knapsack = new int[9, 2] { { 5,
7 }, { 8, 8 }, { 3, 4 }, { 2, 10 }, { 7, 4 },
{ 9, 6 }, { 4,4},{10,7},{6,3} };
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
6
Quần thể ban đầu được khởi tạo gồm 50 cá thể, bằng cách khai
báo phần tử mảng là 50
3. Hàm thích nghi (fitness function ) :
*Hàm thích nghi xây dựng dựa trên phép toán tính tổng giá trị
và khối lượng để xác đình cá thể tốt.
*Ngưỡng để so sánh thử nghiệm là :
- Giá trị của cá thể : ∑
n
i=1
p
i
x
i
≥ 22
-Khối lượng cá thể : ∑
n
i=1
w
i
x
i
≤ 20
4. Sự lựa chọn cho sự kết hợp lại (selection for recombination)
Có rất nhiều thuật toán để lựa chọn cá thể để tham gia
vào quá trình lai ghép ( crossover ) và đột biến (mutation). Ví
dụ như :Roulette wheel selection, rank selection , Elitism,
Steady-state, v.v.v.
Bài tập này đi sâu vào thuật toán lựa chọn : Steady-state.
Thuật toán được mô tả như sau
Steady-state selection
Với giải thuật gene steady-state,mỗi lần một thành viên của
quần thể bị thay đổi. Lựa chọn một cá thể của quần thể phải dựa trên
hàm thích nghi ( fitness).Nó được sao chép và những bản sao biến
thể. Thành viên thứ hai của quần thể được lựa chọn là cá thể bị thay
thế bởi chuỗi đột biến. Trong quá trình lai ghép hai cá thể với nhau
một cá thể thể con được sinh ra và nó thay thể một phần tử của quần
thể. Bất chứ phương pháp lựa chọn nào cũng có thể được dùng để lựa
chọn cá thể cho sự đột biến hoặc làm phần tử cha-mẹ( parents) . Có
nhiều chiến thuật thay thế khác nhau như :
• Thay thế cá thể tồi nhất . cách này thường đưa đến sự
hội tụ quá nhanh.
• Thay thế một cách chọn ngẫu nhiên thành viên.
• Lựa chọn điểm thay thế dùng hàm thích nghi âm tính.
( negative fitness ) .
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
7
Quá trình lựa chọn được thực hiện dựa trên hàm thích
nghi (fitness). Cá thể nào được đánh giá là có độ thích nghi cao
thì sẽ được lựa chọn tham gia vào quá trình lai ghép đột biến
để tạo ra quần thể mới. Trong khi đó, những cá thể có độ thích
nghi thấp sẽ bị bỏ qua. Cả thể có độ thích nghị cao nhất có thể
được lựa chọn nhiều lần Tuy nhiên số lượng cá thể được lựa
chọn để thực thi phải tương ứng với độ lớn của quần thể ban
đầu , vì thế phải đảm bảo được số lượng cá thể ở mỗi thế hệ.
Giai đoạn sự tham gia của sự lựa chọn ngẫu nhiên tương tự như
quá trình chọn lọc tự nhiên.
5. Lai ghép ( crossover )
Lai ghép là quá trình kết hợp các bit của cá thể này với
các bit của cá thể khác . Đây là tiến trình tạo cá thể mới
cho thế kế cận, cá thể này kế thừa những đặc tính của các
cá thể bố mẹ.Tiến trình lai ghép lựa chọn ngẫu nhiên định
vị và sự thay đổi chuỗi con trước và sau nó. Từ điểm lai
ghép này tạo ra 2 cá thể mới.
Lai ghép có thể có rất nhiều cách. Cụ thể trong có
3 cách được áp dụng để giải quyết bài toán :
i. Lai ghép một điểm
Xem xét ví dụ sau
parent 1 1 0 0 | 0 1 1 1
Parent 2 1 1 1 1| 0 0 0
Offspring1 1 0 0 1 0 0 0
Offspring2 11 1 1 1 1 1
Trong ví trên điểm lai ghép là ở vị trí thứ 3 ( tính từ trái sang )
của 2 cá thể cha mẹ. Cá thể con thứ kế thừa nhiễm sắc thể ở vị trí 1
,2 và 3 từ cá thể parent1 , và các nhiễm sắc thể ở vì trí 4, 5, 6 và 7
của cá thể parent2. Đối với cá thể con thứ 2 nhận các nhiễm sắc thể
1, 2, 3 từ cá thể parent2 còn các nhiễm sắc thể 4, 5, 6, và 7 thì kế
thừa ở cả thể parent1.
ii. Lai ghép 2 điểm
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
8
parent 1 1 0 0 | 0 1 | 1 1
Parent 2 1 1 1 | 1 0 | 0 0
Offspring1 1 0 0 1 0 0 0
Offspring2 111 0 1 1 1
Trong ví trên điểm lai ghép là ở vị trí thứ 3 và thứ 5 ( tính từ
trái sang ) của 2 cá thể cha mẹ.
+ Cá thể con thứ kế thừa nhiễm sắc thể ở vị trí 1 ,2, 3 và 6,7 từ
cá thể parent1 , còn các nhiễm sắc thể ở vị trí 4, 5 của cá thể
parent2.
+Đối với cá thể con thứ 2 nhận các nhiễm sắc thể 1, 2, 3 và 6,7
từ cá thể parent2 còn các nhiễm sắc thể 4, 5, thì kế thừa ở cả thể
parent1.
iii. Tính toán ngẫu nhiên điểm lai ghép
+ Trong tài liệu này dùng thuật toán random để chọn ra 1 điểm
lai ghép giữa hai cá thể cha mẹ sinh ra cá thể con.
6. Đột biến ( Mutation)
Đột biến được thực thi sau tiến trình lai ghép ( crossover) để
đảm bảo không bị dừng lại ở giá trị cực trị địa phương ( a local
optimum) trong quá trình giải quết bài toán.Tiến trình đột biến diễn
ra nhằm thay đổi cá thể con mới bằng cách đổi các bít 0 và 1 với hoặc
ngược lại. Đột biến có thể diễn ra với từng bit trong chuỗi với một vài
khả năng, thường là rất nhỏ ( ví dụ : 0.001 ) . Để làm rõ vấn đề, chúng
ta xét ví dụ sau
Cá thể chưa bị đột biến : 1 0 0 0 1 1 1
Cá thể sau đột biến : 1 1 0 0 1 1 1
Nhiễm sắc thể 0 ở vị trí thứ 2 bị thay thế bởi nhiễm sắc 1 .
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
9
7. Tiêu chuẩn kết thúc.
Thuật toán Gene sẽ dừng lại khi thỏa mãn một trong các yếu tố
sau:
- Quần thể hội tụ, hay nói cách khác là khi tìm ra được cá thể
tốt nhất trong quần thể giống với kết quả mong muôn.
- Kết thúc khi số thế hệ sinh ra đạt đến số sinh ra trước.
- Kết thúc khi cá thể tốt nhất trong quần thể không thay đổi
theo thời gian.
- Kết thúc khi các cá thể trở nên giống nhau.
III. Nhận xét
a) Thuật toán GAs
• Thuật toán Gene là thuật toán không thể khái quát, mà phải áp dụng
cho từng bài toán cụ thể, vì không có lý thuyết chung có thể hợp các
tham số của thuật toán gene với bất cứ bài toán nào.
• Sự giới thiệu thường là kết quả việc học kinh nghiệm của thuật toán
gen, cái thường thực hiện chỉ trên mã hóa nhị phân.
Ưu điểm
• Chính là khả năng song song của thuật toán .
• GAs duyệt qua không gian tìm kiếm sử dụng nhiều cá thể (and
with genotype rather than phenotype) và ít mắc phải cực trị địa
phương như các thuật toán khác
• Dễ thể hiện .
• Khi đã có thuật toán gen cơ bản, chỉ cần viết một NST mới (just
one object) để xử lý bài toán khác.
• Với cùng cách mã hóa bạn có thể thay đổi hàm thích nghi .
• Mặc dù vậy, trong một số trường hợp chọn và thể hiện mã hóa
sẽ gặp khó khăn.
Nhược điểm
• Nhược điểm chính của Gas là thới gian tính toán
• GAs có thể chậm hơn các thuật toán khác
• Có thể kết thúc tính toán bất cứ lúc nào
b) Nhận xét về hàm lựa chọn steady-state :
Trong quá trình lựa chọn, thuật toán chỉ lựa chọn những cá thể có độ
thích nghi cao để tạo ra quần thể mới. Xong trên thực tế đây không phải
là sự lựa chọn đúng đắn, bởi trong nhiều trường hợp sự lai ghép 1 cá thể
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
10
tồi với 1 cá thể có đặc tính gene cao lại tạo nên một cá thể con có độ
thích nghi cao hơn cả .Và cũng không loại trừ trương hợp : sự kết hợp
của 2 gene tốt là cho ra một cá thể chứa toàn bộ nhiễm sắc thể lặn và hình
thành nên cá thể có độ thích nghi thấp.
IV. Flowchart của chương trình chính :
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
11
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc
12
Tài liệu tham khảo :
Tiến sĩ Ngô Hữu Phúc ,Bài giảng AI, chương 4.1
Nguyễn Thị Ánh Hồng - Tin học 5A Giáo viên hướng dẫn: Ngô Hữu Phúc