Thuật toán SMMAS có một số ưu điểm nổi trội so với MMAS:
Thứ nhất với MMAS để xác định , người ta cần tìm một lời giải theo phương pháp heuristic và dựa vào giá trị hàm mục tiêu của nó. Vì giá trị hàm mục tiêu này nhận được ngẫu nhiên, nên khó xác định các tham số cho học tăng cường. Quy tắc cập nhật mùi SMMAS cho phép xác định các tham số này đơn giản và hợp lý hơn, ta không cần xác định chính xác giá trị mà chỉ cần xác định tỷ lệ giữa
.
Trong thực nghiệm, chúng tôi đặt , và
với h= (N là số đỉnh). (3.6)
Việc chỉ cần lựa chọn tỉ lệ giữa đơn giản và mất ít thời gian thực nghiệm hơn rất nhiều so với việc lựa chọn cụ thể hai hai tham số .
Thứ hai việc thêm mùi cho các cạnh thuộc lời giải tốt ở mỗi bước lặp trong thuật toán MMAS, ta phải xây dựng hàm để tính lượng mùi được thêm dựa trên tính chất lượng lời giải do kiến xây dựng được. Trong bài toán cấu trúc chuỗi nguồn, MMAS sử dụng hàm nghịch đảo tổng số điểm ngắt được kiến xác định tuy nhiên trong SMMAS không cần phải xây dựng hàm này.
Thứ ba dễ dàng kiểm tra được các thuật toán này có cùng độ phức tạp nhưng SMMAS ít phép toán hơn vì không phải tính hàm mục tiêu ở lượng mùi cập nhật và không phải so sánh để giới hạn vết mùi trong khoảng . Theo cách cập nhật mùi của SMMAS vết mùi luôn trong khoảng .
3.6. Mô tả thuật toán tối ƣu đàn kiến ACO tổng quát giải bài toán cấu trúc chuỗi nguồn
Áp dụng mô hình chuẩn của các thuật toán đàn kiến kết hợp với các đặc trưng của bài toán. Thuật toán thực hiện trong Nc vòng lặp, sử dụng một tập gồm m con kiến và tại mỗi vòng lặp, mỗi con kiến xây dựng một lời giải theo quy tắc hình 3.3. Sau khi một con kiến xây dựng xong lời giải, mỗi lời giải của kiến là một tập gồm k tập nguồn có độ dài m. Và sau khi cả đàn kiến đều tạo ra được lời giải, thực hiện đưa bài một vào để tính điểm ngắt cho từng lời giải, và chọn ra một lời giải có tổng số điểm ngắt nhỏ nhất. Cuối cùng là thủ tục cập nhật mùi theo các quy tắc cập nhật mùi trong mục 3.4
Lược đồ thuật toán ACO giải bài toán cấu trúc chuỗi nguồn được đặc tả trong hình 3.3 như sau:
Procedure Thuật toán ACOFSRP;
Dữ liệu vào:
Đồ thị
Kết quả ra: Là một lời giải với tổng số điểm ngắt nhỏ 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);
Tính điểm ngắt cho mỗi lời giải (mục 2.4.1);
Cập nhật mùi (cập nhật mùi trên mỗi đỉnh sử dụng 2 quy tắc cấp nhật mùi trong mục 3.4);
Cập nhật lời giải tốt nhất (cập nhật những lời giải với tổng điểm ngắt là nhỏ nhất);
Until (điều kiện kết thúc);
Đưa ra lời giải tốt nhất (Lời giải với tổng điểm ngắt là nhỏ nhất);
End
Hình 3.3 Đặc tả thuật toán ACO.
Ví dụ: Cho bộ gồm 5 tái tổ hợp có độ dài là 7 và một số cố định k = 3. Tìm ra 3 tập nguồn sao cho số nhát cắt là ít nhất.
Bộ gen tái tổ hợp C
01001000 00111000 10011100 10111010 01101110 10110011
Bước 1: Xây dựng đồ thị, đồ thị gồm 7 cột và 23 = 8 hàng, mỗi hàng gồm 3 bít là hoán vị của các giá trị 0 và 1.
Hình 3.4. Đồ thị cấu trúc cho bộ dữ liệu với n= 5, m= 7
Bước 2: Mỗi 1 con kiến xây dựng cho mình một lời giải bằng cách đi qua hết các cột trong đồ thị. Mỗi cột chọn 1 đỉnh để đi.
Hình 3.5. Mô tả hành trình của một con kiến Mỗi hành trình của kiến đưa ra là một lời giải
Hình 3.6. Lời giải của một con kiến Bước 3: Sử dụng bài 1 để tìm ra số điểm ngắt của mỗi lời giải
Hình 3.7. Phân tích điểm ngắt cho lời giải của một con kiến 3.7. Số lƣợng kiến
Như đã trình bày ở chương 1, nếu không sử dụng tìm kiếm địa phương và thông tin heuristic không có, trong giai đoạn đầu vết mùi không thể giúp kiến tìm đường đi dẫn tới các lời giải tốt. Nếu sử dụng số lượng kiến ít, trong giai đoạn đầu sẽ không tìm được lời giải tốt và như vậy việc cập nhật mùi được cập nhật dựa trên các lời giải không tốt. Khi đó, sẽ hướng việc tìm kiếm xung quanh lời giải không tốt và do đó thuật toán sẽ không hiệu quả. Có thể khắc phục phần nào nhược điểm này bằng cách tăng số kiến, để tăng khả năng tìm được lời giải tốt ở mỗi vòng lặp. Trong luận văn, khi cài đặt chúng tôi sử dụng đàn kiến là 10 con kiến.
3.8. Tham số bay hơi
Ở mỗi vòng lặp, khi xây dựng được lời giải tốt (sử dụng tìm kiếm địa phương hoặc thông tin heuristic mạnh), tham số bay hơi sẽ được xác lập có giá trị lớn, điều này giúp kiến quên đi những lời giải đã xây dựng, tập trung công việc tìm kiếm xung quanh lời giải tốt mới được xây dựng. Trong trường hợp ngược lại, ở mỗi vòng lặp, khả năng kiến tìm được lời giải tốt không cao thì tham số bay hơi phải được thiết lập với giá trị nhỏ. Trong luận văn khi cài đặt thực nghiệm chúng tôi chọn thông số bay hơi là