Thuật toán đàn Dơi thuộc nhóm tối ưu bầy đàn được đề xuất dựa trên ý tưởng mô phỏng kỹ thuật di chuyển và săn mồi của đàn Dơi đểtìm lời giải cho bài toán tối ưu nhiều biến. Thuật toán đàn Dơi được công bố bởi tác giả Xin- She Yang năm 2010 tại Vương quốc Anh [56]. Kể từ năm 2017, thuật toán đàn Dơi được đề xuất phát triển cho bài toán nén búp sóng phụ bằng kỹ thuật đặt điểm không thông qua phương pháp điều khiển phân bốbiên độvà phân bố pha bởi nhóm tác giả Việt Nam như trình bày tại các công bố [61-63] và nghiên cứu [64]. Chính vì vậy, tác giả luận án này có điều kiện thuận lợi để tiếp cận thuật toán và phát triển nội dung nghiên cứu liên quan đến sử dụng thuật toán đàn Dơi trong bài toán thiết kế anten mảng tuyến tính.
Về ý tưởng thuật toán, khi quan sát đàn Dơi người ta thấy rằng, đểtránh va chạm và tìm con mồi, Dơi sử dụng kỹ thuật định vị qua sóng siêu âm phản xạ. Mỗi con Dơi trong đàn phát ra một sóng âm có tần số và biên độ bất kỳ, chúng nhận tín hiệu phản hồi về và đánh giá được không gian xung quanh. Khi xác định được hướng có khảnăng cao nhất có con mồi, chúng sẽhướng vềphía đó đồng thời tăng tần sốphát, giảm biên độsóng âm phát ra đểxác định chính xác hơn về vịtrí con mồi. Một cách đơn giản có thể hiểu rằng, vịtrí con mồi là vị trí tối ưu mà đàn Dơi cần tìm kiếm. Thuật toán đàn Dơi gồm hai quá trình tìm kiếm là tìm kiếm toàn cục (khu vực có khả năng cao nhất) và tìm kiếm cục
bộ(tìm kiếm giá trị tốt nhất trong khu vực có khả năng cao nhất). Thuật toán đàn Dơi có thể được mô tả như sau [56]:
Giả thiết rằng đàn Dơi có Q phần tử. Mỗi phần tửDơi đặc trưng bởi vị trí
xi bất kỳ và có vận tốc di chuyển vi, tần số phát xung fi, tỉ lệ xung Ri
(với Riϵ [0,1]), Ailà biên độ của xung.
Ở mỗi bước tìm kiếm thứ t, thực hiện khởi tạo tần số fi bất kỳvà cập nhật vận tốc vicho các phần tửDơi ở vịtrí xi theo quy tắc:
𝑓𝑖 = 𝑓𝑚𝑖𝑛+ (𝑓𝑚𝑖𝑛− 𝑓𝑚𝑎𝑥)𝜅 (1. 27)
𝑣𝑖𝑡+1 = 𝑣𝑖𝑡+ (𝑥𝑖𝑡− 𝑥∗)𝑓𝑖 (1. 28)
𝑥𝑖𝑡+1 = 𝑥𝑖𝑡 + 𝑣𝑖𝑡 (1. 29)
Với 𝜅 được lấy ngẫu nhiên trong đoạn [0,1] và 𝑥∗ là giải pháp toàn cục tốt nhất tạm thời đã tìm được.
Nếu vịtrí mới là giải pháp toàn cục tốt nhất trong số các giải pháp đã có thì khởi phát quá trình tìm kiếm khu vực bằng các bước ngẫu nhiên theo quy tắc sau:
𝑥𝑛𝑒𝑤 = 𝑥𝑜𝑙𝑑 + 𝜇𝐴𝑡 (1. 30)
Với At là biên độ trung bình của tất cả phần tử tại bước lặp thứ t; và 𝜇 là giá trị ngẫu nhiên trong đoạn [-1,1]. Biên độ và tỉ lệ phát xung được cập nhật theo quy tắc sau:
𝐴𝑖𝑡+1 = 𝜎𝐴𝑖𝑡 (1. 31)
𝑅𝑖𝑡+1 = 𝑅𝑖0(1 − exp(−𝛾𝑡)) (1. 32)
Với 𝜎 và γ là các hằng số thỏa mãn điều kiện 0 < σ< 1 và 0 < γ