Tôi cũng xin gửi lời cảm ơn tới các anh chị em và các bạn trong nhóm nghiên cứu, tìm hiểu các phương thức phát triển, cải tiến để áp dụng giải thuật di truyền trong giải bài toán người d
Trang 1Những kiến thức trình bày trong luận văn là do tôi tìm hiểu, nghiên cứu và trình bày theo những kiến thức tổng hợp của cá nhân Kết quả nghiên cứu trong luận văn này chưa từng được công bố tại bất kỳ công trình nào khác Trong quá trình làm luận văn, tôi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo Tôi xin cam đoan đây là công trình nghiên cứu của tôi và không sao chép của bất kỳ ai
Tôi xin chịu hoàn toàn trách nhiệm, nếu sai, tôi xin chịu mọi hình thức kỷ luật theo quy định
Hà Nội, ngày 15 tháng 3 năm 2016
Học viên Nguyễn Minh Thúy
Trang 2Để hoàn thành được luận văn này, tôi đã nhận được rất nhiều sự động viên, giúp đỡ của nhiều cá nhân và tập thể
Trước tiên, tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS TS Huỳnh Thị Thanh Bình, Trường Đại học Bách Khoa Hà Nội đã nhiệt tình hướng dẫn, tạo điều kiện thuận lợi cho tôi nghiên cứu khoa học và giúp tôi có thể hoàn thành luận văn một cách tốt nhất
Tôi cũng xin gửi lời cảm ơn tới các anh chị em và các bạn trong nhóm nghiên cứu, tìm hiểu các phương thức phát triển, cải tiến để áp dụng giải thuật di truyền trong giải bài toán người du lịch đã giúp đỡ tôi trong suốt quá trình học tập
và nghiên cứu
Cuối cùng tôi xin gửi lời cám ơn đến gia đình, bạn bè, những người đã luôn bên tôi, động viên và khuyến khích tôi trong quá trình thực hiện đề tài nghiên cứu của mình
Học viên Nguyễn Minh Thúy
Trang 3MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 5
MỞ ĐẦU 7
CHƯƠNG 1 - TỔNG QUAN CƠ SỞ LÝ THUYẾT 9
1.1 Cơ sở lý thuyết đồ thị 9
1.1.1 Định nghĩa đồ thị 9
1.1.2 Đường đi, chu trình, đồ thị liên thông 9
1.1.3 Biểu diễn đồ thị trên máy tính 10
1.1.4 Đồ thị Euler và đồ thị Hamilton 12
1.2 Tổng quan về giải thuật di truyền 14
1.2.1 Giới thiệu 14
1.2.2 Các khái niệm cơ bản 14
1.2.3 Mô hình giải thuật di truyền 16
1.2.4 Cơ chế thực hiện giải thuật di truyền 17
1.2.5 Các tham số cơ bản của giải thuật 22
1.2.6 Các ứng dụng của giải thuật di truyền 22
CHƯƠNG 2 - BÀI TOÁN NGƯỜI DU LỊCH 25
2.1 Giới thiệu bài toán 25
2.2 Ứng dụng của bài toán 26
2.3 Các nghiên cứu liên quan 27
2.3.1 Giải thuật chính xác 27
2.3.2 Giải thuật xấp xỉ 28
CHƯƠNG 3 - GIẢI THUẬT DI TRUYỀN GIẢI BÀI TOÁN NGƯỜI DU LỊCH 31
3.1 Mã hóa lời giải 31
3.2 Khởi tạo quần thể 31
3.3 Chọn lọc 32
3.3.1 Lựa chọn tranh đấu 32
3.3.2 Lựa chọn tỷ lệ (bánh xe Roulette) 32
Trang 43.4 Lai ghép 33
3.4.1 Phép lai ánh xạ từng phần (PMX - Partial Mappel Crossover) 33
3.4.2 Phép lai thứ tự (OX - Order Crossover) 34
3.4.3 Phép lai MSCX (Modified Sequential Constructive Crossover) 34
3.5 Đột biến 36
3.5.1 Đột biến đảo ngược trình tự (RSM - Reverse Sequence Mutation) 36
3.5.2 Đột biến THRORS 36
3.6 Chiến lược nạp lại quần thể 36
CHƯƠNG 4 - KẾT QUẢ THỰC NGHIỆM 38
4.1 Dữ liệu thực nghiệm 38
4.2 Môi trường thực nghiệm 38
4.3 Kết quả thực nghiệm 39
4.4 Kết luận 44
4.5 Hướng phát triển 45
TÀI LIỆU THAM KHẢO 46
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
TSP Travelling Salesman problem Bài toán người du lịch
PMX Partial Mappel Crossover Phép lai ánh xạ từng phần
MSCX Modified Sequential Constructive
Trang 6DANH MỤC CÁC BẢNG
Bảng 1: Ma trận khoảng cách (chi phí) 35 Bảng 2: Danh sách các bộ dữ liệu sử dụng 38 Bảng 3: Kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và tranh đấu 39 Bảng 4: Kết quả tốt nhất đạt được khi sử dụng các phép lai OX, PMX và MSCX 41
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: Sơ đồ mạng máy tính 9
Hình 2: Đồ thị đầy đủ 9
Hình 3: Đồ thị G và ma trận kề của đồ thị G 10
Hình 4: Đồ thị có hướng và ma trận liên thuộc đỉnh – cạnh 11
Hình 5: Đồ thị G và danh sách cạnh của đồ thị G 11
Hình 6: Đồ thị G và danh sách kề của đồ thị G 11
Hình 7: Đồ thị G1, G2, G3 12
Hình 8: Đồ thị G1, G2, G3 13
Hình 9: Đồ thị đấu loại D5, Đồ thị đấu loại liên thông mạnh D6 13
Hình 10: Mô hình giải thuật di truyền 17
Hình 11: Bài toán người du lịch 25
Hình 12: Một lời giải của bài toán người du lịch 31
Hình 13: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 50.000 – 200.000 39
Hình 14: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 5.000 – 50.000 40 Hình 15: So sánh kết quả tốt nhất đạt được sử dụng chiến lược chọn lọc tỷ lệ và tranh đấu của các bộ dữ liệu có kết quả thu được trong khoảng từ 0 – 5.000 40
Hình 16: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 5000 – 50.000 41
Hình 17: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 50.000 – 500.000 42 Hình 18: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và MSCX của các bộ dữ liệu có kết quả thu được trong khoảng từ 0 – 5000 42
Hình 19: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và MSCX qua từng thế hệ (xét 500 thế hệ đầu) của bộ dữ liệu wi29 43
Trang 8Hình 20: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và MSCX qua từng thế hệ (xét 10.000 thế hệ đầu) của bộ dữ liệu gil262 43 Hình 21: So sánh kết quả tốt nhất đạt được khi sử dụng phép lai PMX và MSCX qua từng thế hệ (xét 50.000 thế hệ đầu) của bộ dữ liệu pr1002 44
Trang 9MỞ ĐẦU
1 Tính cấp thiết của đề tài
Bài toán người du lịch (Traveling Saleman Problem – TSP) là một bài toán được nghiên cứu rộng rãi trong lĩnh vực khoa học máy tính Từ những năm 1940, có rất nhiều bài báo, những công trình nghiên cứu giải quyết bài toán này Tuy vậy, sau hơn nửa thế kỷ nghiên cứu, bài toán vẫn chưa hoàn toàn được giải Vì vậy, bài toán người du lịch được xếp vào trong danh mục những bài toán khó Không chỉ vậy, bài toán người du lịch còn có nhiều ứng dụng trong cuộc sống hàng ngày
Sau nhiều năm nghiên cứu, nhiều giải pháp đã được đưa ra nhằm giải bài toán
người du lịch Đề tài “Áp dụng giải thuật di truyền giải bài toán người du lịch”
được thực hiện nhằm đưa ra những tìm hiểu khái quát nhất về giải thuật di truyền đặc biệt là cơ chế thực hiện và nguyên lý hoạt động của nó Từ đó có thể xây dựng chương trình hoàn chỉnh về thuật giải và cách áp dụng thuật giải di truyền vào giải bài toán người du lịch để đưa ra lời giải tốt nhất trong thời gian ngắn nhất
2 Mục tiêu nghiên cứu
Về mặt lý thuyết, trước tiên tác giả nghiên cứu những kiến thức nền tảng như
cơ sở lý thuyết thuật giải di truyền, bài toán người du lịch và áp dụng giải thuật di truyền giải bài toán người du lịch Xây dựng chương trình thực nghiệm, đánh giá và phân tích kết quả đạt được
3 Bố cục luận văn
Cấu trúc luận văn gồm bốn chương với nội dung chính như sau:
Chương 1: Tổng quan cơ sở lý thuyết: Chương này giới thiệu về cơ sở lý thuyết đồ thị, giải thuật di truyền
Chương 2: Bài toán người du lịch: Phát biểu bài toán người du lịch, các nghiên cứu liên quan và một số ứng dụng của bài toán trong thực tiễn
Trang 10Chương 3: Áp dụng giải thuật di truyền giải bài toán người du lịch
Chương 4: Kết quả thực nghiệm: Các kết quả trong quá trình chạy thực nghiệm, các
so sánh, đánh giá cũng sẽ được đưa ra trong chương này
Trang 11CHƯƠNG 1 - TỔNG QUAN CƠ SỞ LÝ THUYẾT
Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên dương, trên
đồ thị vô hướng G = (V, E) là dãy
x0 , x1 ,…, xn-1 , xn trong đó u = x , v = x , (x , x ) ∈ E, i = 0, 1, 2,…, n-1
Trang 12Đường đi nói trên còn có thể biểu diễn dưới dạng dãy các cạnh:
(x0 , x1 ), (x1 , x2 ), …, (xn-1, xn ) Đỉnh u gọi là đỉnh đầu, còn đỉnh v gọi là đỉnh cuối của đường đi Đường đi có đỉnh đầu trùng với đỉnh cuối (tức là u = v) được gọi là chu trình Đường đi hay chu trình được gọi là đơn nếu như không có cạnh nào bị lặp lại
1.1.3 Biểu diễn đồ thị trên máy tính
1.1.3.1 Ma trận kề, ma trận trọng số
Xét đơn đồ thị vô hướng G = (V, E), với tập đỉnh V = {1, 2, , n}, tập cạnh E={e1, e2, …, em} Ta gọi ma trận kề của đồ thị G là (0,l)-ma trận
A= {aij : i,j= 1, 2 , …, n}
với các phần tử được xác định theo quy tắc sau đây:
aij = 0, nếu (i, j ) ∉ E và aij = 1, nếu (i, j ) ∈ E , i j = 1,2 n
Ví dụ: Ma trận kề cuả đồ thị vô hướng G cho trong hình là:
Trang 14Mọi đồ thị Euler luôn là nửa Euler, nhưng điều ngược lại không luôn đúng
Ví dụ: Đồ thị G1 trong hình 7 là đồ thị Euler vì nó có chu trình Euler a, e, c, d, e,
b, a Đồ thị G3 không có chu trình Euler nhưng nó có đường đi Euler a, c, d, e, b, d,
a, b, vì thế G3 là đồ thị nửa Euler Đồ thị G2 không có chu trình cũng như đường đi Euler
Trang 15lại mỗi đỉnh đúng một lần rồi quay trở về v được gọi là chu trình Hamilton Đồ thị
G được gọi là đồ thị Hamilton nếu nó chứa chu trình Hamilton và gọi là đồ thị nửa Hamilton nếu nó có đường đi Hamilton
Ví dụ: Trong hình 8: G3 là Hamilton, G2 là nửa Hamilton còn G1 không là nửa Hamilton
Hình 8 : Đồ thị G1, G2, G3
Định lý 1 (Dirak 1952): Đơn đồ thị vô hướng G với n>2 đỉnh, mỗi đỉnh có bậc
không nhỏ hơn n/2 là đồ thị Hamilton
Định lý 2: Giả sử G là đồ có hướng liên thông với n đỉnh
Nếu deg+ (v) ≥ n/2, deg – (v) ≥ n/2, ∀ v thì G là Hamilton
Định lý 3:
Mọi đồ thị đấu loại là nửa Hamilton
Mọi đồ thị đấu loại liên thông mạnh là Hamilton
Ví dụ: Đồ thị đấu loại D5, D6 được cho trong hình 9
Hình 9 : Đồ thị đấu loại D5, Đồ thị đấu loại liên thông mạnh D6
Trang 161.2 Tổng quan về giải thuật di truyền
GA xét đến toàn bộ các giải pháp, bằng cách xét trước nhất một số giải pháp sau đó loại bỏ những thành phần không thích hợp và chọn những thành phần thích nghi hơn để tạo sinh và biến hóa nhằm mục đích tạo ra nhiều giải pháp mới có hệ số thích nghi ngày càng cao
Quá trình phát triển của giải thuật di truyền bắt đầu từ năm 1960, khi ý tưởng đầu tiên về tính toán tiến hóa được Rechenberg giới thiệu trong công trình
“Evolution Strategies” (Các chiến lược tiến hóa) Ý tưởng này sau đó được rất nhiều nhà nghiên cứu phát triển Tiếp theo đó, giải thuật gen do John Holland phát minh năm 1975 đã được giới thiệu và tổng hợp đầy đủ trong tác phẩm “Adaption in Natural and Artificial Systems” (Sự thích nghi trong các hệ tự nhiên và nhân tạo) được xuất bản cùng năm đó Sau đó đến năm 1992, Michalewicz đã phát triển và hoàn thành phương pháp này Hai lĩnh vực được thuật giải di truyền ứng dụng đầu tiên là: tối ưu hóa và học tập máy Ngày nay, giải thuật này vẫn được các nhà khoa học trên thế giới tìm hiểu, nghiên cứu và phát triển đặc biệt trong các lĩnh vực tối ưu hóa một lĩnh vực có rất 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.2 Các khái niệm cơ bản
Giải thuật di truyền là giải thuật được xây dựng dựa trên quá trình tiến hóa trong tự nhiên Chính vì vậy, các thuật ngữ và khái niệm được sử dụng để trình bày giải thuật đều có liên quan đến các thuật ngữ trong di truyền học
Trang 171.2.2.1 Cá thể, nhiễm sắc thể
Các cá thể hay còn được gọi là các chuỗi gen hay nhiễm sắc thể Điều này có thể sẽ gây ra một số nhầm lẫn với những ai chưa biết hay tìm hiểu về giải thuật di truyền Không giống như di truyền học trong tự nhiên, một cơ thể của một chủng loại đã cho mang một số nhiễm sắc thể nào đó nhưng trong giải thuật di truyền ta chỉ nói về những cá thể có một nhiễm sắc thể và các cá thể này biểu diễn một lời giải của bài toán đang được giải Do đó, trong giải thuật di truyền, cá thể và nhiễm sắc thể là tương đương
1.2.2.2 Quần thể
Quần thể là tập hợp các cá thể thuộc cùng một loài hay dưới loài sinh sống trong một sinh cảnh nhất định hay còn được biết với khái niệm khác là tập các đối tượng có ít nhất một đặc tính chung là đối tượng của cuộc phân tích thống kê Trong giải thuật di truyền quần thể chính là tập hợp các lời giải của bài toán đang giải 1.2.2.3 Chọn lọc
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 biểu diễn lời giải tối ưu 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.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ó
Trang 18đặ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
1.2.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ệ
1.2.3 Mô hình giải thuật di truyền
Có thể tóm tắt giải thuật di truyền thông qua các bước cơ bản sau:
1 Khởi tạo một quần thể ban đầu (các đáp án ban đầu của bài toán)
2 Xác định giá trị hàm mục tiêu (fitness) cho mỗi cá thể trong quần
thể
3 Tạo ra quần thể mới bằng cách lai ghép (crossover) từ các cá thể hiện tại có chọn lọc (selection), đồng thời tạo ra các đột biến (mutation) trong quần thể mới theo một xác xuất nhất định
4 Các cá thể trong quần thể mới sinh ra được thay thể cho các cá thể trong quần thể cũ có độ thích nghi tồi hơn
5 Nếu điều kiện dừng thỏa thì giải thuật dừng lại và đưa ra lời giải tốt nhất cùng với giá trị hàm mục tiêu của lời giải đó, nếu không thì quay lại bước 2 GA sẽ dừng lại khi chạy hết số thế hệ đã cho hoặc sau một số thế hệ cố định không tìm ra kết quả tốt hơn
Trang 19Hình 10 : Mô hình giải thuật di truyền
1.2.4 Cơ chế thực hiện giải thuật di truyền
Phần này trình bày rõ hơn về các bước trong mô hình giải thuật di truyền đã
được giới thiệu trước đó
1.2.4.1 Mã hóa cá thể
Vấn đề trước hết cần giải quyết là biểu diễn các cá thể như thế nào để phù hợp
và thuận lợi khi giải bài toán Tuỳ theo từng bài toán cụ thể mà có những cách biểu diễn khác nhau
a) Mã hóa nhị phân
Mỗi cá thể tương ứng với một chuỗi bao gồm các bit 0 và 1 Ý nghĩa của các bit này phụ thuộc vào từng tình huống cụ thể Đây là cách biểu diễn đơn giải nhất
và là cách thông dụng nhất trong các cách biểu diễn
Ví dụ trong bài toán đơn giản là tìm giá trị X sao cho: các lời giải được biểu diễn với dạng nhị phân:
Hệ thập phân 1 2 3 4 5 6 7 8
Hệ nhị phân 00001 00010 00011 00100 00101 00110 00111 01000
Mã hóa nhị phân khá phổ biến, tuy nhiên phương thức mã hóa này có một nhược điểm là có thể tạo ra không gian mã hóa lớn hơn so với không gian giá trị của
Trang 20nhiễm sắc thể, hơn nữa có thể xảy ra trường hợp là các nhiễm sắc thể được tạo ra không thuộc không gian tìm kiếm Vì vậy, đối với nhiều bài toán thì biểu diễn nhị phân là không hữu hiệu
b) Mã hóa hoán vị
Mã hóa hoán vị biểu diễn mỗi cá thể tương ứng với một hoán vị của tập n ký hiệu nào đó Chẳng hạn cách biểu diễn này đã được áp dụng cho bài toán người du lịch: Một thương gia phải đi qua nhiều thành phố (n) Hãy vạch lộ trình đi qua tất cả các thành phố đó sao cho quãng đường đi là ngắn nhất Biết rằng mỗi thành phố chỉ
đi qua một lần Thông thường, mã hóa hoán vị có ba cách biểu diễn:
kề có thể biểu diễn các hành trình bất hợp lệ Ví dụ vec tơ
( 2 4 8 1 9 3 5 7 6 ) dẫn đến chu trình 1 – 2 – 4 – 1 không hợp lệ
2 Biểu diễn thứ tự
Biểu diễn thứ tự biểu diễn hành trình là danh sách n thành phố, phần tử thứ i của danh sách là một số trong khoảng từ 1 đến n-i+1 Ý nghĩa của biểu diễn thứ tự như sau Có một danh sách thứ tự các thành phố (giả sử là C), được dùng làm điểm tham chiếu cho các danh sách trong biểu diễn thứ tự Ví dụ: C = ( 1 2 3 4 5 6 7
8 9 )
Một hành trình: 1 – 2 – 4 – 3 – 8 – 5 – 9 – 6 – 7 được biểu diễn là danh sách
l của các tham chiếu:
Trang 21l = ( 1 1 2 1 4 1 3 1 1 )
3 Biểu diễn đường dẫn
Biểu diễn đường dẫn là biểu diễn tự nhiên nhất của một hành trình Ví dụ hành trình:
5 – 1 – 7 – 8 – 9 – 4 – 6 – 2 – 3 đơn giản được biểu diễn là:
sử dụng sao cho thuận lợi trong quá trình giải quyết bài toán Nếu dùng biểu diễn nhị phân cho loại bài toán này thì rất phức tạp
Mã hóa giá trị thường dùng cho các bài toán đặc biệt và thường phải nghiên cứu, phát triển các toán tử lại ghép và đột biến sao cho phù hợp với từng bài toán Một ví dụ cho cách mã hóa này là bài toán tìm trọng số mạng nơron
d) Mã hóa theo cây
Phương thức mã hóa này thường được sử dụng trong lập trình di truyền, mỗi
cá thể được biểu diễn dưới dạng cây (gọi là cây cá thể) có số lượng nút và độ sau khác nhau Tùy theo mỗi bài toán thì các nút mang ý nghĩa khác nhau Thông thường biểu diễn theo cây thường được áp dụng cho dạng bài toán xác định công thức tối ưu (xác định công thức hồi quy trong thí nghiệm hóa sinh)
Trang 221.2.4.2 Khởi tạo quần thể ban đầu
Sau khi đã mã hóa được các cá thể, công việc cần làm tiếp theo là khởi tạo quần thể ban đầu bằng cách tạo ngẫu nhiên
Như đã đưa ra ở phần trước, quần thể là tập hợp các cá thể có cùng chung một
số đặc điểm, 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 bài toán Quần thể ban đầu khá ảnh hưởng đến hiệu quả giải thuật, thông thường
là do phụ thuộc kích thước quần thể Theo như các nghiên cứu và thử nghiệm của các nhà khoa học trước đó cho thấy kích thước quần thể không nên quá lớn cũng không nên quá nhỏ vì nếu kích thước quần thể lớn thì giải thuật sẽ bị chậm, còn nếu như kích thước quần thể quá nhỏ sẽ làm giảm đi không gian tìm kiếm Cả hai vấn
đề này đều làm giảm hiệu quả của thuật toán
1.2.4.3 Hàm mục tiêu
Hàm mục tiêu hay còn gọi là hàm tính độ thích nghi là hàm đánh giá thể hiện tính thích nghi hay độ tốt của lời giải Hàm mục tiêu có vai trò tương tự như là môi trường sống trong sự tiến hóa của tự nhiên Giá trị của hàm mục tiêu là nhỏ nhất hay lớn nhất phụ thuộc vào bài toán được đưa ra và hàm mục tiêu được lựa chọn sao cho phù hợp với bài toán
1.2.4.4 Các toán tử di truyền
a) Chọn lọc
Kích thước quần thể là cố định qua các thế hệ Ở mỗi thế hệ ta lại có các cá thể mới sinh bằng lai ghép và đột biến Do đó, cần phải có sự chọn lọc để đảm bảo tính cân bằng của quần thể Cách thức chọn lọc cá thể được đánh giá dựa trên chi phí của mỗi chu trình Cá thể được chọn làm lời giải cuối cùng là cá thể có chi phí nhỏ nhất trong quần thể sau mỗi thế hệ tiến hóa
Có rất nhiều phương thức chọn lọc và sau đây là các phương thức chọn lọc thường được sử dụng khi giải bài toán người du lịch:
Lựa chọn theo yếu tố ngẫu nhiên
Trang 23 Lựa chọn theo xếp hạng
Lựa chọn tranh đấu
Lựa chọn theo tỷ lệ (bánh xe Roulet)
b) Lai ghép
Đây là quá trình xảy ra chủ yếu trong giải thuật di truyền Tùy theo mỗi cách
mã hóa cá thể khác nhau sẽ có các cách lai ghép khác sau sao cho phù hợp với cách
mã hóa và tránh tạo ra các con không hợp lệ
Phép lai là quá trình hình thành NST mới trên cơ sở các NST cha – mẹ, bằng cách ghép một hay nhiều đoạn gen của hai hay nhiều NST cha – me với nhau Phép lai xảy ra với xác suất pc , được thực hiện như sau:
Đối với mỗi cặp NST cha - mẹ được chọn phát sinh ngẫu nhiên một số r trong khoảng [0 1]
Nếu r < pc thì cặp NST đó được chọn để lai ghép
Nếu r > pc thì cặp NST đó được trả lại quần thể
c) Đột biến
Có rất nhiều dạng đột biến khác nhau được các nhà khoa học nghiên cứu và sử dụng khi giải bài toán người du lịch nhưng thông thường đều là thực hiện các thao tác sau theo nhiều hình thức:
Đảo: chọn một đọan nhiễm sắc thể con bất kỳ rồi đảo ngước chiều của đoạn nhiễm sắc thể đã chọn và đưa ra một nhiễm sắc thể mới
Chèn: chọn một thành phố và chèn thành phố đó vào vị trí ngẫu nhiên
Dời chỗ: chọn một hành trình con rồi chèn nó vào vị trí ngẫu nhiên
Trao đổi qua lại: hoán vị hai thành phố
Mỗi gen trong tất cả các NST có cơ hội đột biến như nhau, nghĩa là đối với mỗi NST trong quần thể hiện hành (sau khi lai) và đối với mỗi gen trong NST, quá trình đột biến được thực hiện như sau:
Trang 24 Phát sinh ngẫu nhiên một số r trong khoảng [0 1]
Nếu r < pm thì đột biến gen đó Trả cá thể mới này về quần thể để thực hiện quá trình tiến hóa tiếp theo
Đột biến làm tăng khả năng tìm được lời giải gần tối ưu của thuật toán di truyền Đột biến không được dùng thường xuyên vì đột biến là phép toán tìm kiếm ngẫu nhiên.Với tỷ lệ đột biến cao thì thuật toán di truyền còn cho kết quả xấu hơn là phương pháp tìm kiếm ngẫu nhiên
1.2.5 Các tham số cơ bản của giải thuật
Qua các phần trên chúng ta dễ dàng nhận ra trong giải thuật di truyền cần xác định các tham số sau :
q : kích thước của quần thể hay số lượng cá thể trong quần thể
P c : xác suất lai ghép cho biết việc lai ghép được thực hiện thường xuyên như thế nào
P m : xác suất đột biến cho biết các phần của nhiễm sắc thể thay đổi thường xuyên như thế nào
1.2.6 Các ứng dụng của giải thuật di truyền
Ban đầu giải thuật di truyền ra đời được áp dụng cho tối ưu hoá và học máy là chủ yếu Đến nay GA đã phát triển mạnh và có nhiều ứng dụng thực tế, đặc biệt là các bài toán về trí tuệ nhân tạo Ví dụ: ta có thể tối ưu công việc dự báo thời tiết sao cho chính xác nhất dựa trên các thông số khí tượng do được Năm 1967, Beglay xây dựng máy chơi cờ Hexapawn dựa trên giải thuật di truyền và nhận ra rằng giải thuật
di truyền có thể thực hiện tốt mà không phụ thuộc độ phức tạp của trò chơi
1.2.6.1 Tối ưu hoá và học máy:
Trong lĩnh vực tối ưu hóa có nhiều bài toán được áp dụng giải thuật di truyền
và đã thành công như tối ưu hoá hàm một biến, tối ưu hóa hàm nhiều biến, hay như bài toán người du lịch, bài toán hộp đen, các bài toán kinh doanh, nhận dạng điều khiển hệ thống… David E.Golderg đã ứng dụng GA để tối ưu hóa bài toán điều