Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ĐẠ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
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
ĐẠ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
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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”
Trang 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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]
Trang 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Dưới đây là một số thuật toán ACO theo trình tự về thời gian xuất hiện:
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)
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à
Trang 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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”
Trang 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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]
Trang 10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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]
Trang 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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:
Trang 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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:
- 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ả
Trang 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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]
Trang 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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)
Trang 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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, pmax]
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
Trang 19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
- 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
Trang 20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
chọn hoặc tập trung tìm kiếm xung quanh tuyến đường tốt nhất tính từ đầu so-far solution) hoặc khám phá các tuyến đường khác
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 đã
Trang 21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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
Trang 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
Đỉ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
{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};
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 độ
Trang 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
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)
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,
Trang 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/
phát triển G ta được B với độ dài đường đi là 19 Độ dài đường đi này không nhỏ hơn độ dài đường đi tối ưu trước đó nên tạm thời độ dài đường đi tối ưu không đổi.Từ D lại quay lên C, xuống E f(E) = 22 lớn hơn đường đi tối ưu tạm thời từ
E quay lên C, quay lên A, xuống B với f(B) = 23, loại đỉnh B Tiếp tục quay lên
A, xuống D = 12 + 8 = 20 lớn hơn đường đi tối ưu tạm thời, loại đỉnh D Vậy không còn đỉnh nào để xét nữa nên đường đi tối ưu có độ dài là 19
Thuật toán nhánh và cận sẽ được biểu diễn bởi thủ tục Branch and Bound Trong thủ tục này, biến cost được dùng để lưu độ dài đường đi ngắn nhất Giá trị ban đầu của cost là số đủ lớn, hoặc độ dài của một đường đi đầy
đủ mà ta đã biết [4] Tư tưởng thuật toán như sau:
Input : Đồ thị G liên thông, có hướng
Output : Đường đi ngắn nhất
procedure Branch_and_Bound;
begin
1 Khởi tạo danh sách L chỉ chứa trạng thái ban đầu;
Gán giá trị ban đầu cho cost;
2 lặp
2.1 if L rỗng then 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);