Thuật toán ACO tổng quát

Một phần của tài liệu Tìm hiểu và nghiên cứu thuật toán hệ kiến max min (Trang 36 - 39)

Với bài toán tối ƣu tổ hợp ở trên ta có thể áp dụng thủ tục mở rộng để xây dựng X*

và tìm đƣợc lời giải tốt nhờ phƣơng pháp vét cạn, nhƣng trên thực tế khi số thành phần n của C lớn, trong TSP là khi số đỉnh nhiều thì phƣơng pháp vét cạn không giải quyết đƣợc.

Nói chung, bài toán thuộc lớp NP-khó, thông thƣờng ta sẽ có các phƣơng pháp heuristic để tìm lời giải đủ tốt cho bài toán. Các thuật toán ACO kết hợp thông tin heuristic này với phƣơng pháp học tăng cƣờng nhờ mô phỏng hành vi của đàn kiến để tìm lời giải tốt hơn.

Giả sử với mỗi cạnh nối các đỉnh i, j C có trọng số heuristic hi,j để định hƣớng chọn thành phần mở rộng là j khi thành phần cuối của xk là i theo thủ tục nêu trên (hi,j>0 (i,j)). Đàn kiến m con sẽ xây dựng lời giải trên đồ thị đầy có trọng số G=(V,E,H,), trong đó V là tập đỉnh của đồ thị tƣơng ứng với tập thành phần C đã nêu ở trên, E là tập các cạnh (nối các thành phần của C), H là vectơ các trọng số heuristic của cạnh tƣơng ứng (trong bài toán TSP nó là vectơ mà mỗi thành phần =1 dij, dij là độ dài của cạnh nối đỉnh i với đỉnh j) còn  là vectơ vết mùi tích luỹ đƣợc, ban đầu đƣợc khởi tạo bằng 0. Các vết mùi có thể đƣợc gắn ở đỉnh, ở cạnh hoặc cả hai, trong bài toán TSP thì các vết mùi đƣợc gắn ở cạnh còn trong một số bài toán khác, chẳng hạn bài toán thời khóa biểu (trình bày ở chƣơng 4) thì lƣợng mùi đƣợc gắn ở đỉnh của đồ thị G. Đồ thị G đƣợc gọi là đồ thị xây dựng.

-37-

Với điều kiện kết thúc đã chọn (với số lần lặp Nc định trƣớc) thuật toán ACO tổng quát cho các bài toán tối ƣu tổ hợp tĩnh đƣợc mô tả hình thức nhƣ sau:

Các bài toán tối ƣu tổ hợp tĩnh là những bài toán mà các đặc trƣng của nó đƣợc cho trƣớc và không thay đổi khi bài toán đƣợc giải. Một trong những bài toán nhƣ vậy là bài toán TSP, trong đó vị trí các thành phố và khoảng cách tƣơng ứng giữa chúng là các giá trị ban đầu của bài toán và không bị thay đổi khi chạy.

Procedure ACO_meta_heuristic()

Whilenot (Điều kiện dừng) do

Procedure Thuật toán ACO cho bài toán tối ưu tổ hợp tĩnh

- Khởi tạo vết mùi và đặt giá trị cho các tham số.

While not (điều kiện dừng) do

- Các con kiến xây dựng lời giải và chọn lời giải tốt nhất.

- Áp dụng tìm kiếm địa phương (có hoặc không).

Cập nhật vết mùi.

End While End Procedure

-38-

Schedule_activities

Ants_generation_and_activity(); Pheromone_evaporation(); Daemon_actions(); {tùy chọn}

End schedule _activities End while

End procedure

Procedure Ansts_generation_and activity()

While (các tài nguyên khả dụng) do

Schedule_the creation_of a_new_ant(); New_active_and();

End while End procedure

Procedure New_active_ant() {chu kì sống của kiến) Initialize_ant();

M = Update_ant_memory();

While (trạng thái hiện tại  trạng thái đích) do

A = Read_local ant_routing_table(); P=Compute_transition_probabilities(A,M,problem_constraints); Next_state=Apply_ant_decision_policy(P,problem_constraints); Move_to_next_state(next_state); If(online_step_by_step_pheromone_update) Deposit_pheromone_on_the_visited_arc(); Update_ant routing_table(); End if M = Update_intemal_state(); End While

-39- If (online_delayed_pheromone_update) Evaluate_solution(); Deposit_pheromone_on_all_visited_arcs(); Update_ant_routing_table(); End if Die(); End procedure

Thuật toán ACO ở dạng giả mã (adsbygoogle = window.adsbygoogle || []).push({});

Các thủ tục xây dựng lời giải và cập nhật mùi đƣợc trình bày ở mục tiếp theo.

Một phần của tài liệu Tìm hiểu và nghiên cứu thuật toán hệ kiến max min (Trang 36 - 39)