Trong các phương pháp mô phỏng tự nhiên, tối ưu đàn kiến Ant Colony Optimization - ACO là cách tiếp cận metaheuristic tương đối mới,được giới thiệu bơei Dorigo năm 1991 đang được nghiên
Trang 1B GIÁO DỘ ỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI H C M - Ọ Ỏ ĐỊA CH T Ấ
- -
Phần 2 : Cài đặt thuật toán ki n và ế
chạy th nghi m trên m t s thành ph h u h n ử ệ ộ ố ố ữ ạ
Giảng viên th c hi n ự ệ : ThS Dương Chí Thiện
Hà N i, 06/2023 ộ
Trang 2MỤC L C Ụ
CHƯƠNG I: ỐI ƯU TỔT HỢP 2
1 Bài toán tối ưu tổ hợp tổng quát 2
2 Bài toán người chào hàng (TSP) 3
3 Cách ti p cế ận 4
3.1 Heuristic c u trúcấ 5
3.2 Tìm ki m c c b (local search)ế ụ ộ 6
3.3 Metaheuristic 7
CHƯƠNG II: XÂY DỰNG THUẬT TOÁN ĐÀN KIẾN 9
1 T ừ những con ki n trong t nhiên tế ự ới thu t toán ACO ậ 11
2 Giới thi u v thu t toánệ ề ậ 13
3 Sơ đồ chung thuật toán đàn kiến 18
4 Các bước giải quyết bài toán đàn kiến 19
5 Các sơ đồ thu t toán khác phát tri n trên mô hình ACOậ ể 22
5.1 Thu t toán Ant System (AS)ậ 22
5.2 Thu t toán Ant Colony System (ACS)ậ 25
5.3 Thu t toán Max Min Ant System (MMAS)ậ – 26
5.4 Thu t toán Rank-Based Ant System (RBAS)ậ 27
5.5 Thu t toán Best-Worst Ant System(BWAS)ậ 29
6 Thuật toán đàn kiến song song 30
CHƯƠNG III: MỘT S NG D Ố Ứ ỤNG V Ề THUẬT TOÁN 32
1 Ứ ng d ng thuật toán ACO 32 ụ 2 Ví d minh h aụ ọ 34
Trang 3CHƯƠNG I: ỐI ƯU TỔ T HỢP
1. Bài toán tối ưu tổ ợ h p t ng quát ổ
Trong thực tế và khi xây dựng các hệ thông tin, ta thường gặp các bài toán tối ưu tổ hợp (TƯTH) Trong đó phải tìm các giá cho trị các biếnrời rạc để làm cực trị hàm mục tiêu nào đó Đa số các bài toán này thuộc lớp NP-khó Trừ các bài toán cỡ nhỏ có thể tìm lời giải bằng cách tìm kiếm vét cạn, còn lại thì thường không thể tìm được lời giải tối ưu
Đối với các bài toán cỡ lớn không có phương pháp giải đúng, đến nay người ta vẫn dùng các cách tiếp cận sau:
1) Tìm kiếm heuristic để tìm l i ờ giả đủ ốt;i t
2) Tìm kiếm c c b ụ ộ để tìm ờ l i gi i tả ối ưu địa phương;
3) Tìm l i gi i gờ ả ần đúng nhờ các thu t toán mô ph ng tậ ỏ ự nhiên như: mô
ph ngỏ luy n kim, ệ giải thu t truyậ di ền, tối ưu b y đàn,… ầ
Hai cách tiếp cận đầu thường cho lời giải nhanh nhưng không thể cải thiện thêm lời giải tìm được, nên cách tiếp cận thứ ba đang được sử dụng rộng rãi cho các bài toán cỡ lớn
Trong các phương pháp mô phỏng tự nhiên, tối ưu đàn kiến Ant (Colony Optimization - ACO) là cách tiếp cận metaheuristic tương đối mới,được giới thiệu bơei Dorigo năm 1991 đang được nghiên cứu và ứng dụng rộng rãi cho các bài toán TƯTH khó
Các thuật toán ACO sử dụng kết hợp thông tin kinh nghiệm (he uristic) và học tăng cường qua các vết mùi của các con kiến nhân tạo để giải
Trang 4các bài toán TƯTH 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 của bài toán Phương pháp này được áp dụng rộng rãi để giải nhiều bài toán khó và hiệu quả nổi trội của chúng so với các phương pháp mô phỏng tự nhiên khác đã được chứng tỏ bằng thực nghiệm
Khi áp dụng các thuật toán tối ưu đàn kiến thông dụng như ACS và MMAS, người ta phải tìm một lời giải đủ tốt, trên scơ ở đó xác định các tham cho số cận trên và cận dưới của vết mùi Điều này gây nhiều khó khăn khi áp dụng thuật toán cho các bài toán mới Ngoài ra, lượng mùi cập nhật cho mỗi thành phần trong đồ thị tỷ lệ với giá trị hàm mục tiêu của lời giải chứa nó liệu có phản ánh đúng thông tin học tăng cường hay không cũng còn phải thảo luận
Việc nghiên cứu sâu hơn về các thuật toán ACO và ứng dụng của nó đang được nhiều người quan tâm Từ năm 1998 đến nay, cứ 2 năm thì có một hội nghị quốc tế về phương pháp này tổ chức Brussels
2. Bài toán người chào hàng (TSP)
Bài toán người chào hàng (Traveling Salesman Problem - TSP) là bài toán TƯTH điển hình, được nghiên cứu nhiều và được xem là bài toán chuẩn
để đánh giá hiệu qu ả các lược đồ giải bài toán TƯTH mới (xem [30,31]) Bài toán được phát biểu như sau:
Có m t t p gộ ậ ồm 𝑛 thành ph (hoố ặc điểm tiêu thụ) 𝐶 = { i} 𝑐 𝑛, độ dài
đường đi trực tiếp từ ci đến cj là di,j Một người chào hàng mu n tìm một ốhành trình ng n nh t tắ ấ ừ nơi ở, đi qua mỗi thành phố đúng mộ ần để giới t lthi u s n phệ ả ẩm cho khách hàng, sau đó trở về thành phố xuất phát
Như vậy, bài toán này chính là bài toán tìm chu trình Hamilton có độ dài ngắn nhất trên đồ thị đầy đủ có trọng s ố𝐺 = ( , ), trong đó là tập đỉnh với
Trang 5i=1
nhãn là các thành ph trong , là các c nh n i các thành phố 𝐶 ạ ố ố tương ứng, độdài các cạnh chính là độ dài đường đi giữa các thành phố Trong trường hợp này, tập 𝑆 ẽ s là các chu trình Hamilton trên 𝐺, ƒ là độ dài của chu trình, là Ω ràng buộc đòi hỏi chu trình là chu trình Hamilton (qua t t cấ ả các đỉnh, mỗi đỉnh đúng một lần), là t𝐶 ập thành phố được x
(trùng v i ), trùng vớ 𝐶0 ới 𝐶 ập X là vectơ độ, t dài 𝑛: 𝑥 = (𝑥1, … , 𝑥𝑛) với 𝑥i ∈ 𝐶 i ≤
𝑛, còn X *là các vectơ trong đó 𝑥i khác 𝑥jđối với mọi c p (i, j) ặ
Do đó, lời giải tối ưu của bài toán TSP là m t hoán v ộ ị 𝜋 c a tủ ập đỉnh {𝑐1, 𝑐, , 𝑐𝑛} sao cho hàm độ dài ƒ(𝜋) là nhỏ nhất, trong đó ƒ( ) đượ𝜋 c tính theo (1.1):
ƒ(𝜋) = ∑𝑛−1 𝑑(𝜋(i), (i + 1)) + 𝑑𝜋 (𝜋 𝑛 𝜋( ), (1 (1.1) )) ở đây (𝑢, 𝑣) là 𝑑kho ng cách t ả ừ 𝑢 đến 𝑣
Bài toán TSP được xem là bài toán chuẩn để kiểm định hiệu quả của các phương pháp giải bài toán TƯTH mới với thư viện d ữ liệu chu n TSPLIB ẩ(Reinelt, 1991) tại địa chỉ [77] (Dữ u trong nó s liệ ẽ được s d ng trong luử ụ ận
án này)
Bài toán này có nhiều ứng d ng th c ti n, ch ng hụ ự ễ ẳ ạn như: khoan các
lỗ trên b ng mả ạch in (Reinelt, 1994) hay định vị các thi t b X-quang (Bland ế ị
& Shallcross, 1989)… [31]
3. Cách tiếp cận.
Trên đây cho thấy các bài toán TƯTH có thể đưa về bài toán tìm kiếm trên đồ thị Các bài toán này có th ể giải đúng hoặc gần đúng Với những bài
Trang 6toán c ỡ nhỏ hoặc có dạng đặc biệt người ta có th tìm l i gi i tể ờ ả ối ưu nhờ tìm kiếm vét c n ho c b ng mạ ặ ằ ột thuật toán v i thớ ời gian đa thức, được xây dựng dựa trên các phân tích toán h c Nhi u bài toán trong sọ ề ố đó là NP-khó, nên với các bài toán c lỡ ớn, người ta ph i tìm l i gi i gả ờ ả ần đúng Các thuật toán giải gần đúng các bài toán TƯTH khó thường dựa trên 3 k thuỹ ật cơ bản: heuristic c u trúc (construction heuristic), tìm ki m c c b (local search) và ấ ế ụ ộMetaheuristic
3.1 Heuristic cấu trúc
Khi không thể tìm đượ ờ giả ố ưu ủc l i i t i c a bài toán, trong thực hành người tìm l i gi i gta ờ ả ần đúng Mộ ỹ thut k ật hay được dùng là heuristic c u ấtrúc, trong đó lời giải của bài toán TƯTH được xây d ng theo cách mự ở rộng tuần t T thành ph n khự ừ ầ ởi tạo trong t p ậ 𝐶0 ở mục 1.1, từng bước mở rộngkhông quay lui, bằng cách thêm vào các thành phần mới theo phương thức ngẫu nhiên hay tất định dựa trên các quy tắc heuristic đã chọn Các quy tắcheuristic này thường được xây dựng dựa trên các kết quả phân tích toán học hoặc kinh nghiệm Phương pháp heuristic cấu trúc tham ăn sau đây cho ta hình dung được cách tiếp cận này (Hình 1.1)
Trang 7Trong đó GreedyComponent( ) 𝑠𝑝 có nghĩa là chọn thành phần b ổsung vào 𝑠𝑝 theo quy t c heuristic có ắ đã Ký hiệu 𝑠𝑝 ^ 𝑐 là kết quả phép toán thêm thành phần 𝑐 vào 𝑠𝑝
Dễ dàng hình dung phương pháp này khi áp dụng thuật toán cho bài
toán TSP với đồ thị đầy đủ và sử dụng quy tắc heuristic láng giềng gần nhất
để chọn đỉnh thêm vào (tức là chọn đỉnh gần nhất chưa đi qua để thêm vào
hành trình) Các thuật toán này có ưu điểm là tốn ít thời gian chạy nhưng nhược điểm chính là không cải tiến lời giải được
3.2 Tìm kiếm cục bộ (local search).
Kỹ thuật tìm ki m c c b hay còn g i là tìm kiế ụ ộ ọ ếm địa phương, thực hiện b ng cách bằ ắt đầu từ một phương án chấp nhận được, lặp lại bước cải
tiế ờn l i gi i nhờ các thay đổả i cục bộ Đểthực hi n kệ ỹthuật này, ta c n xác ầđịnh được cấu trúc lân cận của mỗi phương án (lời giải) đang xét, tức là những phương án chấp nhận được, gần với nó nhất, nhờ thay đổi một số thành phần Cách thường dùng là lân cận 𝑘-thay đổi, tức là lân cận bao gồm các phương án chấp nhận được khác với phương án đang xét nhờ thay đổi nhi u nhề ất 𝑘 thành phần
Ví d Lân c n 2-ụ ậ thay đổi của một lời giải 𝑠 trong bài toán TSP bao gồm t t c các l i giấ ả ờ ải 𝑠 có th ể nhận đượ ừ 𝑠 bc t ằng cách đổi hai c nh Hình ạ1.2 ch ra mỉ ột ví d một lời gi i nhụ ả ận được bằng cách thay hai c nh (2,3), ạ(1,6) b ng hai cằ ạnh (1,3), (2,6)
Việc c i tiả ến trong các bướ ặp thườc l ng chọn theo phương pháp leo
đồ ựi d a theo hai chi n lược: Chiế ến lược tốt nh t và chiấ ến lượ ốt hơn Với c tchiến lượ ốc t t nhất, người ta th c hi n ch n l i gi i t t nh t trong lân cự ệ ọ ờ ả ố ấ ận để
Trang 8làm l i gi i c i ti n Tuy nhiên, khi bài toán c l n có thờ ả ả ế ỡ ớ ể không tìm được lời gi i t t nh t do b h n ch vả ố ấ ị ạ ế ề thời gian Còn v i chiớ ến lược tốt hơn, ta chọn phương án đầu tiên trong lân c n, c i thi n ậ ả ệ được hàm mục tiêu Nhược điểm của tìm kiếm c c b ụ ộ là thường ch cho c c tr ỉ ự ị địa phương
Các kỹ thuật trên thường được k t h p, t o thành các h lai trong các ế ợ ạ ệphương pháp mô phỏng t nhiên d a trên qu n th , chự ự ầ ể ẳng hạn như thuật toán
di truy n (GA) ho c tề ặ ối ưu đàn kiến (ACO)
3.3 Metaheuristic
Phương pháp metaheuristic là một phương pháp heuristic tổng quát
được thiết kế, định hướng cho các thu t toán cậ ụ thể (bao g m cả heuristic ồcấu trúc và tìm kiếm c c bụ ộ) Như vậy, m t metaheuristic là mộ ột lược đồthu t toán t ng quát ng d ng cho các bài toán tậ ổ ứ ụ ối ưu khác nhau, với một chút sửa đổi cho phù h p v i t ng bài toán ợ ớ ừ
Memetic là một mô hình theo phương pháp metaheuristic Trong các thuật toán được thi t kế ế theo memetic, người ta t o ra nhi u th hạ ề ế ệ quần th ể
Trang 9lời gi i ch p nhả ấ ận được Trong m i qu n th c a th hỗ ầ ể ủ ế ệ tương ứng, ta ch ỉchọn ra một s l i giố ờ ải (ch ng h n l i gi i tẳ ạ ờ ả ốt nhất) để thực hi n tìm kiệ ếm cục b ộ nhằm cải thiện chất lượng Quá trình tiến hóa này cho ta tìm được lời giải t t nh t có th Hình 1.3 mô t mố ấ ể ả ột thu t toán memetic s d ng tính toán ậ ử ụtiến hóa (Evolutionary Computing - EC):
Trong ng dứ ụng thực t , các thuế ật toán ACO thường được kết hợp với tìm ki m c c b theo mô hình memetic này ế ụ ộ
Trang 10CHƯƠNG II: XÂY DỰ NG THU ẬT TOÁN ĐÀN
KIẾN
Loài ki n là loài sâu b có tính ch t xã h i, chúng s ng thành tế ọ ấ ộ ố ừng đàn, bởi vậy có sự tác động lẫn nhau, chúng thạo tìm kiếm thức ăn và hoàn thành nh ng nhi m v tữ ệ ụ ừ kiến ch huy Mỉ ột điều thú v trong tìm ki m thị ế ức
ăn của vài con kiến đặc biệt là khả năng của chúng để tìm kiếm đường đi
ngắn nh t gi a tấ ữ ổ ến và nguồn thki ức ăn Trên thự ế, điềc t u dễ ận th y có nh ấtrong suy nghĩ nhưng nhiều con ki n h u h t không nh n ra vì chúng không ế ầ ế ậdùng th ị giác để tìm kiếm những đầu mối thức ăn
T t c mấ ả ọi con kiến hầu như là mù, chúng chỉ có thể tương tác với nhau và với môi trường b ng cách s dằ ử ụng pheromone: đi đến đâu chúng xịt pheromone ra đến đấy Mỗi một con ki n tế ại m i vị trí quyết định hướng đi ỗtiếp theo d a vào nự ồng độ pheromone của các hướng T i v trí mà nạ ị ồng độpheromone xung quanh đều bằng nhau hoặc không có pheromone thì chúng
sẽ quyết định hướng đi một cách ng u nhiên C ẫ ứ như vậy thì các con ki n c ế ứ
đi theo bước chân c a nhau và t o thành mủ ạ ột đường đi (path) Ta xét trường hợp tổ kiến ở vị trí 1 và ngu n thồ ức ăn ở ị trí 2 như hình vẽ v
Trang 11Giả s t i thử ạ ời điểm ban đầu có 2 con kiến ra đi tìm thức ăn Vì ban đầu chưa
có pheromone nên chúng chọn 2 hướng đi khác nhau một cách ng u nhiên ẫ
Một hướng có đường đi đến ngu n thồ ức ăn dài hơn hướng kia Trong giai đoạn đầu các con kiến đi sau sẽ cảm nh n th y nậ ấ ồng độ pheromone c a củ ả 2 hướng là như nhau nên cũng chọn đi theo một trong 2 hướng m t cách ngộ ẫu nhiên Tuy nhiên đường đi ngắn hơn làm cho khoảng thời gian di chuy n t ể ừ
tổ đến ngu n thồ ức ăn rồi quay tr l i cở ạ ủa mỗi con kiến theo con đường đó cũng ngắn hơn và do đó mật độ di chuyển qua lại của đàn kiến tại mỗi vị trí của con đường ngắn sẽ cao hơn con đường dài Do mật độ qua l i lạ ớn hơn dẫn đến k t qu là nế ả ồng độ pheromone trên con đường ng n càng ngày càng ắcao hơn con đường dài Kết quả cuối cùng là đàn kiến ngày càng từ bỏ con đường dài và đi theo con dường ngắn Đến một lúc nào đó sẽ không còn con kiến nào đi theo con đường dài nữa mà tất cả đều đi theo con đường ngắn
Trang 12Thu t toán d a trên hoậ ự ạt động của đàn kiến có m t sộ ố biến th Dể ạng đơn giản nh t g i là AS (Ant System) Thu t toán này ch ấ ọ ậ ỉ dùng để giải quyết bài toán tìm đường mỞ ức cao hơn là thuật toán ACO (Ant Colony Optimization)
1 T ừ những con ki n trong t nhiên t i thu t toán ACO ế ự ớ ậ
Thu t toán ACO lậ ấy ý tưởng t ừ việc ki m thế ức ăn của đàn kiến ngoài thực tế để giải quyết các bài toán tối ưu tổ ợ h p Chúng dựa trên cơ sở một đàn kiến nhân tạo, chúng được tính toán tìm ki m thế ức ăn nhờ mùi l nhân ạtạo
Cấu trúc cơ bản của thuật toán ACO: trong m i thu t toán, t t c ỗ ậ ấ ả kiến
đi xây dựng cách giải quyết bài toán bằng cách xây d ng mự ột đồ thị Mỗi cạnh của đồ thị miêu t ả các bước ki n có th ế ể đi được k t h p t hai lo i thông ế ợ ừ ạtin hướng dẫn ki n di chuyế ển:
Thông tin kinh nghi m (heuristic information): gi i h n kinh nghiệ ớ ạ ệm
ưu tiên di chuyển từ nút r tới s…của cạnh ars Nó được đánh dấu bởi rs
Trang 13Thông tin này không được thay đổi bởi kiến trong su t quá trình ch y thuố ạ ật toán
Thông tin mùi l nhân t o (artificial pheromone trail information), nó ạ ạgiới hạn “nghiên cứu sự thèm muốn” của chuyển động là kiến nhân tạo và bắt chước mùi lạ thực t cế ủa đàn kiến t nhiên Thông tin này bự ị thay đổi trong su t quá trình thu t toán ch y ph ố ậ ạ ụ thuộc vào cách gi i quyả ết được tìm thấy b i nh ng con kiở ữ ến Nó được đánh dấu bởi rs
Giới thiệu các bước ảnh hưởng từ những con ki n th t vào ACO Có ế ậhai vấn đề ầ c n chú ý:
- Chúng trừu tượng hoá vài mô hình thức ăn của kiến ngoài th c t ự ế để tìm ra đường đi tìm kiếm thức ăn ngắn nhất
- Chúng bao gồm vài đặc điểm không gi ng v i tố ớ ự nhiên nhưng lại cho phép thu t toán phát tri n chậ ể ứa đựng cách giải quyế ố ớt t t t i bài toán b ịcản (ví d : s dụ ử ụng thông tin kinh nghiệm để hướng d n chuyẫ ển động của kiến)
Cách th c hoứ ạt động cơ bản của một thuật toán ACO như sau: m kiến nhân t o di chuyạ ến, đồng thời và không đồng b , qua các tr ng thái li n k ộ ạ ề ềcủa bài toán S di chuy n này theo m t t p quy tự ể ộ ậ ắc làm cơ sở t ừ những vùng thông tin có sẵn ở các thành ph n (các nút) Vùng thông tin này bao gầ ồm thông tin kinh nghiệm và thông tin mùi l ạ để hướng d n tìm ki m Qua s ẫ ế ự di chuyển trên đồ thị kiến xây dựng được cách gi i quy t Nh ng con ki n s ả ế ữ ế ẽgiải phóng mùi lạ ở mỗi lần chúng đi qua mộ ạt c nh (k t n i) trong khi xây ế ốdựng cách gi i quy t (c p nh t tả ế ậ ậ ừng bước mùi l ạ trực tuy n) M i l n nhế ỗ ầ ững con ki n sinh ra cách gi i quyế ả ết, nó được đánh giá và nó có thể ạ t o luồng mùi l là hoạ ạt động c a chủ ất lượng c a cách giủ ải quyết của ki n (c p nh t lế ậ ậ ại
Trang 14mùi l ạ trực tuy n) Thông tin này s ế ẽ hướng d n tìm ki m cho nh ng con kiẫ ế ữ ến
đi sau
Hơn thế nữa, cách thức sinh hoạt động của thuật toán ACO bao gồm thêm hai th t c, sủ ụ ự bay hơi mùi lạ (pheromone trail evaporation) và hoạt động l (ạ daemon actions) S ự bay hơi của mùi l ạ được kh i s t môi tở ự ừ rường
và nó được sử dụng như là một kĩ thuật để tránh tìm ki m b d ng l i và cho ế ị ừ ạphép ki n kh o sát vùng không gian m i Daemon actions là nh ng hoế ả ớ ữ ạt
động tối ưu như một bản sao t nhiên để th c hi n nh ng nhi m vụ t một ự ự ệ ữ ệ ừ
m c tiêu xa tụ ới vùng c a kiủ ến
2 Giới thiệu về thu t toán ậ
Các thuật toán kiến là các thuật toán dựa vào sự quan sát các bầy kiến thực Kiến là loại cá thể sống bầy đàn Chúng giao tiếp với nhau thông qua mùi mà chúng để lại trên hành trình mà chúng đi qua Mỗi kiến khi đi qua một đoạn đường sẽ để lại trên đoạn đó một chất mà chúng ta gọi là mùi Số lượng mùi sẽ tăng lên khi có nhiều kiến cùng đi qua Các con kiến khác sẽ tìm đường dựa vào mật độ mùi trên đường, mật độ mùi càng lớn thì chúng càng có xu hướng chọn Dựa vào hành vi tìm kiếm này mà đàn kíên tìm được đường đi ngắn nhất từ tổ đến nguồn thức ăn và sau đó quay trở tổ của mình Sau đây là ví dụ về luồng đi của đàn kiến thực tế
Trang 15Hình 1
a Kiến đi theo đường thẳng giữa A và E
b Khi có chướng ngại vật kiến sẽ chọn hướng đi, có hai hướng với khả năng kiến sẽ chọn là như nhau
c Trên đường ngắn hơn thì nhiều mùi (pheromone) hơn
Hình 2
Trang 16Xem hình 2a là giải thích rõ tình huống trong hình 1b
Giả sử khoảng cách DH=BH=DB qua C và =1, C là điểm nằm giữa B
và D(hình 2a) Bây giờ chúng ta xem xét điều gì xảy ra tại những khoảng thời gian rời rạc: t=0, 1, 2… Giả định rằng 30 con kiến mới đi từ A đến B,
30 con từ E đến D, mỗi kiến di chuyển với tốc độ một đơn vị thời gian và khi di chuyển kiến để tại thời điểm t một vệt pheromone với nồng độ là 1
Để đơn giản chúng ta xét lượng pheromone bay hơi hoàn toàn và liên tục trong khoảng thời gian (t+1, t+2)
Tại thời điểm t=0, thì không có vệt mùi nào trên cạnh và có 30 kiến ở
B, 30 ở D Việc lựa chọn đường đi của chúng ta ngẫu nhiên do đó, trung bình
từ mỗi nút có 15 con kiến sẽ đi đến H và 15 con sẽ đi đến C (hình 2b) Tại thời điểm t=1, 30 con kiến mới đi từ A đến B, lúc này nó sẽ chọn hướng đến C hoặc hướng đến H Tại hướng đến H có vệt mùi 15 do 15 con kiến đi từ B đến H, tại hướng đến C có vệt mùi 30 do 15 kiến đi từ B đến D
và 15 con đi từ D đến B thông qua C (hình 2c) Do đó khả năng kiến hướng đến chọn đường đến C, do đó số kiến mong muốn đi đến C sẽ gấp đôi số kiến
đi đến H (20 con đến C và 10 con đến H) Tương tự như vậy cho 30 con kiến mới đi từ D đến B
Quá trình sẽ liên tục cho đến khi tất cả kiến sẽ chọn đường đi ngắn nhất
Trên đây chúng ta mô tả hành vi tìm kiếm của bầy kiến thực.Sau đây , chúng ta sẽ tìm hiểu sâu hơn về các thuật toán kiến
Thuật toán tối ưu bầy kiến (ACO) nghiên cứu các hệ thống nhân tạo dựa vào hành vi tìm kiếm của bầy kiến thực và được sử dụng để giải quyết các vấn đề về tối ưu rời rạc.Thuật toán bầy kiến siêu tìm kiếm(ACO meta_heuristic) lần đầu tiên được Dorigo, Di Caro và Gambardella đề xuất vào năm 1999
Trang 17Metaheuristic là một tập các khái niệm về thuật toán được sử dụng để xác định các phương thức tìm kiếm thích hợp cho một tập các vấn đề khác nhau Hay nói cách khác, một siêu tìm kiếm ( meta heuristic) có thể coi là -một phương thức tìm kiếm đa năng
ACO là một meta heuristic, trong đó một tập các con kiến nhân tạo phối hợp tìm kiếm các giải pháp tốt cho các vấn đề về tối ưu rời rạc Sự phối hợp là yếu tố cối lõi của các thuật toán ACO Các con kiến nhân tạo liên lạc với nhau thông qua trung gian mà ta thường gọi là mùi
-Các thuật toán ACO được sử dụng để giải quyết các vấn đề về tối ưu
tổ hợp tĩnh và động Các vấn đề tĩnh là các vấn đề mà ở đó các đặc tính của vấn đề là không thay đổi trong suốt quá trình giải quyết vấn đề Còn các vấn
đề động thì ngược lại là một hàm các tham số mà giá trị của nó là động hay thay đổi trong quá trình giải quyết vấn đề, ví dụ bài toán người đưa thư là một vấn đề dynamic problem
Hệ thống ACO lần đầu tiên được Marco Dorigo giới thiệu trong luận văn của mình vào năm 1992, và được gọi là Hệ thống kiến (Ant System, hay AS) AS là kết quả của việc nghiê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 được hướng dẫn ở Politecnico di milano với
sự hợp tác của Alberto Colorni và Vittorio Maniezzo AS ban đầu được áp dụng cho bài toán người du lịch (TSP) và QAP
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 (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 giải thuật 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 (Ant
Trang 18Colony System, 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ả mỹ mãn 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 địa phưong Vào năm 1995, L.M Gambardella và M Dorigo đã đề xuất hệ thống Ant-Q, là một cách tiếp cận học tăng cường cho cho bài toán TSP.Và nó được áp dụng trong Học Máy
Tiếp đó, vào năm 1996, trong bài báo công nghệ của mình tại Bruxelles M Dorigo và L.M Gambardella đã công bố hệ thống Ant Conoly System Đây là hệ thống đề cập đến cách học phối hợp áp dụng cho bài toán TSP
Cũng trong năm 1996 này, T Stützle và H H Hoos đã đề xuất hệt thống Max-Min Ant System Đây là một hệ thống cải tiến hệ thống AntSystem ban đầu và được đánh giá là hệ thống tính toán trong tương lai 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
Trang 19Trên đây là sơ lược chung về các thuật toán kiến, mục tiếp theo sẽ mô
tả về sơ đồ chung của thuật toán kiến
3 Sơ đồ chung thuật toán đàn kiến
tự định nghĩa hoặc là tất cả đàn kiến đều đi theo một đường (tức là đường đi ngắn nhất)
ConstrucSolutions() là hàm xây dựng một giải pháp có thể theo phương pháp siêu tìm kiếm(meta heuristic), với bài toán người đưa thư thì đó là hàm -xây dựng chu trình cho mỗi kiến
UpdateTrails() là hàm cập nhật mùi cho hành trình mà kiến đã đi qua LocalSearch() là hàm tìm kiếm địa phương, giúp tìm ra tối ưu cục bộ
Trang 20Hình 3 Sơ đồ chung của thuật toán bầy kiến
4 Các bước giải quyết bài toán đàn kiến
Từ thuật toán trên ta có thể rút ra các bước giải quyết một bài toán ứng dụng với thuật toán đàn kiến:
Trang 21Bước 1: Thể hiện bài toán trong khung c a t p các thành ph n và s ủ ậ ầ ựchuyển đổi ho c b i mặ ở ột đồ thị được đánh dấu bởi kiến đề xây dựng cách giải quyết
Bước 2: Định nghĩa thích hợp cho mùi lạ rs là một xu hướng quyết định Đó là một bước ch yủ ếu trong vi c hình thanhg thu t toán ACO và xác ệ ậđịnh rõ mùi lạ không là một nhiệm v tụ ầm thường và nó tính toán yêu cầu bên trong của bài toán sau đáp án
Bước 3: Định nghĩa thích hợp kinh nghiệm cho mỗi quyết định để
m t con ki n có th xây d ng cách gi i quy t, ví dộ ế ể ự ả ế ụ: định nghĩa thông tin kinh nghiệm rs k t h p m i thành ph n ho c trế ợ ỗ ầ ặ ạng thái chuyển đổi Thông tin kinh nghi m ch y u cho vi c tìm ki m t t n u thu t toán tìm ki m vùng ệ ủ ế ệ ế ố ế ậ ếkhông có s n ho c không th ng d ng ẵ ặ ể ứ ụ
Bước 4: N u th c hiế ự ện được, t o ra m t vùng thu t toán tìm ki m hiạ ộ ậ ế ệu quả cho bài toán sau đáp án bởi vì kết qu c a nhiả ủ ều ứng d ng ACO cho bài ụtoán t h p tổ ợ ối ưu NP-hard thể hiện qua s tìm ki m t t nhự ế ố ất đạt được khi ACO có vùng l c quan ạ
Bước 5: L a ch n m t thu t toán ACO và ự ọ ộ ậ ứng d ng nó vào nh ng bài ụ ữtoán c n gi i quyầ ả ết
Bước 6: Các tham s phù h p c a thu t toán ACO Mố ợ ủ ậ ột điểm bắt đầu tốt cho tham s phù h p là s dố ợ ử ụng cài đặt tham s tìm ki m t t khi ố để ế ố ứng dụng thuật toán ACO vào bài toán đơn giản ho c các bài toán khác nhau ặ
M t vộ ấn đề khác chi ph i th i gian trong nhi m phù hố ờ ệ ợp là để ử ụ s d ng th ủtục động cho tham s phù hố ợp
Nó nên xoá các bước tiếp có thể chỉ đưa ra một hướng dẫn sử dụng thu t toán ACO Thêm n a, vi c s d ng là s k t h p các quá trình ậ ữ ệ ử ụ ự ế ợ ở đó với
Trang 22vài bài toán sâu hơn và hoạt động của thuật toán, vài lựa chọn ban đầu cần phải s a l i Cuử ạ ối cùng, chúng ta mu n trên th c tố ự ế, điều quan trọng nhất của các bước là đầu tiên ph i khả ớp bởi vì l a ch n tự ọ ồi ở trạng thái này tính không thể tính v i mớ ột tham s g c phù h p tố ố ợ ốt.
Trang 235 Các sơ đồ thuật toán khác phát tri n trên mô hình ACO ể
Nhiều thuật toán đã được đưa ra dựa trên mô hình thuật toán metaheuristic ACO Trong các mô hình đưa ra để giải quyết các bài toán tổ hợp tối ưu NP-khó sau đây xin trình bày chi tiết về 5 mô hình Các mô hình này là phát triển dựa trên mô hình thuật toán ACO cụ thể trình bày ở phần trên Theo các nghiên cứu cho thấy khi sử dụng thuật toán bầy kiến nói chung các thông tin pheromone và heuristic có thể áp dụng cho các nút hoặc cạnh nối Trong các thuật toán đưa ra sau đây thì thông tin pheromone và heuristic chỉ gắn với các cạnh mà thôi
5.1 Thuật toán Ant System (AS)
Được phát triển bởi Dorigo, Maniezzo và Colorni năm 1991, là thuật toán ACO đầu tiên Ban đầu có 3 biến thể khác nhau là: AS-Density, AS-Quantity và AS-Cycle khác nhau bởi cách thức cập nhật thông tin Pheromone
Trang 24 AS-Cycle: Thông tin pheromone sẽ được cập nhật khi lời giải đã hoàn thành (online delayed pheromone update) Đây là mô hình cho kết quả tốt nhất và được coi như là thuật toán AS
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 đỉnh đượ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 đó:
S l a ch n c a con khi quyự ự ọ ủ ết định đi từ đỉnh i qua đỉnh j và được tính theo công thức:
Trang 25 Quy t c cắ ập nh t 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 cập nhật 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 độ ế v t mùi ij và thông s heuristic trên cố ij ạnh đó Ban đầu nồng độ mùi trên m i c nh (i,j) ỗ ạ được kh i tở ạo một h ng s c, ằ ốhoặc được xác định theo công thức:
Việc c p nhậ ập pherpmone đượ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 p 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
Trong đó: deta ij là lượng pheromone mà con kiến k đặt lên c nh mà ạ
nó đã đi qua và được tính như sau:
Trang 26V i: Cớ k 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 đi mà kiến đã đi qua
5.2 Thuật toán Ant Colony System (ACS)
Phát triển từ thuật toán AS
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 q là mo ột h ng sằ ố cho trước (0<q <1) 0
Chọn ng u nhiên m t giá tr q trong kho ng [0,1] ẫ ộ ị ả
N u q<q ế 0kiế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>q ế 0kiế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 xuộ ậ ổ ất được xác định theo công th c sau: ứ
Quy t c cắ ập nh t thông tin mùi ậ