PH ẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Bài toán người du lịch 1.1.1 Lịch sử bài toán Bài toán người du lịch Travelling Salesman Problem - TSP [1], [2]
Trang 1ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KINH TẾ KHOA HỆ THỐNG THÔNG TIN KINH TẾ
Trang 2ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC KINH TẾ KHOA HỆ THỐNG THÔNG TIN KINH TẾ
Trang 3L ỜI CÁM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự
hỗ trợ, giúp đỡ và hướng dẫn của người khác Lời đầu tiên em xin chân thành
c ảm ơn tất cả các thầy cô trường Đại học kinh tế - Đại học Huế và đặc biệt là Quý Thầy, Cô trong khoa Hệ thống thông tin kinh tế là những người đã truyền đạt cho em rất nhiều kiến thức quý báu, tạo nền tảng kiến thức vững chắc cho tương lai c ủa em, đã tạo điều kiện, giúp đỡ em thực hiện khóa luận này
Em xin chân thành cám ơn Thầy Hồ Quốc Dũng là người trực tiếp hướng
d ẫn cho em tiếp cận với cơ sở thực tập Thầy cũng là người đã hướng dẫn tận tình, luôn tạo những cơ hội cho em phát triển và tạo động lực cho em trong quá trình làm đề tài khóa luận này Ngoài ra, thầy còn truyền đạt bổ sung những kiến
th ức của em còn thiếu sót, cách làm việc và rất nhiều điều quý báu khác
Em cũng xin chân thành gửi lời cám ơn đến Ban lãnh đạo Quý Công Ty Cổ phần may và thương mại Gio Linh, các anh chị trong phòng Kỹ thuật đã cho em có
cơ hội được thực tập tại công ty, cảm ơn sự chỉ bảo nhiệt tình và sự quan tâm của tất cả các anh chị khi em thực tập tại công ty
Cuối lời, với lòng biết ơn sâu sắc một lần nữa em xin chân thành cảm ơn tất
c ả mọi người đã quan tâm và giúp đỡ em có thể hoàn thành khóa luận này
Trong quá trình thực tập, cũng như là quá trình làm bài báo cáo thực tập, khó tránh khỏi những sai sót, rất mong Quý Thầy, Cô bỏ qua Đồng thời do trình
độ lý luận và kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, em rất mong muốn nhận được ý kiến đánh giá và đóng góp
c ủa Quý Thầy, Cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn trong sự nghiệp trong tương lai
Em xin chân thành cám ơn !
Trang 4M ỤC LỤC
LỜI CÁM ƠN i
MỤC LỤC ii
DANH MỤC HÌNH VẼ v
DANH MỤC BẢNG BIỂU vi
DANH M ỤC TỪ VIẾT TẮT vii
PH ẦN I : ĐẶT VẤN ĐỀ 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 2
2.1 Mục tiêu tổng quát 2
2.2 Mục tiêu cụ thể 2
3 Đối tượng và phạm vi nghiên cứu 2
3.1 Đối tượng nghiên cứu 2
3.2 Phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn 3
5.1 Ý nghĩa khoa học 3
5.2 Ý nghĩa thực tiễn 3
6 Nội dung khóa luận 3
PH ẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 5
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 5
1.1 Bài toán người du lịch 5
1.1.1 Lịch sử bài toán 5
TR ƯỜ
NG ĐẠ
I H ỌC
KINH
TẾ HU
Ế
Trang 51.1.2 Phát biểu bài toán 7
1.2 Độ phức tạp của bài toán người du lịch 9
1.2.1 Độ phức tạp tính toán 9
1.2.2 Độ phức tạp tính toán của bài toán người du lịch 12
1.3 Thuật toán di truyền 12
1.3.1 Lịch sử của thuật toán di truyền 12
1.3.2 Đặc điểm của thuật toán di truyền 13
1.3.3 Áp dụng thuật toán di truyền cho bài toán người du lịch 18
1.4 Ứng dụng của thuật toán di truyền 19
1.5 Các công trình liên quan 21
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ THUẬT TOÁN 32
2.1 Giải thuật đề xuất 32
2.2 Mã hóa đường đi 32
2.3 Sơ đồ lớp 34
2.4 Xây dựng chương trình 34
2.4.1 Lớp DuongDi 35
2.4.2 Lớp QuanThe 39
2.4.3 Lớp ThuatToanDiTruyen 41
2.4.4 Winform Form1 44
2.4.5 Winform Form 2 49
2.4.6 Hàm Main 52
2.5 Giới thiệu về chương trình 52
CHƯƠNG 3: THÍ NGHIỆM VÀ ĐÁNH GIÁ 55
3.1 Mô tả bài toán vào thực tế 55
TR ƯỜ
NG ĐẠ
I H ỌC
KINH
TẾ HU
Ế
Trang 63.2 Kết quả chạy chương trình đối với các mẫu thí nghiệm 58
3.3.Thí nghiệm chương trình với số thành phố tăng dần 60
3.4 Kết luận 61
3.5 So sánh Thuật toán di truyền với kỹ thuật tối ưu khác 62
PHẦN III: KẾT LUẬN VÀ KIẾN NGHỊ 63
1 Kết quả đạt được 63
2 Đóng góp và thực tiễn 63
3 Hạn chế và hướng phát triển 64
DANH M ỤC TÀI LIỆU THAM KHẢO 65
TR ƯỜ
NG ĐẠ
I H ỌC
KINH
TẾ HU
Ế
Trang 7DANH M ỤC HÌNH VẼ
Hình 1 1: L ịch sử bài toán 7
Hình 1 2: Đường đi và khoảng cách giữa các điểm 8
Hình 1 3: Máy Turing 10
Hình 1 4: Quan hệ giữa các lớp độ phức tạp quan trọng 12
Hình 1 5: Sơ đồ Giải thuật thuật toán di truyền 15
Hình 2 1: Sơ đồ các lớp cho thuật toán di truyền 34
Hình 2 2: Giao di ện Form 1 53
Hình 2 3: Giao di ện Form 2 54
Hình 3 1: Hình 5 địa điểm được chọn từ Google Map 56
Hình 3 2: Bi ểu đồ thời gian chạy thuật toán di truyền khi số địa điểm tăng lên 61
TR ƯỜ
NG ĐẠ
I H ỌC
KINH
TẾ HU
Ế
Trang 8DANH M ỤC BẢNG BIỂU
B ảng 1 1: Khoảng cách giữa các địa điểm 9
B ảng 1 2: Các lớp độ phức tạp 11
B ảng 2 1: Mẫu thí nghiệm 5 địa điểm 55
Bảng 2 2: Mẫu thí nghiệm 10 địa điểm 56
Bảng 2 3: Mẫu thí nghiệm tên 50 địa điểm 57
B ảng 3 1: Thời gian chạy thuật toán qua các địa điểm 60
TR ƯỜ
NG ĐẠ
I H ỌC
KINH
TẾ HU
Ế
Trang 9DANH M ỤC TỪ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
TSP Travelling Salesman Problem Bài toán người du lịch
GA Genetic Algorithm Thu ật toán di truyền
JSP Jobshop Scheduling Problem Bài toán l ập lịch Job Shop RBF Radial Basis Function Hàm cơ sở bán kính
Trang 10đề khó khăn cho các thuật toán Từ đó cần thiết phải có những thuật giải tốt và sử
dụng kỹ thuật trí tuệ nhân tạo để giải quyết tốt các bài toán có không gian lớn
Bài toán người du lịch (Travelling Saleman Problem - TSP) được nêu ra lần đầu 1930 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 Nó thường dùng làm thước đo cho nhiều phương pháp tối ưu 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 đượ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ó - chưa có lời giải tối ưu cho dạng bài toán này Tuy nhiên, bài toán người du lịch lại còn được ứng dụng nhiều ứng dụng trong cuộc sống hàng ngày Do đó, cần đưa ra lời giải
gần tối ưu cho loại bài toán này
Giải thuật di truyền (Genetic Algorithm - GA) là kỹ thuật phỏng theo quá trình thích nghi và tiến hóa của các quần thể sinh học dựa trên học thuyết Darwin
GA là phương pháp tối ưu ngẫu nhiên bằng cách mô phỏng theo sự tiến hóa của con người hay của sinh vật Chính vì vậy GA đã trở thành một trong những đề tài nghiên cứu thu hút được nhiều sự quan tâm và hiện nay đã và đang đem đến rất nhiều ứng dụng trong thực tiễn Tư tưởng của thuật toán di truyền là mô phỏng hiện tượng tự nhiên, là kế thừa và đấu tranh sinh tồn GA là một thuật giải và mục tiêu
của GA không nhằm đưa ra lời giải chính xác tối ưu mà là đưa ra lời giải tương đối tối ưu Thuật toán này sử dụng các nguyên lý di truyền về sự thích nghi và sự sống các cá thể thích nghi nhất trong tự nhiên
Chính vì sự hấp dẫn và đặc biệt của bài toán người du lịch cũng như thuật toán di truyền Đồng thời xuất phát từ nhu cầu tìm đường đi ngắn nhất với một giải thuật tốt cho không gian tìm kiếm rộng lớn, áp dụng cho bài toán tối ưu tổ hợp
Trang 11trong thực tế Nhằm giúp người giao hàng sẽ tìm được một chu trình tối thiểu các chi phí giúp tăng lợi nhuận Từ những lý do trên tôi đã chọn đề tài: “ỨNG DỤNG
WINFORM C#” để có thể hoàn thành hoàn chỉnh chương trình để đưa ra một lộ trình đi tối ưu nhất
2 M ục tiêu nghiên cứu
+ Áp dụng Bài toán người du lịch và thuật toán di truyền vào đề tài
+ Tiến hành kiểm thử thuật toán, đánh giá tính hiệu quả
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
+ Bài toán người du lịch
+ Thuật toán di truyền
3.2 Phạm vi nghiên cứu
Bao gồm:
+ Thuật toán di truyền
+ Bài toán người du lịch
+ Cách áp dụng thuật toán để giải bài toán và các vấn đề liên quan, ứng dụng
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu tài liệu lý thuyết:
+ Nghiên cứu tìm hiểu các phương pháp giải bài toán người du lịch
+ Nghiên cứu Thuật toán di truyền áp dụng cho bài toán người du lịch
Trang 12+ Cơ sở lý thuyết bài toán người du lịch, thuật toán di truyền và các vấn đề liên quan
- Phương pháp hỏi ý kiến chuyên gia:
+ Tham khảo, hỏi ý kiến của giáo viên hướng dẫn
+ Các anh chị khóa trước cũng như các anh chị trong nhóm hỏi đáp tư vấn
về C# để củng cố và hiểu rõ vấn đề liên quan đến đề tài
- Phương pháp phân tích thiết kế:
+ Phân tích, xây dựng chương trình theo tư tưởng của thuật toán và yêu cầu
của bài toán cũng như đề tài đưa ra
- Phương pháp thực nghiệm:
+ Lựa chọn ngôn ngữ lập trình cài đặt thuật toán: C# Winform
+ Thử nghiệm bài toán trên dữ liệu
+ Đánh giá, kiểm tra và đưa ra kết quả
5 Ý nghĩa khoa học và thực tiễn
+ Đề tài khóa luận đóng góp như là một công cụ hỗ trợ để người bán hàng
có một chu trình đường đi ngắn nhất nhằm giúp giao hàng tiết kiệm được chi phí đi lại cũng như thời gian của người bán hàng Kết quả, kinh nghiệm thu được khi thực
hiện đề tài khóa luận này sẽ giúp người bán hàng nắm bắt được đường đi của mình đưa ra với chu trình ngắn nhất tránh lãng phi thời gian cũng như các chi phí khác
6 Nội dung khóa luận
Bố cục của Khóa luận gồm có 3 chương với nội dung như sau:
- Chương 1: Cơ sở lý thuyết
Trang 13Nội dung này trình bày lịch sử, nội dung, độ phức tạp của bài toán người du lịch Lịch sử, tư tưởng, các bước thực hiện của thuật toán di truyền
- Chương 2: Thiết kế form và áp dụng thuật toán di truyền, bài toán người du lịch để tìm chu trình ngắn nhất
Nội dung này trình bày các bước tạo Form, cài đặt thuật toán di truyền để
giải quyết bài toán người du lịch Trình bày các lớp cụ thể được cài đặt trong chương trình và mối quan hệ giữa các lớp để thực hiện thuật toán Chương trình chi tiết cài đặt thuật toán di truyền để giải bài toán người du lịch viết bằng ngôn ngữ C#
- Chương 3: Thí nghiệm và đánh giá
Nội dung này trình bày kết quả thí nghiệm khi chạy thuật toán di truyền với
số lượng địa điểm tăng dần, theo dõi thời gian chạy chương trình và đưa ra biểu đồ
kết quả đồng thời kết luận về thời gian chạy thuật toán
Trang 14PH ẦN II: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Bài toán người du lịch
1.1.1 Lịch sử bài toán
Bài toán người du lịch (Travelling Salesman Problem - TSP) [1], [2] là một bài toán NP-Khó ( NP-hard - là bài toán chưa tìm ra lời giải tối ưu cho dạng tổng quát), thuộc thể loại tối ưu rời rạc hay tổ hợp được nghiên cứu trong vận trù học
hoặc lý thuyết khoa học máy tính
Bài toán được phát biểu như sau: Cho một danh sách các thành phố và khoảng cách giữa chúng, tìm chu trình ngắn nhất đi qua mỗi địa điểm đúng một lần
Bài toán người du lịch thường được dùng làm thước đo cho nhiều phương pháp tối ưu hóa Đã được các nhà toán học và khoa học máy tính chú ý bởi nó rất
dễ mô tả và rất khó giải quyết
Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều phương pháp giải chính xác và gần đúng đã được biết đến, do đó đã tìm ra để giải quyết
Một cuốn sổ tay dành cho người du lịch xuất bản 1832 có đề cập đến bài toán này và có ví dụ cho chu trình trong nước Đức và Thụy Sĩ, nhưng không chứa
bất kỳ nội dung toán học nào
Bài toán người du lịch được định nghĩa trong thế kỷ 19 bởi nhà toán học Ireland William Rowan Hamilton và nhà toán học Anh Thomas Kirkman Trò chơi Icosa [4] của Hamilton là một trò chơi giải trí dựa trên việc tìm kiếm chu trình Hamilton Trường hợp tổng quát của TSP có thể được nghiên cứu lần đầu tiên bởi
Trang 15các nhà toán học ở Vienna và Harvard trong nhũng năm 1930, đặc biệt Karl Menger, người đã định nghĩa bài toán, xem xét thuật toán hiển nhiên nhất cho bài toán và phát hiện ra thuật toán láng giềng gần nhất là không tối ưu
Hassler Whitney ở đại học Princeton đưa ra tên bài toán người du lịch ngay sau đó
Trong những năm 1950 và 1960, bài toán trở nên phổ biến trong giới nghiên
cứu khoa học ở Châu Âu và Mỹ George Dantzig, Delbert Ray Fulkerson và Selmer M.Johnson ở công ty RAND tại Santa Moncia [5] đã có đóng góp quan trọng cho bài toán này, biểu diễn bài toán này dưới dạng quy hoạch nguyên và đưa ra phương pháp mặt phẳng cắt để tìm ra lời giải Bằng phương pháp này họ đã giải được tối ưu một trường hợp 49 thành phố bằng cách xây dựng một chu trình và chứng minh không có chu trình nào ngắn hơn
Trong những thập niên tiếp theo, bài toán được nghiên cứu bởi nhiều nhà nghiên cứu trong các lĩnh vực toán học, khoa học máy tính, hóa học, vật lý và các ngành khác
Năm 1972, Richard M.Karp [6] chứng minh rằng bài toán chu trình Hamilton là NP-đầy đủ, kéo theo bài toán TSP cũng là NP-đầy đủ Đây cũng là một
lý giải toán học cho sự khó khăn trong việc tìm kiếm chu trình ngắn nhất
Cuối thập niên 1970 và 1980 khi Grotschel [7], Padberg, Rinaldi và cộng
sự [8] đã giải được những trường hợp lên đến 2393 thành phố, sử dụng phương pháp mặt phẳng cắt và nhánh cận
Trong thập niên 1990 Applegate, Bixby, Chavátal và Cook [9] phát triển một chương trình mang tên Concorde giải được nhiều trường hợp có độ kỷ lục lớn hiện nay
Năm 1991 Gerhard Reinnelt xuất bản một bộ dữ liệu các trường hợp có độ khó khác nhau mang tên TSPLIB [10] và nó đã được sử dụng bởi nhiều nhóm nghiên cứu
để so sánh kết quả
Năm 2005 Cook và cộng sự đã giải được một trường hợp có 33810 thành
phố, xuất phát từ một bài toán thiết kế vi mạch
Trang 16Hình 1 1: L ịch sử bài toán
1.1.2 Phát biểu bài toán
Bài toán người du lịch được phát biểu như sau:
Có một người du lịch muốn viếng thăm tại n thành phố Xuất phát từ một thành phố nào đó, đi qua các thành phố khác để du lịch và trở về thành phố ban đầu, biết chi phí đi lại và khoảng cách giữa các thảnh phố Mỗi thành phố chỉ đến một
lần và khoảng cách từ một thành phố đến các thành phố khác đã được biết trước Hãy tìm một chu trình (một đường đi khép kín thõa mãn các điều kiện trên) sao cho
giữa hai thành phố thì có thể thêm một cạnh với độ dài đủ lớn vào đồ thị mà không ảnh hưởng đến kết quả tối ưu sau cùng
Được biểu diễn bằng toán học có đồ thị vô hướng G=(V,E) với
V={v 1 ,v 2 , ,v n } là t ập các đỉnh hoặc nút và E{(v i ,v j ) : v i ,v j∈ V } là tập hợp các cạnh Mỗi đỉnh vi đại diện cho một thành phố v i ∈ V và m ỗi cạnh (v i ,v j ) ∈ V là khoảng cách giữa hai thành phố i,j
Trang 17Một chu trình như vậy còn gọi là chu trình Hamilton và cũng là một giải pháp tốt cho TSP để tối thiểu chi phí, chu trình Hamilton là chu trình nó đi qua tất
cả các đỉnh của đồ thị đúng một lần Một đồ thị đầy đủ, luôn tồn tại chu trình Hamilton
Bài toán trở thành tìm cực tiểu :
Min 𝑍 = ∑𝑛𝑖=1∑𝑛𝑗=1𝑋𝑖𝑗 với i,j = 1, 𝑛 ����� n € N (n > 0), X ijlà khoảng cách đi từ i đến j
x ij = 0 khi không có đường đi từ i đến j
Ta có ví dụ sau: Cho danh sách các thành phố được đánh số 1,2,3,4,5,6 như Hình 1.2 và khoảng cách giữa các thành phố được cho như Bảng 1.1
Hình 1 2 : Đường đi và khoảng cách giữa các điểm
Trang 18B ảng 1 1: Khoảng cách giữa các địa điểm
một vấn đề có thể giải được bằng máy tính, cũng có thể hiểu là một tập các trường hợp và lời giải cho các trường hợp đó
Một vấn đề được coi là khó nếu lời giải của nó đòi hỏi nhiều tài nguyên,
bất kể sử dụng thuật toán nào Lý thuyết độ phức tạp tính toán chuyển ý tưởng trực quan này thành mệnh đề toán học chặt chẽ, bằng cách đưa ra các mô hình tính toán
để nghiên cứu các vấn đề này và tính lượng tài nguyên cần thiết để giải quyết chúng chẳng hạn như thời gian hay bộ nhớ, lưu lượng thông tin liên lạc, số lượng cổng logic trong mạch, số lượng bộ xử lý Nhiệm vụ của lý thuyết độ phức tạp tính toán là xác định các giới hạn của những gì máy tính có thể làm và không thể làm
Trang 19Các mô hình tính toán và các thông số phức tạp [3]:
+ Máy Turing là một mô hình toán học cho một máy tính tổng quát Nó là thiết bị lý thuyết thao tác trên các ký hiệu nằm trên một dãi băng Máy Turing không
nhằm thiết kế thiết bị tính toán trên thực tế, mà chỉ là một thiết bị trừu tượng đại diện cho máy tính Người ta tin rằng nếu một vấn đề có thể giải quyết bởi một thuật toán, thì cũng có một máy Turing giải quyết vấn đề đó Tất cả các mô hình tính toán hiện nay chẳng hạn như máy RAM, Trò chơi cuộc sống của Conway, automat tế bào hay bất kì ngôn ngữ lập tình nào cũng đều có thể tính được trên máy Turing Do máy Turing phù hợp cho việc nghiên cứu bằng toán học và được xem là mạnh ngang bất
kỳ mô hình tính toán nào, máy Turing là mô hình toán phổ biến nhất trong lý thuyết
độ phức tạp tính toán
Hình 1 3: Máy Turing
+ Các thông số phức tạp: Để định nghĩa cụ thể thời gian và bộ nhớ cần thiết
để giải quyết vấn đề, cần định rõ một mô hình tính toán cụ thể Thời gian cần thiết cho một máy Turing M giải quyết dữ liệu vào X là số lượng lần chuyển trạng thái, hay số bước của máy trước khi máy ngừng và có thể thông báo kết quả Một máy Turing chạy trong thời gian f(n) nếu thời gian máy sử dụng cho tất cả các dữ liệu vào kích thước n là không f(n) Mặc dù thời gian và bộ nhớ là hai thông số phổ biến
nhất, nhiều thông số phức tạp khác cũng có thể xem là tài nguyên tính toán Các
Trang 20thông số độ phức tạp được định nghĩa tổng quát bởi các tiên đề độ phức tạp Blum, một vài thông số độ phức tạp khác được dùng trong lý thuyết độ phức tạp bao gồm
độ phức tạp truyền thông, độ phức tạp mạch và độ phức tạp cây quyết định
+ Các lớp độ phức tạp:
Một lớp độ phức tạp là một tập hợp các vấn đề có độ phức tạp tương tự nhau Các lớp độ phức tạp thường được định nghĩa theo các yếu tố như sau : Thể
loại vấn đề, Mô hình tính toán, Loại tài nguyên bị giới hạn và giới hạn cụ thể
+ Các độ phức tạp quan trọng :
Bảng 1 2: Các lớp độ phức tạp
L ớp độ phức tạp Mô hình tính toán Gi ới hạn tài nguyên
DTIME Máy Turing đơn định Thời gian f(n)
P Máy Turing đơn định Thời gian poly(n) EXPTIME Máy Turing đơn định Thời gian 2poly(n)
NTIME(f(n)) Máy Turing không đơn định Thời gian f(n)
NP Máy Turing không đơn định Thời gian poly(n) NEXPTIME Máy Turing không đơn định Thời gian2poly(n)
DSPACE(f(n)) Máy Turing đơn định Bộ nhớ f(n)
L Máy Turing đơn định Bộ nhớ O (log n) PSPACE Máy Turing đơn định Bộ nhớ poly(n)
EXPSPACE Máy Turing đơn định Bộ nhớ 2poly(n)
NSPACE(f(n)) Máy Tuirng không đơn định Bộ nhớ f(n)
NL Máy Turing không đơn định Bộ nhớ O (log n) NPSPACE Máy Turing không đơn định Bộ nhớ poly(n)
NEXPSPACE Máy Turing không đơn định Bộ nhớ 2poly(n)
Trang 21Hình 1 4: Quan h ệ giữa các lớp độ phức tạp quan trọng
Theo định lý Savitch thì PSPACE = NPSPACE và EXPSPACE = NEXPSPACE
1.2.2 Độ phức tạp tính toán của bài toán người du lịch
Bài toán người di du lịch (TSP) thuộc lớp bài toán NP-Khó (Lớp các bài
toán không có giải thuật trong thời gian đa thức)
Việc thực hiện liệt kê hết tất cả các chu trình là điều gần như không thể với
số đỉnh lớn (đồ thị đỉnh phải duyệt n! chu trình) Số chu trình phải duyệt tăng rất nhanh khi số đỉnh n càng lớn Ngay với 1 đồ thị 100 đỉnh, việc duyệt toàn bộ cũng
là điều kiện rất khó thực hiện
1.3 Thuật toán di truyền
1.3.1 L ịch sử của thuật toán di truyền
Ý niệm về thuật toán di truyền đã được một số nhà sinh vật học đưa ra từ
những năm 50-60, thế kỉ XX A.S.Fraser [11] là người tiên phong nêu lên sự tương đồng giữa sự tiến hóa của sinh vật và chương trình tin học giả tưởng về Genetic Algorithms (GA)
Tuy nhiên, chính John Henry Holland [12] mới là người triển khai ý tưởng
và phương pháp giâỉ quyết vấn đề dựa theo sự tiến hóa
Thuật toán di truyền là thuật toán tối ưu ngẫu nhiên dựa trên cơ chế chọn
lọc tự nhiên và tiến hóa di truyền Nguyên lý cơ bản của thuật toán di truyền đã
Trang 22được tác giả J.H.Holland giới thiệu vào năm 1962 Cơ sở toán học đã được phát triển từ cuối những năm 1960 và đã được giới thiệu trong cuốn sách đầu tiên của
Holland “Adaptive in Natural and Artificial Systems” [12] Thuật toán di truyền được ứng dụng đầu tiên trong hai lĩnh vực chính : tối ưu hóa và học máy
Trong lĩnh vực tối ưu hóa thuật toán di truyền được phát triển nhanh chóng
và ứng dụng trong nhiều lĩnh vực khác nhau như tối ưu hàm, xử lý ảnh, bài toán hành trình người du lịch, nhận dạng hệ thống và điều khiển Thuật toán di truyền cũng như các thuật toán tiến hóa nói chung, hình thành dựa trên quan niệm cho
rằng, quá trình tiến hóa 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 hóa tối ưu ở chổ, thế hệ sau bao giờ cũng tốt hơn
thế hệ trước bởi tính kế thừa và đấu tranh sinh tồn
Lần đầu tiên Holand nghiên cứu các giải thuật này, chúng hoàn toàn không
có tên Do nguồn gốc của phương pháp là từ gen di truyền, Holand đã đặt tên cho
nó là thuật toán đi truyền
Thuật toán di truyền không chú trọng đến giải pháp duy nhất và chính xác như phương pháp cổ điển, trái lại GA xét đến toàn bộ các giải pháp và chọn lấy giải pháp tương đối tốt nhất nếu không nói là tối ưu GA tuy dựa trên tính ngẫu nhiên nhưng có hướng dẫn bởi hàm số thích nghi, do đó không có nghĩa là đoán mò như nhiều người hiểu lầm, trái lại GA có một nền tảng toán học vững chắc
1.3.2 Đặc điểm của thuật toán di truyền
Thuật toán di truyền [13] đã mô phỏng sự chọn lọc tự nhiên và di truyền Trong tự nhiên các cá thể khỏe, có khả năng thích nghi với môi trường tốt sẽ được
tồn tại và phát triển ở các thế hệ sau Mỗi cá thể có cấu trúc gen đặc trưng cho tính chất của cá thể đó
Trong quá trình sinh sản, các cá thể con có thể thừa hưởng các phẩm chất
của cha mẹ, cấu trúc gen của nó có thể xảy ra hiện tượng đột biến, cấu trúc gen của
cá thể con có thể chứa các gen mà cả cha mẹ đều không có
Trong giải thuật di truyền, mỗi cá thể được mã hóa bởi một cấu trúc dữ liệu
mô tả cấu trúc gen của cá thể đó, ta gọi nó là nhiễm sắc thể Mỗi nhiễm sắc thể được tạo thành từ các đơn vị được gọi là gen
Trang 23Thuật toán di truyền được sử dụng đặc biệt cho những bài toán có yêu cầu tìm kiếm tối ưu toàn cục với không gian tìm kiếm lớn và không thể kiểm soát nhờ
khả năng duyệt qua không gian tìm kiếm đại diện mà không thực sự đi qua từng điểm của toàn bộ không gian
Phương pháp tìm kiếm GA duy trì và xử lý một tập các lời giải được gọi là
quần thể Các cá thể của quần thể ở thế hệ tiếp theo được tạo ra bằng cách lai ghép
và đột biến ngẫu nhiên các cá thể của quần thể ở thế hệ trước, các cá thể tồn tại sinh sản ở thế hệ sau là các cá thể phát triển và thích nghi với môi trường
Giải thuật di truyền sẽ làm việc trên các quần thể gồm nhiều cá thể Một quần thể ứng với một giai đoạn phát triển gọi là một thế hệ Từ một thế hệ được tạo
ra, giải thuật di truyền bắt chước sự chọn lọc tự nhiên và di truyền để biến đổi các
thế hệ
Giải thuật di truyền bao gồm 4 bước chính: Mã hóa lời giải, khởi tạo quần
thể, sử dụng các phép toán di truyền và đánh giá độ thích nghi Sau đó chúng ta lại sinh ra một quần thể mới bằng phép chọn lọc rồi tiếp tục sử dụng các phép toán di truyền và đánh giá độ thích nghi của các cá thể trong quần thể.Thuật giải được thực
hiện qua càng nhiều thế hệ thì lời giải đưa ra càng tối ưu
Muốn dùng thuật toán di truyền phải xác định và thực hiện được các bước của thuật toán di truyền [14]:
Bước 1: Khởi tạo quần thể các nhiễm sắc thể
Bước 2: Xác định giá trị thích nghi của từng Nhiễm sắc thể
Bước 3: Sao chép lại các nhiễm sắc thể dựa vào giá trị thích nghi của chúng
và tạo ra những nhiễm sắc thể mới bằng các phép toán di truyền
Bước 4: Loại bỏ những thành viên không thích nghi trong quần thể
Bước 5: Chèn những nhiễm sắc thể mới vào quần thể để hình thành một
quần thể mới
Bước 6: Kiểm tra điều kiện, nếu mục tiêu tìm kiếm đạt được thì dừng lại,
nếu không thì trở lại bước 3
Trang 24Sơ đồ Thuật toán Di truyền:
Hình 1 5: Sơ đồ Giải thuật thuật toán di truyền
Trang 25Cấu trúc giải thuật di truyền tổng quát [15]:
Bắt đầu
Gán t = 0;
Khởi tạo P(t)
Tính độ thích nghi cho các cá thể thuộc P(t);
Khi (điều kiện dừng chưa thỏa) lặp:
- Tính độ thích nghi: là đánh giá hay mục tiêu thể hiện tính thích nghi của
cá thể hay là độ tốt của lời giải
- 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ể 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 dần mất đi Chọn lựa các cá thể trong GA 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 sinh ra cá thể mới tốt hơn Có nhiều phương pháp lựa chọn cá thể tốt:
+ Chọn lọc dùng bánh xe Roulette (Roulette Wheel Selection): Đây được xem là phương pháp chọn lọc đơn giản nhất, ở đó mỗi cá thể trong quần thể chiếm
một khe trong vòng trong Roulette có độ rộng tỷ lệ với giá trị hàm mục tiêu của cá
thể Mỗi lần quay vòng tròn chúng ta nhận được một cá thể và coi như đó là cách lựa chọn chuỗi tái tạo
Thực hiện bằng cách Tính tổng giá trị thích nghi của tất cả các cá thể của quần
thể và gọi là tổng thích nghi Phát sinh một số ngẫu nhiên n trong khoảng từ 0 đến tổng
Trang 26thích nghi Cuối cùng trả lại phần tử của quần thể đầu tiên có độ thích nghi của nó cộng với độ thích nghi của các phần tử quần thể trước đó lớn hơn hoặc bằng n
+ Chọn lọc xếp hạng (Rank Selection): Phương pháp này sẽ sắp hạng cá thể
dựa trên độ thích nghi của chúng Cá thể xấu nhất sẽ có giá trị 1, kế tiếp là 2, v.v…và
cá thể tốt nhất sẽ có độ thích nghi N (N là số nhiễm sắc thể trong quần thể)
+ Chọn lọc cạnh tranh (Tournament Selection): hai phần tử khác nhau được
chọn ngẫu nhiên và so sánh với phần tử tồn tại, nếu phần tử thứ nhất không tốt hơn phần tử thứ 2 thì bị loại ra khỏi quần thể Quá trình này được lặp đi , lặp lại đến hết
Tìm điểm lai bằng cách lai tạo ngẫu nhiên một con số từ 1 đến m-1 Như
vậy, điểm lai này sẽ chia hai chuỗi NST cha-mẹ thành hai nhóm NST con là m1 và
m2 Hai chuổi NST con lúc này sẽ là m11 +m 22 và m 21 +m 12
Có nhiều cách lai ghép: lai ghép một điểm cắt, lai ghép nhiều điểm cắt, lai ghép nhiều đoạn
- Đột biến: là tình trạng NST con không có một (hoặc một số) tính trạng có trong mã di truyền của cha mẹ Là một sư biến đổi tại một (hay một số ) gen của NST ban đầu để tạo ra một NST mới Đột biến xác suất xảy ra thấp hơn lai ghép và đột biến
có thể tọa ra một cá thể tốt hoặc cá thể xấu hơn cá thể ban đầu Trong GA 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ệ
Phép đột biến có thể mô tả như sau:
+ Chọn ngẫu nhiên một số K từ khoảng 1 ≥ K ≥ m
+ Thay đổi giá trị của gen thứ K
+ Đưa NST con vào quần thể để tham gia quá trình tiến hóa tiếp theo
Cá phép đột biến thường được sử dụng : Đảo bit, Hoán vị, Đổi giá trị, Đảo đoạn,
Trang 271.3.3 Áp d ụng thuật toán di truyền cho bài toán người du lịch
Trong bài toán người du lịch tìm ra chu trình ngắn dựa vào thuật toán di truyền được ta biểu diễn các điểm mà người du lịch đi qua Để biểu diễn lộ trình
giả sử ta có danh sách 10 địa điểm được đánh dấu các điểm bằng số 1,2,3 ,10 ta
sẽ bắt đầu từ điểm bất kỳ và ghé qua tất cả các điểm khác nhau đúng một lần và quay về lại điểm xuất phát
Ta có ví dụ như sau:
- Khởi tạo quần thể: Quần thể được khởi tạo bằng cách sinh ngẫu nhiên các chu trình, số lượng chu trình trong quần thể là tùy ý Các chu trình trong bài toán người du lịch sẽ được sinh ra bằng cách hoán đổi ngẫu nhiên các vị trí các địa điểm
-Xác định độ thích nghi: Đây là phần giải quyết các yêu cầu của bài toán, chủ yếu vẫn xem xét trên các thành phần ràng buộc Tương ứng mỗi loại ràng buộc
ta sẽ gán cho chúng một giá trị thích nghi nào đó dùng để đánh giá mức độ phù hợp
của giải pháp đối với bài toán, độ thích nghi càng cao thì giải pháp tìm càng được tốt Đối với bài toán người du lịch , tùy theo yêu cầu của bài toán để tính độ thích nghi của giải pháp
- Chọn lọc: Phương pháp chọn lọc cạnh tranh được chọn để đưa ra cá thể tốt nhất đưa vào quần thể Việc chọn quần thể mới dựa trên độ thích nghi, những cá
thể có độ thích nghi cao sẽ tồn tại và sinh sản nhằm đưa ra cá thẻ mới tốt nhất Đối
với bài toán người du lịch sẽ lựa chọn ngẫu nhiên hai giải pháp và so sánh với giải pháp tồn tại Nếu giải pháp thứ nhất có độ thích nghi thấp hơn giải pháp thứ 2 thì sẽ
bị loại và ngược lại, quy trình này lặp đến hết n giải pháp còn lại
- Lai ghép: Trong GA lai ghép là một sự tổ hợp lại các tính chất trong hai lời giải cha mẹ ngẫu nhiên nào đó để sinh ra một lời giải con mới mà có đặc tính mong muốn tốt hơn thế hệ cha mẹ Trong bài toán người du lịch là sự kết hợp của các tinh trạng cha mẹ được chọn ngẫu nhiên sinh ra thế hệ con bằng cách cắt vị trí
ngẫu nhiên từ một điểm đến hết chu trình 2 đưa vào chu trình con, xét từ đầu đến
cuối chu trình 1 , nạp dần các điểm chưa có trong con lai theo thứ tự duyệt
Trang 28Ví dụ : Ta có hai chu trình
Thực hiện cắt lai ghép một điểm cắt với vị trí cắt là ngẫu nhiên:
Cắt từ điểm p đến hết chu trình của C2 đưa vào chu trình mới (con), lấy p =
1.4 Ứng dụng của thuật toán di truyền
Thuật toán di truyền sử dụng cho những bài toán khó, chủ yếu được sử
dụng trong vấn đề tối ưu hóa các loại và đã được ứng dụng thành công cho một số bài toán như: lập kế hoạch, điều khiển tương thích, chương trình trò chơi,
Trang 29Một số lĩnh vực trong đó các thuật toán di truyền được sử dụng thường xuyên [16]:
+ Bài toán lập lịch [17] : Lập lịch là một bài toán tổ chức sản xuất Một công ty cần sản xuất nhiều loại hàng hóa, những hàng hóa này có thể được sản xuất theo những kế hoạch khác nhau Mỗi kế hoạch xử lý gồm một chuỗi thao tác,
những thao tác này sử dụng một số tài nguyên và cần thời gian chạy máy Một lịch
sản xuất là một kế hoạch thực hiện các đơn đặt hàng Trong đó, một số đơn hàng có thể được thực hiện cùng với những thao tác tương đương Nhiệm vụ là lên kế
hoạch, lập lịch sản xuất để thực hiện các đơn đặt hàng này nhanh nhất có thể Ý tưởng trong phương pháp là mã hóa biểu diễn của lịch phân công là các toán tử di truyền phải thực hiện theo cách có ý nghĩa và một bộ giải mã phải luôn tạo ra một
lời giải hợp lệ cho bài toán Thủ tục giải mã mô phỏng các thao tác của công việc theo cách mà khi một máy tính sẵn sàng chọn lựa, thì thao tác cho phép đầu tiên từ danh sách được lấy ra
+ Tối ưu hóa: Các thuật toán di truyền thường được sử dụng trong các vấn
đề tối ưu hóa , trong đó chúng ta phải tối ưu hóa hoặc giảm thiểu một giá trị hàm
mục tiêu được đưa ra trong một tập hợp các ràng buộc nhất định
+ Kinh tế học: GA cũng được sử dụng để mô tả các mô hình kinh tế khác nhau như mô hình mạng nhện, cân bằng lý thuyết trò chơi giải quyết, giá cả tài sản,
+ Mạng: GA được sử dụng để đào tạo mạng nơ-ron, đặc biệt là các mạng nơ-ron tái diễn
+ Song song: GA có những khả năng song song rất tốt và chứng tỏ là phương tiện rất hiệu quả trong việc giải quyết một số vấn đề nhất định, đồng thời cung cấp một khu vực nghiên cứu tốt
+ Xử lý hình ảnh: GA được sử dụng cho các tác vụ xử lý hình ảnh kỹ thuật
số khác nhau (DIP) cũng như kết hợp pixel mật độ cao
+Lập kế hoạch ứng dụng: GA sử dụng để giải quyết các vân đề lập kế
hoạch khác nhau, đặc biệt là vấn đề lập trình thời gian
+ Vạch đường Robot di chuyển [18] : Tìm đường là hướng dẫn robot di chuyển đến đích mà không bị lạc hay va vào những đối tượng khác Trong bài toán
Trang 30này, một lộ trình được lập trình trước để robot di chuyển theo, lộ trình này có thể dẫn dắt robot đi tới đích một các hoàn hảo Tuy nhiên, các nhà khoa học muốn cải
tiến hơn bằng cách vạch lộ trình nội tại, phụ thuộc vào tri thức thu được từ việc
cảm nhận môi trường cục bộ để xử lý các chướng ngại chưa biết
Phần đầu thuật giải là tìm lộ trình toàn cục tối ưu từ điểm khởi đầu đến đích, phần thứ hai có trách nhiệm xử lý những va chạm có thể xảy ra hay những vật
cản chưa biết trước bằng cách thay một phần của lộ trình toàn cục gốc bằng một lộ trình con tối ưu
+ Thiết kế tham số của máy bay: GA được sử dụng để thiết kế máy bay bằng cách thay đổi các thông số và phát triển các giải pháp tốt hơn
+ Tối ưu hóa đa thức: GA rõ ràng là cách tiếp cận rất tốt cho tối ưu hóa đa phương thức, trong đó chúng ta phải tìm ra nhiều giải pháp tối ưu
+ Vấn đề của người du lịch và các ứng dụng của nó: Thuật toán di truyền (GA) đã được sử dụng để giải quyết bài toán người du lịch (TSP)
1.5 Các công trình liên quan
Đã có rất nhiều công trình nghiên cứu về thuật toán di truyền, bài toán người
du lịch và các đề tài nghiên cứu về việc áp dụng thuật toán di truyền để giải bài toán người du lịch từ trước đến nay Người ta mong muốn tìm ra lời giải tốt nhất có thể bằng cách kết hợp thuật toán này với một số thuật toán hoặc các kỹ thuật khác và dưới đây là một số nghiên cứu tiêu biểu:
Bài báo về TSP: “Meta-Heuristic- Kết hợp thuật giải di truyền với thông tin
thống kê xác suất giải quyết bài toán người du lịch” [19] Phương pháp gồm hai bước: Bước 1, sử dụng GA để tìm thông tin thống kê xác suất các cung sẽ xuất hiện trong chu trình tối ưu từ xác cá thể chu trình tốt nhất chọn lọc qua các thế hệ Bước 2 , từ các thông tin được, thực hiện lại thuật toán GA để được chu trình kết quả tối ưu, trong đó các phép lai ghép sẽ dựa vào thông tin xác suất tìm được ở bước 1
Bài báo về bài toán lập lịch: “Một thuật toán di truyền hiệu quả cho bài
toán l ập lịch job shop” [20] Bài báo này trình bày một thuật toán di truyền mới
cho bài toán lập lịch job shop (Jobshop Scheduling Problem - JSP) Thuật toán này
có một số đổi mới sau: Một lịch biểu được mã hóa bởi các số tự nhiên; các luật ưu
Trang 31tiên của Giffler và Thompson được dùng để tạo ra các lịch biểu tích cực; phép đột biến được thực hiện trên các cá thể tiềm năng và kết hợp với kĩ thuật tìm kiếm lân
cận; phép trao đổi chéo mới kết hợp trao đổi chéo đồng nhất với thuật toán GA và được thực hiện trên cá thể trên 3 cá thể cha
Bài báo nghiên cứu về bài toán thời khóa biểu: “Một giải pháp tiến hóa cho
bài toán th ời khóa biểu” [21] Bài báo giới thiệu một phương án cải tiến cho bài
toán lập thời khóa biểu tại các trường phổ thông
Bài viết về bài toán đóng thùng: “Về thuật toán di truyền lai giải bài toán
đóng thùng” [18], bài toán trình bày một số kết quả liên quan đến việc xây dựng,
cài đặt và thử nghiệm thuật toán di truyền kết hợp với các thuật toán tìm kiếm trực tuyến oristic
Bài biết khác về bài toán phân hoạch: “Hướng tiếp cận mới trong việc tách
từ để phân loại văn bản tiếng Việt sử dụng giải thuật di truyền và thống kê trên Internet” [22] Giải thuật di truyền áp dụng cho bài toán tách từ tiếng Việt được tóm
tắt như sau: Xét văn bản t gồm n tiếng t=s 1 s 2 s n Mục tiêu của GA là xác định những cách tách hợp lý nhất văn bản t thành m đoạn t=w1 w 2 w m với w k = s i s j (1≤ k≤ m, 1≤ j, j≤ n ) có thể là từ đơn hay từ phức
Ứng dụng của GA trong học tham số cho mạng nơ-ron: “Điều khiển Robot
v ới mạng nơron RBF có hệ số học được tối ưu bằng thuật toán di truyền” [23]
Đối với các hệ thống điều khiển có tính phi tuyến cao và độ bất định lớn, các tham
số của hệ thống như độ ma sát, sự thay đổi của tai trọng luôn thay đổi trong quá trình điều khiển do đó yêu cầu rất quan trọng trong quá trình học của các bộ điều khiển nơron là phải đảm bảo quá trình học online Trong các nghiên cứu gần đây về quá trình học của mạng nơron dù bằng phương pháp hàm bán kính cơ sở hay bằng phương pháp EBP thì hệ số học h của mạng nơron vẫn được chọn theo kinh nghiệm
của người lập trình Trong bài báo này tác giả đề cập đến việc sử dụng công cụ GA
để tối ưu hệ số học của mạng nơ-ron RBF thay vì lựa chọn bằng kinh nghiệm
Jorge Kanda, Andre de Carvalho, Eduardo Hruschka, Carlos Soares, Pavel Brazdil [9] đã đưa ra nhiều meta-heuristics (MHs) để giải quyết cho bài toán TSP Nghiên cứu đưa ra rằng MH là tốt nhất cho các các trường hợp khác nhau Lý tưởng nhất là người
Trang 32ta có thể đề nghị các MHs tốt nhất cho một trường hợp TSP mới mà không cần thực hiên chúng Bài toán này được giải quyết bằng cách sử dụng một phương pháp tiếp cận meta-learning dựa trên thuật toán xếp nhãn Các thuật toán này xây dựng một bản đồ liên quan đến các đặc tính của các thể hiện với các hiệu suất tương đối của các MH dựa trên dữ liệu Được đưa ra từ các trường hợp TSP đã được giải quyết bởi MH Trong nghiên cứu này đã nghiên cứu 4 bộ khác nhau về tính năng siêu dữ liệu dựa trên các phép đo khác nhau về các thuộc tính của các trường hợp TSP: các biện pháp cạnh
và đỉnh, các biện pháp mạng phức tạp, các thuộc tính từ các MH và các tính năng đánh
dấu mẫu phụ Các mô hình được điều tra trong 4 kịch bản TSP khác nhau trình bày sự khác biệt về sự đối xứng và sức mạnh kết nối Các kết quả nghiên cứu cho thấy các
mô hình meta-learning có thể dự đoán chính xác thứ hạng của MH đối với các kịch
bản TSP khác nhau và định nghĩa của các tập meta-features có ảnh hưởng quan trọng đến chất lượng của các kết quả thu được
Yiwen Zhonga, Juan Lina,b, Lijin Wanga, Hui Zhangb [24] đưa ra thuật toán Artificial bee colony (ABC) là một thuật toán thông minh và lần đầu tiên được đề xuất cho thuật toán tối ưu hóa liên tục Trong bài này sử dụng thuật toán rời rạc ABC sử
dụng tiêu chuẩn chấp nhận của phương pháp chấp nhận ngưỡng để giải quyết bài toán TSP Nhằm tăng cường khả năng thoát khỏi sự hội tụ sớm, người làm ong và người xem ong sử dụng tiêu chuẩn ngưỡng để quyết định các giải pháp mới có được chấp
nhận hay không Các thí nghiệm được thực hiện cho thấy lợi thế của phương trình cập
nhật dung dịch mới, sự cần thiết của việc sử dụng phương pháp không tham lam để duy trì tính đa dạng Thí nghiệm thực hiện trên hàng loạt các trường hợp của TSP cho
thấy thuật toán được đề xuất là tốt hơn các thuật toán dựa trên thuật toán ABC khác và tốt hơn hoặc cạnh tanh với nhiều thuật toán hiện đại khác
Majumdar, A.K Bhunia [11] trình bày về vấn đế của người du lịch bất đối xứng (ATSP) tức là thời gian đi lại giữa các thành phố là một khoảng giá trị thay vì một giá trị cố định như trong ATSP cổ điển ATSP được xây dựng bằng cách sử dụng một khoảng số học thông thường, để giải quyết khoảng ATSP một thuật toán di truyền với chức năng cân xứng khoảng thời gian được đề xuất Thuật toán được đề xuất dựa trên các công trình trước đây và một số tính năng mới củ các nhà khai thác di truyền cơ
Trang 33bản Để phân tích hiệu suất và hiệu quả của thuật toán đề xuất và các nhà khai thác di truyền cơ bản, các nghiên cứu tính toán của thuật toán đã đề xuất một số vấn đề kiểm tra ngẫu nhiên
Absalom El-Shamir Ezugwu and Aderemi Oluyinka Adewumi [25] đề xuất một thuật toán tìm kiếm sinh vật rời rạc (DOS) đưa ra một giải pháp gần như tối ưu cho bài toán người du lịch SOS là một thuật toán tối ưu tìm kiếm gần đúng, lấy ý tưởng
từ việc cộng sinh để tồn tại và nhân giống của sinh vật trong hệ sinh thái Thuật toán này được chứng minh là rất hiệu quả và mạnh mẽ trong việc giải quyết các vấn
đề tối ưu hóa số và các vấn đề thiết kế kĩ thuật Trong báo cáo này này, SOS được cải tiến và mở rộng bằng cách sử dụng ba toán tử tìm kiếm địa phương dựa trên đột
biến để tái tạo, cải thiện khả năng khai thác và đẩy nhanh tốc độ hội tụ Một tập
hợp các điểm chuẩn cho các trường hợp TSP đối xứng được từ thư viện TSPLIB được sử dụng để đánh giá hiệu suất của TSP so với các thuật toán gần đúng khác, các kết quả cho thấy rằng phương pháp tối ưu được đề xuất có thể đạt được các kết
quả gần với các giải pháp lý thuyết được biết đến trong một khung thời gian hợp lý Marek Cornu, Tristan Cazenave, Daniel Vanderpooten [27] đề xuất một siêu đa chiều mới dựa trên nhiều thuật toán gần đúng cho vấn đề tối ưu hóa tổ hợp đa mục tiêu Thuật toán này được gọi là Perturbed Decomposition Algorithm (PDA), lấy ý tưởng từ các phương pháp phân rã, tìm kiếm địa phương và sự nhiễu loạn dữ liệu, PDA cung cấp mô - đun nền tảng 2 giai đoạn để tìm kiếm một xấp xỉ của Patero front Giai đoạn đầu tiên phân tích vấn đề tìm kiếm thành một số vấn đề tuyến tính
tổng hợp của vấn đề đa đối tượng gốc, giai đoạn thứ 2 tiến hành một một quá trình
lặp lại: các vấn đề tổng hợp là lần đầu tiên bị nhiễu loạn sau đó lựa chọn và tối ưu hóa bằng một phương pháp tối ưu hóa tổ hợp địa phương hiệu quả duy nhất Các
giải pháp kết quá khởi đâu là bước khởi đầu của một thủ tục tìm kiếm địa phương
đa mục đích, được gọi là Pareto Local Search Sau khi trình bày một đánh giá tài liệu về các giải thuật gần đúng cho bài toán TSP đối xứng đa mục tiêu, báo cáo tiến hành thí nghiệm trên nhiều các trường hợp của TSP 2 mục tiêu và 3 mục tiêu và kết
quả cho thấy thuật toán đề xuất hạt động tốt hơn các hương pháp tốt nhất hiện nay
Trang 34Arthur E Carter , Cliff T Ragsdale [24] nghiên cứu về bài toán lập kế hoạch cho nhiều người du lịch (MTSP) (m>1) đến thăm một tập các vị trí (n>m) sao cho các vị trí được đến đúng một lần và với khoảng cách nhỏ nhất MTSP có độ phức tạp tương
tự như bài toán TSP và có sự phức tạp thêm là mỗi vị trí có thể được ghé thăm bởi bất
kì một người du lịch Các nghiên cứu trước đây đã giải quyết MTSP bằng các thuật toán di truyền (GAs) sử dụng các nhiễm sắc thể và các nhà điều hành chuẩn Nghiên
cứu này đề xuất một GA mới và các khía cạnh liên quan cho MTSP, so sánh các hiệu suất tính toán của các kỹ thuật trước đó Nghiên cứu cho thấy các kết quả theo giải pháp được đề xuất trong một mô hình không gian tìm kiếm nhỏ hơn và trong nhiều trường hợp cho ra kết quả tốt hơn so với giải pháp trước đó
Stephen L Smith, Frank Imeson [25] giới thiệu một cách giải quyết mới cho bài toán người du lịch toàn diện (GTSP), bài toán đưa ra một biểu đồ đầu vào hoàn chỉnh với trọng số cạnh, phân chia các đỉnh thành một tập hợp rời rạc Với mục tiêu là tìm ra chu trình có độ dài tối thiểu và đi qua các đỉnh đúng một lần Bài báo cáo này trình bày
một thuật toán hiệu quả cho GTSP dụa trên khu vực tìm kiếm thích ứng rộng lớn Thuật toán hạt động bằng cách lặp lại nhiều lần loại bỏ và chèn các đỉnh trong các chu trình, các cơ chế chèn chung có các trường hợp đặc biệt như cơ chế chèn gần nhất, xa
nhất và ngẫu nhiên Cung cấp một kết quả benchmarking rộng rãi cho lời giải được đề xuất so với state-of-the-art trên một loạt các thư viện hiện có và các bài toán mới Trên thư viện GTSP-LIB, thuật toán được đề xuất là cạnh tranh với các thuật toán nổi tiếng
nhất, trên một số thư viện khác cùng với một khoảng thời gian bài toán sẽ được đề
xuất bởi các giải pháp có chất lượng cao hơn hiện tại và đặc biệt là các trường hợp khó hơn không chỉ là chỉ số hoặc các tập hợp không được nhóm lại
Zhao Yang , Ming-Qing Xiao, Ya-Wei Ge , Delong Feng , Lei Zhang , Hai-Fang Song , Xi-Lang Tang [27] đề cập đến bài toán người du lịch với các khu phố tùy ý, là
một bài toán NP-khó vấn đề tối ưu hóa tổ hợp trong nghiên cứu hoạt động và lý thuyết khoa học máy tính Các phương pháp hiện tại dựa trên sự phân biệt và sắp xếp trước
của khu phố là không thực tế trong trường hợp các khu phố là tùy tiện Trong bài báo cáo này các thành phố của người du lịch được tổng quát hóa cho các khu vực kết nối được tổng quát hóa cho các khu vực kết nối trong không gian Euclidean phẳng Để
Trang 35giải quyết bài toán này một cách tiếp cận mới được đề xuất bao gồm một lược đồ mã hóa dựa trên danh giới và một thuật toán chuỗi lặp kép dựa trên sự tối ưu hóa hạt nảy
và thuật toán di truyền Trong thuật toán lai, chia thành các bộ phận nhỏ để giảm mức
độ chậm chạp để tối ưu việc tìm kiếm các vị trí thăm liên tục vòng ngoài và thuật toán
di truyền được sử dụng để tối ưu hóa chuỗi truy cập rời rạc trong vòng lặp bên trong Các lược đồ mã hóa dựa trên ranh giới có thể làm giảm đáng kể không gian tìm kiếm
mà không giảm chất lượng giải pháp Thuật toán lai có thể tìm ra giải pháp có chất lượng cao trong một thời gian hợp lý Tính toán kết quả trong cả hai trường hợp nhỏ
và lớn chứng minh được rằng phương pháp tiếp cận được đề xuất là giải pháp tốt hơn trong một thời gian hợp lý so với so ba thuật toán hiện đại khác đó là thuật toán lặp, thuật toán phân nhánh và ràng buộc, thuật toán giới hạn trên và dưới Hơn nữa cách
tiếp cận được đề xuất giải quyết hiệu quả ứng dụng trong thế giới thực mà các thuật toán hiện có không giải quyết được
Yongbo Chen, Zhenyue Jia, Xiaolin Ai, Di Yang, Jianqiao Yu [28] nghiên cứu về thuật toán tìm kiếm tham lam 2 phần sửa đổi được cập nhật bởi phương pháp mã hóa riêng gồm 2 phần cũng như việc vận chuyển và mở rộng (TE) cho nhiều người du lịch (MTSP) Thứ nhất, cách tiếp cận mã hóa riêng lẽ hai phần được đưa vào thuật toán WPS gốc cho MTSP, được đặt tên là thuật toán tìm kiếm bầy sói gồm 2 phần để giảm thiểu kích thước không gian tìm kiếm của bài toán Thứ hai, phân tích hiệu suất hội tụ được trình bày để minh họa tính hợp lý của thuật toán thiết kế đầu cuối tối đa của thuật toán TWPS mới Từ đó, dựa trên khả năng tiếp cận toàn diện, thuật toán TWPS được
sửa đổi bởi hoạt động TE hơn nữa, có thể nâng cao đáng kể khả năng tìm kiếm của thuật toán TWSP Cuối cùng tập trung vào mục tiêu giảm thiểu tổng thời gian đi lại và chuyến đi dài nhất, so sánh tính mạnh mẽ và tối ưu giữa các thuật toán khác nhau được trình bày và kết quả thực nghiệm cho thấy thuật toán MTWPS có được chất lượng cao hơn các thuật toán khác
Zhang, HongGuang, và Jie Zhou [29] nghiên cứu về lựa chọn sức sống (VS) như
là một chương trình sửa đổi mới dựa trên lựa chọn xóa cũ nhất cho TSP, tiêu chí đánh giá của cá nhân VS là tiến bộ cá nhân trong các thế hệ kế tiếp, điều này khác với tiêu chuẩn khả năng thuần túy So sánh lý thuyết và phân tích tính năng hành vi cho thấy
Trang 36VS có hiệu quả để tránh sự hội tụ sớm và thoát khỏi tối ưu cục bộ Mặt khác thuật toán DMRSA sử dụng VS được đề xuất và đặc trưng bởi phân khúc tiểu vùng và các pháp
lựa chọn thành phố Những phương pháp này cho một cá nhân không chỉ năng động trong một thế hệ mà còn biến đổi từ thế hệ đầu tiên sang thế hệ trước Các quy tắc tìm kiếm động này có hiệu quả để cải thiện hiệu suất của tìm kiếm địa phương và khác với tìm kiếm khu vực có biến Để chứng minh hiệu quả của DMRSA các thí nghiệm về sự
hội tụ, độ lệch phần trăm trung bình cho giải pháp được biết đến tốt nhất và thời gian trung bình được thực hiện Nghiên cứu đã thực hiện so sánh DMRSA với 9 thuật toán cho 2 trường hợp TSP của TSPLI và DMRSA đã tìm ra 22 giải pháp nổi tiếng nhất cho
27 trường hợp TSP Khả năng thích ứng và thích nghi của DMRSA là đáng tin cậy để
giải quyết các ứng dụng mô hình toán học dựa trên TSP
P.Victer Paul, N.Moganarangan, S.Sampath Kumar và R.Rạu, T.Vengattaraman
và P.Dhhavachelvan [31] đề cập tới thuật toán di truyền (GA) là một kỹ thuật tối ưu hoá toàn cầu dựa trên số cá thể để giải quyết các vấn đề phức tạp trong một không gian
rất lớn Khởi tạo quần thể là một nhiệm vụ rất quan trọng trong GA vì nó quyết định tới tốc độ hội tụ, tìm kiếm và chất lượng của giải pháp tối ưu cuối cùng Trong nghiên
cứu này, các kỹ thuật nhân giống khác nhau cho các thuật toán di truyền mã hoán vị như ngẫu nhiên, gần nhất (NN), ngân hàng gen(GB), sắp xếp (SP), chọn lọc khởi tạo (SI) cùng với ba kỹ thuật khởi tạo đã được nghiên cứu rộng rãi Các kỹ thuật nhân
giống quần thể đã được kiểm tra dựa trên tiêu chí về hiệu quả hoạt động như thời gian tính toán, tỷ lệ hội tụ, tỷ lệ lỗi, hội tụ trung bình, sự đa dạng hội tụ, các giải pháp phân
biệt trung bình và hội tụ cá thể Một trong những khó khăn chung về tổ hợp của bài toán người du lịch đang được chọn làm thử nghiệm và các thí nghiệm được thực hiện trên các TSP chuẩn có kích thước lớn được lấy từ TSPLIB tiêu chuẩn Các thí nghiệm phân tích được thực hiện bằng cách sử dụng các công cụ thống kê để biểu hiện tính năng biểu hiện độc đáo của mỗi kỹ thuật nhân giống cá thể và các kỹ thuật tốt nhất được đánh giá dựa trên tiêu chí đánh giá và bản chất của ứng dụng [32]
Yu Lin, Zheyoung Bian và Xiang Liu [6] trình bày về việc áp dụng thuật toán tìm kiếm annealing-tabu để giải quyết bài toán người du lịch (TSP) Xem xét đầy đủ các đặc tính của thuật toán lai, nghiên cứu phát triển một cấu trúc thành phố năng động
Trang 37cho thuật toán lai để cải thiện hiệu suất tìm kiếm bằng cách giảm sự ngẫu nhiên của khu vực 2 lựa chọn thông thường Một đột biến theo vòng tròn được đề xuất để đạt được cấu trúc thành phố năng động và đề xuất các tham số thích ứng có thể được điều
chỉnh tự động bằng thuật toán dựa trên các ví dụ cụ thể của ngữ cảnh Điều này phủ nhận sự cần thiết phải thường xuyên điều chỉnh các thông số thuật toán, nghiên cứu sử
dụng các điểm chuẩn thu được từ TSPLIB để kiểm tra các thuật và kết quả cho thấy
giải pháp được đề xuất có kết quả tốt trong khoảng thời gian hợp lý và cho thấy rằng cấu trúc khu phố năng động mang lại hiệu quả hơn so với 2 phương pháp cổ điển Hongjian Wang, Naiyu Zhang và Jean-Charles Creput [34] đề xuất một mô hình tính toán song song cho mạng bản đồ tự tổ chức (SOM) áp dụng cho bài toán người du lịch Euclidean (TSP) Mô hình này được dự định để thực hiện trên nền
tảng xử lý đồ họa (GPU) Mặt phẳng Euclidean được phân chia thành một số đơn vị
tế bào thích hợp và mỗi tế bào đầu chịu trách nhiệm về một phần nhất định của dữ
liệu và mạng So với hiện tại của GPU triển khai tối ưu hóa tìm kiếm gần đúng thường được dựa trên dữ liệu trùng lặp hoặc hỗn hợp tuần tự/song song giải quyết, lợi thế của mô hình đề xuất là nó được phân cấp dựa trên phân hủy dữ liệu được thiết kế để xử lý các vấn đề quy mô lớn theo cách song song ồ ạt, các tài nguyên máy tính cần phải phát triển tuyến tính dọc theo kích thước của bài toán Các thí nghiệm được thực hiện trên 52 trường hợp Euclidean phổ biến hiện có với 85.900 thành phố cho trường hợp TSPLIB lớn nhất và 71.009 thành phố cho trường hợp TSP quốc gia lớn nhất Kết quả thí nghiệm cho thấy việc triển khai GPU của mô hình được đề xuất chạy nhanh hơn so với các phương pháp tiếp cận mạng nơ-ron
tốt nhất với các chất lượng kết qua tương tự
Eneko Osaba, Xin-She Yang, Fernando Diaz và Pedro Lopez-Garcia và Roberto Carballedo [35] đề cập về thuật toán dơi, là một thuật toán tìm kiếm gần đúng đề xuất năm 2010 dựa trên echolocation hoặc bio-sonar đặc điểm của vi khuẩn Trong nghiên cứu này trình bày về một phiên bản rời rạc của thuật toán dơi
để giải quyết bài toán người du lịch bất đối xứng và đối xứng và đề xuất một cải tiến trong cấu trúc cơ bản của thuật toán điển hình Nghiên cứu đã so sánh hiệu suất
của giải pháp trong 37 trường hợp với các kết quả thu được bằng 5 kỹ thuật khác
Trang 38nhau: quá trình hóa hồi quy, thuật toán di truyền, thuật toán di truyền phân tán dựa trên hòn đảo, thuật toán đom đóm rời rạc và một thuật toán cạnh tranh gay gắt Để
có được sự so sánh nghiêm ngặt và công bằng nghiên cứu đã thực hiện 3 bài kiểm tra thống kê khác nhau: kiểm tra của Học sinh (Student’s t-test), bài kiểm tra của Holm và bài kiểm tra Friedman, và so sánh hành vi hội tụ được trình bày so với
những mô hình được mô phỏng bằng nung nóng hóa học và thuật toán cừu rời rạc Nghiên cứu này chỉ ra rằng thuật toán dơi được cải tiến đã cải thiện tốt hơn các lựa chọn khác trong hầu hết các trường hợp [29]
MA.Amar, W.Khaznaji và M.Bellalouna [36] nghiên cứu về bài toán người du lịch ngẫu nhiên (PTSP) là một phần mở rộng của bài toán người du lịch cổ điển Sự khác biệt chính là sự hiện diện ngẫu nhiên của khách hàng, tức là số lần ghé thăm
là một biến ngẫu nhiên, trong đó một khách hàng có một xác xuất xuất hiện nhất định Bài toán được giải quyết bằng cách tìm một lộ trình đầu tiên ghé thăm tất cả khách hàng giảm thiểu độ dài dự kiến đối với tất cả các khả năng Nghiên cứu đưa
ra một thuật toán chính xác cho các giải pháp của PTSP và kết quả cho thấy lợi thế của phương pháp được đề xuất
Iraklis-Dimitrios Psychas, Eleni Delimpasi và Yannis Marinakis [37] đề cập đến bài toán người du lịch đa mục tiêu (moTSP) tối ưu hóa đồng thời nhiều chức năng khách quan bắt buộc, bài nghiên cứu đề xuất và phân tích 3 giải pháp tiến hóa lai với các đặc tính chung để giải quyết moTSP Hai thuật toán tiến hóa hỗn hợp
dựa trên thuật toán Differential Evolution và thứ 3 là một phiên bản lai Một trong
những thách thức của các thuật toán được đề xuất là ứng dụng hiệu quả của thuật toán, thuật toán Differential Evolution phù hợp cho vấn đề tối ưu hóa liên tục, trong một vấn đề tối ưu hóa tổ hợp Vì vậy nghiên cứu đưa ra 2 phiên bản khác nhau của thuật toán, một là sử dụng một kho lưu trữ bên ngoài (MODE) và một là sử dụng khoảng cách đông đúc (NSDE), bên cạnh đó các thuật toán được đề xuất sử dụng
ba toán tử đột biến khác nhau trong mỗi phiên bản của thuật toán Differential Evolution dẫn đến 6 phiên bản khác nhau của thuật toán, trong mỗi thuật toán sử
dụng một thủ tục tìm kiếm riêng biệt để tăng khả năng khai thác của thuật toán Để các thuật toán mang lại chất lượng tốt, nghiên cứu sử dụng các ví dụ tiêu chuẩn