NGHIÊN CỨU, CÀI ĐẶT THUẬT TOÁN BẦY KIẾN DÙNG BOOST GIẢI BÀI TOÁN TẬP HÀNH TRÌNH NHỎ NHẤT
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Sinh viên thực hiện : Trần Đình Quang
Lớp CNTT1-K54 Giáo viên hướng dẫn : PGS.TS
Huỳnh Quyết Thắng
HÀ NỘI 12-2013
Trang 2PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin sinh viên
Họ và tên sinh viên: Trần Đình Quang
Điện thoại liên lạc: 01656120962 Email: dinhquangcnttbkhn@gmail.com
Lớp: CNTT1-K54 Hệ đào tạo: Kỹ sư công nghệ thông tin
Đồ án tốt nghiệp được thực hiện tại: Viện công nghệ thông tin & Truyền thông- Trường đại học Bách Khoa Hà Nội
Thời gian làm đồ án: Từ 9/2013 đến 12/2013
2 Mục đích nội dung của đồ án tốt nghiệp
Mục đích của đồ án này là nghiên cứu giải thuật bầy kiến tối ưu, một số biến thể của giải thuật bầy kiến tối ưu, đề xuất và ứng dụng giải thuật bầy kiến tối ưu để giảiquyết bài toán tập hành trình nhỏ nhất, nghiên cứu thư viện boost và sử dụng thư viện boost hỗ trợ cài đặt thuật toán
3 Các nhiệm vụ cụ thể của ĐATN
- Trình bày về giải thuật tối ưu bầy kiến, một số biến thể thông dụng của giải thuật bầy kiến tối ưu và các vấn đề xung quanh giải thuật tối bầy kiến tối ưu
- Trình bày về thư viện boost, giới thiệu, cài đặt và sử dụng thư viện boost
- Đề xuất bài toán tập hành trình nhỏ nhất, trình bày ý tưởng và mã giải để giải quyết bài toán tập hành trình nhỏ nhất
- Đánh giá thuật toán đưa ra về mặt lý thuyết và cài đặt thuật toán
- Mô tả dữ liệu thực nghiệm, đánh giá kết quả đạt được
- Hạn chế và hướng phát triển của đề tài
4 Lời cam đoan của sinh viên
Tôi: Trần Đình Quang – cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS Huỳnh Quyết Thắng
Các kết quả trong đồ án là trung thực, không sao chép toàn văn của bất kỳ một công trình nào khác
Hà nội, ngày tháng năm 2013
Hà nội, ngày tháng năm 2013
Giáo viên hướng dẫn
PGS.TS Huỳnh Quyết Thắng
Trang 3LỜI CẢM ƠN
Để có ngày hoàn thành đồ án tốt nghiệp này, lời đầu tiên em xin chân thành cảm ơn cácthầy, cô và cán bộ giảng dạy tại trường Đại học Bách khoa Hà Nội, các thầy cô trong ViệnCông nghệ thông tin & truyền thông và bộ môn Công nghệ phần mềm đã tận tâm dạy dỗchúng em trong suốt những năm học vừa qua Chính nhờ công lao giảng dạy, chỉ bảo tậntình của các thầy các cô mà chúng em, những sinh viên khoa Công nghệ thông tin mới cóđược những kiến thức chuyên ngành về công nghệ thông tin để có thể vững bước thực hiệntiếp chặng đường học tập, vận dụng và sáng tạo ra những sản phẩm công nghệ thông tinhữu ích góp phần phục vụ các lĩnh vực khác nhau của cuộc sống
Em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, PGS.TS Huỳnh Quyết Thắng, người
đã tận tình chỉ bảo, giúp đỡ, tạo điều kiện cho em trong suốt quá trình làm đồ án tốt nghiệp,đồng thời cho em những lời khuyên quý báu để hoàn thành đồ án này
Em xin chân thành cảm ơn sâu sắc tới Thầy giáo Ths.Ban Hà Bằng đã cùng em nghiên
cứu và hướng dẫn em thực hiện đồ án
Tôi xin giửi lời cảm ơn tới các Anh/Chị các khóa trên và các bạn K54 lớp CNTT1 đãchỉ dẫn cũng như cho những ý kiến quí báu cho đồ án này
Cuối cùng con xin giửi tới Ông, Bà, Cha, Mẹ, cùng toàn thể Gia đình lòng biết ơn vàtình cảm yêu thương
Trang 4TÓM TẮT ĐỒ ÁN
Đồ án này được thực hiện nhằm giải quyết bài toán tối ưu “ Tập hành trình nhỏ nhất”
Bài toán tập hành trình nhỏ nhất có nhiều ý nghĩa trong thực tế, đặc biệt là sắp xếp cáctuyến xe bus cho các thành phố lớn, hiện đại Trong đồ án này, hướng giải quyết bài toán làgần đúng, áp dụng thuật toán bầy kiến tối ưu song song để giải quyết vấn đề Để cài đặtthuật toán, trong đồ án này đã sử dụng thư viện boost cho mô hình lập trình song song Cáckết quả đạt được của đồ án mang tính tương đối, do chưa có các kết quả tối ưu thực sự để
so sánh Tuy nhiên, đồ án đã đạt được mục tiêu về các giải pháp cho bài toán tối ưu, cáckết quả thực nghiệm được đưa ra là khả thi trong thực tế mà vẫn đảm bảo vượt trội về mặtthời gian so với các cách tiếp cận khác Đây là lần đầu tiên nghiên cứu về bài toán tập hànhtrình nhỏ nhất do vậy những kết quả mà đồ án mang lại sẽ là cơ sở và bàn đạp cho các lầnnghiên cứu, cải tiến tiếp theo những hướng phát triển mà đồ án nêu ra
ABSTRACT
This thesis aimed to solve the optimization problem in "Set Itineraty Mininum" Thisproblem have many application in the real life, especially, bus arrangement in some big,modern cities In this thesis, without in need of the precise result, i decided to choose theway applying the ant colony parallel optimization algorithm as a solution In order to runthis algorithm, i used the boost library for parallel programming model Because of lackingthe result from some real experiments to compare, some results I presented here are justrelative ones However, this thesis still got the goal for optimized solution, someexperimental results displayed is feasible and have a remarkable runtime in comparisonwith the other approach This is the first time, I have a research on set itinerarys problem,
so I believe that is a fundamental knowledge for the next research and it can be improved
by some direction i proposed !
MỤC LỤC
Trang 5PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
LỜI CẢM ƠN 3
TÓM TẮT ĐỒ ÁN 4
MỤC LỤC 5
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ 7
MỞ ĐẦU 8
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ 9
1.1 Giải thuật bầy kiến tối ưu 9
1.1.1 Mô hình hóa hành vi của kiến trong thực tế 12
1.1.5 Đánh giá ảnh hưởng các tham số 28
1.2 Công cụ BOOTS 31
1.2.1 Giới thiệu 31
1.2.2 Cài đặt thư viện boost cho visual studio ultimate 2012 31
1.2.3 Sử dụng thư viện boost 32
1.3 Đánh giá khả năng ứng dụng trong các bài toán thực tế 32
CHƯƠNG 2 BÀI TOÁN TẬP HÀNH TRÌNH NHỎ NHẤT 34
2.1 Giới thiệu bài toán tập hành trình nhỏ nhất 34
2.2 Một số hướng tiếp cận giải bài toán tối ưu 37
2.3 Đề xuất ý tưởng sử dụng thuật toán bầy kiến tối ưu giải bài toán tập hành trình nhỏ nhất 38
2.4 Mã giải cho thuật toán 41
2.5 Đánh giá thuật toán đề xuất về mặt lý thuyết 44
CHƯƠNG 3 CÀI ĐẶT VÀ THỰC NGHIỆM THUẬT TOÁN 46
3.1 Cài đặt thuật toán 46
3.2 Mô tả dữ liệu thực nghiệm 49
3.3 Kết quả thực nghiệm, phân tích và đánh giá 51
KẾT LUẬN VÀ KIẾN NGHỊ 58
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 61
DANH MỤC CÁC HÌNH VẼ Hình 1 Hai nhánh có cùng độ dài……… 14
Trang 6Hình 2 Kết quả thí nghiệm với hai nhánh có cùng độ dài……….15
Hình 3 Hai nhánh có độ dài khác nhau r =2……… 16
Hình 4 Kết quả thí nghiệm với 2 nhánh có độ dài khác nhau r =2 ………16
Hình 5 Minh họa một bài toán tìm tập hành trình nhỏ nhất ……… 35
Hình 6 Minh họa một lời giải của bài toán với chi phí nhỏ nhất…… …….35
Hình 7 Mô hình song song cho thuật toán đề xuất ………40
Hình 8 Đồ thị mô tả biến thiên % sai số theo 𝞪 ………52
Hình 9 Đồ thị mô tả biến thiên % sai số theo 𝞫 ………53
Hình 10 Đồ thị mô tả biến thiên % sai số theo 𝜌 ……… 54
Hình 11 Đồ thị mô tả biến thiên % sai số theo Δ ……… 55
Hình 12 Đồ thị mô tả sự biến thiên của Cost best theo ¿S a∨¿……… 56
Hình 13 Đồ thị mô tả sự biến thiên của Time theo ¿S a∨¿……… 57
DANH MỤC CÁC BẢNG Bảng 1 Các thủ tục xây dựng trong thuật toán……… 40
Trang 7Bảng 2 Thống kê dữ liệu trong trường hợp 𝞪 thay đổi………52
Bảng 3 Thống kê dữ liệu trong trường hợp 𝞫 thay đổi………53Bảng 4 Thống kê dữ liệu trong trường hợp 𝜌 thay đổi………54Bảng 5 Thống kê dữ liệu trong trường hợp Δ thay đổi………55
Bảng 6 Kết quả chạy thuật toán với 5 bộ dữ liệu ngẫu nhiên ……… 56Bảng 7 Kết quả chạy thuật toán với bộ dữ liệu thực nghiệm Budapest ……… 57
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Chữ Viết
tắt
Trang 8TSP Travelling Salesman Problem Bài toán người du lịch đưa hàng
Tardiness Scheduling Problem
Bài toán lập lịch sản xuất trên một máy đơn
Trang 9phức tạp và nhiều khi không thể có được các giải pháp tối ưu do bản thân các bàitoán tối ưu trong thực tế đại đa số là các bài toán thuộc lớp bài toán NP-khó Bàitoán tập hành trình nhỏ nhất là một bài toán tối ưu rời rạc như thế Bài toán tập hànhtrình nhỏ nhất có nhiều ứng dụng trong thực tế như là xây dựng các tuyến xe buscho một thành phố lớn sao cho chi phí về thời gian, chi phí về tiền bạc, chi phí vềcon người là nhỏ nhất nhưng vẫn mang lại được các hiệu quả về khả năng phục vụcao nhất cũng như đảm bảo được các tiêu chí về các tuyến bus, xây dựng các ứngdụng trong mạng về truyền các gói tin theo các đường mà đảm bảo gói tin đi đến tất
cả các node mạng và đồng thời chi phí về truyền thông là bé nhất
Với nhiều ứng dụng trong thực tế như thế, việc đưa ra giải pháp cho bài toán tậphành trình nhỏ nhất là cần thiết Tuy nhiên, trong hướng tiếp cận giải đúng khi kíchthước bài toán lớn là việc bùng nổ tổ hợp không gian tìm kiếm của bài toán nên thờigian để đưa ra giải pháp là không chấp nhận được Do đó, một hướng tiếp cận gầnđúng được đưa ra xem xét, nghiên cứu Một trong những phương pháp theo hướngtiếp cận gần đúng cho các bài toán tối ưu rời rạc nổi lên trong mấy năm trở lại đây
là thuật toán bầy kiến tối ưu Thuật toán bầy kiến tối ưu được đánh giá là có nhiều
ưu điểm trong việc giải quyết các bài toán tối ưu rời rạc về các phương diện như dễcài đặt, thời gian xử lý là chấp nhận được và các kết quả tìm được không sai khácnhiều với các kết quả tối ưu đã tìm được trước đó và đã có nhiều công trình nghiêncứu áp dụng thuật toán bầy kiến tối ưu thành công cho một lớp bài toán tối ưu rờirạc như bài toán người du lịch đưa hàng (TSP) Từ đó thông qua phân tích bài toánvới các bài toán tối ưu đã được áp dụng thành công trước đó đã quyết định áp dụnggiải thuật bầy kiến tối ưu để giải quyết bài toán tập hành trình nhỏ nhất, thêm vào
đó sẽ có một số cải tiến như sử dụng mô hình song song để giảm thời gian xử lý củathuật toán
Trong đồ án này, em xin trình bày về thuật toán bầy kiến tối ưu và áp dụng thuậttoán bầy kiến tối ưu vào giải bài toán tập hành trình nhỏ nhất, trong phần cài đặttheo mô hình song song sẽ được hỗ trợ bởi thư viện boost Cụ thể và chi tiết sẽ đượctrình bày trong các phần tiếp theo sau đây
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ
1.1 Giải thuật bầy kiến tối ưu
và điều đó giúp cho các loài vật tồn tại được trong thế giới Không những thế, việc
Trang 10sống theo bầy đàn và có sự trao đổi thông tin trong các loài vât giúp cho các loài vật
đó có thể kiếm được các nguồn thức ăn mới và tiêu hao năng lượng ít hơn Loàikiến là một trong những loài vật như vậy Không những thế, loài kiến còn được xem
là một trong những loài vật thông minh về tìm kiếm các nguồn thức ăn mới mộtcách nhanh nhất Loài kiến với những biểu hiện hành vi mang tính xã hội bầy đànrất phức tạp và điều đó đã thu hút sự chú ý của con người từ rất lâu Có lẽ một trongcác hành động đáng chú ý nhất của chúng đó là luôn đi theo hàng ngũ, di chuyểntheo từng đàn Chắc hẳn ai trong chúng ta thời niên thiếu cũng đã từng giẫm chânlên đàn kiến đang đi hoặc đặt vài viên đá, gạch để chặn đường đi của chúng hoặcđơn giản chỉ là muốn xem chúng phản ứng như thế nào trước chướng ngại vật.Quan sát đàn kiến di chuyển một cách thống nhất và đều đặn trên một quãng đườngdài chúng ta cũng thường băn khoăn tự hỏi không biết những con đường này dẫn tớiđâu hoặc đơn giản hơn là làm thế nào mà chúng có thể đi thẳng hàng và theo từngđàn một cách thống nhất như vậy Khi chúng ta lớn lên, chúng ta ít thắc mắc dần đi
và các những thắc mắc như vậy thường rơi vào quên lãng, ít được chúng ta chú ýđến nữa Tuy nhiên ở các trường Đại Học lớn trên thế giới, có rất nhiều những nhànghiên cứu, những nhà sinh vật học vẫn đang tìm tòi và nghiên cứu chi tiết hơnnhững biểu hiện hành vi của loài kiến
Một trong những mô hình hành vi đáng ngạc nhiên nhất của loài kiến mà các nhànghiên cứu đã phát hiện ra đó là khả năng của một số loài kiến trong việc tìm đường
đi ngắn nhất Các nhà sinh vật học đã chứng minh bằng thực nghiệm rằng điều này
là hoàn toàn có thực dựa trên việc sử dụng giao tiếp bằng mùi (pheromone) giữa cáccác con kiến trong đàn, một chất lỏng được các con kiến tiết ra và dùng để đánh hơi
và đánh dấu giữa các con kiến Và chính đặc tính này của kiến đã khơi nguồn ýtưởng cho các nhà khoa học máy tính phát triển các thuật toán tìm lời giải gần đúngcho của các bài toán tối ưu, những bài toán mà để tìm ra lời giải đúng với kíchthước bài toán lớn là điều không thể chấp nhận về mặt thời gian
Những kết quả đầu tiên của những nghiên cứu này đã xuất hiện rất sớm từ nhữngnăm 90 của thế kỷ trước, khi đó M.Dorigo và các đồng nghiệp đã giới thiệu về thuậttoán kiến như là một giải pháp metaheuritics cho các bài toán tối ưu Mặc dù kếtquả của việc nghiên cứu khi đó chưa được đánh giá cao lắm nhưng điều quan trọng
là đã cho thấy hoàn toàn có thể áp dụng mô hình đàn kiến vào trong các bài toán tối
ưu Kể từ đó, số lượng nghiên cứu về hành vi của đàn kiến ngày càng tăng và giảithuật bầy kiến tối ưu (Ant Colony Optimization - ACO) ra đời là một trong các kếtquả của những nghiên cứu đó
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
Trang 11rờ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 đượcDorigo, Di Caro và Gambardella đề xuất vào năm 1999.
Metaheuristic là một tập các khái niệm về thuật toán được sử dụng để xác định cácphươ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áchkhá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 đană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ìmkiế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õicủ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 trunggian 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ôngthay đổ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ảiquyế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ìnhvà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ạihộ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ảithuật kiến
Kể từ năm 1995 Dorigo, Gambardella và Stützle đã phát triển các sơ đồ AS khácnhau Dorigo và Gambardella đã đề xuất Hệ thống bầy kiến (Ant Colony 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ếtquả mỹ mãn Dorigo, Gambardella and Stützle cũng đề xuất những phiên bản laicủ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 trongHọ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
Trang 12Cũ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ốngAntNet 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 đượccô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ếnmới là Hyper Cube – ACO Phiên bản mở rộng tiếp đó đã được công bố vào năm2004
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ậttoá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 Trong thực tế thực nghiệm, giải thuật ACO là một trong những thuật toán thànhcông và được biết đến rộng rãi trong số các thuật toán mô phỏng hành vi Thànhcông của các thuật toán này được minh chứng rõ nhất qua một loạt các bài toánđược giải dựa trên thuật toán này và hơn nữa nhiều kết quả thu được còn nằm trongtop các kết quả tối ưu Trong phần này sẽ mô tả về cách thức áp dụng các cơ chếcủa kiến thật để giải quyết các bài toán tối ưu rời rạc
1.1.1 Mô hình hóa hành vi của kiến trong thực tế
Bầy kiến, hay nói chính xác hơn là xã hội của loài kiến, là một loạt các hệ thốngphân tán thể hiện một hình thái cấu trúc tổ chức xã hội rất cao mặc dù mỗi con kiếnchỉ là một sinh vật nhỏ bé và đơn giản Chính nhờ hệ thống tổ chức như vậy nênbầy kiến có thể thực hiện được nhiều công việc phức tạp mà một cá thể bình thườngkhông thể làm được Các nghiên cứu hiện nay về thuật toán mô phỏng mô hình kiếnđều dựa vào sự quan sát các đàn kiến trên thực tế và người ta đã sử dụng các kết quảnày để thiết kế các thuật toán cho một số bài toán tối ưu
Ý tưởng chính của các thuật toán này đều nằm ở các cơ chế tự tổ chức( organizing ) cho phép những hành vi của con kiến thật được mô phỏng chính xáctrên các con kiến nhân tạo nhằm xây dựng và đưa ra lời giải tối ưu cho các bài toántính toán Trong các nghiên cứu hiện nay thì có một vài hành vi của bầy kiến đãđược sử dụng để làm ý tưởng cốt lõi cho một số thuật toán, ví dụ như tìm thức ăn,phân chia lao động, phân loại trứng hay hợp tác vận chuyển Trong tất cả các ví dụ
self-trên thì các con kiến đều điều hướng hoạt động của mình qua mùi, một cơ chế giao
tiếp gián tiếp thông qua việc tác động lên môi trường Ví dụ một con kiến đi tìmthức ăn sẽ tiết ra hóa chất trên mặt đất để nâng cao xác suất các con kiến khác cũng
sẽ đi theo lối đó Các nhà sinh vật học đã chỉ ra rằng các loài côn trùng với hình thái
Trang 13tổ chức xã hội cao cũng chỉ sử dụng các mô hình giao tiếp đơn giản là mùi mà thôi.
Và đó cũng chính là ý tưởng cơ bản đằng sau mọi thuật toán mô phỏng đàn kiến, sửdụng mùi nhân tạo nhằm điều hướng cho các con kiến nhân tạo thực hiện hành vigiống với kiến thật
Các giác quan để cảm nhận hình ảnh của rất nhiều loài kiến mới chỉ ở những bướcđầu phát triển và thậm chí là có những loài kiến có thể nói là mù hoàn toàn Trênthực tế, điểm cốt lõi trong các nghiên cứu ban đầu về hành vi của kiến đó là hầu hết
sự giao tiếp giữa các cá thể với nhau hay giữa các cá thể với môi trường thì đều dựa
trên một hóa chất được tiết ra từ kiến Các hóa chất này được gọi chung là mùi
(pheromone)
Điều này cho thấy sự giao tiếp của kiến khác với loài người cũng như các loàiđộng vật cao cấp khác mà trong đó thính giác và thị giác đóng vai trò chính Đặc
biệt hơn, đối với loài kiến thì vết mùi (dấu vết tạo ra từ các chất được tiết ra của
kiến) còn đóng vai trò cực kỳ quan trọng trong đời sống xã hội của kiến Ví dụ vớimột vài loài kiến thì chúng sử dụng mùi để đánh dấu đường đi, có thể là đường đi từ
tổ cho tới nguồn thức ăn Bằng cách cảm nhận vết mùi được để lại, các con kiếnkhác có thể lần theo các con kiến trước đó và đi tới được chỗ có thức ăn Chính nhờ
cơ chế tiết mùi và lần theo mùi này đã truyền cảm hứng cho các nhà nghiên cứu đưa
ra các thuật toán bầy kiến tối ưu( còn được gọi là ACO) Thuật toán ACO thuộc vềlớp thuật toán metaheuristics, đó là một thuật toán gần đúng để có được các giảipháp đủ tốt cho các bài toán tối ưu trong một kinh phí và thời gian cho phép
Hành vi kiếm mồi của loài kiến là dựa trên giao tiếp gián tiếp qua mùi Trong quátrình đi tìm kiếm nguồn thức ăn kiến tiết ra mùi trên mặt đất và hình thành nên các
vết mùi Kiến có thể đánh hơi được mùi và chúng sẽ có xu hướng chọn các con
đường được đánh dấu bởi nồng độ mùi cao hơn là chọn các con đường khác Hành
vi tiết mùi và lần theo vết mùi của kiến đã được nghiên cứu và tiến hành thí nghiệmbởi một số nhà nghiên cứu Sau đây là một thí nghiệm nổi tiếng được thiết kế vàtiến hành bởi Deneubourg cùng các đồng sự (Deneubourg, Aron, Goss, & Pasteels,
1990, Goss, 1989) cho thấy sự thông minh trong việc tìm đường đi của kiến thật,gọi là “Chiếc cầu đôi “ Trong thí nghiệm này, kiến thuộc họ kiến Argentina
Deneubourg đã sử dụng một cây cầu có 2 nhánh tạo 2 đường đi từ tổ kiến tới chỗthức ăn Mỗi con kiến sẽ đi từ tổ tới chỗ thức ăn trên một trong 2 con đường này.Hai nhánh của cây cầu hay là 2 đường đi từ tổ kiến tới chỗ thức ăn gọi là nhánh dài
độ dài của nhánh dài và nhánh ngắn, đặt tỷ lệ r =l l/l s Trong thí nghiệm,
Deneubourg đã thay đổi tỷ lệ r nhiều lần để quan sát hành vi của kiến.
Trong thí nghiệm đầu tiên, Deneubourg đã sử dụng 2 nhánh có độ dài bằng nhau,
trong 2 nhánh để đi tới nguồn thức ăn sẽ được ghi lại Kết quả là( xem hình 2) mặc
Trang 14dù ban đầu các con kiến được tự do chọn ngẫu nhiên hướng đi thì cuối cùng tất cảcác con kiến đều chỉ đi qua duy nhất 1 nhánh mà thôi Khi thử nghiệm bắt đầu thìkhông có vết mùi nào trên cả hai nhánh Bởi vậy các con kiến sẽ không có ưu tiênnào khi chọn đường và vì thế xác suất chọn 1 trong 2 nhánh là như nhau Điều nàyđược lý giải là do dao động ngẫu nhiên của xác suất (gần với 50% chứ không hẳn là50%) nên sẽ xảy ra trường hợp 1 nhánh có nhiều kiến đi qua hơn (có khi chỉ nhiềuhơn một vài con) Ta biết rằng kiến tiết mùi trên đường đi nên khi có sự chênh lệch
về số lượng thì sẽ dẫn đến một nhánh có nồng độ mùi lớn hơn Nồng độ mùi lớnhơn cũng có nghĩa là xác suất kiến chọn nhánh đó cũng sẽ lớn hơn Và cứ như vậy
sẽ dẫn tới việc cuối cùng tất cả các con kiến đều chọn chung 1 nhánh để di chuyển
Có thể thấy đây chính là ví dụ của giao tiếp qua mùi, các con kiến tự điều hướnghoạt động của mình nhờ tận dụng hình thức giao tiếp gián tiếp thông qua việc tácđộng lên môi trường ( tiết ra hóa chất lên đường đi)
Hình 1 Hai nhánh cầu có cùng độ dài r =1
Trang 15Hình 2 Kết quả thí nghiệm với 2 nhánh có cùng độ dài
độ dài gấp 2 lần độ dài nhánh còn lại ( Hình 3) Ở lần thí nghiệm này thì ở hầu hếtcác lần thử, sau 1 khoảng thời gian thì tất cả các con kiến đều chọn di chuyển trênnhánh ngắn hơn Cũng giống như trong thí nghiệm đầu tiên, các con kiến đều rời tổ
đi tới ngã ba đường và tại đây chúng sẽ phải chọn đi theo 1 trong 2 nhánh Bởi vìban đầu thì 2 nhánh đều giống nhau nên kiến sẽ chọn ngẫu nhiên 1 trong 2 nhánh
Vì vậy mà chúng ta sẽ dự đoán rằng trung bình thì một nửa số kiến sẽ chọn nhánhngắn và 1 nửa còn lại sẽ chọn nhánh dài Thực tế lại không phải như vậy, những conkiến chọn nhánh ngắn sẽ tới đích (nguồn thức ăn) trước tiên và sẽ ngay lập tức lênđường quay về tổ Và khi quay trở lại tới ngã ba thì kiến sẽ lại phải chọn giữa nhánh
dài và nhánh ngắn Tuy nhiên đến lúc này thì nồng độ mùi (pheromone) trên nhánh
mà kiến đã đi qua (nhánh ngắn) sẽ cao hơn nhánh còn lại nên kiến sẽ có khuynh
hướng chọn nhánh ngắn hơn để đi Và chính bởi vì như vậy nên lượng mùi
(pheromone) tích tụ trên nhánh ngắn lại càng đậm đặc hơn với tốc độ nhanh hơn vàchính điều này cuối cùng đã dẫn tới việc tất cả các con kiến đều sử dụng nhánhngắn hơn để đi qua ( Hình 4)
Mặc dù hầu như tất cả các con kiến đều sử dụng nhánh ngắn hơn để đi qua nhưngvẫn có một lượng nhỏ các con kiến chọn đường đi dài hơn để đi qua Các nhà
nghiên cứu gọi đây có thể coi như một dạng khám phá đường đi mới.
Trang 16Hình 3 Hai nhánh có độ dài khác nhau r =2
Hình 4 Kết quả thí nghiệm với 2 nhánh có độ dài khác nhau r =2
1.1.2 Kỹ thuật bánh xe Routele
Đây là kỹ thuật phổ biến hay sử dụng trong các phương pháp tìm kiếm lựa chọn dựa vào xác suất, đặc biệt trong phép toán chọn lọc (selection) của thuật toán di truyền (Genetic Algorithm) hay là chọn trạng thái tiếp theo trong thuật toán đàn kiến (Ants colony Algorithm) Cụ thể kỹ thuật như sau
Giả sử V ={v1, v2, … , v n} là tập các láng giềng của u, p={ p1, p2, … , p n} là xác suất chọn trạng thái tiếp theo từ u tương ứng với v1, v2, … , v n
Trang 17quay xổ số (vòng được chia làm nhiều phần không bằng nhau), rõ ràng khi quay ta không biết kim của bánh quay sẽ chỉ vào phần nào nhưng ta cũng có thể nhận thấy ngay là phần lớn hơn sẽ nhiều khả năng kim rơi vào đó hơn Chính vì vậy kỹ thuật này còn được gọi là bánh xe xổ số.
Algorithm : Function roulette_Wheel(u , V , p¿
Input: u,V , p lần lượt là trạng thái hiện tại,tập các trạng thái có thể đến từ trạng thái hiện tại,
tập xác suất của các trạng thái trong V
Output: Trạng thái u chọn để đi tiếp
1.1.3 Thuật toán bầy kiến tối ưu( Ant colony Optimization –ACO)
tâm của thuật toán là sử dụng mô hình vết mùi dựa trên mô hình vết mùi của kiếntrong tự nhiên Dưới đây là mô hình thuật toán ACO để giải bài toán tối ưu rời rạc,
Một bài toán tối ưu rời rạc P=(S , f , Ω) trong đó:
- f là hàm mục tiêu cần tối ưu f : S → R+ ¿¿, cần tìm min của f
gồm n biến rời rạc X i với giá trị v i j ∈ D i={v i1, … , v|i D i|}, i=1 , … , n và thỏa mãn tập ràngbuộc Ω Lời giải s¿
được gọi là lời giải tối ưu nếu f(s¿
)≤ f (s ), ∀ s∈ S Tập các lời giảitối ưu gọi là S¿, S¿⊆ S Ở đây, cần tìm một lời giải tối ưu s¿∈ S¿.
cách gán vết mùi τ i j đối với mỗi lời giải thành phần c i j, có nghĩa là mỗi lời giải
Trang 18thành phần c i j sẽ có một vết mùi là τ i j để tính xác suất trong lựa chọn Tập tất cả cácgiá trị có thể của các lời giải thành phần ký hiệu là S Tập tất cả các vết mùi τ i j
cho
Sơ đồ chung của ACO cho bài toán trên bao gồm các thủ tục sau:
1)Khởi tạo thông tin vết mùi
InitializePheromoneValues(T ) : Tại thời điểm bắt đầu thuật toán, tất cả các thành
phần vết mùi trong T được khởi tạo là một hằng số τ0(τ0>0) Tùy thuộc vào bài
toán và dữ liệu đầu vào mà hằng số này sẽ được khởi tạo cho hợp lý
2) Xây dựng lời giải
phần từ tập R(s p)⊆S\{s p
},trong đó R(s p) là tập lời giải thành phần có thể thêm được
từ lời giải hiện tại s p và theo mô hình xác suất như sau:
- Xác suất để lời giải thành phần tiếp theo X i nhận được giá trị là c i jlà:
là nghịch đảo khoảng cách giữa hai thành phố
- Khi có xác suất cho các giá trị có thể lựa chọn của lời giải thành phần tiếptheo thì việc lưạ chọn một trong các giá trị đó được thực hiện theo kỹ thuậtbánh xe roulete đã mô tả ở trên
lời giải hiện tại hay là lời giải hiện tại không thể mở rộng thêm thì thủ tục
này kết thúc Khi thủ tục này kết thúc có thể lời giải có được không đủ n
thành phần nên không được xem là một lời giải Thủ tục kết thúc khi đã tìm
đủ n thành phần hoặc là lời giải hiện tại có được chưa đủ n thành phần nhưng
không thể mở rộng thêm được nữa
3) Tìm kiếm cục bộ
LocalSearch(s): Đây là một thủ tục có thể được thực hiện hoặc không thực hiện, có
thể nhằm tối ưu hoặc cải thiện lời giải Trong thực nghiệm đã chứng minh được rằng việc có sử dụng thủ tục này có thể tối ưu thuật toán rất tốt
4) Cập nhật vết mùi
Trang 19ApplyPheromoneUpdate(T , S iter , s bs ): Thực hiện cập nhật thông tin vết mùi, thủ tục
này sẽ tăng giá trị vết mùi trên các lời giải thành phần của các lời giải trong tập lời
nhật thông tin vết mùi như sau:
τ i
j ⟵(1− ρ) τ i j
+ ρ
S upd . ∑{sϵ S upd∨c i ϵs }
F (s) (1-2) Với i=1 , … , n và j=1 ,… ,∨D i∨¿,ρϵ (0,1]là hệ số bay hơi vết mùi
S iter: Tập các lời giải tìm được của thuật toán ( iter- iteraction) Ban đầu S iter là rỗng,
cứ mỗi lần tìm được một lời giải thì S iter sẽ bổ sung lời giải tìm được
nhật thông tin vết mùi, thường được chọn là một hằng số Ví dụ, nếu
S upd ⟵max{F (s )|s ∊ S iter}thì S1
upd ⟵ min{1/ F ( s)|s ∊ S iter}
F : S → R+ ¿¿
là một hàm thỏa mãn f ( s )<f(s ')⇒+∞>F(s ')≥ F ( s) ∀ s≠ s ' ∊ S, S là tập cáclời giải khả thi của bài toán Nghĩa là vết mùi sẽ cộng thêm nhiều hơn cho lời giải
có giá trị hàm mục tiêu nhỏ hơn
Ở công thức (1) thì bay hơi vết mùi là cần thiết để giảm bớt khả năng thuật toán sẽ hội tụ quá nhanh và dễ rơi vào cực trị địa phương, cần lựa chọn giá trị cho tham số
Các ký hiệu:
s bs (best solution): Lời giải tốt nhất
kiến sẽ thực hiện xây dựng lời giải
Algorithm: ACO – Ant colony optimization
Input: P=(S , f , Ω) của bài toán tối ưu
Output: Lời giải tốt nhất tìm được
// Khởi tạo vết mùi
InitializePheromoneValues( T )
// Lời giải tốt nhất ban đầu
s bs ←NULL
while (Điều kiện dừng chưa thỏa mãn) do
// Tập các lời giải tìm được ban đầu là rỗng
S iter ← ∅
// n a con kiến xây dựng lời giải
for j = 1 , , n ado
s ←ConstructSolution( T ) //Xây dựng lời giải
if s is a valid solution then //Kiểm tra lời giải tìm ược có thỏa mãn được có thỏa mãn
s ←LocalSearch(s) {//Tùy chọn tìm kiếm}
Trang 20if (f ( s ) < f(s bs)) or (s bs = NULL) then s bs ← s //Cập nhật lời giải tốt
return s bs //Trả về lời giải tốt nhất
Điều kiện dừng: Điều kiện dừng tùy thuộc vào tính chất của bài toán và chất lượng
lời giải cần tìm đặt ra, ví dụ:
-Thuật toán dừng khi đã tìm được một lời giải chấp nhận được
-Thuật toán dừng lại khi đã thực hiện một số hữu hạn vòng lặp
-Thuật toán dừng lại sau khi thực hiện một số hữu hạn các vòng lặp mà lời giải tốt nhất vẫn không được cải thiện
1.1.4 Một số biến thể của giải thuật ACO
Các biến thể của ACO sinh ra từ mỗi lựa chọn cơ chế cập nhật thông tin vết mùikhác nhau Cách thức cập nhật thông tin mùi sẽ phản ánh tầm quan trọng của vếtmùi vào việc xây dựng và tìm kiếm, xây dựng lời giải Trong giải thuật ACO tổng
sau khi một con kiến thực hiên xong là hai biến thể khác nhau của giải thuật ACOtrên Việc cập nhật thông tin mùi có thể được thực hiện sau khi ta thu được mộtthành phần của lời giải hoặc là thu được cả một lời giải, với mỗi trường hợp đó thì
ta sẽ có một biến thể của ACO áp dụng cho bài toán mà ta cần giải quyết Một biếnthể điển hình của giải thuật ACO ở trên là thực hiện cập nhật thông tin mùi cho tất
cả lời giải thu được sau một lần thực hiện, nghĩa là:
S upd ← argmax{F ( s)|sϵ S iter}
Việc thực hiện cập nhật thông tin theo cách này còn được gọi là cập nhật mùi IB(iteraction best) Có thể thấy là việc cập nhật thông tin mùi theo cách này chỉ đượcthực hiện với các thành phần của lời giải tốt nhất tìm được, như vậy trong biến thểnày của ACO thì thuật toán sẽ hội tụ rất nhanh và dẫn đến lời giải rơi vào cực trị địaphương và không có khả năng cải thiện ở các lần tiếp theo, đây là một nhược điểmlớn Để khắc phục điều này, ta có thể sử dụng cách cập nhật thông tin mùi cho tất cả
Trang 21các lời giải tốt nhất tìm được trong các bước lặp, cứ sau một bước lặp nếu s bs ượcđược có thỏa mãncải thiện thì S upd ← S upd ∪{s bs}
Việc cập nhật theo cách này còn được gọi là cập nhật mùi BS ( Best so far
solution)
Trong thực tế, giải thuật ACO sử dụng cách cập nhật thông tin mùi IB hoặc BScùng với các cơ chế để tránh giải thuật hội tụ sớm đạt kết quả tốt hơn so với các giảithuật sử dụng cách cập nhật thông tin mùi AS Ví dụ như hệ thống đàn kiến ACS( Ant Colony System) và hệ thống MMAS ( Max-Min Ant System) là một trongnhững ví dụ thành công nhất của việc sử dụng các biến thể trên trong thực tế Sau
1) Giải thuật 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
Trong đó:
dựng lời giải (online step-by-step pheromone update), lượng pheromone
để cập nhật là một hằng số
dựng lời giải (online step-by-step pheromone update), lượng pheromone
để cập nhật là phụ thuộc vào độ mong muốn (thông tin heuristic) với đoạnđường đi qua ηij
thành (online delayed pheromone update) Đây là mô hình cho kết quả tốtnhất và được coi như là thuật toán AS
Như vậy theo mô hình của AS-cycle thì pheromone sẽ cập nhật khi tất cả con kiến hoàn thành lời giải của mình.Việc cập nhật pheromone được tiến hành như sau:
( pheromone evaporation)
(1 )
rs p rs
Với ρ trong khoảng (0,1) là được gọi tốc độ bay hơi của pherromone
pheromone, lượng pheromone này là hàm của chất lượng lời giải mà con kiến xây dựng
rsrs rs k, a rs S k.
Trong đó:
Trang 22rs k f C S ( ) k
Ban đầu AS không sử dụng daemon action, tuy nhiên sẽ càng tốt hơn nếu thêm
vào đó một thủ tục tìm kiếm cục bộ để làm tăng chất lượng của lời giải Cònphương trình để xác định nút tiếp theo trong quá trình xây dựng lời giải của conkiến như sau
f
p rs k=¿ (1-3)
Tóm tắt về thuật toán này như sau:
Procedure new_ant (ant_id)
k
rs rs k
r = next_state ; S kS r k ,
L kL kr
end while { the pheromone_evaporation ( ) procedure triggers and evaporates pheromone in every edge a rs: rs 1 p.rs
2) Thuật toán Ant Colony System( ACS)
Phát triển từ thuật toán AS với một số cải thiện như sau:
proportional rule Giả sử con kiến k đang đứng tại nút r q 0 là một tham
khoảng (0,1) Nút s sẽ được con kiến k chọn để di chuyển tới như sau:
Nếu q q o:
Trang 23p rs k={1, s=arg max uϵ N k(r){τ ru α η ru β }
như sau:
τ rs ←(1−ρ) τ rs ∀ a rs ϵ S upd
τ rs ← τ rs+ρ f(C(S upd) )∀ a rs ϵ S upd
định thì thực hiện cập nhật vết mùi cho thành phần đó
rs(1 ) rs .0
Tóm tắt về thuật toán này như sau:
Procedure new_ant (ant_id)
k = ant_id ; r = generate_initial_state ; S kr
L kr
while (current-state target_state)
for each s N r k( ) do compute b rs rs. rs
ru
u N r
b p
Trang 24release_ant_resources (ant_id)
end Procedure.
Và thủ tục cập nhật:
Procedure daemon_actions
for each S k do local_search (S k) {optional}
S current best best_solution (S k)
if (better (S current best ,S global best
))
S global best
=S current best
end if
for each edge a rs S global best do
{ the pheromone_evaporation ( ) procedure triggers and
evaporates pheromone in every edge a rs: rs 1 p.rs}
rsrsp f C S. ( global best )
end for
end Procedure.
3) Thuật toán Max–Min Ant System( MMAS)
Được phát triển bởi Stutzle và Hooss vào năm 1996, được mở rộng lên từ hệthống AS Một số đặc điểm được mở rộng từ hệ thống AS như sau
Giống như ACS, MMAS thực hiện “ Offline pheromone trail update” , tức là saukhi toàn bộ kiến trong đàn hoàn thành lời giải thì việc cập nhật được tiến hành cholời giải tối ưu Đầu tiên thực hiện bay hơi vết mùi ( pheromone evaporation) trên tất
cả các cạnh
τ rs ←(1−ρ) τ rs
τ rs ← τ rs+f (C(s bs) ), ∀ a rs ϵ s bs
Thông thường trong MMAS các lời giải được tinh chỉnh bằng cách tối ưu cục bộ
tránh hội tụ tại điểm tối ưu cục bộ Khởi tạo tất cả thông số Pheromonegiá trị cận trên để ưu tiên việc khai phá không gian tìm kiếm Cận trên
vòng lặp cuối cùng
Trang 25τ max= 1
p C(s¿
)
Trong đó s¿
là lời giải tối ưu, bởi vì lời giải tối ưu không biết trước nên
tỷ lệ giữa cận trên và cận dưới τ max/τ min = 2n.
Do đó tính τ min= τ max / 2n Tỉ lệ này phải chọn không nên quá cao, bởi vì khi
đó xác suất để chọn đường đi có mức độ Pheromone thấp là quá nhỏ Mặtkhác nếu chọn tỉ lệ này quá lớn thì xác suất chọn đường đi có Pheromonecao là gần với xác suất chọn đường đi có mức độ Pheromone thấp
phá không gian tìm kiếm Một chú ý trong hệ thống MMAS là khi xảy rahội tụ cục bộ thì có cơ chế khởi tạo lại thông tin pheromone cho các nút
và giá trị để khởi tạo lại làτ max
Hàm cập nhật Daemon action của thuật toán MMAS như sau:
Procedure daemon_actions for each S k do local_search (S k)
S current best best_solution (S k)
if (best (S current best ,S global best ))
S global best =S current best
end if end Procedure 4) Thuật toán Rank-Based Ant System( RBAS)
Bullnheimer, Hartl và Strauss vào năm 1997 Thuật toán này đưa vào ý tưởng xếphạng cho các lời giải khi thực hiện cập nhật pheromone Cụ thể như sau:
Trang 26 Đầu tiên, m con kiến được xếp hạng theo thứ tự giảm dần dựa theo chất
lượng lời giải mà nó thu được Ví dụ: ( S1, S2, … Sm-1, Sm) trong đó S1 là phương án tốt nhất
tốt nhất Lượng pheromone cũng phụ thuộc trực tiếp vào thứ hạng sắp xếp của con kiến
pheromone phụ thuộc vào chất lượng lời giải
Các công thức như sau:
rank ( , ,S1 S m) in decreasing order of solution
quality into ( , ,S1' S m' )
if (best (
' 1
do
rsrs( ).f C S '
end for end for
for each edge a rs S global best do
rsrs.f C S global best
end for end Procedure
Trang 275) Thuật toán Best-Worst Ant System( BWAS)
thuật toán mở rộng khác của AS là MMAS (về luật di chuyển và việc bay hơi củapheromone) Bên cạnh đó trong thuật toán này còn quan tâm tới của việc tối ưu cục
bộ một cách hệ thống để nâng cao chất lượng lời giải của con kiến Trong thuật toánBWAS có 3 “Daemon action” thêm vào gồm có:
cường pheromone trên các đoạn đường đi qua bởi lời giải tốt nhất toàn cục(global best solution) Thêm vào đó luật này sẽ phạt những cạnh của lờigiải tồi nhất trong lần lặp Scurrent-worst
trong quá trình tìm kiếm
đình trệ, bằng cách thiết lập pheromone trail cho tất cả các thành phần bằng
τ0
Mô hình thủ tục Daemon action của thuật toán BWAS như sau:
Procedure daemon_actions
for each S k do local_search (S k)
S current best best_solution (S k)
if (best (S current best ,S global best ))
S current worst worst solution_ ( )S k
for each edge a rs S current worst
and a rs S global best
do
rs (1 p).rs
end for
mut mut it , threshold
for each nút / component r{1, , }l do
z = generate_random_value_in_[0,1]
if (z P m)
s = generate_random_value_in_[1,…, 1]
a = generate_random_value_in_[0,1]
Trang 281.1.5 Đánh giá ảnh hưởng các tham số
thức mang tính kinh nghiệm Một vài tham số đặc trưng cho các thông tin này sẽảnh hưởng đến hiệu quả của thuật toán Các tham số đó sẽ được phân tích dưới đây
a) Thông tin vết mùi
Đầu tiên, một lựa chọn rất quan trọng khi ứng dụng thuật toán bầy kiến để địnhnghĩa một thông số mang tính dự đoán là thông tin vết mùi Ví dụ: Trong bài toán
j từ thành phố i Có nghĩa là nó cung cấp một vài thông tin dựa trên độ mong muốn
trong quan hệ về vị trí giữa thành phố i và thành phố j Trong một bài toán khác sử
dụng thuật toán bầy kiến, khi ứng dụng giải thuật bầy kiến để giải bài toánSMTWTP, kết quả tốt hơn đạt được khi sử dụng mô tả vị trí tuyệt đối của các vết
có thể thấy vai trò khác nhau của các hoán vị giữa hai bài toán Trong bài toán TSP,một hoán vị là một chu kỳ , có nghĩa là chỉ các quan hệ dựa trên các thành phần lời
vị π '=(n , 1,2 ,… , n−1) Trái lại trong bài toán SMTWTP, π và π ' mô tả hai lời giảikhác nhau với khả năng chi phí rất khác nhau Khi đó, trong bài toán SMTWTP vịtrí tuyệt đối dựa trên cơ sở mật độ mùi là một lựa chọn tốt hơn
Việc xác định vệt mật độ mùi là một chỉ tiêu quan trọng trong việc xác định các
bộ lời giải tiếp theo của thuật toán
b) Cân nhắc các thăm dò và khai thác.
Bất kỳ một thuật toán siêu tri thức hiệu quả đều phải đưa ra một đánh giá giữa việckhai thác các kinh nghiệm trong tìm kiếm và thăm dò các vùng không gian tìm kiếmchưa được thăm hoặc chưa khám phá Trong ACO có một vài cách đánh giá, đơngiản nhất là quản lý các vệt mật độ mùi Thực tế là các vệt mật độ mùi đặc trưngcho phân bố xác suất trong không gian tìm kiếm và xác định phần nào trong khônggian cấu trúc nên lời giải được cấp phát với tần suất cao Lưu ý rằng dựa trên cácphân bố mật độ mùi, các mẫu phân bố có thể thay đổi Do vậy cách đơn giản để
Trang 29khai thác các kinh nghiệm tìm kiếm của đàn kiến là liên tục cập nhật mật độ mùicủa đàn kiến như là một hàm của chất lượng lời giải sinh ra từ mỗi con kiến.
Việc tham dò không gian tìm kiếm được đưa ra trong thuật toán bầy kiến bởi việccấu trúc lời giải ngẫu nhiên của đàn kiến Giả sử ta xem xét thuật toán bầy kiến màkhông có các thông tin tri thức( điều này có thể đạt được bằng cách cho 𝞫=0 ).Trong trường hợp đó việc cập nhật mật độ mùi của đàn kiến sẽ được dịch từ mẫu lờigiải khởi tại của không gian tìm kiếm tới mẫu đang xem xét trong vùng không giantìm kiếm Khi đó, việc thăm dò không gian tìm kiếm sẽ được kết hợp trong phầnkhởi tạo của thuật toán và sẽ giảm các tính toán phụ
Cuối cùng, một vấn đề quan trọng đó là vai trò trong việc cân nhắc lựa chọn thăm
dò và khai thác thông tin thông qua các tham số 𝞪, để xác định việc ảnh hưởng củathông tin vết mùi và thông tin tri thức Đầu tiên, ta xem xét ảnh hưởng của tham số Với 𝞪>0 , 𝞪 càng lớn việc khai thác các kinh nghiệm tìm kiếm càng chắc chắn,𝞪=0 thì thông tin vết mùi không ảnh hưởng đến quá trình xây dựng lời giải, 𝞪 <0hầu hết các lựa chọn có thể được thực hiện bởi đàn kiến có độ mong muốn thấphơn từ khía cạnh thông tin vết mùi Do đó các thay đổi của 𝞪 có thể được sử dụng
để dịch chuyển từ việc thăm dò sang khai thác hay ngược lại Tham số 𝞫 xác định
độ ảnh hưởng của thông tin tri thức và có thể phân tích tương tự như trên
c) ACO và tìm kiếm cục bộ
Trong rất nhiều các bài toán tối ưu tổ hợp, thuật toán bầy kiến sẽ thực hiện tốt hơnnếu kết hợp với một thuật toán tìm kiếm cục bộ Các thuật toán tìm kiếm cục bộ sẽtối ưu lời giải của đàn kiến và lời giải cục bộ đó được sử dụng trong quá trình cậpnhật thông tin vết mùi
Việc sử dụng tìm kiếm cục bộ trong các thuật toán bầy kiến rất được quan tâm.Thực tế là các giải thuật bầy kiến thực hiện tìm kiếm thô và lời giải của chúng tạo rasau đó có thể được tối ưu cục bộ bởi một thuật toán tìm kiếm cục bộ tương xứng Mặt khác việc sinh lời giải khởi tạo cho thuật toán tìm kiếm cục bộ không phải làmột nhiệm vụ dễ dàng Chẳng hạn với nhiều bài toán, việc lặp lại tìm kiếm cục bộ
từ một lời giải khởi tạo ngẫu nhiên là không hiệu quả Thực tế, đàn kiến có thể kếthợp các lời giải thành phần như là một phần của lời giải cục bộ tốt nhất sau này,sinh ra một lời giải khởi tạo cho tìm kiếm cục bộ Bằng thực nghiệm, có thể tìmthấy sự kết hợp dựa trên xác suất, sự tương thích về tri thức cấu trúc với tìm kiếmcục bộ để đưa ra một kết quả hoàn hảo
Trừ khi phải sử dụng thuật toán tìm kiếm cục bộ như là một điều kiện cho hiệu quảtốt nhất của nhiều ứng dụng ACO Còn nhìn chung thuật toán bầy kiến có hiệu quảthực hiện rất tốt với những bài toán mà thuật toán tìm kiếm cục bộ không thể ápdụng dễ dàng
d) Tầm quan trọng của thông tin tri thức
Trang 30Khả năng sử dụng các tri thức vào xây dựng lời giải cùa đàn kiến là quan trọng do
nó đưa ra khả năng giải bài toán dựa trên các hiểu biết đặc trưng Các tri thức này
có thể có một mức ưu tiên hoặc phụ thuộc thời gian Trong các bài toán tĩnh, trithức 𝜼 được tính một lần tại thời điểm khởi tạo và sau đó giống nhau trong suốt thời
trước các giá trị các thông số và đó là kết quả tính toán được lưu theothời gian Trong các bài toán động, các tri thức phụ thuộc vào lời giảitìm được sau đó do đó phải tính toán lại trong mỗi bước di chuyển củađàn kiến trong hành trình Điều này xác định chi phí tính toán cao hơnnhưng bù lại độ chính xác cao hơn trong việc tính toán các giá trị trithức Mặt khác, các tính toán tri thức được giới thiệu trong các giải thuậtbầy kiến bao gồm cả việc sử dụng tính toán cận dưới cho chi phí của lờigiải Phương pháp này có một vài lợi ích là cho phép chặn các lựa chọndẫn đến các lời giải tồi hơn lời giải tốt nhất đã được tìm thấy Nó đồngthời cũng cho phép kết hợp các tri thức dựa trên tính toán cận dưới từcác công thức toán học trong mô hình ACO Ngược lại, nó cũng có bấtlợi là việc tính toán cận dưới có thể mất thời gian, đặt biệt khi mà việctính toán cận dưới được phải được tính toán trong từng bước di chuyểncủa kiến
Cuối cùng, cần chú ý rằng trong khi việc sử dụng các tri thức là quan trọng đối vớigiải thuật bầy kiến, thì một vấn đề khác quan trọng không kém là sử dụng các giảithuật tìm kiếm cục bộ để cải tiến lời giải Thông thường việc kết hợp với giải thuậttìm kiếm cục bộ dễ hiểu hơn nhiều so với việc định nghĩa các thông tin về tri thức
e) Số lượng các con kiến
Tại sao phải sử dụng một đàn kiến thay cho việc sừ dụng một con kiến ? Thực tếmặc dù một con kiến có thể sinh ra được một lời giải, hiệu quả mong đợi là việc sửdụng một đàn kiến thường cho nhiều lựa chọn tốt hơn và về nguyên tắc có thể đạtđược lời giải tốt nhanh hơn
Nhìn chung giá trị tốt nhất cho số lượng kiến phụ thuộc vào thuật toán bầy kiếnđược chọn cho lớp bài toán nào được ứng dụng
f) Danh sách các ứng cử viên
Một vấn đề khó của giải thuật bầy kiến là khi ta ứng dụng cho các bài toán với sốlượng lớn các láng giềng Thực tế, một con kiến chỉ thăm một trạnh thái trong mộtlần di chuyển và với số lượng láng giềng lớn thì con kiến sẽ phải quyết định lựachọn trong một tập các lựa chọn lớn Do vậy, việc xây dựng lời giải sẽ chậm hơn vàkhả năng nhiều con kiến đến thăm cùng một trạng thái sẽ thấp