Thuật toán ACS

Một phần của tài liệu (LUẬN văn THẠC sĩ) thuật toán dijkstra fibonacci heap, thuật toán ACO tìm đường đi tối ưu và ứng dụng (Trang 47 - 49)

Thuật toán ACS (Ant Colony System) do Dorigo và Gambardella đề xuất năm 1997 [5], ACS khác với AS ở ba điểm chính sau đây:

Thứ nhất, ACS khai thác kinh nghiệm tìm kiếm mạnh hơn trong AS,

thông qua việc sử dụng quy tắc lựa chọn dựa trên thông tin tích lũy nhiều hơn.

Thứ hai, trong ACS cơ chế bay hơi mùi và để lại mùi chỉ trên các cung

thuộc vào lời giải tốt nhất đến lúc đó (Global-best: G-best).

Thứ ba, tăng cường việc thăm dò đường mới. Mỗi lần kiến đi qua cung

nào thì vết mùi sẽ bị giảm trên cung đó. Sau đây chúng ta sẽ tìm hiểu chi tiết những điểm khác đã nêu.

Xây dựng lời giải

Trong thuật toán ACS, kiến k đang đứng ở đỉnh i sẽ lựa chọn di chuyển đến đỉnh v theo qui tắc:

v = argmaxlk i

V {T(i,l)[h(i,l)]y} nếu q q0, ngược lại v = j (2.2) trong đó q là một biến ngẫu nhiên, phân bố đều trong [0, 1], q0 là một tham số

cho trước (0  q0 1) và j là một biến ngẫu nhiên được lựa chọn theo phân bố

xác suất như trong (2.1) với x = 1[5].

Ta có thể hiểu công thức (2.2) là: Nếu q  q0, kiến k sẽ lựa chọn đi đến đỉnh v = l sao cho T(i,l)[h(i,l)]y là lớn nhất (xác suất này là q0), trường hợp này ta nói kiến khai thác thông tin đã học. Nếu q > q0, kiến k sẽ chọn đỉnh v = j như trong AS xác xuất cách chọn này là (1 - q0).

Điều chỉnh tham số q0 sẽ cho phép thay đổi mức độ khai thác và lựa chọn tập trung tìm kiếm quanh lời giải G-best hoặc khám phá các hành trình khác.

Cập nhật mùi toàn cục

Trong ACS chỉ có duy nhất một kiến tìm được lời giải G-best được phép để lại mùi sau mỗi lần lặp. Cụ thể, với các cung (i,j) thuộc lời giải G-

best được cập nhật như sau:

T(i,j) := (1- p)T(i,j) + p Tijbest (2.3), trong đó Tijbest = es

1

G b t

C  , CG-best là độ dài lời giải G-best [5].

Cần chú ý là trong ACS vết mùi được cập nhật bao gồm cả bay hơi và để lại mùi và chỉ cho các cung thuộc TG-best (không phải cho tất cả các cung như trong AS). Tham số p là tham số bay hơi. Kết quả của việc cập nhật này là vết mùi được thay đổi theo trung bình trọng số của vết mùi cũ và lượng mùi được để lại. Trong thực nghiệm, người ta cũng còn sử dụng lời giải tốt nhất trong bước lặp hiện tại (Iteration-best: I-best) để cập nhật mùi [1].

Cập nhật mùi cục bộ

Ngoài việc cập nhật mùi toàn cục, ACS còn sử dụng cơ chế cập nhật mùi cục bộ. Việc cập nhật mùi cục bộ được thực hiện ngay khi cung (i,j) có

T(i,j) := (1 - ) T(i,j) + T0 (2.4) trong đó  (0<<1) và T0là hai tham số. Giá trị T0 chính là giá trị khởi tạo mùi cho tất cả các cung. Theo thực nghiệm giá trị tốt cho  bằng 0.1, giá trị là T0

nC1nn , trong đó n là số thành phố, Cnn là độ dài hành trình theo thuật toán

heuristic tham lam [5]. Hiệu quả của việc cập nhật mùi cục bộ thể hiện ở chỗ mỗi khi kiến đi qua cung (i,j) thì vết mùi trên cung (i,j) bị giảm, làm cho kiến ít lựa chọn lại cung này. Nói cách khác, việc cập nhật mùi cục bộ làm tăng khả năng khám phá các cung chưa được sử dụng. Trên thực tế, hiệu quả của cách cập nhật mùi này chính là ở chỗ không bị tắc nghẽn (nghĩa là, các kiến không bị dồn vào một đường đi nào) như trong AS.

Đối với AS, kiến xây dựng hành trình song song hay tuần tự thì tác động đều như nhau còn trong ACS, mỗi cách xây dựng hành trình có tác động khác nhau đến những lần lặp sau vì ACS sử dụng cơ chế cập nhật mùi cục bộ. Trong thực nghiệm, thuật toán ACS yêu cầu mọi kiến đồng thời xây dựng hành trình, mặc dù không có kết quả thực nghiệm chứng tỏ sự lựa chọn nào tốt hơn [1].

Một phần của tài liệu (LUẬN văn THẠC sĩ) thuật toán dijkstra fibonacci heap, thuật toán ACO tìm đường đi tối ưu và ứng dụng (Trang 47 - 49)

Tải bản đầy đủ (PDF)

(74 trang)