Sau khi nghiên cứu cho thấy cơ chế hoạt động của đàn kiến tự nhiên trong quá trình tìm đường đi ngắn nhất từ tổ tới nguồn thức ăn dựa trên nguyên tắc sau: - Đường đi ngắn nhất được xác đ
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
Trang 3Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè 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 đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác
Với lòng biết ơn sâu sắc nhất, em xin gửi đến các quý thầy cô ở khoa Công nghệ thông tin – Trường Đại học Vinh đã dạy dỗ truyền đạt cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững chắc và tạo điều kiện giúp đỡ em trong suốt quá trình học tập
Đồng thời em gửi lời cảm ơn đặc biệt về sự hưỡng dẫn tận tình của thầy Hoàng Hữu Việt đã tận tình hưỡng dẫn, giúp đỡ em trong suốt quá trình hoàn thành đề tài này Nếu không có những lời hướng dẫn, dạy bảo của thầy thì đề tài của em rất khó có thể hoàn thiện được Một lần nữa em xin chân thành cảm ơn thầy
Tuy vậy do thời gian có hạn, cũng như kinh nghiệm còn hạn chế nên trong đề tài này sẽ không tránh được những thiếu sót, hạn chế nhất định Vì vậy, em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để em có thể có điều kiện hoàn thiện,
bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn cho công tác thực tế sau này Cuối cùng, em xin kính chúc quý thầy cô trong bộ môn Kỹ thuật máy tính thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau
Trang 4kế hoạch sắp xếp thời khóa biểu cho các y tá trong bệnh viện, tìm kiếm đường đi tối
ưu cho người lái xe hơi, bài toán người du lịch, đấy là thuật toán tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) ACO là một phương pháp metaheuristic mới và đang được nhiều người quan tâm Thuật toán ACO đầu tiên (1991) đã mang lại nhiều ý tưởng và cảm hứng với mục đích cải tiến các thuật toán ACO để có thể áp dụng cho nhiều bài toán khác nhau
Phương pháp tối ưu hóa đán kiến (Ant Colony Optimization – ACO) là một phương pháp mà ngày nay người ta rất quan tâm vì hiệu quả nội trội của nó so với các phương pháp khác trong giải quyết các bài toán tối ưu hóa tổ hợp (Combinatorial optimization problems)
Đề tài này trình bày một cách khái quát về các thuật toán ACO và kiểm chứng một phương pháp áp dụng ACO việc giải quyết bài toán tìm đường đi ngắn nhất trên
đồ thị Đồng thời đề tài cũng chỉ ra nhược điểm của thuật toán và đề xuất một số cải tiến cho thuật toán nhằm nâng cao hiệu quả khi giải quyết các bài toán lớn
Trang 5LỜI CẢM ƠN Error! Bookmark not defined
LỜI NÓI ĐẦU 4
MỤC LỤC 5
DANH MỤC TÓM TẮT 7
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP ACO 1
1.1 Giới thiệu 1
1.2 Tư tưởng thuật toán 2
1.3 Hoàn cảnh ra đời và lịch sự phát triển 5
1.3.1 Hoàn cảnh ra đời 5
1.3.1 Quá trình phát triển 5
1.4 Một số thuật toán ACO 7
1.4.1 Thuật toán Ant System (AS) 7
1.4.2 Thuật toán Ant Colony System (ACS) 9
1.4.3 Thuật toán Max-Min Ant System (MMAS) 12
1.5 Các nguyên tắc khi áp dụng tối ưu hóa đàn kiến ACO 13
1.5.1 Số lượng kiến 14
1.5.2 Xác định các vệt mùi 14
1.5.3 Các thông tin heuristic 14
1.5.4 Kết hợp tìm kiếm địa phương 15
1.5.5 Điều chỉnh giữa sự học tăng cường và sự khám phá 16
1.5.6 Sử dụng giới hạn danh sách láng giềng 17
1.6 Các ứng dụng của thuật toán ACO 17
CHƯƠNG 2 TỔNG QUAN VỀ BÀI TOÁN DU LỊCH (TSP) 18
2.1 Giới thiệu bài toán người du lịch (TSP) 18
Trang 62.3 Mô tả bài toán 20
2.4 Các thuật toán giải bài toán TSP 21
2.4.1 Thuật giải chính xác 21
2.4.2 Thuật giải gần đúng heuristic 21
2.4.3 Thuật toán láng giềng gần nhất 22
2.4.4 Thuật toán tìm kiếm cục bộ 22
2.4.5 Thuật toán nhánh cận 23
2.4.6 Thuật toán di truyền 23
2.5 Ứng dụng thuật toán ACO 24
CHƯƠNG 3: ÁP DỤNG THUẬT TOÁN ACO VÀO GIẢI BÀI TOÁN DU LỊCH 26 3.1 Phân tích chức năng 26
3.2 Xây dựng thuật toán 27
CHƯƠNG 4 KẾT QUẢ 30
4.1 Giao diện chương trình 30
4.2 Các ví dụ chạy cho chương trình 30
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
1 Kết quả đạt được 37
2 Hạn chế của đề tài 37
3 Hướng phát triển của đề tài 38
TÀI LIỆU THAM KHẢO 40
Trang 7Travelling Salesman Problem
(Bài toán người du lịch)
Trang 8CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP ACO
Bài toán tối ưu hóa tổ hợp là bài toán hấp dẫn và thú vị bởi phần lớn chúng đều
dễ để hình dung nhưng khó mà tìm ra lời giải cho chúng Nhiều bài toán tối ưu tổ hợp
là các bài toán NP-khó và chúng không thể giải được trong thời gian đa thức Trên thực tế người ta thường giải quyết các bài toán này bằng các phương pháp xấp xỉ, chúng có nghiệm gần tối ưu và thời gian chạy khá ngắn Các thuật toán này tạm gọi là
các thuật toán heuristic, chúng được sự dụng để giải quyết các bài toán củ thể Mở
rộng của chúng là các thuật toán metaheuristic có thể giải quyết được cả một lớp các bài toán rộng lớn ACO là một phương pháp tiếp cận theo như thế
1.1 Giới thiệu
Phương pháp tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) là một mô hình để thiết kế các thuật toán metaheuristic cho việc giải quyết bài toán tối ưu hóa tổ hợp (Combinatorial optimization problems)
Bài toán tối ưu hóa tổ hợp
Bài toán tối ưu hóa tổ hợp được định nghĩa như sau:
Cho một tập C = { }
Một tập con S của C là một phương pháp để giải quyết bài toán
Tập ﬤ F là tập tất cả các phương án có thể, vì thế S là một phương án khả thi nếu S € F
Một hàm giá trị z xác định như sau, z : R , mục tiêu là tìm phương án khả thi S* có giá trị nhỏ nhất: S* F và z(S*) ≤ z(S) S F
Nhiều bài toán tối ưu quan trọng trong lý thuyết và thực tế là các bài toán thuộc loại tối ưu hóa tổ hợp Ví dụ như bài toán tìm đường đi ngắn nhất, cũng như nhiều bài toán có ý nghĩa quan trọng khác trên thực tế như bài toán người chào hàng, bài toán phân công lao động, bài toán định tuyến mạng, bài toán lập lịch công việc, bài toán lập lịch bay cho các hãng hàng không, và nhiều bài toán khác nữa
Một bài toán tối ưu hóa tổ hợp hoặc thuộc loại tìm giá trị nhỏ nhất hoặc là thuộc loại tìm giá trị lớn nhất Các phương pháp giải bài toán này phần lớn là các phương pháp tìm kiếm heuristic (các thuật toán metaheuristic)
Trang 9Metaheuristic
Metaheuristic là một tập các lý thuyết thuật toán được dùng để xác định các phương pháp heuristic sao cho nó phù hợp với một bài toán rộng lớn Nói cách khác metaheuristic có thể được xem như là một phương pháp heuristic có tính tổng quát, nó được thiết kế để hưỡng dẫn các heuristic trong các bài toán cơ bản hướng về những miền hứa hẹn trong không gian tìm kiếm các phương án tối ưu Một metaheuristic là khung thuật toán tổng quát có thể áp dụng cho nhiều loại bài toán tối ưu khác nhau tất nhiên là cùng với những điều chỉnh để làm cho chúng trở nên phù hợp với bài toán củ thể
1.2 Tư tưởng thuật toán
Thuật toán kiến được ra đời và phát triển xuất phát từ hành vi đàn kiến trong tự nhiên và đó là nguồn cảm hứng cho sự thiết kế các thuật toán mới cho các giải pháp tối
ưu hóa và các vấn đề điều khiển phân tán
Đàn kiến tự nhiên: là một loại có tổ chức cao, mỗi con kiến khi di chuyển sẽ để
lại một lượng thông tin mùi trên mặt đất Đây là phương tiện để đánh dấu và để đàn kiến trao đổi thông tin khi đi tìm kiếm thức ăn Khi đi tìm kiếm thức ăn, thì mỗi con kiến sẽ tìm ra đường đi của nó từ tổ tới nguồn thức ăn, chúng sẽ giao tiếp trao đổi thông tin với nhau, sau một thời gian cả đàn kiến gần như tìm ra và đi theo con đường ngắn nhất từ tổ kiến tới thức ăn
Sau khi nghiên cứu cho thấy cơ chế hoạt động của đàn kiến tự nhiên trong quá trình tìm đường đi ngắn nhất từ tổ tới nguồn thức ăn dựa trên nguyên tắc sau:
- Đường đi ngắn nhất được xác định thông qua các thông tin về vệt mùi, là một loại hóa chất mà các con kiến dùng để trao đổi thông tin với nhau
- Khi di chuyển thì mỗi con kiến sẽ để lại một lượng vệt mùi trên đường đi mà nó
Trang 10Từ việc nghiên cứu cơ chế hoạt động của đàn kiến tự nhiên đã cho ra đời thuật toán đàn kiến Một cách không chính thức có thể nói thuật toán đàn kiến là một đàn kiến nhân tạo để giải bài toán đưa ra
Đàn kiến nhân tạo: Để bắt chước hành vi của các con kiến thực, Dorigo xây dựng các con kiến nhân tạo cũng có đặc trưng sản sinh ra vệt mùi để lại trên đường đi
và khả năng lần vết theo nồng độ mùi để lựa chọn con đường có nồng độ mùi cao hơn
để đi Với bài toán người du lịch trên đồ thị trong không gian hai chiều với trọng số là khoảng cách giữa hai đỉnh bất kỳ, Dorigo gắn với mỗi cạnh (i, j) ngoài trọng số dij trên
là nồng độ vệt mùi trên cạnh đó
Đàn kiến nhân tạo mô phỏng các hoạt động của đàn kiến tự nhiên và có một số thay đổi, điều chỉnh so với đàn kiến tự nhiên để tăng tính hiệu quả của thuật toán Các tính chất của đàn kiến nhân tạo như sau:
- Ngoài thông tin vệt mùi thì đàn kiến nhân tạo còn sử dụng thông tin heuristic trong xây dựng luật di chuyển của chúng
- Kiến nhân tạo có bộ nhớ để lưu thông tin của kiến nhằm mục đích xác định hành trình đã đi qua và để tính toán độ dài của hành trình đó
- Lượng mùi được thêm vào bởi kiến nhân tạo là hàm của chất lượng lời giải mà chúng tìm được Kiến nhân tạo thường chỉ thực hiện tăng lượng thông tin mùi sau khi
đã hoàn thành lời giải
- Kiến nhân tạo sử dụng cơ chế bay hơi mùi để tránh bế tắc trong bài toán tối ưu cục bộ
Thí nghiệm cầu đôi
Hành vi tìm thức ăn của các con kiến là dựa trên giao tiếp gián tiếp qua các vệt mùi (chất pheromone) Khi di chuyển từ nguồn thức ăn trở về tổ các con kiến lại để lại mùi trên mặt đất, các con kiến sẽ có thể cảm nhận được mùi và chúng có khuynh hướng chọn theo xác suất các đường mà đánh dấu tập trung nhiều mùi nhất
Một số nghiên cứu để tìm hiểu hành vi của loài kiến đã được tiến hành mà một trong những thì nghiệm nổi tiếng nhất là thì nghiệm của Deneubourg và các cộng sự của ông năm 1989, thí nghiệm này là cơ sở lý thuyết đầu tiên và cũng tạo ra ý tưởng thuật toán ACO mà Dorogi đưa ra sau này Ông sự dụng một cầu đôi nối giữa một cái
tổ của loài kiến với nguồn thức ăn Ông đã thực hiện thí nghiệm này nhiều lần và thay đổi tỉ số r giữa độ dài 2 nhánh cầu
Trang 11Trong thí nghiệm đầu tiên hai nhánh cầu có chiều dài bằng nhau (xem hình 1.a) Khi bắt đầu các con kiến chi chuyển tự do giữa tổ và nguồn thức ăn, người qua người
ta quan sát tị lệ phần trăm các con kiến chọn các nhánh trong 2 nhánh qua thời gian Kết quả thu được, cho dù giai đoạn khởi đầu các lựa chọn ngẫu nhiên xảy ra, song cuối cùng thì các con kiến đều hầu như chỉ đi qua một nhánh Kết quả này có thể được giải thích như sau: Khi bắt đầu một lần thử không có vệt mùi nào trên cả 2 nhánh cầu, sau
đó các con kiến sẽ không có cái gì để làm căn cứ lựa chọn và chúng sẽ chọn ngẫu nhiên với cùng 1 xác suất bất kì nhánh nào trong 2 nhánh Còn nữa, vì các con kiến để lại mùi khi di chuyển, nên nhánh nào có số lượng lớn hơn các con kiến thì sẽ có lượng mùi lớn hơn Đồng thời với lượng mùi lớn hơn thì nhánh đó cũng thu hút được nhiều con kiến chọn nhánh đó Và cuối cùng các con kiến sẽ gần như chỉ kéo về một nhánh duy nhất
Quá trình trên là một quá trình nội bộ, tự vận động là một ví dụ của hành vi tự tổ chức của loài kiến Quá trình lựa chọn một đường đi duy nhất của loài kiến thể hiện hành vi mang tính tập thể của chúng dựa trên cơ sở các tương tác cục bộ giữa các con kiến đơn lẻ trong đàn
Trong thí nghiệm thứ 2 tỉ số độ dài của 2 nhánh được thay đổi r = 2 Trong trường hợp này, ở phần lớn các lượt thử thì sau một thời gian tất cả các con kiến chỉ chọn nhánh ngắn hơn Cũng như trong thí nghiệm đầu các con kiến sẽ phải lựa chọn một trong 2 nhánh để đi Khi bắt đầu thì cả 2 nhánh cầu là như nhau và chúng sẽ chọn ngẫu nhiên Vì thế xét trung bình thì một nửa số kiến sẽ chọn nhánh ngắn và nửa còn lại chọn nhánh dài Ở thí nghiệm này ta sẽ thấy một sự khác biệt so với thí nghiệm trước Vì một nhánh ngắn hơn nên các con kiến sẽ đến nguồn thức ăn nhanh hơn các con kiến chọn nhánh dài và chúng sẽ trở về tổ Tuy nhiên chúng sẽ phải chọn giữa
Trang 12nhánh ngắn và nhánh dài, mức nồng độ mùi cao hơn ở nhánh ngắn sẽ làm cho quyết định của các con kiến lệch về phía nhánh ngắn Vì thế mùi sẽ bắt đầu được tích lũy nhanh hơn trên nhánh ngắn, cuối cùng hầu hết các con kiến sẽ chọn nhánh này theo như sự tương tác giữa các con kiến được mô tả ở thí nghiệm trước
Điều thú vị quan sát được là thậm chí khi một nhánh dài gấp đôi nhánh kia thì không phải tất cả các con kiến sự dụng nhánh ngắn hơn mà có một lượng nhỏ kiến chọn nhánh dài hơn Đây là cách để kiến có thể khám phá được những con đường mới
1.3 Hoàn cảnh ra đời và lịch sự phát triển
1.3.1 Hoàn cảnh ra đời
ACO (Ant Colony Optimization – Tối ưu đàn kiến) là một phương pháp lấy cảm hứng từ việc mô phỏng hành vi của đàn kiến trong tự nhiên nhằm mục tiêu giải quyết các bài toán tối ưu hóa phức tạp
Khái niệm ACO lấy cảm hứng từ việc quan sát hành vi của đàn kiến trong quá trình chúng tìm kiếm nguồn thức ăn Người ta đã khám phá ra rằng, đàn kiến luôn tìm được đường đi ngắn nhất từ tổ của chúng đến nguồn thức ăn Phương tiện truyền đạt tín hiệu được kiến sự dụng để thông báo cho những con khác trong việc tìm kiếm đường đi ngắn nhất chính là mùi của chúng (pheromone) Kiến để lại vệt mùi trên mặt đất khi chúng di chuyển với mục đích đánh dấu đường đi cho các con theo sau Vệt mùi này sẽ bay hơi và mất dần đi theo thời gian, nhưng nó cũng sẽ được củng cố nếu những cón kiến khác tiếp tục đi trên con đường đó lần nữa Dần dần, các con kiến theo sau sẽ lựa chọn đường đi với lượng mùi dày đặc hơn, và chúng sẽ là gia tăng hơn nữa nồng độ mùi trên những đường đi được yêu thích hơn Các đường đi với nồng độ mùi
ít hơn ruốt cuộc sẽ bị loại bỏ và cuối cùng, tất cả đàn kiến sẽ cùng kéo về một đường
đi ngắn nhất từ tổ đến nguồn thức ăn của chúng
Dựa vào ý tưởng trên, các thuật toán ACO sự dụng thông tin heuristic (chính là thông tin có được do các dữ liệu đầu vào của bài toán) kết hợp thông tin từ các vệt mùi của các con kiến nhân tạo để giải quyết bài toán tối ưu tổ hợp khó bằng cách đưa về bài toán tìm đường đi tối ưu trên đồ thị cấu trúc tương ứng xây dựng từ đặc điểm của từng bài toán Mỗi con kiến nhân tạo xây dựng lời giải của chúng dựa vào luật phân phối xác suất của các vệt mùi nhân tạo và thông tin heuristic
1.3.1 Quá trình phát triển
Hệ thống ACO lần đầu tiên được Marco Dorigo giới thiệu vào năm 1992, và được gọi là hệ thống kiến (Ant System, hay AS) Thuật toán AS là kết quả của việc
Trang 13nghiên cứu trên hướng tiếp cận trí tuệ máy tính nhằm tối ưu tổ hợp mà Dorigo hợp tác với Alberto Colorni và Vittorio Maniezzo AS ban đầu được áp dụng cho bài toán người du lịch TSP
Cũng vào năm 1992, tại hội nghị sự sống nhân tạo lần đầu tiên ở châu Âu, Dorigo và các cộng sự đã công bố bài: sự tối ưu được phân bố bởi đàn kiến
Tiếp theo tại hội nghị quốc tế thứ hai về giải quyết các vấn đề song song trong tự nhiên ở Hà Lan năm 1992, ông và các cộng sự đã công bố bài: nghiên cứu về các đặc tính của một thuật toán kiến
Kể từ năm 1995 Dorigo, Gambardella và Stützle đã phát triển các sơ đồ AS khác nhau Dorigo và Gambardella đã đề xuất Hệ thống bầy kiến (hay ACS) trong khi Stützle and Hoos đề xuất MAX-MIN Ant System (MMAS) Tất cả đều áp dụng cho bài toán người du lịch đối xứng hay không đối xứng và cho kết quả rất tốt Dorigo, Gambardella and Stützle cũng đề xuất những phiên bản lai của ACO với tìm kiếm cục
bộ
Sau đó, vào năm 1997, G Di Caro và M Dorigo đã đề xuất hệ thống AntNet Đây là cách tiếp cận về định hướng sự thích nghi Và phiên bản cuối cùng của hệ thống AntNet về điều khiển mạng truyền thông đã được công bố vào năm 1998
Cũng trong năm 1997, hệ thống Rank-based Ant System, một hệ thống cải tiến
hệ thống kiến ban đầu về nghiên cứu hệ thống tính toán đã được đề xuất bởi B Bullnheimer, R F Hartl và C Strauss Phiên bản cuối cùng của hệ thống này được công bố vào năm 1999
Vào năm 2001, C Blum, A Roli, và M Dorigo đã cho công bố về hệ thống kiến mới là Hyper Cube – ACO Phiên bản mở rộng tiếp đó đã được công bố vào năm
2004
Hầu hết các nghiên cứu gần đây về ACO tập trung vào việc phát triển các thuật toán biến thể để làm tăng hiệu năng tính toán của thuật toán Ant System ban đầu
Bảng 1: Các thuật toán tối ưu đàn kiến ACO theo thứ tự thời gian xuất hiện
Thuật toán tối ưu đàn kiến ACO Thử nghiệm trên bào
toán TSP
Trang 141.4 Một số thuật toán ACO
1.4.1 Thuật toán Ant System (AS)
1.4.1.1 Quy tắc di chuyển của kiến
Trong thuật toán AS, kiến xây dựng một đường đi bắt đầu tại một đinh được chọn ngẫu nhiên
Tại định i, một con kiến k sẽ chọn đỉnh j chưa được đi qua trong tập láng giềng của i theo công thức sau:
Trong đó:
xác suất con kiến lựa chọn cạnh (i,j)
nồng độ vệt mùi trên cạnh (i,j)
Trang 15khoảng cách giữa đỉnh i và j
hệ số điều chỉnh ảnh hưởng tập các đỉnh láng giềng của i mà con kiến k chưa đi qua
1.4.1.2 Quy tắc cập nhập thông tin mùi
Trong quá trình di chuyển tìm đường đi của đàn kiến, chúng thực hiện việc cập nhập thông tin mùi trên những đoạn đường mà chúng đi qua Gắn với mối cạnh (i, j) nồng độ mùi và thông số heuristic trên cạnh đó
Ban đầu nồng độ mùi trên mỗi cạnh (i, j) khởi tạo bằng một hằng số c, hoặc xác định theo công thức:
,
Việc cập nhập pheromone được tiến hành như sau:
- Đầu tiên tất cả pheromone trên các cung sẽ được giảm đi bởi một lượng:
Với trong khoảng (0, 1) là tốc độ bay hơi của pheromone
- Tiếp theo mỗi con kiến trong đàn sẽ đặt thêm một lượng thông tin pheromone trên những cung mà chúng đã đi qua trong hành trình của chúng
Với là độ dài đường đi của con kiến thứ k sau khi hoàn thành đường đi, tức
là bằng tổng các cung thuộc đường mà kiến đã đi qua
Trang 16Ưu điểm của AS:
Việc tìm kiếm ngẫu nhiên dựa vào trên các thông tin heuristic là cho phép tìm kiếm linh hoạt và mềm dẻo trên không gian rộng lớn hơn phương pháp heuristic sẵn
có, do đó cho ta lời giải tốt hơn và có thể tìm được lời giải tối ưu
Sự kết hợp với tăng cường học trong đó những lời giải tốt hơn sẽ được tăng cường hơn thông qua thông tin về cường độ mùi cho phép ta từng bươc thu hẹp không gian tìm kiếm và vẫn không loại bỏ các lời giải tốt, do đó nâng cao chất lượng thuật toán
Nhược điểm AS:
Hiệu suất của nó giảm đột ngột so với nhiều thuật toán metaheuristic khác khi mà kích thước bài toán tăng lên Bởi vì khi số đỉnh của đồ thị lớn thì cường độ vệt mùi trên cạnh không thuộc lời giải tốt (hoặc ít được con kiến lựa chọn) sẽ nhanh chóng giảm về 0 làm cho cơ hội khám phá hay tìm kiếm ngẫu nhiên của thuật toán sẽ giảm
mà đây là một trong những điểm mạnh của thuật toán mô phỏng tiến hóa tự nhiên nên thuật toán hệ kiến AS kém hiểu quả
Vì thế, thực tế là nghiên cứu về ACO ngày nay là tập trung vào việc làm thế nào
để cải tiến AS
1.4.2 Thuật toán Ant Colony System (ACS)
Trong khi MMAS là thuật toán chỉ thay đổi được phần nhỏ từ thuật toán AS, thì các thuật toán khác như ACS, Ant-Q, đạt được hiệu suất cao bằng cách đưa hẳn các ký thuật mới hoàn toàn mà kỹ thuật của nó không có trong thuật toán AS cơ bản, đây là những thuật toán mở rộng của AS
Thuật toán ACS khác với AS ở ba điểm chính sau:
- ACS tận dụng kinh nghiệm tích lũy từ những con kiến nhiều hơn so với thuật toán AS thông qua việc dùng một luật lựa chọn đỉnh linh hoạt hơn
- Sự tăng cường mùi và bay hơi mùi chỉ áp dụng trên những cạnh thuộc tuyến đường đi tốt nhất từ trước tới hiện tại
- Mội khi con kiến sự dụng cạnh (i, j) để di chuyển từ thành phố i tới thành phố
j, nó sẽ lấy đi một ít mùi từ cạnh đó để tăng khả năng khám phá đường đi
Trang 171.4.2.1 Quy tắc di chuyển của kiến
Trong thuật toán ACS, con kiến k đang ở đỉnh i, việc kiến chọn đỉnh j di chuyển đến được xác định bằng quy luật như sau:
- Cho là một hằng số cho trước ( )
- Chọn ngẫu nhiên 1 giá trị q trong khoảng [0,1]
- Nếu q kiến k chọn điểm j di chuyển tiếp theo dựa trên giá trị lớn nhất của thông tin mùi và thông tin heuristic có trên cạnh tương ứng với công thức:
- Nếu q > kiến k sẽ chọn đỉnh j chưa được đi qua trong tập láng giềng của i theo một quy luật phân bổ xác suất được xác định theo công thức sau:
1.4.2.2 Quy tắc cập nhập thông tin mùi
a Cập nhập thông tin mùi toàn cục:
Cập nhập mùi toàn cục: chỉ cập nhập sau khi các con kiến đã xây dựng xong hành trình của mình và chỉ cho phép một con kiến tốt nhất (tính tới thời điểm hiện tại) được phép cập nhập mùi sau mỗi vòng lặp
Một con kiến có đường đi tốt nhất sau mỗi lần lặp thì được phép cập nhập thông tin pheromone Việc cập nhập được thực hiện theo công thức sau:
Với là lượng pheromone đặt lên cạnh (i, j) mà kiến đi qua
là độ dài đường đi tốt nhất của con kiến thứ k sau khi hoàn thành đường đi, tức bằng tổng các cung thuộc đường đi tốt nhất mà kiến đã đi qua
Một điểm quan trọng trong quá trình cập nhật mùi của ACS là cả bay hơi và tăng cường mùi đều chỉ thực hiện trên những cạnh thuộc hành trình tốt nhất chứ không phải trên tất cả các cạnh như AS Điều này là quan trọng vì độ phức tạp tính toán của cập
Trang 18nhật mùi tại mỗi vòng lặp giảm từ O( ) xuống O(n) (với n là số đỉnh của bài toán) Tham số ρ ở đây vẫn là tham số bay hơi mùi như trên
Trong thực nghiệm người ta đã cân nhắc việc sử dụng hành trình tốt nhất tại vòng lặp hiện tại để cập nhật mùi Mặc dù với những thí nghiệm với bài toán TSP có kích thước nhỏ thì sự khác biệt giữa việc sử dụng hai cách cập nhật mùi trên là không nhiều, nhưng với những bài toán có kích thước lớn khoảng hơn 100 thành phố trở lên thì việc sử dụng hành trình tốt nhất đến hiện tại cho kết quả tốt hơn nhiều
b Cập nhập thông tin mùi cục bộ:
Một sự cải tiến thêm trong quá trình cập nhật mùi của thuật toán ACS là trong khi xây dựng hành trình của mình, mỗi con kiến sẽ cập nhật mùi ngay lập tức cho cạnh (i, j) mà nó vừa đi qua (gọi là công thức cập nhật mùi cục bộ) theo công thức:
Với:
Là tham số bay hơi nằm trong khoảng (0, 1)
ứ đọng các vệt mùi như trong thuật toán MMAS
Thêm một chú ý đáng quan trọng là trong các thuật toán AS, MMAS việc thiết lập cho các con kiến xây dựng đường đi của chúng hoặc là song song hoặc là tuần tự cho kết quả là như nhau Tuy nhiên với ACS thì khác, do có thêm quá trình cập nhập cục bộ nên trong phần lớn các cài đặt thuật toán ACS người ta đều cho các con kiến xây dựng các đường đi song song
Thực tế cho thấy kết quả của thuật toán ACS và MMAS tốt hơn so với thuật toán
AS
Trang 191.4.3 Thuật toán Max-Min Ant System (MMAS)
MMAS là thuật toán có hiệu suất cao hơn nhiều so với thuật toán AS nhờ vào những thay đổi nhỏ trong thuật toán AS, đây được coi là các thuật toán kế thừa trực tiếp từ thuật toán AS vì chúng về cơ bản là không khác gì nhiều so với AS
MMAS có bốn thay đổi chính với AS:
- MMAS chú trọng nhiều vào những hành trình tốt nhất được tìm thấy: MMAS chỉ cho phép con kiến tìm ra được hành trình tốt nhất của vòng lặp hiện tại hoặc con kiến tốt nhất từ đầu đến hiện tại được phép cập nhật mùi Tuy nhiên việc này sẽ dẫn đến hiện tượng trì trệ, tập trung quá nhiều khi mà tất cả các con kiến đều cùng chọn một hành trình để đi, do sự tăng lên quá mức của cường độ các vệt mùi trên các cạnh tốt, mặc dù đây chưa phải hành trình tối ưu nhất
- Để tránh hiện tượng trên một cải tiến thứ hai là MMAS giới hạn cường độ mùi trongmột khoảng cố định [ max, min] Tất cả vệt mùi trên các cạnh đều nằm trong khoảng này
- Các vệt mùi được khởi tạo giá trị là cận trên của vệt mùi max, cùng với việc một tỉ lệ bay hơi mùi nhỏ sẽ làm tăng khả năng khám phá cho các con kiến ngay từ khi bắt đầu tìm kiếm
- Trong thuật toán MMAS các vệt mùi sẽ được khởi tạo lại nếu như hệ thống rơi vào trạng thái trì trệ ở trên, hoặc không thể tìm được hành trình nào tốt hơn nữa sau một số lượng các vòng lặp liên tiếp
Luật di chuyển của kiến được thực hiện tương tự như trong thuật toán ACS dựa vào công thức:
1.4.3.1 Quy tắc cập nhập thông tin mùi
Thuật toán MMAS thực hiện việc cập nhập thông tin mùi khi toàn bộ kiến trong đàn hoàn thành lời giải và lượng thông tin mùi chỉ cập nhập trên các cạnh thuộc lời giải tối ưu nhất Ban đầu cũng thực hiện bay hơi thông tin mùi trên các cạnh thuộc lời giải tối ưu với một lượng được xác định tại công thức
Trang 20
Lượng pheromone trên một cạnh được xác định như sau:
khi chọn bé thì thì gần như các thông tin heuristic được tận dụng triệt để, còn các
cường độ mùi sẽ giảm nhanh và không có tác dụng mấy Còn nếu chọn lớn thì
thuật toán sẽ gần với tìm kiếm ngẫu nhiên và ít phụ thuộc vào các thông tin heuristic đồng thời khả năng học tăng cường cũng giảm theo
1.5 Các nguyên tắc khi áp dụng tối ưu hóa đàn kiến ACO
Các chú ý sau đây làm tăng khả năng cho thuật toán ACO khi áp dụng vào các bài toán khác nhau Có nhiều vẫn đề cần quan tâm khi ta áp dụng thuật toán ACO để giải một bài toán, chẳng hạn lựa chọn số lượng kiến, lựa chọn các tham số khác, xác định các vệt mùi, xác định các thông tin heuristic và kết hợp sự dụng tìm kiếm địa phương
Trang 211.5.1 Số lượng kiến
Số lượng kiến trong các bài toán khác nhau cần có những sự điều chỉnh khác nhau Nếu số lượng kiến quá nhiều thì quá trình tìm kiếm sẽ mất nhiều thời gian tính toán, đồng thời chưa chắc đã tăng hiệu quả tìm kiếm Nếu số lượng kiến quá ít thì quá trình tìm kiếm sẽ rất khó khăn bởi vì số ít các con kiến thì ít các đường đi được lựa chọn tại mỗi vòng lặp và do đó, sự tích lũy các thông tin mùi là mất nhiều thời gian và
số tuyến đường mà các con kiến lựa chọn cũng trở nên đơn điệu vì có quá ít các con kiến
Số lượng kiến phụ thuộc vào thuật toán cài đặt và phục thuộc vào kích thước của bài toán cần giải quyết Chẳng hạn với thuật toán AS người ta chọ số kiến là bằng số đỉnh Với thuật toán MMAS với những bài toán nhỏ thì người ta chỉ chọn từ 2 – 10 con, còn với những bài toán có kích thước vài trăm đỉnh trở lên thì người ta tăng dần
số kiến lên
1.5.2 Xác định các vệt mùi
Quá trình tăng cường học có tác dụng nâng cao hiệu quả của thuật toán trong quá trình các con kiến tìm kiếm lời giải Một trong những điều quan trọng đầu tiên trong việc áp dụng thuật toán ACO là công việc xác định thông tin tăng cường học qua các vệt mùi, nói cách khác là xác định thông tin mà vệt mùi biếu diễn
Chẳng hạn với bài toán TSP, vệt mùi giữa các cạnh có tác dụng biểu diễn sự thích hợp của việc lựa chọn thành phố j sau khi đã thăm thành phố i, nói các khác nó là một thông tin để thể hiện mối quan hệ giữa thành phố i và thành phố j Củ thể ở bài toán này ta chọn đỉnh nghĩa các vệt mùi là khả năng đường đi từ thành phố i đến thành phố j có thuộc đường đi các con kiến lựa chọn hay không, tức là mức độ ưu tiên của đoạn đường này
Việc định nghĩa các vệt mùi ảnh hưởng rất nhiều đến hiệu quả của thuật toán, nếu đưa ra một lựa chọn không tốt thì thuật toán có thể trở nên là xấu Với phần nhiều các bài toán ứng dụng của ACO các lựa chọn dựa trên trực quan mà người ta nhận thấy ngay thường đưa lại hiệu quả tốt
1.5.3 Các thông tin heuristic
Các thông tin heuristic là một trong những thông tin quan trọng trong các thuật toán ACO Các thông tin heuristic thể hiện mối quan hệ giữa các đỉnh và nó chính là thông tin mà ta thu được từ dữ liệu đầu vào của bài toán, nó thể hiện các tri thức có được từ bài toán Nó được kết hợp với quá trình tìm kiếm địa phương để cải tiến lời
Trang 22giải Tìm kiếm địa phương cho phép có được những thông tinchi phí để cải tiến lời giải theo cách trực tiếp hơn Khi kết hợp các thuật toán ACO với phương án tìm kiếm địa phương sẽ tìm ra được những lời giải tốt hơn cho những bài toán khó xây dựng được những thông tin heuristic
Trong các bài toán tĩnh, các thông tin heuristic sẽ cần chi tính một lần trước khi bắt đầu thuật toán, ví dụ trong bài toán người du lịch TSP người ta định nghĩa thông tin heuristic dựa vào độ dài giữa các thành phố i và thành phố j, nó bằng nghịch đảo độ dài này , tức là khoảng cách giữa các đỉnh càng nhỏ thì thông tin heuristic giữa các thành phố càng lớn Các thông tin heuristic tĩnh có đặc điểm thuận lợi sau: dễ tính toán, chi phí phải tính một lần trước khi bắt đầu thuật toán
1.5.4 Kết hợp tìm kiếm địa phương
Việc sử dụng các thuật toán tìm kiếm địa phương là một yếu tố quyết định tính hiệu quả cho các ứng dụng ACO Tuy nhiên việc áp dụng các thuật toán tìm kiếm địa phương vào các thuật toán ACO là không hề đơn giản
Rất nhiều các ứng dụng của các bài toán tối ưu tổ hợp như TSP, bài toán phân chia sản phẩm, hay bài toán định tuyến cho xe cộ, các thuật toán ACO đều cho ra kết quả tốt khi kết hợp các thuật toán tìm kiếm địa phương Các thuật toán địa phương nhằm xác định ra một miền cục bộ trong lời giải hiện tại (thông qua các phép biến đổi, xáo trộn láng giềng) và sau đó thực hiện tìm kiếm cụ bộ trong phạm vi nó định nghĩa
để có được lời giải tối ưu toàn cục Các thuật toán tìm kiếm địa phương thường tìm ra các lời giải tối ưu cục bộ và dùng những lời giải đó để cập nhật vệt mùi
Người ta nhận thấy trong nhiều bài toán, quá trình lặp lại các tìm kiếm địa phương ngay từ những lời giải ban đầu được sinh ra ngẫu nhiên không mang lại nhiều hiệu quả lắm Do đo quá trình sinh ra các lời giải ban đầu cho các thuật toán tìm kiếm địa phương không mang lại các kết quả như ý và nó thực sự không phải là một nhiệm
vụ đơn giản
Trên thực tế, khi kết hợp các thành phố của lời giải tối ưu cục bộ một các ngẫu nhiên người ta thu được những lời giải mới hứa hẹn hơn cho thuật toán tìm kiếm địa phương Bằng thực nghiệm, có thể thấy sự kết hợp của các lời giải tham lam thích nghi theo xác suất với các thuật toán tìm kiếm địa phương có thể đạt được những kết quả hơn cả
Trang 231.5.5 Điều chỉnh giữa sự học tăng cường và sự khám phá
Các thuật toán metaheuristic muốn có hiệu quả tốt thì cần có sự điều chỉnh phù hợp giữa việc sự dụng kinh nghiệm tìm kiếm với việc khám phá các không gian tìm kiếm mới Các thuật toán ACO điều chỉnh được sự cân bằng giữa chúng thông qua việc điều chỉnh cập nhập các vệt mùi sao cho phù hợp
Tác dụng của việc cập nhập mùi là đưa ra một sự phân bố xác suất lựa chọn trên không gian tìm kiếm, nó cho phép ta xác định được các phần nào trong không gian tìm kiếm mà tập trung nhiều lời giải hơn, cũng tức là có nhiều khả năng cho lời giải tối ưu
ở đó Khi đó nếu tập trung tìm kiếm trên các phần không gian này thì ta có quá trình học tăng cường tức là chỉ tập trung tìm kiếm trên các lời giải tốt hay nói cách khác là trên các cạnh có nhiều thông tin vệt mùi
Để sử dụng kinh nghiệm tìm kiếm của các con kiến ta có thể sử dụng một thủ tục kiểm tra hiệu suất của mỗi lời giải trong suốt quá trình cập nhật vệt mùi Một cách để tăng khả năng học tăng cường trong quá trình xây dựng lời giải bằng cách áp dụng luật chuyển trạng thái như trong thuật toán ACS, khi đó các con kiến sẽ tập trung nhiều hơn vào các lời giải tốt ở bước trước hơn so với thuật toán AS Mặt trái của quá trình này là khả năng khám phá của các con kiến giảm đi vì chúng chỉ tập trung vào một phần nhỏ của không gian tìm kiếm
Để tăng khả năng khám phá cho các con kiến thì ta cần mở rộng không gian tìm kiếm lên bằng các phương pháp khác nhau Quá trình này vừa có tác dụng giảm bớt sự tập trung quá nhiều vào các lời giải được cho là tốt, vừa có tác dụng đưa ra nhiều khả năng tìm kiếm cho các con kiến Mở rộng không gian tìm kiếm trong ACO chính là các thủ tục xây dựng lời giải ngẫu nhiên của các con kiến Xem xét khi thuật toán ACO không sử dụng thông tin heuristic (bằng cách đặt tham số β=0) Trong trường hợp này, quá trình cập nhật mùi sẽ gây ra sự thay đổi từ không gian tìm kiếm mẫu cố định ban đầu thành một không gian mẫu khác và ở không gian này sự lựa chọn các phương án chỉ phụ thuộc vào cường độ các vệt mùi Việc mở rộng không gian tìm kiếm sẽ tốt hơn trong các vòng lặp ban đầu của thuật toán và sẽ giảm thiểu được sự tính toán
Để điều chỉnh sự tăng cường và khám phá người ta thường điều chỉnh các tham
số α và β, α điều chỉnh sự ảnh hưởng của các vệt mùi còn β điều chỉnh sự ảnh hưởng của các thông tin heuristic MMAS sử dụng một phương pháp đó là giới hạn cận dưới của các cường độ vệt mùi sao cho khi đó không gian tìm kiếm được điều chỉnh không trở nên thu hẹp quá mức Khi bài toán đi vào bế tắc tức là với không gian tìm kiếm