1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng giải thuật di truyền cho bài toán người đi du lịch bằng winform c

76 74 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 2,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 3

L Ờ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 4

M Ụ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 5

1.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 6

3.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 7

DANH 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 8

DANH 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 9

DANH 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 11

trong 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 13

Nộ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 14

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] 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 15

cá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 16

Hì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 17

Mộ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 18

B ả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 19

Cá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 20

thô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 21

Hì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 23

Thuậ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 24

Sơ đồ Thuật toán Di truyền:

Hình 1 5: Sơ đồ Giải thuật thuật toán di truyền

Trang 25

Cấ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 26

thí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 27

1.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 28

Ví 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 29

Mộ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 30

nà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 31

tiê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 32

ta 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 33

bả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 34

Arthur 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 35

giả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 36

VS 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 37

cho 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 38

nhau: 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

Ngày đăng: 18/02/2021, 22:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w