Trong tự nhiên một loà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
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
MÔN : TRÍ TUỆ NHÂN TẠO.
NỘI DUNG NGHIÊN CỨU :
Trang 2PHẦN I: KHÁI QUÁT VỀ GIẢI THUẬT GEN 1-KHÁI NIỆM GIẢI THUẬT GEN
1.1.Lịch sử phát triển :
Giải thuật gen (GAs) 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 toá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ể 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 loài và quyết định sự sống còn của cơ thể đó Trong tự nhiên một loà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 loà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 luôn 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 luôn 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 ngoà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 gen
GAs ra đời và phát triễn dựa trên quá trình tiến hóa trong tự nhiên và đã được ứng dụng thành công trong nhiều lĩnh vực nhất là tối ưu hóa và máy học
Giải thuật di truyền cũng như các thuật toán tiến hoá đều được hình thành dựa trên một quan niệm được coi là một tiên đề phù hợp với thực tế khách quan Đó là quan
niệm "Quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó
đã mang tính tối ưu" Quá trình tiến hoá thể hiện tính tối ưu ở chỗ thế hệ sau bao
giờ cũng tốt hơn thế hệ trước
Quá trình phát triển của giải thuật di truyền có thể được chỉ ra qua các mốc thời gian sau :
1960 : Ý tưởng đầu tiên về Tính toán tiến hoá được Rechenberg giới thiệu
trong công trình "Evolution Strategies" (Các chiến lược tiến hoá) Ý tưởng này sau đó được nhiều nhà nghiên cứu phát triển
1975 : Giải thuật gen do John Holland phát minh và được phát triển bởi ông
cùng với các đồng nghiệp và những sinh viên Cuốn sách "Adaption in Natural and Artificial Systems" (Sự thích nghi trong các hệ tự nhiên và nhân tạo) xuất bản năm 1975 đã tổng hợp các kết quả của quá trình nghiên cứu và phát triển đó
Trang 31992 : John Koza đã dùng GA để xây dựng các chương trình giải quyết một
số bài toán và gọi phương pháp này là " lập trình gen"
Ngày nay giải thuật di truyền càng trở nên quan trọng, đặc biệt là trong lĩnh vực tối
ưu hoá, một lĩnh vực có nhiều bài toán thú vị, được ứng dụng nhiều trong thực tiễn nhưng thường khó và chưa có giải thuật hiệu quả để giải
1.2 Các khái niệm cơ bản
Giải thuật di truyền dựa vào quá trình tiến hoá trong tự nhiên nên các khái niệm và
thuật ngữ của nó đều có liên quan đến các thuật ngữ của di truyền học
1.2.1.Cá thể, nhiễm sắc thể
Trong giải thuật di truyền, một cá thể biểu diễn một giải pháp của bài toán Không giống với trong tự nhiên, một cá thể có nhiều nhiễm sắc thể (NST), ở đây ta quan niệm một cá thể có một nhiễm sắc thể Do đó khái niệm cá thể và nhiễm sắc thể trong giải thuật di truyền coi như là tương đương
Một NST được tạo thành từ nhiều gen, mỗi gen có thể có các giá trị khác nhau để quy định một tính trạng nào đó Trong GA, một gen được coi như một phần tử trong chuỗi NST
1.2.2. Quần thể
Quần thể là một tập hợp các cá thể có cùng một số đặc điểm nào đấy Trong giải
thuật di truyền ta quan niệm quần thể là một tập các lời giải của một bài toán
1.2.3. Chọn lựa
Trong tự nhiên, quá trình chọn lọc và đấu tranh sinh tồn đã làm thay đổi các cá thể trong quần thể Những cá thể tốt, thích nghi được với điều kiện sống thì có khả năng đấu tranh lớn hơn, do đó có thể tồn tại và sinh sản Các cá thể không thích nghi được với điều kiện sống thì dần mất đi Dựa vào nguyên lý của quá trình chọn lọc và đấu tranh sinh tồn trong tự nhiên, chọn lựa các cá thể trong GA chính là cách chọn các cá thể có độ thích nghi tốt để đưa vào thế hệ tiếp theo hoặc để cho lai ghép, với mục đích là sinh ra các cá thể mới tốt hơn Có nhiều cách để lựa chọn nhưng cuối cùng đều nhằm đáp ứng mục tiêu là các cá thể tốt sẽ có khả năng được chọn cao hơn
1.2.4. Lai ghép
Lai ghép trong tự nhiên là sự kết hợp các tính trạng của bố mẹ để sinh ra thế hệ con Trong giải thuật di truyền, lai ghép được coi là một sự tổ hợp lại các tính chất (thành phần) trong hai lời giải cha mẹ nào đó để sinh ra một lời giải mới mà có đặc tính mong muốn là tốt hơn thế hệ cha mẹ Đây là một quá trình xảy ra chủ yếu trong giải thuật di truyền
Trang 41.2.5. Đột biến
Đột biến là một sự biến đổi tại một ( hay một số ) gen của nhiễm sắc thể ban đầu
để tạo ra một nhiễm sắc thể mới Đột biến có xác suất xảy ra thấp hơn lai ghép Đột biến
có thể tạo ra một cá thể mới tốt hơn hoặc xấu hơn cá thể ban đầu Tuy nhiên trong giải thuật di truyền thì ta luôn muốn tạo ra những phép đột biến cho phép cải thiện lời giải qua từng thế hệ
2 – SƠ ĐỒ GIẢI THUẬT GEN
Với các khái niệm được giới thiệu ở trên, giải thuật di truyền được mô tả như sau :
Hình 1: Sơ đồ mô tả giải thuật di truyền
Trang 51 [Bắt đầu ] Nhận các tham số cho thuật toán
2 [Khởi tạo ] Sinh ngẫu nhiên một quần thể gồm n cá thể ( là n lời giải cho bài toán)
3 [Quần thể mới ] Tạo quần thể mới bằng cách lặp lại các bước sau cho đến khi
quần thể mới hoàn thành
a.[Thích nghi] Ước lượng độ thích nghi eval(x) của mỗi cá thể
b.[Kiểm tra ] Kiểm tra điều kiện kết thúc giải thuật
c.[Chọn lọc] Chọn hai cá thể bố mẹ từ quần thể cũ theo độ thích nghi của
chúng (cá thể có độ thích nghi càng cao thì càng có nhiều khả năng được chọn)
d.[Lai ghép] Với một xác suất lai ghép được chọn, lai ghép hai cá thể bố mẹ
để tạo ra một cá thể mới
e.[Đột biến] Với một xác suất đột biến được chọn, biến đổi cá thể mới
5 [Chọn kết quả] Nếu điều kiện dừng được thỏa mãn thì thuật toán kết thúc và
trả về lời giải tốt nhất trong quần thể hiện tại
Kích thước quần thể cho biết có bao nhiêu cá thể trong một quần thể (trong một thế hệ) Qua các nghiên cứu cũng như các thử nghiệm đã cho thấy kích thước quần thể không nên quá bé cũng như không quá lớn Nếu có quá ít cá thể thì ít có khả năng thực hiện lai giống và chỉ một phần nhỏ không gian tìm kiếm được dùng Như vậy sẽ dễ xảy ra trường hợp bỏ qua các lời giải tốt Nhưng quá nhiều cá thể cũng không tốt vì GA sẽ chạy chậm đi, ảnh hưởng đến hiệu quả của giải thuật Các nghiên cứu cũng đã chỉ ra không có lợi khi tăng kích thước quần thể lên quá một giới hạn cho phép
Trang 63 Mã hoá NST
Trong giải thuật di truyền, mỗi nhiễm sắc thể biểu diễn một lời giải theo một cách nào đó mà chứa đủ các thông tin cần thiết về lời giải Các nhiễm sắc thể tạo nên một quần thể, là không gian lời giải của bài toán mà ta khảo sát
Cách mã hoá NST được đánh giá là một trong hai yếu tố quyết định trong xây dựng giải thuật di truyền Phần sau đây sẽ trình bày một số cơ chế mã hoá nhiễm sắc thể hay dùng cho giải thuật di truyền Tuy nhiên, tuỳ thuộc vào các tri thức riêng của từng bài toán mà ta sẽ lựa chọn hay xây dựng cách biểu diễn nhiễm sắc thể riêng phù hợp với bài toán của mình
3.1.1. Mã hoá nhị phân
Mã hoá nhị phân là phương pháp mã hoá nhiễm sắc thể phổ biến nhất Trong mã hoá nhị phân, mỗi nhiễm sắc thể là một chuỗi nhị phân, mỗi bit trong nó có thể biểu diễn một đặc tính của nghiệm
Ví dụ: hai nhiễm sắc thể 1 và 2 có chiều dài là 16
Nhiễm sắc thể 1: 1101100100110110
Nhiễm sắc thể 2: 1101111000011110
Mã hoá nhị phân thường hay dùng trong các bài toán tối ưu các hàm một biến hay nhiều biến Khi đó, mỗi chuỗi nhị phân sẽ biểu diễn hàm tại một (tập) giá trị của (các) biến Ngoài ra nó còn được áp dụng trong nhiều loại bài toán khác nữa
Ví dụ: Trong bài toán cái túi, để biểu diễn một cách xếp đồ vào túi, ta sẽ dùng một
chuỗi nhị phân có kích thước bằng số đồ vật, mỗi bit tương ứng với các đồ vật sẽ có hai giá trị: giá trị 0 nếu đồ vật đó không được cho vào túi và giá trị 1 nếu đồ vật được cho vào túi
Mã hoá nhị phân tuy là phổ biến nhưng nó có một nhược điểm là có thể tạo ra không gian mã hoá lớn hơn so với không gian giá trị của nhiễm sắc thể Do đó, với nhiều bài toán thì biểu diễn nhị phân là không hữu hiệu
Trang 7Ví dụ: Trong bài toán người du lịch, để biểu diễn một cách đi của người du lịch thì
dùng một nhiễm sắc thể mà trình tự các số trong chuỗi cho biết thứ tự các thành phố mà người du lịch đi qua
3.1.3. Mã hoá theo giá trị
Mã hoá trực tiếp theo giá trị có thể được dùng trong các bài toán sử dụng giá trị phức tạp như trong số thực Trong đó, mỗi nhiễm sắc thể là một chuỗi các giá trị Các giá trị có thể là bất cứ cái gì liên quan đến bài toán, từ số nguyên, số thực, kí tự cho đến các đối tượng phức tạp hơn
Ví dụ:
Nhiễm sắc thể 1: 1.23 5.32 0.34 2.98 3.54
Nhiễm sắc thể 2: (back), (back), (right), (forward), (left)
Mã hoá theo giá trị thường dùng cho các bài toán đặc biệt Trong cách mã hoá này
ta thường phải phát triển các toán tử đột biến và lai ghép cho phù hợp với từng bài toán
Khởi tạo quần thể ban đầu là bước đầu tiên trong giải thuật di truyền Thông thường để khởi tạo quần thể trong bài toán tối ưu, ta tạo ra một cách ngẫu nhiên các lời giải có thể (thường là các lời giải thỏa mãn ràng buộc của bài toán nhưng chưa biết là đại lượng cần tối ưu đã là tối ưu hay chưa) Tuỳ vào từng bài toán cụ thể mà ta có các phương pháp khởi tạo khác nhau Ví dụ trong bài toán BDMST, ta sẽ sinh ngẫu nhiên các DBST còn trọng số thì có thể chưa quan tâm đến
Chất lượng của quần thể ban đầu càng cao thì lời giải mà giải thuật di truyền đưa
ra càng tốt Nếu trong bài toán cây khung ở trên mà ta tạo được các cây khung trong quần thể ban đầu có trọng số càng thấp thì càng tốt Do đó, trong nhiều giải thuật di truyền, thường sử dụng các giải thuật đã có để giải bài toán mà cho kết quả khá tốt để khởi tạo quần thể ban đầu
5.Hàm tính độ thích nghi
Theo các nghiên cứu và các thử nghiệm của nhiều nhà nghiên cứu về giải thuật di truyền thì hàm tính độ thích nghi là một trong hai yếu tố quan trọng nhất quyết định sự thành công hay thất bại của GA
Hàm thích nghi được xây dựng sao cho giá trị thích nghi phải phản ánh được giá trị thực của NST trong việc đáp ứng yêu cầu của bài toán Ví dụ như trong các bài toán về cây khung nhỏ nhất thì hàm thích nghi sẽ là hàm tính tổng trọng số các cạnh trên các cây khung
Trang 86. Cơ chế lựa chọn
Cơ chế lựa chọn được áp dụng khi chọn các cá thể từ quần thể P(t) để thực hiện việc lai ghép và đột biến, tạo ra quần thể P(t+1) Có nhiều cách để lựa chọn các cá thể từ
một quần thể Sau đây sẽ giới thiệu một số cơ chế hay áp dụng
Để tiện mô tả các cơ chế lựa chọn ta đưa ra một số kí hiệu sau :
Cách biểu diễn các nhiễm sắc thể thứ i là v i
Hàm tính độ thích nghi của nhiễm sắc thể v i là f(v i)
Kích thước quần thể là pop_size
Số nhiễm sắc thể cần chọn là N
6.1. Lựa chọn tỷ lệ
Trước khi lựa chọn thì tính các giá trị sau :
Tính tổng độ thích nghi của cả quần thể: ∑
=
=
size pop
i i v f F
_
1
)(
Tính xác suất chọn p i cho mỗi nhiễm sắc thể v i : p i = f(v i )/F
Tính vị trí xác suất q i của mỗi nhiễm sắc thể : ∑
=
=
i
j j
q
1
Cơ chế lựa chọn theo bánh xe Roulet được thực hiện bằng cách quay bánh xe
Roulet 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
bằng cách sau :
Phát sinh ngẫu nhiên một số r trong khoảng [0,1]
Nếu r < q1 thì chọn nhiễm sắc thể v1; ngược lại thì chọn nhiễm sắc thể thứ i ( 2 ≤ i
≤ pop_size ) sao cho q i-1 ≤ r ≤ q i
Với cơ chế lựa chọn như thế này thì có một số nhiếm sắc thể sẽ được chọn nhiều
lần Điều này phù hợp với lý thuyết lược đồ: Các nhiễm sắc thể tốt nhất thì có nhiều bản
sao, nhiễm sắc thể trung bình thì không đổi , nhiễm sắc thể kém thì chết đi [11]
6.2. Lựa chọn xếp hạng
Cơ chế lựa chọn xếp hạng được mô tả như sau:
Sắp xếp các nhiễm sắc thể trong quần thể theo độ thích nghi từ thấp đến cao
Đặt lại độ thích nghi cho quần thể đã sắp xếp theo kiểu: nhiễm sắc thể thứ nhất có
độ thích nghi là 1, NST thứ hai có độ thích nghi là 2, v.v., NST thứ pop_size có
Trang 96.3. Lựa chọn theo cơ chế lấy mẫu ngẫu nhiên
Cơ chế lựa chọn:
Biểu diễn xác suất chọn các NST lên trên một đường thẳng
Đặt N điểm chọn lên đường thẳng Các điểm chọn này cách nhau 1/N, điểm đầu tiên đặt ngẫu nhiên trong khoảng [0,1/N]
Với một điểm chọn, NST gần với nó nhất về bên phải sẽ được chọn
Phương pháp này có đặc điểm là các điểm chọn được phân bố đều trên trục số, do
đó sẽ gần với điểm xứng đáng được chọn
6.4. Lựa chọn tranh đấu
Cơ chế lựa chọn :
Lấy một số NST trong quần thể, NST nào có độ thích nghi cao nhất được chọn
Lặp lại thao tác trên N lần
Các toán tử di truyền của GA là toán tử lai ghép và đột biến Đây là hai toán tử có tác động lớn đến chất lượng của giải thuật Các toán tử này được xây dựng phụ thuộc vào cách mã hoá các NST Ở đây chỉ đưa ra toán tử lai ghép và đột biến trên một số cách mã hoá NST để chỉ ra được ý tưởng xây dựng toán tử lai ghép và đột biến trong GA Còn tuỳ thuộc vào các bài toán cụ thể và cách mã hoá NST mà ta xây dựng hai loại toán tử này
7.1.Mã hoá nhị phân
7.1.1.Toán tử lai ghép
Lai ghép đơn điểm cắt :
Một điểm cắt được chọn tại một vị trí thứ k trên NST
Từ đầu NST đến vị trí k, NST con sao chép từ cha, phần còn lại sao chép từ
Trang 10Lai ghép hai điểm cắt :
Hai điểm cắt được chọn
Từ đầu cho đến điểm cắt thứ nhất được sao chép từ cha, từ điểm cắt thứ nhất đến điểm cắt thứ hai sao chép từ mẹ và phần còn lại sao chép từ cha
Ví dụ :
Cha : 11| 0110 | 01
Mẹ : 10| 0111 | 01 Con sinh ra do lai ghép hai điểm cắt :
Mặt nạ : 10101000
Con : 1 0 0 1 1 101
Lai ghép số học: NST con được tạo thành bằng cách thực hiện một phép toán
logic nào đó như AND, OR, … với cặp NST bố mẹ
Ví dụ :
Cha : 11011001
Mẹ : 10011101
Con (AND): 10011001
Trang 117.1.2.Toán tử đột biến
Phép đảo bit : Bit được chọn sẽ bị đảo (Bit được chọn có gạch chân)
Ví dụ
Trước đột biến : 11011001
Trang 128.1.Nạp lại hoàn toàn
Tạo ra số NST mới bằng kích thước quần thể và quần thể mới bao gồm toàn các NST mới này, không có NST nào của thế hệ trước
8.2.Nạp lại ngẫu nhiên
Tạo ra số NST mới ít hơn kích thước quần thể và thay thế một cách ngẫu nhiên các NST ở thế hệ trước bằng NST ở thế hệ sau
8.3.Nạp lại theo mô hình cá thể ưu tú
Tạo ra số NST mới ít hơn kích thước quần thể và thay thế chúng cho các bố mẹ có
độ thích nghi thấp
Nhận xét về các chiến lược nạp lại :
Nạp lại hoàn toàn : là chiến lược đơn giản nhất Mỗi NST chỉ tồn tại trong một
thế hệ, sang thế hệ tiếp theo sẽ được thay mới hoàn toàn Như vậy sẽ xảy ra trường hợp là các NST tốt sẽ không được giữ lại, do đó chiến lược này không phải là chiến lược phù hợp cho việc cải thiện lời giải qua các thế hệ
Nạp lại theo mô hình cá thể ưu tú: Được coi là chiến lược tối ưu Các NST tốt sẽ
sống sót qua nhiều thế hệ Qua mỗi thế hệ, sẽ có một số lượng nhất định các NST tồi bị thay thế Tuy chiến lược không kiểm tra các NST con cháu nạp vào có tốt hơn bố mẹ bị loại đi hay không nhưng chắc chắn là những NST con cháu nạp vào nếu là tồi thì sẽ bị loại trong thế hệ tiếp Như vậy nó vẫn đảm bảo qua nhiều thế hệ thì tính chất của quần thể sẽ được cải thiện dần dần