Thuật toán ACS

Một phần của tài liệu Thuật toán Aco và ứng dụng (Trang 34 - 38)

Thuật toán ACS (Ant Colony System) là thuật toán mở rộng của AS. ACS đạt đƣợc hiệu suất cao bằng cách đƣa hẳn 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.

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.

* Các bƣớc giải bằng thuật toán ACS:

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

Trong ACS giả sử con kiến k đang ở đỉnh i, nó sẽ chọn đỉnh j tiếp theo nhờ quy tắc sau (pseudorandom proportional) với công thức:

k i ij ij l N argmax j J (2.6) nếu q p0 ngƣợc lại

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

trong đó q là giá trị ngẫu nhiên phân phối đều trong đoạn [0, 1] và q0(0 q0 1) là một tham số. J là đỉnh ngẫu nhiên dựa vào phân phối xác suất theo công thức (2.1) với α = 1.

Nhƣ vậy với xác suất q0 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-q0 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ố q0 cho phép điều chỉnh mức độ khám phá và lựa 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.

Bƣớc 3: Cập nhật mùi

- Cập nhật mùi toàn cục (global pheromone trail update)

Cập nhật mùi toàn cục: chỉ cập nhật sau khi các con kiến đã xây dựng xong lời giải của mình và chỉ cho phép một con kiến tốt nhất (tính đến thời điểm hiện tại) đƣợc phép cập nhật mùi sau mỗi vòng lặp. Công thức:

bs

ij (1 ) ij ij (2.7)

với ijbs 1/Cbs, với Cbs là độ dài của tuyến đƣờng đi tốt nhất tính đến thời điểm hiện tại.

Một điểm quan trọng trong quá trình cập nhật mùi của ACS là cả quá trình bay hơi và tăng cƣờng mùi đều chỉ thực hiện trên những cạnh thuộc đƣờng đi tốt nhất (best-so-far tour) không phải trên tất cả các cạnh nhƣ AS. Điều này là quan trọng vì độ phức tạp tính toán của cập nhật mùi tại mỗi vòng lặp giảm từ O(n2) xuống O(n) (với n là số đỉnh của bài toán). Tham số ρ ở đây vẫn là tham số bay hơi pheromone nhƣ trên.

Trong thực nghiệm ngƣời ta đã cân nhắc việc sử dụng đƣờng đi tốt nhất tại vòng lặp hiện tại (iteration-best) để cập nhật mùi. Mặc dù trong những thí nghiệm với bài toán TSP có kích thƣớc nhỏ thì sự khác biệt giữa việc sử dụng

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

hai cách cập nhật mùi trên là không nhiều, nhƣng với những bài toán có kích thƣớc lớn khoảng hơn 100 thành phố trở lên thì việc sử dụng tuyến đƣờng

best-so-far cho kết quả tốt hơn nhiều.

- Cập nhật mùi cục bộ (local pheromone trail update)

Một sự cải tiến thêm trong quá trình cập nhật 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:

ij (1 - ) ij + 0 (2.8)

(Công thức 2.8 gọi là công thức cập nhật mùi cục bộ)

Với (0< <1)0 là hai tham số, 0 là giá trị khởi tạo của pheromone. Nhiều thực nghiệm đã tiến hành cho thấy 0.1 là giá trị tốt cho ,

còn một giá trị tốt cho 01/nCnn với n là số lƣợng các thành phố và Cnn là độ dài của một nearest- neighbor tour. Quá trình cập nhật mùi cục bộ làm cho lƣợng mùi trên mỗi cạnh giảm đi một ít sau mỗi lẫn con kiến đi qua một cạnh, làm cho kiến ít bị thu hút bởi các cạnh đó hơn.

Hay nói cách khác cập nhật mùi cục bộ làm tăng khả năng khám phá các đƣờng đi chƣa đƣợc đến thăm, và trong thực nghiệm việc này không gây ra hiện tƣợng ứ đọng các vết mùi (stagnation) nhƣ trong thuật toán MMAS [4].

* Thuật toán ACS:

Input: Đồ thị G = <C, L>

Output: Giải pháp tối ƣu S*

Procedure ACSMetaheuristic()

// Khởi tạo

Các tham số: số vòng lặp, α, β, , số lƣợng kiến m, số đỉnh n; τij = C1; //Nồng độ vết mùi trên cạnh (i,j)

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

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

Đặt mỗi con kiến ngẫu nhiên vào một đỉnh;

// Xây dựng lời giải cho kiến thứ i

While (Duyệt danh sách đỉnh láng giềng) do

Chọn đỉnh kế tiếp theo công thức (2.6);

Bổ sung đỉnh đƣợc chọn vào tập đƣờng đi của kiến; Cập nhật mùi cục bộ theo công thức (2.8);

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.7);

End; //While End;

* Một số thuật toán ACO theo thứ tự thời gian xuất hiện [6] [9]:

Bảng 2.1: Một số thuật toán ACO

Thuật toán ACO Ứng dụng TSP Thời gian Tác giả

Ant System Yes 1991 Dorigo et Al

Elitist AS Yes 1992 Dorigo et Al

Ant-Q Yes 1995 Gambardella & Dorigo

Ant Colony System Yes 1996 Gambardella & Dorigo

Max-Min AS Yes 1996 Stützle & Hoos

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

ANTS No 1999 Maniezzo

Hyper-cube AS No 2001 Blum et Al

Một phần của tài liệu Thuật toán Aco và ứng dụng (Trang 34 - 38)

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

(63 trang)