Ngày càng nhiều thuật toán dạng metaheuristic ra đời từ cảm hứng với thiên nhiên. Các thuật toán dựa vào hành vi của một số sinh vật nhƣ cá và chim (PSO), con kiến (ACO), con ong (BA), con đom đóm (FA), … Mới đây, hai nhà toán học Xin-She Yang và Suash Deb đã đƣa ra thuật toán mới Cuckoo Search (CS) đƣợc phát triển năm 2009 [14], [15]. Thuật toán CS lấy cảm hứng từ hành vi của loài chim Cuckoo kết hợp với đặc tính Lévy flight.
Hình 4.1: Chim cuckoo con lớn hơn cả chim chủ tổ 4.1.1. Hành vi chim Cuckoo
Chim cuckoo mẹ ký gởi con của nó bằng cách đẻ trứng vào tổ của chim khác, thường thì cùng giống. Trứng của chim cuckoo có hoa văn rất giống như trứng của chim chủ trong tổ và sau đó trứng chim cuckoo nở ra thay thế chim con khác bằng cách đẩy các chim con đó ra khỏi tổ.
Để trứng của chim cuckoo nở ra thành công và đƣợc chim chủ kia nuôi tốt thì chim cuckoo mẹ phải đẻ ngay khi chim chủ kia làm tổ và trứng phải giống trứng của chim chủ kia. Trứng của chim cuckoo thường nở sớm hơn một chút so với trứng của chim chủ trong tổ và đặc biệt khi nở ra cũng rất giống chim con trong tổ.
Chim con cuckoo lớn rất nhanh và theo bản năng tự nhiên, nó sẽ đẩy chim con khác trong tổ ra khỏi. Nếu chim chủ tổ phát hiện ra trứng hay con không phải là của nó thì chim mẹ chủ tổ sẽ hất đi hoặc bỏ tổ để làm tổ mới.
4.1.2. Đặc tính Lévy Flight
Nhiều nghiên cứu đã chứng minh hành vi của nhiều động vật và côn trùng có đặc tính của Lévy flight [15]. Lévy flight, tên của nhà toán học Pháp Paul Pierre Lévy, là một loại hình bước đi ngẫu nhiên trong đó gia số được phân phối theo quy luật tập trung về phía sau.
Lévy flight là một chuổi Markov, sau một số lượng lớn bước đi, khoảng cách từ điểm xuất phát có khuynh hướng phân bố theo một quy luật ổn định. Đặc biệt có hàm phân phối dạng lũy thừa u=t-1-β (0<β<2)
Gần đây, đặc tính Lévy flight đã đƣợc áp dụng vào trong lĩnh vực tối ƣu hóa và cho kết quả ban đầu rất khả quan.[16].
4.1.3. Thuật toán Cuckoo Search
Thuật toán Cuckoo Search dựa theo hành vi của chim Cuckoo và đặc tính Lévy flight. [14], [15]
Thuật toán CS dựa theo ba quy luật và đƣợc phát biểu nhƣ sau:
- Mỗi chim cuckoo đẻ một trứng tại một thời điểm vào một tổ bất kỳ đƣợc chọn trước trong các tổ chủ ban đầu.
- Trứng tốt nhất về chất lƣợng sẽ đƣợc truyền lại cho thế hệ sau.
- Số tổ chim chủ là cố định; trứng đƣợc đẻ bởi chim cuckoo bị chim chủ phát hiện với một xác suất rất nhỏ Pa∈[0,1], trong trường hợp này chim chủ quăng trứng chim cuckoo đi hoặc bỏ tổ và làm một tổ mới.
Chất lượng của trứng tương ứng với hàm mục tiêu; trong GA tương ứng là hàm thích nghi. Trong trường hợp đơn giản có thể hiểu giải thuật như sau:
- Mỗi trứng trong tổ đại diện cho một giải pháp và trứng chim cuckoo đại diện cho giải pháp mới.
- Mục tiêu là sử dụng giải pháp mới tốt hơn (trứng cuckoo) thay thế giải pháp không tốt bằng (trứng trong tổ).
Ngoài ra, thuật toán CS có thể mở rộng hơn với mỗi tổ có nhiều trứng đại diện cho một tập các giải pháp.
Dựa trên cơ sở đó, mô hình toán cho thật toán CS đƣợc tóm tắt nhƣ mã code sau [14], [15]:
--- Bắt đầu
- Hàm mục tiêu f(x), x=(x1, x2, …, xd)T
- Tạo số tổ chủ (số giải pháp) ban đầu xi (i = 1, 2, ..., n);
Vòng lặp while: Trong khi số lần lặp t<tmax (hoặc chuẩn dừng khác) - Tạo một trứng cuckoo (giải pháp mới) ngẫu nhiên bằng phép Lévy flight, - Đánh giá chất lƣợng của trứng cuckoo mới tạo đƣợc bằng hàm fitness: Fi
- Chọn 1 tổ ngẫu nhiên thứ j trong n tổ ban đầu, - Nếu Fi>Fjthì thay tổ j bằng giải pháp mới,
- Một phần nhỏ pa tổ tồi tệ (giải pháp xấu) đƣợc bỏ và xây mới, - Giữ lại những giải pháp tốt nhất (tổ có chất lƣợng tốt),
- Sắp xếp lại các giải pháp tốt và tìm giải pháp tốt nhất tất cả Kết thúc vòng lặp while
- Xử lý kết quả và hiển thị hình ảnh Kết thúc
---
Lưu đồ giải thuật thuật toán Cuckoo search như trang tiếp theo:
Hình 4.2: Lưu đồ thuật toán CS
(t+1)
Bắt đầu
Khởi tạo một số tổ chủ ban đầu (n tổ)
- Tạo một trứng cuckoo ngẫu nhiên xi(t+1) bằng phép Lévy flights và đánh giá chất lƣợng của trứng cuckoo mới đƣợc tạo Fi(t+1)
- Chọn một tổ ngẫu nhiên và đánh giá chất lƣợng trứng trong tổ Fdj
- Thay thế giải pháp cũ bằng giải pháp mới
- Giữ lại giải pháp tốt nhất - Tìm giải pháp tốt nhất tất cả - Phần Pa tổ bị bỏ sẽ đƣợc xây mới - Thay giải pháp cũ bằng giải pháp mới nếu tốt hơn
- Giữ lại giải pháp tốt nhất - Tìm giải pháp tốt nhất tất cả
Kết quả
So sánh giải pháp mới với giải pháp cũ Fi(t+1)
> Fdj
Kiểm tra điều kiện dừng (Số vòng lặp hoặc phép dừng
chuẩn)
Đã cập nhật tổ đƣợc xây mới bằng trứng cuckoo và phần Pa tổ bị bỏ đƣợc xây mới
Đ
S
Đ
S
( 1)
é ( )
t t
i i
x x L vy t (4.1)
Trong đó α >0 là bước tính liên quan đến vấn đề quan tâm; dấu là dấu nhân mảng. Trong hầu hết trường hợp ta có thể sử dụng α = O(1) [1]. Phương trình (4.1) về cơ bản mô tả phỏng chừng bước đi ngẫu nhiên, là một chuổi Markov nối tiếp trong đó vị trí kế tiếp phụ thuộc vào vị trí hiện tại.
Lévy fight cung cấp một bước đi ngẫu nhiên trong khi chiều dài bước đi ngẫu nhiên đƣợc rút ra từ phân phối Lévy:
é ~ 1 , (0 2)
L vy ut (4.2)
Trong đó: t là chiều dài bước đi, phân phối Lévy thì thay đổi vô hạn.
CS nhìn qua có vẽ gần giống với GA và PSO, tuy nhiên CS dựa theo bước đi ngẫu nhiên với phân phối Lévy tập trung về phía sau và CS có các tham số điều chỉnh ít hơn. Do đó thuật toán đơn giản hơn nhiều, hứa hẹn thời gian tìm lời giải nhanh chóng. Mặt khác, mỗi tổ có thể đại diện cho một tập các giải pháp nên CS có thể đƣợc mở rộng hơn.