Tải bản đầy đủ (.pdf) (53 trang)

Ứng dụng thuật toán đàn kiến trong tìm kiếm đường đi tối ưu

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 (1.09 MB, 53 trang )

2

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG






NGUYỄN TRUNG CHIẾN



ỨNG DỤNG THUẬT TOÁN ĐÀN KIẾN
TRONG TÌM KIẾM ĐƢỜNG ĐI TỐI ƢU



LUẬN VĂN THẠC SĨ: CÔNG NGHỆ THÔNG TIN










Thái Nguyên – 2014



3

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

MỞ ĐẦU
Trí tuệ nhân tạo là một trong lĩnh vực được quan tâm nhiều trong công
nghệ thông tin hiện nay. Trong trí tuệ nhân tạo, chúng ta thường xuyên phải
đổi mặt với nhưng bài toán tìm kiếm. Đặc biệt là những bài toán lập lịch và
học máy, tìm kiếm đóng vai trò hết sức quan trọng.
Vấn đề tìm kiếm có thể hiểu là tìm ra một kết quả thỏa mãn điều kiện
được đặt ra trước đó trong một tập hợp lớn các đối tượng. Có rất nhiều vấn đề
có thể quy ra bài toán tìm kiếm, ví dụ như trò chơi: cờ vua, cờ caro có thể xem
như bài toán tìm kiếm – từ tập hợp các nước có thể đi ta chọn ra tập hợp các
nước đi ngắn nhất để trở thành người thắng. Hay như bài toán tháp Rùa – Hồ
Gươm cũng có thể quy ra bài toán tìm kiếm – từ tập hợp tất cả các cách
chuyển tháp từ A đến C ta chọn ra tập hợp các bước chuyển ít nhất, …
Ngày nay, với sự đòi hỏi cao về khoa học và công nghệ, các kỹ thuật tìm
kiếm cổ điển đã không còn phù hợp mà thay vào đó là cách tìm kiếm không rõ
đối tượng (tìm kiếm mù), các kỹ thuật tìm kiếm kinh nghiệm (heuristic), các kỹ
thuật tìm kiếm tối ưu, …
Một trong số những thuật toán tìm kiếm dựa trên kinh nghiệm khá hiệu
quả hiện nay là thuật toán tối ưu đường đi của loài kiến (do nhà khoa học
người Bỉ Marco Dorigo giới thiệu trong luận án tiến sĩ của mình năm 1996).
Thuật toán này sử dụng giải pháp Meta-heuristic, 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, có thể coi là một phương thức tìm kiếm đa

năng. Nó giúp tối ưu hóa phương pháp giải các bài toán NP-Khó. Hiện nay,
các thuật toán kiến đã được ứng dụng vào thực tế ở nhiều lĩnh vực khác nhau
như: Áp dụng vào việc kinh doanh của nhiều hãng vận tài lớn tại Mỹ, ứng
4

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

dụng trong ngành bưu chính tại Đan Mạch, tìm kiếm thông tin trên mạng
internet,
Trong giới hạn về đề tài này, dưới sự hướng dẫn của PSG, TS Đoàn Văn
Ban, em mạnh dạn chọn đề tài: “ỨNG DỤNG THUẬT TOÁN ĐÀN KIẾN
TRONG TÌM KIẾM ĐƢỜNG ĐI TỐI ƢU” để tìm hiểu và thực hiện.
Cấu trúc của luận văn được chia làm ba chương, với nội dung chính của
mỗi chương như sau:
Chƣơng 1: Giới thiệu về hệ thông đàn kiến, phương pháp giải
heuristic, một số thí nghiệm liên quan và một số thuật toán đàn kiến.
Chƣơng 2: Tìm hiểu một số vấn đề liên quan đến các kỹ thuật tìm
kiếm tối ưu như : thuật toán A*, thuật toán nhánh và cận, thuật toán
leo đồi và một số bài toán tìm kiếm dựa trên kinh nghiệm.
Chƣơng 3: Phát biểu và mô tả bài toán tìm đường D-TSP. Xây dựng
hướng giải quyết bài toán và demo.
Ngoài ra, trong luận văn còn có phần “Mở đầu” và phần “Kết luận”.

5

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

CHƢƠNG 1 : HỆ THỐNG ĐÀN KIẾN
1.1. Tổng quan
Từ xa xưa, thiên nhiên đã là nguồn cảm hứng vô tận, nó không chỉ là

nguồn cảm hứng cho những thi sĩ, nghệ sĩ - những người làm văn hóa nghệ
thuật mà nó còn là nguồn cảm hứng cho những nhà khoa học. Từ những sự
kiện trong tự nhiên rất đời thường khi đi vào khoa học kỹ thuật nó đều trở
thành những phát minh vĩ đại: Từ một quả táo rơi, với Isaac Newton ta có
định luận vạn vật hấp dẫn; Từ những cánh chim và ước mơ được bay lên của
hai anh em nhà Wright để ngày nay chúng ta có những chiếc máy bay tối tân
hiện đại; Và còn rất nhiều những phát minh khác có nguồn gốc từ thiên
nhiên như: áo chống đạn dựa trên cách giăng tơ của loài nhện, cảm biến dựa
trên bộ râu của loài gặm nhấm…
Dựa trên các yếu tố về mặt tự nhiên, các nhà khoa học mô phỏng lại, cải
biến, hoàn thiện và đưa nó thành những sản phẩm nhằm phục vụ mục đích của
họ. Ngoài những thiết bị vật lý mà chúng ta nhìn thấy từ sản phẩm thì nằm sâu
trong chúng là những bài toán nhằm giải quyết hay mô phỏng sao cho gần với tự
nhiên nhất.
Ngày nay, trí tuệ nhân tạo được sử dụng nhiều trong các ngành khoa
học kỹ thuật. Phương pháp tìm kiếm bày đàn được áp dụng khá rộng rãi, cụ
thể một trong những thuận toán đó là thuật toán đàn kiến (do Marco Dorigo
giới thiệu vào năm 1992). Kể từ đó tới nay, thuật toán đàn kiến đã có rất
nhiều cải tiến và được ứng dụng vào nhiều lĩnh vực nhưs: trí tuệ nhân tạo,
trong bộ máy tìm kiếm, tin sinh, … [12].



6

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Dưới đây là một số thuật toán ACO theo trình tự về thời gian xuất hiện:
Thuật toán ACO
Tác giả

Ant System
Dorigo, Maniezzo & Colomi (1991)
Elitist AS
Dorigo (1992); Dorigo, Maniezzo & Colomi (1996)
Ant-Q
Gambardella & Dorigo (1995); Dorigo & Gambardella
(1996)
Ant Colony System
Dorigo & Gambardella (1996)
Max-Min AS
Stutzle & Hoos (1996,2000); Stutzle (1999)
Rank-based AS
Bullnheiner, Hartl & Strauss (1997,1999)
ANTS
Maniezzo (1999)
Hyper-cube AS
Blum, Roli & Dorigo (2001); Blum & Dorigo(2004)

Bảng 1.1. Một số thuật toán ACO
1.2. Hành vi của đàn kiến trong tự nhiên
Trong thế giới tự nhiên, cách tìm mồi của đàn kiến bắt đầu bằng việc đi
lang thang ngẫu nhiên và trong quá trình tìm kiếm đó chúng lưu lại trên con
đường mà chúng đi qua một lượng Pheromone. Hành vi đi ngẫu nhiên này có thể
sẽ không được lập lại với các con kiến đi sau mà thay vào đó là sự chọn lựa các
vết pheromone do các con kiến đi trước tạo ra để quay trở lại tổ hoặc củng cố lại
con đường đó nếu nguồn thức ăn được tìm thấy.
Tuy nhiên, theo thời gian các vết pheromone sẽ bay hơi và làm giảm sự
hấp dẫn với các con kiến khác. Thời gian tiêu hao của một con kiến đi từ tổ của
nó đến nguồn thức ăn và quay lại sẽ tương ứng với lượng pheromone bị bay hơi.
Từ đó đường đi tối ưu được hình thành nhờ mật độ kiến đi qua nhiều nhất và

lượng pheromone để lại là đậm nhất.
Sự bay hơi của pheromone là lợi thế để tránh sự hội tụ dẫn đến một
giải pháp tối ưu hóa cục bộ. Nếu không có sự bay hơi của pheromone, các con
đường đã được lựa chọn bởi những con kiến đi đầu sẽ không quá khác biệt và
7

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

khó xảy ra hội tụ. Trong trường hợp đó các giải pháp thăm dò sẽ hết sức hạn
chế.
Vì vậy, khi một con kiến tìm thấy đường đi tốt từ tổ của chúng đến
nguồn thức ăn, những con kiến khác có nhiều khả năng cũng theo con đường
đó và có những phản hồi tích cực dẫn đến việc cả đàn kiến sẽ theo một con
đường duy nhất. Ý tưởng của thuật toán đàn kiến là mô phỏng lại quả trình
tìm đường của đàn kiến ngoài tự nhiên để duyệt đồ thị đại diện cho các bài
toán cần giải quyết.
1.2.1. Thí nghiệm chiếc cầu đôi
Một thí nghiệm được nhắc đến trong nhiều tài liệu về đường đi của đàn
kiến là thí nghiệm trên một chiếc cầu đôi của Deneubourg và các đồng sự [5].
Ông đã sử dụng một cây cầu có 2 nhánh nối tổ kiến tới chỗ thức ăn. Hai nhánh
của cây cầu gọi là nhánh ngắn và nhánh dài, tỉ lệ trong đó là độ dài
của nhánh dài và là độ dài nhánh ngắn. Tỉ lệ được thay đổi nhiều lần trong
các thí nghiệm nhằm quan sát sự thay đổi trong hành vi của các con kiến.
Đầu tiên đàn kiến được thử nghiệm trên chiếc cầu với r =1. Kết quả sau
một thời gian quan sát : đàn kiến vẫn chọn chung một con đường mặc dù có suất
phát là ngẫu nhiên.


Hình 1.1. Thí nghiệm chiếc cầu đôi với 2 nhánh có kích thước bằng nhau
8


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Khi thí nghiệm được bắt đầu, trên chiếc cầu hoàn toàn không hề có vết
pheromone, hai nhánh cầu bằng nhau nhưng đàn kiến vẫn chọn một con đường.
Điều này được lý giải là do sự ngẫu nhiên của xác suất (xấp xỉ 50% trên 1 nhánh
cầu) dẫn đến lượng pheromone ở nhánh này nhiều hơn nhánh kia. Tức là xác suất
mà con kiến sau chọn đi vào đường có nồng độ pheromone cao hơn là lớn hơn.
Để minh chứng rõ hơn, trong lần thí nghiệm sau đó, cây cầu được thiết kế
với r = 2 tương đương với .

Hình 1.2. Thí nghiệm chiếc cầu đôi với 2 nhánh có kích thước không bằng nhau
Sau nhiều lần thử nghiệm, đàn kiến vẫn chọn nhánh cầu ngắn hơn. Một
con kiến xuất phát từ tổ đến mồi và khi tha mồi về tổ nó vẫn phải chọn con
đường có pheromone cao hơn. Chính lý do này nồng độ pheromone trên con
đường ngắn hơn ngày càng cao hơn và những con kiến sau sẽ có xác suất chọn
vào đường đó cao hơn. Tuy nhiên, cũng không hẳn toàn bộ đàn kiến đều đi vào
đường ngắn mà vẫn có những con kiến đi vào đường khác, các nhà khoa học cho
rằng đó có thể là một dạng khám phá đường đi mới .
Khi đàn kiến hội tụ vào một đường, tức là chúng đã tạo ra một kết nối
giữa tổ và mồi thông qua vệt pheromone. Một thí nghiệm mở rộng được đưa
ra để kiểm nghiệm việc tạo ra vệt pherome và sự bay hơi của chúng: Người ta
đưa một cây cầu chỉ có nhánh dài và nhánh ngắn được tháo ra, cây câu được
9

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

nối từ tổ kiến đến mồi. Sau khi đàn kiến đã di chuyển qua một khoảng thời
gian, người ta lắp thêm nhánh cầu ngắn nhưng việc chọn lựa con đường này
của kiến là rất thấp.


Hình 1.3. Thí nghiệm chiếu cầu đôi mở rộng
Khi khởi tạo thí nghiệm, chiếc cầu chỉ có 1 nhành dài, sau 30 phút, một tình
huống mới xuất hiện, một nhánh ngắn hơn được nối vào trên chiếc cầu.
Điều này có thể được giải thích bởi nồng độ chất pheromones ở nhánh
dài cao và làm chậm tốc độ bay hơi của chất pheromones. Thực tế, đa số các
con kiến đều chọn nhánh dài vì tại nhánh này nồng độ pheromones cao, và
hành vi “tự xúc tác” của chúng tiếp tục được củng cố trên nhánh dài, ngay cả
khi có sự xuất hiện của nhánh ngắn.
Quá trình bốc hơi của pheromones rất có lợi cho quá trình thăm dò,
khám phá ra những con đường mới, tuy nhiên quá trình bốc hơi này diễn ra
khá chậm: thời gian tồn tại của pheromones được so sánh với thời gian tiến
hành cuộc thử nghiệm, có nghĩa là chất pheromones bốc hơi quá chậm để cho
các con kiến có thể “quên” đi con đường không tối ưu mà chúng đã hội tụ để
có thể khám phá ra con đường mới ngắn hơn và có thể “học được”.

10

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

1.2.2. Mô hình ngẫu nhiên
Denebourg và các đồng nghiệp (Deneubourg et al., 1990, Goss et al.,
1989) đã đưa ra một mô hình xác suất thống kê mô tả chức năng của bầy kiến
mà họ đã quan sát được qua thí nghiệm chiếc cầu đôi [1][5][7]. Trong mô
hình này, cứ 1 giây sẽ có con kiến băng qua cầu (mỗi hướng có con kiến)
với tốc độ không đổi là cm/s và mỗi con sẽ tiết ra một lượng mùi
(pheromone) là 1 đơn vị. Cho biết trước độ dài của nhánh dài

và nhánh
ngắn


(đơn vị là cm) của cây cầu. một con kiến chọn nhánh ngắn sẽ di
chuyển trên nhánh này với thời gian (giây) trong đó một con kiến đi
nhánh dài sẽ tốn lượng thời gian là , với .
Ta định nghĩa xác suất là xác suất khi con kiến tới điểm cần phải
đưa ra quyết định nó sẽ chọn nhánh , trong đó và là
chỉ nhánh ngắn và nhánh dài trên cầu, tại thời điểm . Xác suất này là hàm của
của tổng lượng mùi (pheromone) , mà hàm này lại tỉ lệ với số kiến từng
đi qua nhánh này cho tới thời điểm .
Ví dụ, ta có thể xây dựng 1 hàm như sau:


(1.1)

Hàm này cùng với giá trị được rút ra từ thí nghiệm lần dấu (Deneubourg
et al., 1990), tương tự với , ta có .
Mô hình này dựa trên giả thiết rằng lượng mùi (pheromone) trên một
nhánh tỉ lệ với số lượng kiến đã từng đi qua nhánh đó trong quá khứ. Nói một
cách khác, ở đây không có sự xảy ra sự bay hơi mùi (điều này tương ứng với các
quan sát từ thí nghiệm rằng thời gian để cho các con kiến hội tụ về đường đi
ngắn nhất cũng tương đương với thời gian bay hơi của mùi (Goss et al., 1989;
Beckers, Deneubourg, & Goss, 1993) ) [15].

11

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Các phương trình vi phân mô tả quá trình phát triển của mô hình xác suất
thống kê này là như sau:



(1.2)


(1.3)
Phương trình (1. 2) có thể được giải thích như sau: tại thời điểm , sự thay đổi
lượng mùi (pheromone) trên nhánh tại điểm quyết định được tính bởi lượng
kiến đi qua (giả sử là hằng số), nhân với xác suất chọn nhánh ngắn hơn tại
điểm quyết định tại thời điểm và cộng với nhân với xác suất lựa chọn
nhánh ngắn hơn tại điểm quyết định tại thời điểm . Hằng số thể hiện khoảng
thời gian trễ cần thiết để một con kiến đi qua nhánh ngắn.
Phương trình (1.3) diễn giải điều tương tự với nhánh dài, ngoại trừ thời gian trễ
là .
Hệ động xác định nhờ vào các phương trình trên được mô phỏng nhờ
phương pháp Monte Carlo (Liu, 2001) [16]. Trong hình 8 là kết quả của 2 thí
nghiệm với 1000 lần thử cho mỗi thí nghiệm và trong đó tỉ lệ độ dài giữa 2
nhánh được đặt bằng và . Chúng ta có thể thấy khi 2 nhánh có cùng
độ dài ( ) các con kiến sẽ hội tụ về việc chỉ sử dụng một trong 2 nhánh với
xác suất là tương đương nhau qua cả 1000 thí nghiệm. Ngược lại, khi một nhánh
có độ dài gấp 2 lần nhánh còn lại thì trong hầu hết thí nghiệm, tất cả các con kiến
sẽ chọn nhánh ngắn hơn (Goss et al., 1989).
Trong mô hình này các con kiến tiết ra mùi cả trong lúc đi tìm đường lẫn
lúc quay về tổ. Điều này đã cho thấy đây là một hành vi cần thiết để đàn kiến có
thể hội tụ về đường đi ngắn hơn. Trên thực tế, nếu ta xem xét mô hình mà trong
đó kiến chỉ tiết mùi lúc tìm đường hoặc trên đường quay về tổ thì kết quả sẽ là
đàn kiến không thể chọn được ra được đường đi ngắn nhất.
12

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



1.4. Kết quả 1000 lần thử sử dụng Monte Carlo
Hình 1.4 mô tả kết quả thí nghiệm với 1000 lần thử Monte Carlo của mô hình
xác định bởi phương trình (1.1), (1.2) và (1.3). = 0.5 và chỉ tính từ con kiến
thứ 501 tới con kiến thứ 1000. Hình (a) là tỉ số và hình b là kết quả với
.
Người ta tiến hành quan sát trên kiến thật và đã khẳng định được rằng nếu
kiến chỉ tiết mùi trên đường về tổ thì chúng sẽ không thể nào tìm được đường đi
ngắn nhất giữa tổ của chúng và nguồn thức ăn (Deneubourg, 2002).
1.3. Phƣơng pháp giải Meta-heuristic
1.3.1. Tối ƣu tổ hợp
Bài toán tối ưu hóa tổ hợp liên quan tới việc tìm giá trị cho các biến số rời
rạc như lời giải tối ưu mà có lưu ý tới hàm mục tiêu (objective function) cho
trước. Bài toán có thể là bài toán tìm cực đại hoặc tìm cực tiểu .
Thông thường, một bài toán tối ưu hoá tổ hợp được mô tả dưới dạng bộ 3
(S, f, Ω). Trong đó:
o S là tập các lời giải ứng cử viên.
o f là hàm mục tiêu (hàm này gán giá trị f(s) cho mỗi lời giải ứng cử viên
s S).
o Ω là tập hợp các ràng buộc của bài toán.
13

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Các lời giải thuộc tập S
*
S thỏa mãn tập các ràng buộc Ω gọi là lời giải
khả thi.
Mục tiêu bài toán là tìm ra một lời giải khả thi tối ưu toàn cục s
*

. Với các
bài toán tối ưu hóa cực tiểu là tìm lời giải s
*
với giá nhỏ nhất, nghĩa là f(s
*
) ≤ f(s)
với mọi lời giải s S. Ngược lại bài toán tối ưu hóa cực đại là tìm lời giải s
*
với
giá lớn nhất, nghĩa là f(s
*
) ≥ f(s) với mọi lời giải s S.
Bài toán tối ưu hóa tổ hợp có thể chia 2 loại: Bài toán tĩnh và bài toán
động.
- Bài toán tối ƣu hóa tổ hợp tĩnh
Là bài toán tối ưu hóa tổ hợp trong đó cấu trúc bài toán cũng như giá trị
không thay đổi khi bài toán đang được giải quyết. Ví dụ như: bài toán người bán
hàng. Khi thực hiện thuật toán để giải bài toán thì vị trí các thành phố, khoảng
cách giữa các thành phố là không thay đổi.
- Bài toán tối ƣu hóa tổ hợp động
Là bài toán tối ưu hóa tổ hợp trong đó cấu trúc bài toán và giá trị có thể
thay đổi khi bài toán đang được giải quyết. Ví dụ là bài toán định hướng trong
mạng viễn thông, trong đó mô hình mạng và dung lượng yêu cầu trong mạng
luôn thay đổi.
1.3.2. Meta-heuristic
Meta-heuristic là một cách gọi chung cho các giải thuật heuristic trong
việc giải quyết các bài toán tổ hợp khó. Meta-heuristic bao gồm những chiến
lược khác nhau trong việc khám phá không gian tìm kiếm bằng cách sử dụng
những phương thức khác nhau và phải đạt được sự cân bằng giữa tính đa dạng
và chuyên sâu của không gian tìm kiếm. Một cài đặt thành công của

14

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

metaheuristic trong một bài toán tổ hợp phải cân bằng giữa sự khai thác được
kinh nghiệm thu thập được trong quá trình tìm kiếm để xác định được những
vùng với những lời giải có chất lượng cao gần tối ưu.
Hay nói cách khác: Meta-heuristic 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. 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.
Những ví dụ của meta-heuristic bao gồm giải thuật luyện kim SA -
Simulated Annealing (Cerny, 1985; Kirk-patrick, Gelatt, & Vecchi, 1983), tìm
kiếm Tabu (Glover, 1989, 1990; Glover & Laguna, 1997), Tìm kiếm địa
phương (Lourenςo, Martin, & Stützle, 2002), giải thuật đàn kiến (ACO -
Dorigo & Di Caro, 1999b; Stu¨tzle, 2002), giải thuật di truyền GA – Genetic
Algorithms (Lourenςo & Serre, 1989, 2002) [5],…. Trong đó, giải thuật đàn
kiến là meta-heuristic dùng chiến lược tìm kiếm đường đi của kiến trong thế
giới thực để giải bài toán tối ưu. Giải thuật SA xuất phát từ phương thức xác
suất và kỹ thuật luyện kim : bao gồm việc nung và điều khiển nhiệt độ làm
nguội các kim loại để đạt được trạng thái năng lượng nhỏ nhất. Trong khi đó,
giải thuật di truyền dựa trên ý tưởng từ cơ chế di truyền trong sinh học và tiến
trình tiến hóa trong cộng đồng các cá thể của một loài.
1.4. Một số thuật toán đàn kiến
1.4.1. Ant System (AS)
Thuật toán Ant System (AS) là thuật toán đầu tiên trong lớp các thuật toán
ACO được đề xuất bởi Dorigo trong luận án tiến sỹ của ông năm 1991 [2][3].
15

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


Quy tắc di chuyển
Kiến xây dựng đường đi bắt đầu từ một đỉnh được chọn lựa ngẫu nhiên.
Tại một đỉnh i bất kỳ, 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:
(1.4)
Trong đó:
: xác suất con kiến k lựa chọn cạnh (i,j)
: nồng độ vết mùi trên cạnh (i,j)
α : hệ số điều chỉnh ảnh hưởng của
: thông tin heuristic giúp đánh giá chính xác sự chọn lựa của con
kiến khi quyết định đi từ đỉnh i qua đỉnh j và được tính theo công thức:
(1.5)
: khoảng cách giữa đỉnh i và đỉnh j
β : hệ số điều chỉnh ảnh hưởng của
: tập các đỉnh láng giềng của i mà con kiến k chưa đi qua
Quy tắc cập nhật pheromone
Sau khi tất cả các con kiến xây dựng xong các lời giải của chúng, các vệt
mùi sẽ được cập nhật. Ứng với mỗi cạnh (i,j) nồng độ vệt mùi là thông số
heuristic trên cạnh đó.
16

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Ban đầu nồng độ mùi trên mỗi cạnh (i,j) được gán bằng một hằng số c,
hoặc xác định theo công thức :
(1.6)
Việc cập nhật pheromone được tiến hành như sau:
- Đầu tiên là sự bay hơi của pheromone theo công thức:
(1.7)

trong đó là tỉ lệ bay hơi mùi, tham số ρ được dùng để tránh sự
tích lũy không có giới hạn của các vết mùi và nó làm cho thuật toán “quên đi”
những quyết định không tốt ở bước trước. Nếu một cạnh không được chọn bởi
bất kì con kiến nào thì cường độ mùi của nó sẽ bị giảm theo hàm mũ của số vòng
lặp.
- Sau khi bay hơi mùi tất cả các con kiến sẽ tăng cường mùi cho những cạnh
mà chúng đã đi qua theo công thức:
(1.8)
trong đó là số lượng pheromone mà con kiến k gửi lại trên cạnh mà
nó đi qua, được xác định như sau:
(1.9)

C
k
là độ dài của tuyến đường T
k
được xây dựng bởi con kiến k. Với
công thức (1.8), tuyến đường của những con kiến nào mà càng tốt hơn thì nó
càng được tăng cường thêm nhiều mùi. Nói tóm lại thì những cạnh mà được
nhiều con kiến lựa chọn thì sẽ nhận được nhiều mùi hơn và có nhiều khả
17

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

năng hơn sẽ được lựa chọn bởi các con kiến trong các vòng lặp tiếp theo của
thuật toán.
Ƣu điểm của AS:
Việc tìm kiếm ngẫu nhiên dựa vào trên các thông tin heuristic làm cho
phép tìm kiếm linh hoạt và mềm dẻo trên không gian rộng hơn phương pháp
heuristic sẵn có, do đó cho ta lời giải tốt hơn và có thể tìm được lời giải tối

ưu.
Sự kết hợp với học tăng cường (reinforcement learning) trong đó những
lời giải tốt hơn sẽ được sự tăng cường hơn thông qua thông tin về cường độ vết
mùi cho phép ta từng bước thu hẹp không gian tìm kiếm và vẫn không loại bỏ
các lời giải tốt, do đó nâng cao chất lượng thuật toán.
Nhƣợc điểm của AS:
Hiệu suất của nó giảm đột ngột so với nhiều thuật toán metaheuristic khác
khi mà kích thước của bài toán tăng lên. Bởi vì khi số đỉnh của đồ thị lớn thì
cường độ vệt mùi trên những cạnh không thuộc lời giải tốt (hoặc ít được con
kiến lựa chọn) sẽ nhanh chóng giảm dần về 0, làm cho cơ hội khám phá hay tìm
kiếm ngẫu nhiên của thuật toán sẽ giảm mà đây là một trong những điểm mạnh
của các thuật toán mô phỏng tiến hóa tự nhiên nên thuật toán hệ kiến AS kém
hiệu quả.
1.4.2. Max-Min Ant System (MMAS)
MMAS và một số thuật toán khác như Elitist AS, Rank-Based AS là các
thuật toán có được hiệu suất cao hơn nhiều so với thuật toán AS nhờ vào những
thay đổi nhỏ trong thuật toán AS, đây được coi là các thuật toán kế thừa trực tiếp
từ thuật toán AS vì chúng về cơ bản là không khác gì nhiều so với AS [11].
18

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

MMAS đưa ra bốn thay đổi chính đối với AS:
Thứ nhất, nó chú trọng nhiều vào những tuyến đường tốt nhất được tìm
thấy: MMAS, chỉ cho phép con kiến tốt nhất hoặc là tại vòng lặp hiện tại
iteration-best , hoặc tính từ thời điểm bắt đầu best-so-far được phép cập nhật
mùi. Tuy nhiên việc này sẽ dẫn đến hiện tượng ứ đọng, tập trung (stagnation)
quá nhiều khi mà tất cả các con kiến đều cùng chọn một tuyến đường đi, do sự
tăng lên quá thừa của cường độ các vết mùi trên các cạnh tốt.
Để tránh hiện tượng trên một cải tiến thứ hai là MMAS giới hạn cường độ

mùi trong một khoảng cố định [τ
max
, τ
min
]. Tất cả vệt mùi trên các cạnh đều nằm
trong khoảng này.
Thứ ba, các vệt mùi được khởi tạo là cận trên của vệt mùi τ
max
, cùng với
việc một tỉ lệ bay hơi mùi nhỏ sẽ làm tăng khả năng khám phá cho các con kiến
ngay từ khi bắt đầu.
Cuối cùng, trong thuật toán MMAS các vệt mùi sẽ được khởi tạo lại nếu
như hệ thống rơi vào trạng thái stagnation, hoặc không thể cải thiện được tuyến
đường đã tạo ra sau một số vòng lặp liên tiếp.
Cập nhật mùi
Cũng như thuật toán AS, sau khi tất cả các con kiến xây dựng xong lời
giải của chúng tất cả các vết mùi đều bay hơi một lượng phụ thuộc vào tham số
bay hơi mùi (xem công thức 1.7).
Sau đó cường độ mùi trên mỗi cạnh có con kiến tốt nhất đi qua được cập
nhật một lượng theo công thức :
(1.10)
19

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Với , với hoặc là độ dài của tuyến đường tốt nhất
tại vòng lặp hiện tại, hoặc là độ dài của tuyến đường tốt nhất từ khi bắt đầu thuật
toán.
Khi ta sử dụng luật update best-so-far thì quá trình tìm kiếm sẽ tập trung
nhanh chóng vào tuyến đường tốt nhất từ đầu đến hiện tại. Còn khi sử dụng

update iteration-best thì số lượng các cạnh được tăng cường mùi là nhiều hơn và
sự tìm kiếm cũng phân tán hơn.
Giới hạn vết mùi
MMAS sử dụng hai cận trên (τ
max
) và cận dưới (τ
min
) để khống chế nồng độ
pheromone trên mỗi cạnh với mục đích tránh cho thuật toán khỏi hiện tượng tắc
nghẽn tìm kiếm. Cụ thể hơn, giới hạn của vệt mùi sẽ làm cho xác suất p
ij
của việc
chọn thành phố j khi kiến ở thành phố i bị giới hạn trong khoảng [p
min
, p
max
].
Nhược điểm của thuật toán này là sẽ tập trung tìm kiếm vào các cạnh
thuộc lời giải tốt nhất tìm được, vì vậy hạn chế khả năng khám phá nếu τ
min

chọn bé. Ngoài ra khi chọn τ
min
bé thì gần như các thông tin heuristic được
tận dụng triệt để, còn các cường độ mùi sẽ bị giảm nhanh và không có tác
dụng nhiều. Còn nếu chọn τ
min
lớn thì thuật toán sẽ gần với tìm kiếm ngẫu
nhiên và ít phụ thuộc vào các thông tin heuristic đồng thời khả năng học tăng
cường cũng giảm theo.

1.4.3. Ant Colony System (ACS)
Thuật toán ACS là thuật toán mở rộng của AS, nó đạt được hiệu suất cao
hơn bằng cách đưa ra các kỹ thuật hoàn toàn mới mà ý tưởng của nó không có
trong thuật toán AS cơ bản.

20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Thuật toán ACS khác với AS ở ba điểm chính.
1. ACS lợi dụng kinh nghiệm tích lũy được từ những con kiến hơn
nhiều so với thuật toán AS thông qua việc dùng một luật lựa chọn đỉnh linh hoạt
hơn.
2. Sự tăng cường mùi và bay hơi mùi chỉ áp dụng trên những cạnh
thuộc tuyến đường đi tốt nhất từ trước tới hiện tại.
3. Mỗi khi một con kiến sử dụng một cạnh (i, j) để di chuyển từ đỉnh i
sang j, nó sẽ lấy đi một ít pheromine từ cạnh đó để tăng khả năng khám phá
đường đi. Sau đây là chi tiết của các cải tiến.
Quy tắc di chuyển
Giả sử con kiến k đang ở đỉnh i, nó sẽ chọn đỉnh j tiếp theo nhờ quy tắc
như sau:
- Cho q
0
là một hằng số cho trước.
- q là giá trị ngẫu nhiên phân phối đều trong đoạn [0,1].
- Nếu q kiến k chọn đỉnh 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 theo công thức:
(1.11)
- Nếu q kiến k sẽ chọn đỉnh j chưa được đi qua trong tập láng giếng
của i theo quy luật phân bổ xác xuất được xác định theo công thức 1.4.

Như vậy với xác suất q
0
các con kiến sẽ chọn đường đi tốt nhất có thể theo
chỉ dẫn của các thông tin heuristic và sự tích lũy pheromone, trong khi với xác
suất 1-q
0
các con kiến sẽ thiên về hướng khám phá bằng công thức phân phối xác
suất. Sự điều chỉnh tham số q
0
cho phép điều chỉnh mức độ khám phá và lựa
21

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

chọn hoặc tập trung tìm kiếm xung quanh tuyến đường tốt nhất tính từ đầu (best-
so-far solution) hoặc khám phá các tuyến đường khác.
Quy tắc cập nhật pheromone
- Cập nhật mùi toàn cục:
Một con kiến có đường đi tốt nhất sau mỗi lần lặp thì được phép cập nhật
thông tin pheromone. Việc cập nhật được thực hiện theo công thức sau:
(1.12)
o là lượng pheromone đặt lên cạnh (i,j) mà kiến đi qua.
o là độ dài đường đi tốt nhất của con kiến thứ k sau khi hoàn thành
đường đi, tức là bằng tổng các cung thuộc đường đi tốt nhất mà kiến đã
đi qua.
- Cập nhật mùi cục bộ
Đây là sự cải tiến thêm trong quá trình update mùi của thuật toán
ACS là trong khi xây dựng lời giải của mình. Mỗi con kiến sẽ cập nhật mùi ngay
lập tức cho cạnh (i,j) mà nó vừa đi qua theo công thức :
(1.13)

o : là tham số bay hơi nằm trong khoảng (0,1)
o
o : Là số đỉnh hay số thành phố
o : chiều dàu hành trình cho bởi phương pháp tìm kiếm gần
nhất.

22

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

1.5. Tổng kết chƣơng 1
Thuật toán đàn kiến là dạng thuật toán tối ưu bày đàn, nó được nghiên
cứu, ứng dụng trong rất nhiều lĩnh vực hiện nay. Ứng dụng của thuật toán này
phổ biến được chia thành hai lớp: Lớp tối ưu tổ hợp cho các bài toán NP-Khó
cho công nghệ cũ thường ít đích đến. Lớp ứng dụng thứ hai là tìm đường đi
ngắn nhất, ở đó khoảng cách được thay đổi ở thời gian thực thi bài toán.
Nội dung trong chương này, chủ yếu trình bày một số vấn đề liên quan
đến lịch sử phát triển của thuật toán, mô tả một cách chi tiết các thí nghiệm và
kết quả đạt được của thuật toán ACO. Ngoài ra, nội dung còn thể hiện một số
thuật toán đàn kiến điển hình: cách di chuyển của kiến trong thuật toán và cập
nhật pherome, bay hơi phernomone, Trong chương sau chúng ta sẽ tìm
hiểu về thuật toán tìm kiếm tối ưu để có cách nhìn toàn diện hơn về cách mà
đàn kiến tối ưu đường đi của chúng.
23

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

CHƢƠNG 2 : MỘT SỐ CHIẾN LƢỢC TÌM KIẾM TỐI ƢU
2.1. Giới thiệu chung
Vấn đề tìm kiếm tối ưu, có thể phát biểu như sau. Mỗi đối tượng x trong

không gian tìm kiếm được gắn với một số đo giá trị của đối tượng đó f(x), mục
tiêu của ta là tìm đối tượng có giá trị f(x) lớn nhất (hoặc nhỏ nhất) trong không
gian tìm kiếm. Hàm f(x) được gọi là hàm mục tiêu. Trong chương này chúng ta
sẽ nghiên cứu các thuật toán tìm kiếm sau:
Các kỹ thuật tìm đường đi ngắn nhất trong không gian trạng thái: Thuật
toán A*, thuật toán nhánh và cận.
Các kỹ thuật tìm kiếm đối tượng tốt nhất: Tìm kiếm leo đồi, tìm kiếm
gradient.
Tìm kiếm tối ưu bầy đàn: giải thuật di truyền, giải thuật đàn kiến.
2.2. Chiến lƣợc tìm đƣờng đi ngắn nhất
2.2.1. Thuật toán A*
Thuật toán A* là thuật toán sử dụng kỹ thuật tìm kiếm tốt nhất đầu tiên
với hàm đánh giá f(u). Thuật toán này là phương pháp mở rộng của thuật toán
AKT(Algorithm for Knowlegeable Tree search) áp dụng đối với đồ thị. A* là
một giải thuật linh động, tổng quát, trong đó bao gồm cả tìm kiếm chiều rộng,
chiều sâu và nhiều hàm đánh giá heuristic khác [4].
Người ta đánh giá nó như một thuật toán tiêu biểu trong heuristic, song nó
vẫn mắc phải một khuyết điểm, giống như các thuật toán tìm kiếm theo chiều
rộng đó là bộ nhớ để lưu lại những trạng thái đã đi qua. Đối với những không
gian trạng thái nhỏ thì không phải quan tâm nhưng đối với những không gian tìm
kiếm lớn thì là cả vấn đề nan giải.
24

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Xét đồ thị không gian trạng thái sau :

Hình 2.1. Đồ thị không gian trạng thái
Trong đó đỉnh A là trạng thái ban đầu, đỉnh H là trạng thái kết thúc, các số
ghi cạnh các cung là độ đo đường đi với giá trị của hàm h là: h(A) = 14; h(B) =

15; h(C) = 7; h(D) = 8; h(E) = 9; h(F) = 2; h(G) = 5; h(H) = 1.
Đầu tiên, ta xét đỉnh A có các con là B, C, D, giá trị hàm f tại các đỉnh này

g(B) = 8, f(B) = g(B) + h(B) = 8+15 = 23.
g(C) = 5, f(C) = 12
g(D) = 12, f(D) = 20
Trong trường hợp này đỉnh tốt nhất là đỉnh C vì có hàm đánh giá f nhỏ
nhất. Tiếp tục phát triển đỉnh này ta được các con của nó là E, D. ta có :
g(E) = g(C) + độ dài cung CE = 5 + 8 = 13, f(E) = 13 + 9 = 22.
g(D) = 5 + 5 = 10, f(D) = 10 + 8 = 18
25

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Đỉnh D là đỉnh tiếp theo có f nhỏ nhất và được chọn để phát triển theo hai
con của nó là F, G. Tiếp tục như vậy cho đến khi tìm được điểm kết thúc là H
với độ đo đường đi ngắn nhất với g(H) = 19.
Tư tưởng giải thuật của thuật toán
- Input: đồ thị G liên thông, có hướng.
- Output : đường đi ngắn nhất
procedure A*;
begin
1. Khởi tạo danh sách L chỉ chứa trạng thái ban đầu;
2. lặp
2.1 if L rỗng then
{thông báo thất bại; stop};
2.2 Loại trạng thái u ở đầu danh sách L;
2.3 if u là trạng thái kết thúc then
if g(u) y then {y g(y); Quay lại 2.1};
2.4 if f(u) > y then Quay lại 2.1;

2.5 for mọi trạng thái v kề u do
{g(v) g(u) + k(u,v);
f(v) g(v) + h(v);
{ đưa v vào danh sách L
1
};
2.6 Sắp xếp L
1
theo thứ tự tăng của hàm f;
end;
Chúng ta đưa ra một số nhận xét về thuật toán A* [4]:
Người ta chứng minh được rằng, nếu hàm đánh giá h(u) là đánh giá thấp
nhất (trường hợp đặc biệt, h(u) = 0 với mọi trạng thái u) thì thuật toán A* là
thuật toán tối ưu, tức là nghiệm mà nó tìm ra là nghiệm tối ưu. Ngoài ra, nếu độ
26

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

dài của các cung không nhỏ hơn một số dương nào đó thì thuật toán A* là thuật
toán đầy đủ theo nghĩa rằng, nó luôn dừng và tìm ra nghiệm.
Trong trường hợp hàm đánh giá h(u) = 0 với mọi u, thuật toán A*
chính là thuật toán tìm kiếm tốt nhất đầu tiên với hàm đánh giá g(u)
mà ta nói đến.
Thuật toán A* được chứng tỏ là thuật toán hiệu quả nhất trong số
các thuật toán đầy đủ và tối ưu cho vấn đề tìm kiếm đường đi ngắn
nhất .
2.2.2. Thuật toán nhánh và cận
Thuật toán nhánh và cận là thuật toán sử dụng tìm kiếm leo đồi với hàm
đánh giá f(u) [4].
Trong thuật toán này, tại mỗi bước khi phát triển trạng thái u, thì ta sẽ

chọn trạng thái tốt nhất v (f(v) nhỏ nhất) trong số các trạng thái kề u đề phát triển
ở bước sau. Đi xuống cho tới khi gặp trạng thái v là đích, hoặc gặp trạng thái v
không có đỉnh kề, hoặc gặp trạng thái v mà f(v) lớn hơn độ dài đường đi tối ưu
tạm thời, tức là đường đi đầy đủ ngắn nhất trong số các đường đi đầy đủ mà ta đã
tìm ra. Trong các trường hợp này, ta không phát triển đỉnh v nữa, hay nói cách
khác, ta cất đi các nhánh cây xuất phát từ v, và quay lên cha của v đề tiếp tục đi
xuống trạng thái tốt nhất trong các trạng thái còn lại chưa được phát triển [4].
Ví dụ: Xét lại không gian trạng thái trong ví dụ trên. Đỉnh A có 3 con là B,
C, D, f(B) = 23, f(C) = 12, f(D) = 20. Đỉnh C là trạng thái tốt nhất, phát triển C,
ta nhận được 2 con là D, E với f(D) = 18, f(E) = 22. Đi xuống phát triển D, sinh
ra các đỉnh F và G, f(F) = 16, f(G) = 18. Đi theo đỉnh F xuống H, vì gặp H là
đích nên ta tìm được đường đi tối ưu tạm thời là H với độ dài 19. Từ H quay lên
F rồi quay lên D, đi xuống G f(G) = 18 nhỏ hơn độ dài đường đi tối ưu tạm thời,

×