Tải bản đầy đủ (.docx) (58 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (498.69 KB, 58 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN

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

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
PHIẾ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:
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ải
quyế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
Tác giả ĐATN

Trần Đình Quang

5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của đồ án và cho phép
bảo vệ
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
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 2
LỜ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ác
thầ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ện

Cô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ận
tì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ện
tiế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 tin
hữ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.

Hà Nội, ngày 16 tháng 12 năm 2013
Tác giả ĐATN

Trần Đình Quang
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 3
TÓ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ác
tuyế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 đặt
thuậ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ác
kế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ác

kế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ặt
thờ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ành
trì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ần
nghiê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". This
problem 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 the
way applying the ant colony parallel optimization algorithm as a solution. In order to run
this algorithm, i used the boost library for parallel programming model. Because of lacking
the result from some real experiments to compare, some results I presented here are just
relative ones. However, this thesis still got the goal for optimized solution, some
experimental results displayed is feasible and have a remarkable runtime in comparison
with 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 !
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 4
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ
Hình 1. Hai nhánh có cùng độ dài………………………………………… 14
Hì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 …………………………… 16
Hình 4. Kết quả thí nghiệm với 2 nhánh có độ dài khác nhau ………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 ……………… 56
Hình 13. Đồ thị mô tả sự biến thiên của Time theo ………………… 57
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 5
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
Bả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……………………………53
Bảng 4. Thống kê dữ liệu trong trường hợp  thay đổi……………………………54
Bả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 ………………… 56
Bảng 7. Kết quả chạy thuật toán với bộ dữ liệu thực nghiệm Budapest ……… 57
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 6
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Chữ Viết
tắt
Tiếng Anh Nghĩa Tiếng Việt
TSP Travelling Salesman Problem Bài toán người du lịch đưa hàng
ACO Ant Colony Optimial Thuật toán bầy kiến tối ưu
ACS Ant Colony System Hệ thống bầy kiến
AS Ant System Hệ thống kiến
MMAS Max-Min Ant System Hệ thống kiến lớn nhất- nhỏ nhất
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 7
QAP Quadratic Assignment Problem Bài toán phân bậc hai
RBAS Rank- Based Ant System Hệ thống xếp hạng kiến
BWAS Best- Worst Ant System Hệ thống kiến tồi nhất

SMTWTP Single Machine Total Weighted
Tardiness Scheduling Problem
Bài toán lập lịch sản xuất trên một
máy đơn
MRCT Minimum Routing Cost
Spanning Tree
Cây định tuyến với chi phí tối thiểu
MỞ ĐẦU
Các bài toán tối ưu rời rạc có rất nhiều ứng dụng trong thực tế, đặc biệt là trong
các ứng dụng thực tế mà đòi hỏi chi phí trang trải cho các hoạt động về mặt thời
gian, tiền bạc và công sức là lớn, rất cần các biện pháp tối ưu trong các hoạt động.
Tuy nhiên, để giải quyết các bài toán tối ưu rời rạc trong thực tê lại rất khó khăn,
phứ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ài
toá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ài
toá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ành
trì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 bus
cho 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 ứng
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 8
dụ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ập
hà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ích
thướ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ời
gian để đư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ướng
tiế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ác
nhiề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ên
cứ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ời
rạ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án
vớ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ụng
giả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ủa
thuậ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ật
toá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 đặt
theo mô hình song song sẽ được hỗ trợ bởi thư viện boost. Cụ thể và chi tiết sẽ được
trì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
Trong thế giới sinh vật hầu hết các loài vật đều sống tập trung theo từng bầy đàn
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
số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ài
kiế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ột
cá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 đàn
rấ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 trong
các hành động đáng chú ý nhất của chúng đó là luôn đi theo hàng ngũ, di chuyển
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 9
theo 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ân
lê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 đường
dà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ơn
nhữ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ác
cá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 đúng
cho 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ích
thướ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ững
năm 90 của thế kỷ trước, khi đó M.Dorigo và các đồng nghiệp đã giới thiệu về thuật
toá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ết
quả 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ải
thuật bầy kiến tối ưu (Ant Colony Optimization - ACO) ra đời là một trong các kết
quả 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
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.

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á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
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 10
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 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ế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.
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 11
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.
Trong thực tế thực nghiệm, giải thuật ACO là một trong những thuật toán thành
cô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ành
cô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 trong
top 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ống
phâ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ến
chỉ 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ên
bầ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ường
khô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( self-
organizing ) cho phép những hành vi của con kiến thật được mô phỏng chính xác
trê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án
tí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ụ
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ìm
thứ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
tổ 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 vi
giố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ên
thự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
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 12
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ới
mộ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ến
khá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ải
phá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ệm
bở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
và nhánh ngắn( nhánh dài là nhánh có độ dài đường đi lớn hơn). Gọi , lần lượt là độ
dài của nhánh dài và nhánh ngắn, đặt tỷ lệ . 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,
tức là . Ban đầu, các con kiến được tự do di chuyển và tỉ lệ việc lựa chọn giữa 1
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

dù 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ên
nà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ều
hơ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ớn
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 13
hơ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ướng
hoạ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
Hình 2. Kết quả thí nghiệm với 2 nhánh có cùng độ dài

Trong thí nghiệm số 2, tỉ lệ độ dài giữa 2 nhánh được đặt , tức là 1 nhánh sẽ có độ
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ết cá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ên
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 14
nhá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ánh
ngắ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 con
kiế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ánh
ngắ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ưng
vẫ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.
Hình 3. Hai nhánh có độ dài khác nhau
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 15
Hình 4. Kết quả thí nghiệm với 2 nhánh có độ dài khác nhau

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ử là tập các láng giềng của , là xác suất chọn trạng thái tiếp theo từ tương
ứng với .
, tức là sẽ chắc chắn chọn một trong các trạng thái trên để đi tiếp. Để đảm bảo ưu
thế cho những trạng thái có xác suất lớn hơn nhưng vẫn đảm bảo cơ hội của các
trạng thái có xác suất thấp hơn người ta sinh ra một số ngẫu nhiên rồi chọn i nhỏ
nhất sao cho . Cách làm này mô phỏng hoạt động của một vòng quay 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(
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 16
Input: , 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
Output: Trạng thái chọn để đi tiếp
{
}
1.1.3 Thuật toán bầy kiến tối ưu( Ant colony Optimization –ACO)
Thuật toán ACO là một thuật toán tìm kiếm ngẫu nhiên dựa trên xác suất. Trọng
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ến
trong 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,
được định nghĩa như sau.
Một bài toán tối ưu rời rạc trong đó:
- là không gian tìm kiếm (lời giải) có thể có của bài toán
- là một tập hợp các ràng buộc giữa các biến
- là hàm mục tiêu cần tối ưu , cần tìm min của
Không gian tìm kiếm được định nghĩa như sau: Mỗi lời giải trong là một tập gồm
biến rời rạc với giá trị và thỏa mãn tập ràng buộc . Lời giải được gọi là lời giải tối
ưu nếu Tập các lời giải tối ưu gọi là . Ở đây, cần tìm một lời giải tối ưu
Mô hình bầy kiến tối ưu sẽ được áp dụng để giải bài toán trên. Mỗi biến sẽ nhận
một giá trị trong miền giá trị của biến đó là và là một thành phần của lời giải, ký
hiệu là . Khi đó mô hình bầy kiến sẽ áp dụng vết mùi cho bài toán bằng cách gán
vết mùi đối với mỗi lời giải thành phần , có nghĩa là mỗi lời giải thành phần sẽ có
một vết mùi là để tính xác suất trong lựa chọn. Tập tất cả các giá trị có thể của các
lời giải thành phần ký hiệu là . Tập tất cả các vết mùi cho tất cả các giá trị có thể
của các biến được ký hiệu là T.
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ố . 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
ConstructSolution(T ) : Xây dựng lời giải từ tập các lời giải thành phần . Ban đầu,
tập các thành phần của lời giải là rỗng , ∅. Cứ mỗi bước xây dựng lời giải thì lời
giải hiện tại sẽ được mở rộng bằng cách là bổ sung thêm lời giải thành phần từ tập \
{trong đó 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 và theo mô
hình xác suất như sau:
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 17
- Xác suất để lời giải thành phần tiếp theo nhận được giá trị là là:
(1-1)
Trong đó ,  là hai tham số đưa vào,  đặc trưng cho mức độ ảnh hưởng của vết
mùi và  đặc trưng cho mức độ ảnh hưởng của thông tin heuristics của bài toán đó,
là một đặc trưng hay là một thông tin heuristics tùy thuộc bài toán tối ưu. Ví dụ, bài
toán người du lịch đưa hàng (Travelling Salesman Problem - TSP) thì 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ếp
theo thì việc lưạ chọn một trong các giá trị đó được thực hiện theo kỹ thuật
bánh xe roulete đã mô tả ở trên.
- Nếu tức là không thể thêm được lời giải thành phần tiếp theo cho 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
ApplyPheromoneUpdate(T , ,): 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 giải sẽ
được cập nhật vết mùi . Thông thường các thuật toán đều áp dụng cập nhật thông tin
vết mùi như sau:
(1-2)
Với và ,là hệ số bay hơi vết mùi
: Tập các lời giải tìm được của thuật toán ( iter- iteraction). Ban đầu là rỗng, cứ mỗi
lần tìm được một lời giải thì sẽ bổ sung lời giải tìm được.
: là tập tất cả các lời giải sẽ sử dụng cập nhật thông tin mùi ( upd – update)
Trong công thức (1-2), chỉ mang tính chất để nghiên cứu toán học cho việc cập
nhật thông tin vết mùi, thường được chọn là một hằng số. Ví dụ, nếu thì
là một hàm thỏa mãn , là tập các lờ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ố
phù hợp để sự bay hơi vết mùi là hiệu quả.
Các ký hiệu:
(best solution): Lời giải tốt nhất
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 18
(number ants): Số lần thực hiện xây dựng lời giải với một tập vết mùi T, hay là số
kiến sẽ thực hiện xây dựng lời giải.
Algorithm: ACO – Ant colony optimization
Input: 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

←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
← ∅
// con kiến xây dựng lời giải
for j = 1, . . . , do
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
s ←LocalSearch(s) {//Tùy chọn tìm kiếm}
if (f (s) < f()) or ( = NULL) then ← s //Cập nhật lời giải tốt
nhất
← ∪ {s}
end if
end for
ApplyPheromoneUpdate(T , ,) //Cập nhật mùi
end while
return //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ùi
khá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ết
mù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
quát ở trên nếu ta cập nhật mùi sau khi con kiến thực hiện xong hoặc là cập nhật
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 ACO

trê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ột
thà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ến
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 19
thể đ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à:

Việc thực hiện cập nhật thông tin mùi theo cách này còn gọi là cập nhật mùi AS
( Ant System)
Một biến thể điển hình khác của giải thuật ACO nêu trên là việc cập nhật thông tin
mùi chỉ được thực hiện với lời giải tốt nhất tìm được trong toàn bộ bước lặp

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ỉ được
thự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ị địa
phươ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ểm
lớ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ả
cá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 được
cải thiện thì
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 BS
cù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ải
thuậ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 trong
nhữ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
đây sẽ giới thiệu một số biến thể thông dụng của ACO.
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 đó:
 AS-Density: Thì đàn kiến sẽ đặt thêm pheromone trong quá trình xây
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ố.
 AS-Quantity: Thì đàn kiến sẽ đặt thêm pheromone trong quá trình xây
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
.
 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.
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 20
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:
 Đầu tiên tất cả pheromone trên các cung sẽ được giảm đi bởi một hằng số
( pheromone evaporation).

(1 ). .
rs rs
p
τ τ
¬ −
Với ρ trong khoảng (0,1) là được gọi tốc độ bay hơi của pherromone.
 Tiếp theo mỗi con kiến trong đàn sẽ đặt thêm một lượng thông tin

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.

, .
k
rs rs rs rs k
a S
τ τ τ
¬ +∆ ∀ ∈

Trong đó:

( )
( ) .
k
rs k
f C S
τ
∆ =

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òn
phươ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 con
kiến như sau.

(1-3)
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 ;
k

S r=

k
L r
=
while (current-state

target_state)
for each s


k
N
(r) do
[ ] [ ]
[ ] [ ]
.
.
k
r
rs rs
k
rs
ru ru
u N
p
α β
α β
τ η
τ η


=

next_state = apply_ant_decision_policy (P ,
( )
k
N r
)
r = next_state ;
,
k k
S S r=< >

k k
L L r= ∪
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 21
end while
{ the pheromone_evaporation ( ) procedure triggers and
evaporates pheromone in every edge
( )
: 1 .
rs rs rs
a p
τ τ
= −
}
for each edge
rs k
a S∈

do

( )
( )
rs rs k
f C S
τ τ
= +
end for
release_ant_resources (ant_id)
end Procedure.
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:
 Sử dụng một luật khác cho việc di chuyển, gọi là pseudo-random
proportional rule. Giả sử con kiến k đang đứng tại nút r. q
0
là một tham
số, và một giá trị ngẫu nhiên q. Trong đó giá trị của q và q
0
là trong
khoảng (0,1). Nút s sẽ được con kiến k chọn để di chuyển tới như sau:
Nếu
o
q q≤
:
(1-4)

Nếu (
o
q q>

) :
(1-5)

 Việc cập nhật vết mùi thực hiện theo BS nghĩa là thực hiện việc cập nhật
pheromone chỉ duy nhất với lời giải tốt nhất . Cập nhật theo công thức
như sau:


 Sau mỗi bước xây dựng lời giải, sau khi mỗi thành phần lời giải được xác
định thì thực hiện cập nhật vết mùi cho thành phần đó.

0
(1 ). . .
rs rs
τ ϕ τ ϕ τ
¬ − +
Trong đó φ là một tham số để giảm pheromone thứ hai sau ρ. Còn được chọn là
một tham số rất bé (như là ngưỡng dưới của pheromone).
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 22
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 ;
k
S r=

k
L r
=
while (current-state


target_state)
for each
( )
k
s N r∈
do compute
.
rs rs rs
b
β
τ η
=
q = generate_random_value_in_[0 , 1]
if (
0
q q<=
)
Next_state = max (
, ( )
rs k
b N r
)
else
for each
( )
k
s N r∈
do


( )
k
k
rs
rs
ru
u N r
b
p
b

=

next_state = apply_ant_decision_policy (P ,
( )
k
N r
)
end if
r = next_state ;
,
k k
S S r
=< >

0:
(1 ). .
rs rs
τ ϕ τ ϕ τ
= − +


k k
L L r= ∪

end while
release_ant_resources (ant_id)
end Procedure.
Và thủ tục cập nhật:
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 23
Procedure daemon_actions
for each
k
S
do local_search (
k
S
) {optional}

current best
S

=
best_solution (
k
S
)
if (better (
current best
S


,
global best
S

))

global best
S

=
current best
S

end if
for each edge
rs
a


global best
S

do
{ the pheromone_evaporation ( ) procedure triggers and
evaporates pheromone in every edge
( )
: 1 .
rs rs rs
a p

τ τ
= −
}

( )
. ( )
rs rs global best
p f C S
τ τ

= +
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à sau
khi 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 cho
lờ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.

Sau đó chỉ có các thành phần thuộc lời giải tốt nhất mới được tăng vết mùi

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ộ
(local optimizer) trước khi cập nhật thông tin pheromone.
 Một cải tiến quan trọng trong hệ thống MMAS là việc thêm vào giới
hạn cận trên và dưới của thông tin Pheromone (và ), điều đó giúp 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ố Pheromone giá trị
cận trên để ưu tiên việc khai phá không gian tìm kiếm. Cận trên thường
được chọn là giá trị lớn nhất mà Pheromone có thể đạt được ở vòng lặp

cuối cùng.

…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 24

Trong đó 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 thông
thường được thay thế bởi trong tính toán.
Cách chọn cận dưới , thông thường người ta chọn để thỏa mãn theo tỷ lệ
giữa cận trên và cận dưới /= 2n.
Do đó tính = / 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ặt khác
nếu chọn tỉ lệ này quá lớn thì xác suất chọn đường đi có Pheromone cao là
gần với xác suất chọn đường đi có mức độ Pheromone thấp.
 Khi khởi tạo thông tin pheromone cho các thành phần thì tất cả nhận
giá trị lớn nhất có thể của Pheromone là nhằm tăng cường việc khai phá
không gian tìm kiếm. Một chú ý trong hệ thống MMAS là khi xảy ra hộ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à.
Hàm cập nhật Daemon action của thuật toán MMAS như sau:
Procedure daemon_actions
for each
k
S
do local_search (
k
S
)

current best
S


=
best_solution (
k
S
)
if (best (
current best
S

,
global best
S

))

global best
S

=
current best
S

end if

best
S
= decision (
global best
S


,
current best
S

)
for each edge
rs
a


best
S
do

( )
( )
rs rs best
f C S
τ τ
= +
if (
min min
)
rs rs
τ τ τ τ
< =
end for
if (stagnation_condition)
for each edge

rs
a
do
maxrs
τ τ
=
end if
end Procedure
4) Thuật toán Rank-Based Ant System( RBAS)
…………………………………………………………………………………………………………………
Sinh viên thực hiện: Trần Đình Quang-20093577-Lớp Công nghệ thông tin 1- K54 Trang 25

×