AS (Ant System) 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]. AS và nhiều thuật toán ACO cải tiến từ AS đều chọn TSP làm bài toán thực nghiệm đầu tiên.
* Các bƣớc thuật toán AS:
Bƣớc 1: Khởi tạo các tham số
+ Xây dựng đồ thị gồm n đỉnh, số lƣợng kiến m, các tham số: α, β, . + Mỗi cạnh (i, j) đƣợc gắn một vết mùi τij.
+ Thông tin heuristic: ηij là nghịch đảo khoảng cách giữa hai thành phố (i, j); với ηij = 1/ dij.
Bƣớc 2: Xây dựng lời giải
Có m con kiến nhân tạo đƣợc đặt khởi tạo ngẫu nhiên tại các đỉnh, và tại mỗi bƣớc lặp của thuật toán, mỗi con kiến sẽ xây dựng lời giải riêng của nó bằng cách chọn một đỉnh mà chúng chƣa thăm để đi.
Ban đầu các vết mùi đƣợc khởi tạo bởi giá trị τ0, mỗi con kiến đƣợc đặt ngẫu nhiên tại một đỉnh xuất phát và lần lƣợt đi thăm các đỉnh còn lại để xây dựng đƣờng đi với theo quy tắc nhƣ sau (gọi là quy tắc random proportional), con kiến thứ k đang ở đỉnh i sẽ chọn đỉnh j tiếp theo với xác suất:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ij ij k ij il ( ) ( ) ( ) 0 k i il l N t p t t (2.1) Trong đó:
- τij(t) là nồng độ mùi pheromone ở thời điểm t. - ηij là thông tin heuristic.
- Hai tham số α và β là hai tham số xác định sự ảnh hƣởng của vết mùi và thông tin heuristic: nếu α = 0 các thành phố gần nhất có nhiều khả năng đƣợc chọn, thuật toán trở nên giống với thuật toán heuristic thông thƣờng, nếu
β = 0 chỉ có thông tin về cƣờng độ vết mùi đƣợc sử dụng mà không hề có bất kỳ một thông tin heuristic nào làm cho kết quả tìm kiếm đƣợc nghèo nàn và bài toán dễ rơi vào trƣờng hợp cực tiểu địa phƣơng.
- Ni k
là các láng giềng có thể đi của con kiến k khi nó ở đỉnh i, đó là tập các đỉnh chƣa đƣợc con kiến thứ k đi qua (xác suất chọn một đỉnh nằm ngoài
Nik là 0). Với luật xác suất này, thì xác suất để chọn một cạnh (i, j) tăng lên khi mà mùi τij và thông tin heuristic ηij tƣơng ứng của cạnh đó tăng.
- Mỗi con kiến có một bộ nhớ Mk chứa danh sách các thành phố mà chúng đã đến thăm theo thứ tự. Nó đƣợc dùng để tính toán tập các láng giềng chƣa thăm Nik trong công thức xác suất ở trên. Mk cũng cho phép các con kiến tính toán quãng đƣờng mà nó đã đi đƣợc và giúp kiến xác định đƣợc cạnh nó đi qua để cập nhật mùi.
Bƣớc 3: Cập nhật mùi
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. Đây là hình thức cập nhật offline. Đầu tiên tất cả các cạnh sẽ bị mất đi một lƣợng mùi (do bị bay hơi), sau đó những cạnh mà có các con kiến đi qua sẽ đƣợc tăng cƣờng thêm một lƣợng mùi.
Công thức bay hơi mùi:
nếu j Ni k
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ij(t + 1) = (1 - )* ij(t) (i,j) L (2.2) Trong đó 0 < ≤ 1 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:
k ij ij ij 1 ( 1) m k t , (i,j) L (2.3) trong đó k
ij 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:
k ij 1 0 k C (2.4)
Ck là độ dài của tuyến đƣờng Tk đƣợc xây dựng bởi con kiến k. Với công thức (2.4), 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ả 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.
* Thuật toán AS:
Input: Đồ thị G = <C, L>
Output: Giải pháp tối ƣu S*
Procedure ASMetaheuristic()
// Khởi tạo
Các tham số: số vòng lặp, α, β, , số lƣợng kiến m, số đỉnh n; nếu cạnh (i,j) Tk
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ τij = τ0; //Nồng độ vết mùi trên cạnh (i,j)
S* = ; //Lời giải tối ưu, ban đầu rỗng
While (!Điều kiện dừng) do
//Giải pháp xây dựng đàn kiến
For (Duyệt qua toàn bộ đàn kiến) do
// Xây dựng lời giải cho kiến thứ i
Đặt mỗi con kiến ngẫu nhiên vào một đỉnh;
While (Duyệt danh sách đỉnh láng giềng) do
Chọn đỉnh kế tiếp theo công thức (2.1);
Bổ sung đỉnh đƣợc chọn vào tập đƣờng đi của kiến;
End;//While
Tính chiều dài đƣờng đi của kiến;
End;//For
// Cập nhật mùi gồm: Quá trình bay hơi và Tăng cường mùi
τij = (1 - ) * τij; //Bay hơi
So sánh phƣơng án để cập nhật lời giải tối ƣu S*;
Tăng cƣờng mùi trên các cạnh kiến đi qua theo công thức (2.3);
End; //While End;
Ƣ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.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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ả.