Thuật toán AS

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 45 - 47)

Hai bước cơ bản trong thuật toán AS là xây dựng lời giải của kiến và cập nhật mùi. Trong AS, dựa vào lời giải tìm được dựa trên thuật toán heuristic (chẳng hạn thuật toán tham ăn) khi xác định vết mùi khởi tạo. Giá trị vết mùi khởi tạo cho tất cả các cung là: Ti,j = T0 = nn

m

c , trong đó m là số

kiến, cnn là độ dài lời giải tìm được của thuật toán heuristic [1]. Lý do lựa chọn này là nếu khởi tạo vết mùi T0 quá thấp thì quá trình tìm kiếm có khuynh hướng hội tụ về hành trình đầu tiên tìm được, dẫn đến việc tìm kiếm sa lầy vào vùng này, làm cho chất lượng lời giải không tốt. Nếu khởi tạo vết mùi quá cao thì thường phải mất nhiều vòng lặp để bay hơi mùi trên các cung không tốt và cập nhật bổ sung thêm mùi cho các cung tốt mới để có thể hướng việc tìm kiếm đến vùng không gian có chất lượng tốt [1].

(1) Xây dựng lời giải: Trong thuật toán AS, m kiến đồng thời xây dựng

lời giải. Ban đầu, các con kiến được đặt tại đỉnh xuất phát s nào đó. Ở mỗi

bước tiếp theo, kiến sử dụng xác suất theo phương thức tỉ lệ ngẫu nhiên để chọn đỉnh tiếp theo. Cụ thể, khi kiến k đang ở đỉnh i, nó sẽ lựa chọn đỉnh v

nếu v là đỉnh chưa đi qua và có cung nối từ đỉnh i tới v với xác suất là [5]: p(v) = [(T(i, v))x (h(i,v))y ]/[   x y (i, p) (i, ) T h k i p p V ] (2.1) Theo quy tắc ngẫu nhiên này, xác suất lựa chọn cung (i, v) tăng theo giá trị thông tin mùi T(i, v) và thông tin heuristic h(i,v). Vai trò của hai tham số x và y như sau: Nếu x = 0 thì thành phố gần nhất sẽ được ưu tiên lựa chọn, khi đó thuật toán tương đương với thuật toán chọn ngẫu nhiên theo ưu tiên tỉ lệ nghịch đảo độ dài cung, không có học tăng cường. Nếu y = 0 thì chỉ có thông tin học tăng cường biểu thị qua vết mùi được sử dụng, không có thông tin

heuristic. Nếu x lớn, thuật toán nhanh chóng bị tắc nghẽn (tất cả kiến sẽ lựa

chọn cùng một hành trình) và lời giải tìm được hội tụ về lời giải tối ưu cục bộ [1].

Khi cài đặt kiến k sẽ được cấp cho một bộ nhớ Mk dùng để chứa thông tin về các thành phố đã đi qua, các thành phố lân cận chưa đi qua, thông tin này còn cho phép tính được độ dài hành trình của kiến k, tìm ra các cung trên hành trình,...

Có hai cách để thực hiện xây dựng lời giải là xây dựng song song và xây dựng tuần tự. Theo cách xây dựng song song, tại mỗi bước tất cả m kiến sẽ di chuyển sang đỉnh tiếp theo. Trong cách xây dựng tuần tự, lần lượt từng kiến xây dựng lời giải (kiến này xây dựng xong rồi mới đến kiến tiếp theo). Trong AS, cả hai cách xây dựng này là như nhau, không có ảnh hưởng gì đến kết quả. Điều này sẽ không đúng với thuật toán ACS.

(2) Cập nhật mùi : Sau khi tất cả các kiến xây dựng xong hành trình,

vết mùi sẽ được cập nhật như sau: Trước tiên, tất cả các cung sẽ bị bay hơi theo một tỉ lệ không đổi, sau đó các cung có kiến đi qua sẽ được thêm một lượng mùi.

Việc bay hơi mùi trên tất cả các cung được thực hiện theo công thức sau:

T(u,v) := (1 - p)T(u,v), trong đó p là hệ số bay hơi, 0 < p  1.Tham số p

được dùng để tránh sự tích tụ quá nhiều mùi trên một cung và giúp kiến có khả năng “quên” đi các quyết định sai lầm trước đó [5].

Sau khi tính lượng mùi bay hơi, lượng mùi kiến k sẽ để lại trên cung mà nó đi qua được tính theo công thức:

T(u,v) := T(u,v) + Tk

uv, trong đó Tk

uv = 1k

c với ck là độ dài đường đi

nhiều kiến sử dụng sẽ được bổ sung mùi nhiều hơn, do đó trong các bước lặp sau sẽ được nhiều kiến lựa chọn hơn.

Khi kích thước bài toán tăng, thuật toán AS tuy có hiệu quả hơn các thuật toán metaheuritistic khác tuy nhiên còn một số điểm mà AS chưa thực sự hiệu quả, ví dụ như khi tính lượng mùi bay hơi sau mỗi lần lặp thuật toán AS phải duyệt để tính cho tất cả các cung, việc làm này mất rất nhiều phép tính toán và nhiều khi đó là những phép tính toán vô ích vì có nhiều cung không có kiến nào đi qua trong suốt cả vòng lặp. Vì vậy trong mục 2.3.3 tiếp theo chúng ta sẽ nghiên cứu một thuật toán ACO khác hiệu quả hơn đó là 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 45 - 47)

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

(74 trang)