CHƯƠNG II. GIỚI THIỆU VỀ THUẬT TOÁN ANT COLONY
2.4. Ứng dụng thuật toán ACO trong việc giải quyết bài toán Người chào hàng Sale Man
2.4.1. Bài toán người chào hàng trong thực tế
Bài toán người chào hàng hay còn gọi là bài toán TSP là một bài toán khá nổi tiếng trong lĩnh vực tối ưu tổ hợp. Bài toán có nội dung như sau: “ Một người đi chào hàng tại n thành phố. Người chào hàng muốn tìm một hành trình ngắn nhất, bắt đầu xuất phát từ một thành phố và đi sang các thành phố khác để chào hàng, sau đó lại quay trở lại thành phố xuất phát sao cho mỗi thành phố chỉ đi qua đúng một lần và khoảng cách giữa các thành phố đã được biết trước”.
Input: Tập C gồm n thành phố : và độ dài nối hai thành phố (thành phố nối với thành phố ).
Output: min (với điều kiện mỗi đỉnh đi qua đúng một lần).
2.4.2. Phát biểu bài toán người đưa hàng trên mô hình hóa đồ thị
Hình 2.5 Minh họa hình ảnh bài toán người đưa hàng
Bài toán TSP có thể được mô hình hóa như một đồ thị đầy đủ có trọng số , trong đó là các tập đỉnh của đồ thị, với mỗi đỉnh tương ứng là một thành phố trong . Kí hiệu là các cạnh nối các thành phố tương ứng, khoảng cách giữa hai thành phố là độ dài cạnh . Đây là vấn đề cực tiểu hóa với điểm đầu và điểm cuối là cùng một đỉnh sau khi đi qua hết tất cả các thành phố đúng một lần. Bài toán TSP chính là bài toán tìm chu trình Hamilton có độ dài ngắn nhất trên đồ thị đầy đủ có trọng số.
2.4.3. Áp dụng thuật toán ACO giải quyết bài toán người chào hàng
Bài toán TSP được nêu ra trong thế kỉ thứ XIX bởi nhà toán học Ireland William Roman Hamilton và nhà toán học Anh Thomas Kirkman. Bài toán TSP là một trong
những bài toán nghiên cứu sâu nhất trong tối ưu hóa. Bài toán thường được dùng làm thước đo cho nhiều phương pháp tối ưu hóa. Mặc dù bài toán rất khó giải trong trường hợp tổng quát, có nhiều phương pháp đã được tìm ra để giải quyết cho những trường hợp dữ liệu lớn. Bảng 2.1 đưa ra một vài thuật toán ACO có khả năng trong việc giải quyết bài toán TSP và một số bài toán khác. Các thuật toán được sắp xếp theo thứ tự thời gian phát triển.
Bảng 2.1 Một số thuật toán ACO
Năm Thuật toán ACO Tác giả
1991 Ant System (AS) Dorigo, Maniezzo,&Colorni 1992 Elitist AS Dorigo, Maniezzo,& Colorni
1995 Ant-Q Gambardella&Dorigo
1996 Ant Colony System Dorigo & Gambardella 1996 Max-Min Ant System Stützle & Hoos
1997 Rank-based Ant System Bullnheimer, Hartl & Strauss
1999 ANTS Maniezzo
2000 Best-Worst Ant System Cordon, Viana, Herrera & Moreno 2001 Hyper-cube Ant System Blum, Roli & Dorigo
2010 AntEpiSeeker Wang, Liu, Robbins & Rekaya Đồ thị cấu trúc
Thuật toán ACO có thể áp dụng trực tiếp cho bài toán TSP với đồ thị cấu trúc , trong đó:
V: Tập các đỉnh tương ứng với tập các thành phố.
E: Tập các cạnh nối các thành phố tương ứng.
H: Thông tin heuristic trên cạnh , kí hiệu là và là độ dài của nghịch
đảo cạnh: .
: Vết mùi được gán trên các cạnh, là vectơ biểu thị các thông tin học tăng cường, dùng để chỉ thông tin học tăng cường phục vụ mở rộng tuần tự lời giải từ đến .
Trong trường hợp này tập là các chu trình Hamilton trên , là độ dài của chu trình, Ω là ràng buộc đòi hỏi chu trình là chu trình Hamilton (qua tất cả các đỉnh, mỗi đỉnh đúng một lần).
Giải quyết bài toán
Thuật toán ACO phân biệt bởi quy tắc cập nhật mùi như đã nêu ở mục 1.2.3 về các quy tắc cập nhật mùi khác nhau sẽ cho ra các phương pháp giải quyết khác nhau.
Ban đầu tiến hành xây dựng lời giải cho mỗi con kiến. Đối với thuật toán AS và MMAS trong giải quyết bài toán TSP xây dựng lời giải cho việc lựa chọn đỉnh đi tiếp theo được xác định theo công thức (1.1) mục 1.2.2. trong công thức (1.1) là các đỉnh lân cận mà kiến có thể đi đến từ đỉnh . Đối với thuật toán ACS, kiến sẽ lựa chọn di chuyển đến đỉnh tiếp theo, theo quy tắc:
(2.12)
Trong đó là một biến ngẫu nhiên, phân bố đều trong [0,1], là một tham số cho trước và J là một biến ngẫu nhiên lựa chọn theo công thức (1.1).
Sau khi xây dựng xong lời giải cho mỗi thuật toán, tiến hành cập nhật mùi được trình bày trong phần mục 2.2.3. Cuối cùng đưa ra lời giải tốt nhất.
Từ thuật toán ACO tổng quát ta có thuật toán ACO cho bài toán TSP được mô tả trong hình 2.5:
Procedure Thuật toán ACOTSP;
Dữ liệu vào:
Đồ thị
Ma trận trọng số với
Số lượng kiến m
Kết quả ra: Là một chu trình với tổng độ dài ngắn nhất.
Begin
Khởi tạo các tham số, ma trận mùi, m con kiến;
Repeat
For to m do
Kiến xây dựng lời giải (lựa chọn đỉnh đi tiếp theo);
Cập nhật mùi (cập nhật mùi trên mỗi cạnh);
Cập nhật lời giải tốt nhất (cập nhật những chu trình với tổng độ dài ngắn nhất và thỏa mãn điều kiện của bài toán);
Until (điều kiện kết thúc);
Đưa ra lời giải tốt nhất (chu trình với tổng độ dài ngắn nhất);
End
Hình 2.6 Đặc tả thuật toán ACO cho bài toán TSP