Đây là cơ chế lụa chọn đơn giản nhất. 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. 3.3.2.Lựa chọn tỷ lệ (bánh xe Roulette)
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ể:
Tính xác suất chọn pi cho mỗi nhiễm sắc thể vi: pi = f(vi)/F
Tính vị trí xác suất qi của mỗi nhiễm sắc thể :
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].
pop size i i v f F _ 1 ) ( i j j i P q 1
33
Nếu r < q1 (tức là r<1)thì chọn nhiễm sắc thể v1; ngược lại thì chọn nhiễm sắc thể thứ i sao cho qi-1 r qi
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.
3.4. Lai ghép
3.4.1.Phép lai ánh xạ từng phần (PMX - Partial Mappel Crossover)
Phép lai PMX do Golberg và Lingle đề nghị, con lai mới được tạo ra bằng cách chọn một chuỗi con từ hành trình của cha mẹ đồng thời bảo toàn thứ tự và vị trí của tối đa các thành phố từ cha mẹ kia. Một chuỗi con của hành trình được chọn bằng cách chọn hai điểm cắt ngẫu nhiên, được dùng làm giới hạn cho các thao tác hoán vị.
Ví dụ: ta có hai cha mẹ ( với hai điểm cắt được đánh dấu bởi “|”)
| | | | Con lai sẽ được tạo ra theo cách sau:
Bước 1: Hoán vị các đoạn giữa các điểm cắt | | | |
Hoán vị này cũng định nghĩa một loạt các ánh xạ: 14, 85, 76, 67
Bước 2: Thêm vào các thành phố từ cha mẹ gốc mà không có xung đột | |
34
Bước 3: Hoàn thiện phần còn thiếu dựa trên loạt ánh xạ có ở bước 1 | |
| | 3.4.2.Phép lai thứ tự (OX - Order Crossover)
Phép lai OX do Davis đề nghị, tạo ra các con bằng cách chọn chuỗi con của hành trình từ một cha mẹ và bảo tồn thứ tự tương đối của các thành phố cha mẹ kia. Ví dụ:
| | | | Con lai sẽ đc tạo ra theo cách sau:
Bước 1: Sao chép các đoạn giữa 2 điểm cắt vào các con | | | |
Bước 2: Bắt đầu từ điểm cắt thứ hai của một cha mẹ, các thành phố từ cha mẹ kia được sao chép theo cùng thứ tự, bỏ đi các dấu hiệu đã có. Đến cuối chuỗi, ta tiếp tục từ vị trí đầu tiên của chuỗi.
| | | |
3.4.3.Phép lai MSCX (Modified Sequential Constructive Crossover)
Phép lai MSCX khá giống phép lai SCX. Tuy nhiên, có một số điểm khác SCX:
Đỉnh đầu tiên được chọn là đỉnh đầu tiên của
Nếu gene đứng sau gene đang xét là đã được thăm, thì ta sử dụng chính các NST để tìm ra gene hợp lệ, thay vì sử dụng dãy tham chiếu
35 Ví dụ:
và ma trận chi phí (ma trận khoảng cách):
Bảng 1: Ma trận khoảng cách (chi phí)
Con lai sẽ được tạo ra theo cách sau:
Bước 1: Chọn đỉnh đầu tiên của làm đỉnh đang xét, chọn đỉnh 1.
Bước 2: Xét các đỉnh hợp lệ sau đỉnh 0. Ở là đỉnh 5 và ở là đỉnh 6. Ta có d(1,6) > d(1,5) nên đỉnh 5 được chọn đưa vào nhiễm sắc thể con
Tương tự thực hiện ta có , nhưng đỉnh hợp lệ sau đỉnh 7 ở là đỉnh 3 và ở thì không có, ta chọn đỉnh hợp lệ sau đỉnh 7 ở là 6 vì đã xét 1 rồi. Quay lại thực hiện bước 2.
Tiếp tục thực hiện ta có
Theo [2], [19] tác giả đã giới thiệu hai phép lai có hiệu quả tốt khi đưa vào cài đặt để giải bài toán TSP, trong đó MSCX có hiệu quả tốt hơn hai phép lai PMX và OX. Chính vì vậy, trong quá trình cài đặt thử nghiệm, luận văn lựa chọn phép lai MSCX cùng với hai phép lai PMX và OX để phân tích, so sánh, đánh giá hiệu quả của các phép lai.
36 3.5. Đột biến
3.5.1.Đột biến đảo ngược trình tự (RSM - Reverse Sequence Mutation)
Đối với phương pháp đột biến này, một đoạn nhiễm sắc thể sẽ được chọn và được giới hạn bởi hai vị trí i và j được chọn ngẫu nhiên, trong đó i < j. Trình tự của đoạn gen này sẽ bị đảo ngược như các hoạt động đã được đề cập trước đó.
Ví dụ:
Điểm cắt Điểm cắt Điểm cắt Điểm cắt
1 2 3 4 5 6 1 5 4 3 2 6
3.5.2.Đột biến THRORS
Chọn ngẫu nhiên 3 gen có vị trí i< j< l. Gen ở vị trí i sẽ được gán vào vị trí j, gen ở vị trí j trước đó được gán vào vị trí l, gen ở vị trí l trước đó sẽ được gán vào vị trí i
Ví dụ:
1 2 3 4 5 6
1 6 3 2 5 4
3.6. Chiến lược nạp lại quần thể
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. Đây đượ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.
38
CHƯƠNG 4 - KẾT QUẢ THỰC NGHIỆM
4.1. Dữ liệu thực nghiệm
Luận văn sử dụng các bộ dữ liệu được cung cấp trên trang http://www.iwr.uni- heidelberg.de/groups/comopt/software/TSPLIB95/ bao gồm những bài toán được nhiều nhóm nghiên cứu sử dụng.
Số thứ tự Tên bộ dữ liệu Số thành phố Kết quả tối ưu*
1 Wi29 29 27603 2 Dj38 38 6656 3 Eil51 51 428 4 Pr76 76 108159 5 Rat99 99 1211 6 KroA100 100 21282 7 Bier127 127 118282 8 Ch150 150 6528 9 Tsp225 225 3916 10 Gil262 262 2378 11 Rat575 575 6773 12 Pr1002 1002 259045
* được cung cấp ở địa chỉ http://www.iwr.uni-heidelberg.de/groups/comopt
/software/TSPLIB95/STSP.html
Bảng 2: Danh sách các bộ dữ liệu sử dụng
4.2. Môi trường thực nghiệm
Chương trình được viết bằng ngôn ngữ Java, được dịch trên công cụ Eclipse, chạy trên hệ điều hành Windows 7 64 bit. Các thông số phần cứng: CPU Intel® Core™ i5 2.53 GHz, bộ nhớ RAM 4GB.
39 4.3. Kết quả thực nghiệm
So sánh chiến lược chọn lọc: Cài đặt giải thuật sử dụng phép lai PMX và phép đột biến RSM, so sánh kết quả đạt được của hai chiến lược chọn lọc tỷ lệ (bánh xe roulette) và lựa chọn tranh đấu. Điều kiện dừng được sử dụng là 150.000 lần tính hàm thích nghi.
Số thứ tự Tên bộ dữ liệu Lựa chọn tỷ lệ Lựa chọn tranh đấu
1 Wi29 28684.158 27601.17 2 Dj38 7117.8164 6659.439 3 Eil51 451.53052 437.0156 4 Pr76 119712.41 110686.91 5 Rat99 1520.1378 1230.256 6 KroA100 27439.74 22663.928 7 Bier127 144248.72 124913.445 8 Ch150 10399.811 7104.476 9 Tsp225 7875.6353 4209.03
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
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
40
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
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
Dựa trên kết quả thu được ở bảng 3 và các biểu đồ ở hình 13, 14 và 15, rất dễ nhận ra rằng chiến lược chọn lọc tranh đấu được sử dụng khi lựa chọn cặp cha - mẹ để tiến hành lai ghép đưa ra kết quả tốt hơn so với chiến lược chọn lọc tỷ lệ. Đối với những bộ dữ liệu có số lượng đỉnh (thành phố) nhỏ, sự chênh lệch giữa các kết quả tốt nhất đạt được không lớn. Khi số lượng đỉnh tăng lên, sự chênh lệch này sẽ trở lên lớn hơn. Khi sử dụng chiến lược chọn lọc tranh đấu, cha mẹ tốt nhất sẽ được chọn trong một số các cá thể được chọn ngẫu nhiên. Vì vậy, khả năng đưa ra lời giải
41 cha mẹ tốt hơn và đa dạng hơn để cải thiện các thế hệ sau sẽ cao hơn khi sử dụng chiến lược chọn lọc tỷ lệ (chỉ so sánh hai NST i-1 và i)
So sánh hiệu quả đạt được khi sử dụng chiến lược chọn lọc tranh đấu và áp dụng cùng với các phép lai khác nhau
Số thứ tự Tên bộ dữ liệu OX PMX MSCX 1 Wi29 27601.17 27601.17 27601.17 2 Dj38 6659.439 6659.439 6659.439 3 Eil51 436.05557 437.0156 428.9816 4 Pr76 110564.516 110686.91 109366.24 5 Rat99 1237.824 1230.256 1246.3992 6 KroA100 22027.453 22663.928 21496.332 7 Bier127 121829.88 124913.445 120412.36 8 Ch150 6948.237 7104.476 6656.437 9 Tsp225 4166.7095 4209.03 4090.7095 10 Gil262 2530.249 2722.378 2516.8599 11 Rat575 7831.414 8026.3975 7699.8 12 Pr1002 - 373007.16 304006.1
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
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
0 10000 20000 30000
Wi29 Dj38 KroA100 Ch150 Rat575
Chi phí Bộ dữ liệu OX PMX MSCX Optimal
42
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
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
Dựa theo thống kê và biểu đồ so sánh các kết quả ở bên trên, rất dễ dàng để nhận ra rằng ở các bộ dữ liệu có số đỉnh nhỏ, kết quả tốt nhất đạt được đều gần bằng nhau và gần với kết quả tốt nhất. Khi số đỉnh tăng dần, sự chênh lệch giữa các kết quả tốt nhất đạt được cũng tăng dần. Vì vậy, có thể kết luận rằng việc cài đặt giải
43 thuật di truyền sử dụng phép lai MSCX đưa ra kết quả tốt hơn nhiều so với hai phép lai OX và PMX thường được biết đến, đặc biệt là đối với các bộ dữ liệu lớn.
Bên cạnh việc so sánh kết quả tốt nhất được đưa ra sau các lần chạy thực nghiệm, luận văn còn phân tích các kết quả tốt nhất được đưa ra trong từng thế hệ, so sánh sự hội tụ khi sử dụng các phép lai OX, PMX và MSCX.
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
Hình 20:So sánh kết quả tốt nhất đạt được khi sử dụng phép lai OX, PMX và
44
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
Sự hội tụ của kết quả tốt nhất thu được qua từng thế hệ khi sử dụng phép lai MSCX tốt hơn PMX và OX ở bộ dữ liệu nhỏ (wi29), bộ dữ liệu vừa (gil262) và bộ dữ liệu lớn (pr1002) do phương thức hoạt động của MSCX dựa trên ma trận khoảng cách (ma trận chi phí).
4.4. Kết luận
Qua quá trình nghiên cứu và chạy thử nghiệm nhiều lần trên máy tính, giải thuật di truyền có thể giải quyết bài toán người du lịch với các bộ dữ liệu có số lượng thành phố nhỏ trong một thời gian rất ngắn. Khi số lượng các thành phố tăng lên, kết quả tốt nhất đạt được chưa gần với kết quả tối ưu thật sự. Để khắc phục, việc tăng số thế hệ (vòng lặp) để hy vọng số thế hệ sau có thể tìm ra một kết quả mới, tốt hơn kết quả trước đó. Giải thuật di truyền sử dụng chọn lọc tranh đấu và phép lai MSCX đạt hiệu quả tốt hơn khi sử dụng với phép lai PMX và OX. Khi sử dụng phép lai MSCX, kết quả hội tụ nhanh hơn qua từng thế hệ.
45 4.5. Hướng phát triển
Với những kiến thức nền tảng về giải thuật di truyền và bài toán người du lịch, trong tương lai, việc nghiên cứu có thể tiếp tục với một số hướng như sau:
- Đề xuất và cài đặt thử nghiệm giải thuật di truyền kết hợp với một số thuật toán khác.
- Đề xuất và cài đặt thử nghiệm các chiến lược chọn lọc cải tiến. - Tiếp tục phát triển ứng dụng cho một số lớp bài toán tối ưu khác.
46
TÀI LIỆU THAM KHẢO
[1]. Applegate, D. L.; Bixby, R. M.; Chvátal, V.; Cook, W. J., The Traveling
Salesman Problem, ISBN 0-691-12993-2, 2006
[2]. Dr.Sabry M. Abdel-Moetty, Asmaa O. Heakil, Enhanced Traveling Salesman Problem Solving using Genetic Algorithm Technique with modified Sequential
Constructive Crossover Operator, International Journal of Computer Science and
Network Security, VOL.12 No.6, June 2012
[3]. Đinh Mạnh Tường, Trí tuệ nhân tạo, NXB Khoa học và kỹ thuật.2002.
[4]. Gutin, G.; Yeo, A.; Zverovich, A, Traveling salesman should not be greedy:
domination analysis of greedy-type heuristics for the TSP, Discrete Applied
Mathematics 117 (1–3): 81–86, 2002
[5]. Held, M.; Karp, R. M. (1962), A Dynamic Programming Approach to Sequencing Problems, Journal of the Society for Industrial and Applied
Mathematics 10 (1): 196–210
[6]. Hoàng Kiếm, Giải một bài toán trên máy tính như thế nào, NXB Giáo Dục.
[7]. Hornik, Kurt, and Bettina Grün. TSP-Infrastructure for the traveling salesperson problem. Journal of Statistical Software 23.2, pp. 1-21, 2007.
[8]. Ivan Brezina Jr.,ZuzanaCickova, Solving the Travelling Salesman Problem
using the Ant colony Optimization, Management Information Systems, 2011 , Vol.
(6), No. (4).
[9]. Johnson, D. S.; McGeoch, L. A. (1997). The Traveling Salesman Problem: A
Case Study in Local Optimization (PDF). In Aarts, E. H. L.; Lenstra, J. K. Local
Search in Combinatorial Optimisation. London: John Wiley and Sons Ltd. pp. 215– 310.
47 [10]. Lawrence V. Snyder a,*, Mark S. Daskin , A random-key genetic algorithm for
the generalized traveling salesman problem, European Journal of Operational
Research 174 (2006) 38–53, 2005.
[11]. Marco Dorigo. Ant Colonies for the Traveling Salesman Problem. IRIDIA,
Université Libre de Bruxelles. IEEE Transactions on Evolutionary Computation, 1(1):53–66. 1997
[12]. Michel Gendreau, Jean-Yves Potvin. Handbook of Metaheuristics, Second
Edition. Springer, pp. 61-70, 2010
[13]. Milena Karova,VassilSmarkov,StoyanPenev, Genetic operators crossover and
mutation in solving the TSP problem, International Conference on Computer
Systems and Technologies - CompSysTech’ 2005.
[14]. Nguyễn Đình Thúc, Trí tuệ nhân tạo: Lập trình tiến hóa, NXB Giáo Dục,
2001.
[15]. Nguyễn Đức Nghĩa - Nguyễn Tô Thành, Toán rời rạc, NXB Đại học Quốc Gia Hà Nội.2003.
[16]. Nguyễn Đức Nghĩa, Phân tích thiết kế thuật toán: Nhập môn NP-đầy đủ, ĐH
Bách Khoa Hà Nội, 2003.
[17]. Nguyễn Thanh Thủy, Công nghệ tri thức và tính toán mềm: Giải thuật di truyền, ĐH Bách Khoa Hà Nội, 2003.
[18]. Nicos Christofides, Worst-case analysis of a new heuristic for the travelling salesman problem, Graduate School of Industrial Administration, CMU, 1976.
[19]. Otman ABDOUN, Jaafar ABOUCHABAKA, Chakir TAJANI, Analyzing the
Performance of Mutation Operators to Solve the Travelling Salesman Problem,
LaRIT Laboratory, Faculty of sciences, Ibn Tofail University, Kenitra, Morocco
[20]. Rong Yang, Solving Large Travelling Salesman Problems with Small
48 [21]. S. Lin, B.W. Kernighan. An effective heuristic algorithm for the traveling
salesman problem. Operations Research 21, pp. 498-516, 1973.
[22]. X.H. Shi , Y.C. Liang, H.P. Lee, C. Lu, Q.X. Wang, Particle swarm
optimization-based algorithms for TSP and generalized TSP, Information
Processing Letters 1 03 (2007) 169–176,2007.
[23]. Zakir H. Ahmed, Genetic Algorithm for the Traveling Salesman Problem
using Sequential Constructive Crossover Operator, International Journal of