Trong những năm gần đây, các thuật toán tìm kiếm ngẫu nhiên đã được sử dụng như là kỹ thuật chính để đạt được giải pháp tối ưu trong việc giải quyết các vấn đề thực tế. Các thuật toán như vậy chủ yếu đạt được tối ưu từ việc khai thác ngẫu nhiên làm cho các thuật toán này khác biệt so với các phương pháp xác định. Thuật toán xác định đáng tin cậy sẽ đưa ra câu trả lời giống nhau cho một vấn đề nhất định với một điểm khởi đầu giống nhau. Tuy nhiên, hành vi này dễ dẫn đến “cạm bẫy” tối ưu cục bộ, nó có thể xem như một bất lợi cho các kỹ thuật tối ưu xác định. Sự trì trệ tối ưu cục bộ đề cập đến cạm bẫy của thuật toán trong giải pháp cục bộ và kết quả là sự thất bại trong việc tìm kiếm tối ưu toàn cầu thực sự. Khi gặp những vấn đề thực tế có số lượng lớn các giải pháp cục bộ, các thuật toán xác định sẽ mất đi độ tin cậy trong việc tìm kiếm tối ưu toàn cầu.
Thuật toán tối ưu ngẫu nhiên (metaheuristic algorithms) đề cập đến giả định các thuật toán khai thác ngẫu nhiên bao gồm các thuật toán tiến hóa (evolutionary algorithm). Đặc tính ngẫu nhiên là đặc điểm chính của thuật toán ngẫu nhiên. Chúng sử dụng việc khai thác ngẫu nhiên khi tìm kiếm để đạt được tối ưu toàn cầu trong không gian tìm kiếm.
Mặc dù bản chất ngẫu nhiên của các kỹ thuật như vậy có thể làm các thuật toán này không đáng tin cậy trong việc có được một giải pháp tương tự trong mỗi lần chạy, các thuật toán này có thể tránh được giải pháp cục bộ dễ dàng hơn nhiều so với các thuật toán xác định. Các hành vi ngẫu nhiên cũng đạt được kết quả trong việc đưa ra các giải pháp khác nhau cho một vấn đề nhất định trong mỗi lần chạy.
Thuật toán tiến hóa tìm kiếm tối ưu toàn cầu trong một không gian bằng cách tạo ra một hoặc nhiều giải pháp ngẫu nhiên cho một vấn đề nhất định. Tập hợp này được gọi là được gọi là tập hợp các giải pháp “ứng cử”. Tập hợp này được cải thiện sau các vòng lặp cho đến khi đạt điều kiện dừng. Những cải tiến có thể được coi như việc tìm kiếm một xấp xỉ chính xác hơn về tối ưu toàn cầu so với những dự đoán ngẫu nhiên ban đầu. Cơ chế này mang đến cho các thuật toán tiến hóa một số thuận lợi thực sự: vấn đề độc lập, độc lập về nguồn gốc, tránh tối ưu cục bộ và sự đơn giản.
13
SVTH: Nguyễn Thanh Phục
Chương 2: Xây dựng mô hình bài toán
Một số thuật toán được biết đến nhiều trong lĩnh vực này là: Genetic Algorithms (GA), Particle Swarm Optimization (PSO), Ant Colony Optimization (ACO), Differential Evolution (DE), Evolutionary Programming (EP). Mặc dù các thuật toán này có thể giải quyết nhiều vấn đề thực tế và đầy thử thách, khái niệm gọi là No Free Lunch theorem cho phép các nhà nghiên cứu đề xuất các thuật toán mới. Theo khái niệm này, các thuật toán sẽ thực hiện bình đẳng với nhau khi giải quyết tất cả các vấn đề tối ưu hóa. Theo đó, một thuật toán có thể rất hiệu quả trong việc giải quyết một nhóm các vấn đề nhưng không có hiệu quả trong một nhóm các vấn đề khác. Đây là nền tảng của nhiều công trình trong lĩnh vực này. Một số các thuật toán gần đây như là: Grey Wolf Optimizer (GWO), Artificial Bee Colony (ABC), Firefly Algorithm (FA), Cuckoo Search (CS), Cuckoo Optimization Algorithm (COA), Gravitational Search Algorithm (GSA), Charged System Search (CSS), Magnetic Charged System Search, Ray Optimization (RO), Colliding Bodies Optimization (CBO), Hybrid Particle Swallow Swarm Optimization (HPSSO), Democratic Particle Swarm Optimization (DPSO), Dolphin Echolocation (DE) và Chaotic Swarming of Particles (CSP).
14
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
CHƯƠNG 3: PHƯƠNG PHÁP CUCKOO SEARCH 3.1 Hành vi sinh sản chim cúc cu.
Thuật toán CS lấy cảm hứng từ việc sinh sản của loài chim cúc cu. Chúng là một họ chim có chiến lược sinh sản độc đáo táo bạo hơn so với các loài chim khác. Một số loài chim cúc cu như Ani và Guira đẻ trứng trong tổ chung với các loài chim khác, chúng có thể loại bỏ trứng của loài khác để tăng khả năng nở trứng của chính chúng.
Nhìn chung, trứng chim cúc cu nở sớm hơn trứng vật chủ một chút. Khi con chim cúc cu đầu tiên được nở, hành động bản năng đầu tiên của nó là đuổi trứng vật chủ bằng cách đẩy trứng ra khỏi tổ một cách mù quáng. Hành vi này nhằm mục đích làm giảm khả năng nở của những quả trứng của loài chủ. Hơn nữa, các nghiên cứu cho thấy rằng một loài chim này có thể bắt chước tiếng gọi của chim con chủ để tiếp cận với nhiều cơ hội kiếm ăn hơn. Đôi khi chim chủ sẽ phát hiện một trong số những quả trứng là ngoại lai. Trong trường hợp đó, loài chim chủ cũng vậy sẽ loại bỏ trứng hoặc bỏ tổ hoàn toàn và chuyển đến xây một tổ ấm mới ở một nơi khác. Chim cu ký sinh thường chọn tổ tại nơi chim chủ vừa đẻ trứng. Tập tính sinh sản của chim cúc cu có thể được áp dụng cho các bài toán tối ưu hóa khác nhau. Cơ chế “Lévy flight” được sử dụng thay vì cơ chế “simple random walk” để cải thiện hiệu suất của CS của Yang và Deb.
3.2 Cơ chế di chuyển “Lévy flight”
Trong tự nhiên động vật tìm kiếm thức ăn một cách ngẫu nhiên. Bởi vì sự di chuyển kế tiếp dựa trên vị trí hiện tại và xác suất chuyển đến vị trí tiếp theo. Xác suất các hướng đã chọn được tính theo mô hình toán học. Các nghiên cứu khác nhau đã có cho thấy rằng hành vi bay của nhiều loài động vật và côn trùng thể hiện các đặc điểm điển hình của các chuyến bay Lévy.
Chuyến bay Lévy là một chuyến đi bộ ngẫu nhiên trong đó độ dài bước được tính theo chiều dài phân phối xác suất. Khoảng cách từ điểm xuất phát của bước đi ngẫu nhiên có xu hướng phân bố ổn định sau một số bước.
15
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
Hình 3. 1: Minh họa di chuyển của chuyến bay Lévy
3.3 Thuật toán cuckoo search
Mỗi quả trứng trong tổ tượng trưng cho một giải pháp, và một quả trứng chim cúc cu đại diện cho một giải pháp mới xảy ra. Mục đích là sử dụng các giải pháp mới và có khả năng tốt hơn thay thế các giải pháp không tốt trong tổ, để đơn giản nhất vấn đề thì ta xem mỗi ổ có một trứng. Thuật toán có thể được mở rộng cho các trường hợp phức tạp hơn, trong đó mỗi tổ có nhiều quả trứng đại diện cho một tập hợp các giải pháp (Yang 2009; Yang 2010). Thuật toán CS dựa trên ba quy tắc :
• Mỗi con chim cúc cu đẻ một quả trứng tại một thời điểm và đặt vào tổ được chọn ngẫu nhiên.
• Những tổ tốt nhất với chất lượng trứng tốt nhất sẽ được truyền sang các thế hệ tiếp theo.
• Số lượng tổ vật chủ có sẵn là cố định và vật chủ có thể phát hiện ra trứng ngoại lai với xác suất pa ε [0,1]. Trong trường hợp này, chim chủ có thể đẩy trứng đi hoặc từ bỏ tổ để xây một tổ hoàn toàn mới ở một địa điểm mới. (Yang 2009).
16
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
Đối với vấn đề tối đa hóa, chất lượng hoặc tính phù hợp của một giải pháp có thể đơn giản là tỷ lệ thuận với hàm mục tiêu.
Khi tạo ra các giải pháp mới x (t + 1), chẳng hạn, một con chim cúc cu là một chuyến bay Lévy được thực hiện.
xti+1=xti +α Levy ( λ)(3.1)
Trong đó: (i = 1, 2, 3, 4,…n)
α = bước nhảy (α =1 ¿
λ= hệ số Levy (λ=1.5 ¿
Phương trình trên về cơ bản là phương trình ngẫu nhiên cho bước đi ngẫu nhiên. Nói chung, bước đi ngẫu nhiên là một chuỗi Markov có trạng thái/vị trí tiếp theo chỉ phụ thuộc vào vị trí hiện tại và xác suất chuyển tiếp & tích có nghĩa là các phép nhân khôn ngoan.Việc “đi bộ ngẫu nhiên” thông qua “chuyến bay Lévy” sẽ hiệu quả hơn trong việc khám phá không gian tìm kiếm vì độ dài bước của nó dài hơn nhiều về lâu dài.
• Levy (λ) được tính như sau:
Levy u=t− λ (1<λ ≤ 3 ¿(3.2) Trong đó: u = Biến Stochastic Bình thường, t = Lặp lại
Ở đây, các bước về cơ bản tạo thành một quy trình đi bộ ngẫu nhiên với phân bố độ dài theo bước luật lũy thừa với phần đuôi nặng. Một số giải pháp mới sẽ được tạo ra bởi “Lévy walk” đó là phương pháp xoay quanh giải pháp tốt nhất thu được cho đến nay, điều này sẽ tăng tốc độ tìm kiếm cục bộ. Tuy nhiên, một phần đáng kể trong số các giải pháp mới được tạo ra bằng cách ngẫu nhiên hóa vùng trường xa và vị trí của nó phải đủ xa để giải pháp hiện tại là tốt nhất, điều này sẽ đảm bảo rằng hệ thống sẽ không bị mắc kẹt trong mức tối ưu cục bộ. CS là một thuật toán dựa trên dân số, theo cách tương tự như GA và PSO và ngẫu nhiên hóa hiệu quả hơn vì độ dài bước có đuôi nặng và bất kỳ bước lớn nào cũng có thể thực hiện được.Số lượng tham số được điều
17
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
chỉnh ít hơn GA và PSO,do đó nó có khả năng chung chung hơn để thích ứng với một loại tối ưu hóa rộng hơn về các vấn đề khác nhau. Ngoài ra, mỗi tổ có thể đại diện cho một tập hợp các giải pháp để CS có thể được mở rộng cho kiểu thuật toán tổng thể.
3.3.1 Tạo môi trường sống ban đầu cho chim cúc cu
Hình 3. 2: Đẻ trứng ngẫu nhiên trong ELR, sao đỏ trung tâm là môi trường sống ban đầu của chim cúc cu với 5 quả trứng; những ngôi sao hồng là tổ mới của trứng
Trong tự nhiên, mỗi con chim cúc cu đẻ từ 5 đến 20 quả trứng. Các giá trị này được sử dụng làm giới hạn trên và dưới của số trứng dành cho mỗi con chim cúc cu ở các lần lặp lại khác nhau. Một thói quen khác của chim cu là chúng đẻ trứng trong khoảng cách tối đa từ môi trường sống của chúng. Từ bây giờ, phạm vi tối đa này sẽ được gọi là “Bán kính đẻ trứng (ELR)”. Trong một bài toán tối ưu hóa với giới hạn trên của varhi và giới hạn dưới của varlow cho các biến, mỗi con chim cúc cu có bán kính đẻ trứng (ELR) tỷ lệ với tổng số trứng trong ổ, số lượng trứng hiện tại của chim cúc cu và các giới hạn thay đổi củavarhi vàvarlow. Vì vậy, ELR được định nghĩa:
ELR¿α x
Trong đó: α là một số nguyên được bổ sung để xử lý giá trị lớn nhất của ELR.
18
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
3.3.2 Kiểu đẻ trứng của chim cúc cu
Mỗi con chim cúc cu bắt đầu đẻ trứng một cách ngẫu nhiên trong tổ của một số loài chim chủ khác trong ELR của nó. Hình 3.1 cho ta thấy rõ về khái niệm này. Sau khi tất trứng của chim cúc cu được đẻ vào trong tổ của chim chủ, một số trứng trong số đó ít giống với trứng của chim chủ, được vật chủ phát hiện và ném ra khỏi tổ. Vì vậy, sau quá trình đẻ trứng, p% tổng số trứng (thường là 10%), với giá trị lợi nhuận ít hơn, sẽ bị giết. Những quả trứng này không có cơ hội phát triển thêm nữa. Phần còn lại của trứng phát triển bởi tổ vật chủ, nở và được cho ăn bởi các loài chim chủ. Một điểm thú vị khác về việc đẻ trứng chim cúc cu là chỉ có một quả trứng trong tổ mới có cơ hội phát triển. Điều này là do khi trứng chim cúc cu nở và chim con ra, nó sẽ đẩy trứng của chim chủ ra khỏi tổ. Trong trường hợp trứng của loài chủ đó nở sớm hơn và trứng của chim cúc cu nở muộn hơn, chim cúc cu non sẽ ăn phần lớn thức ăn chim chủ mang về tổ (do thân hình to gấp 3 lần nên đẩy chim con khác và ăn nhiều hơn). Sau trong vài ngày, chim con của loài chủ sẽ chết vì đói và chỉ còn lại chim cu trong tổ.
3.3.3 Sự nhập cư của chim cu
Hình 3. 3: Di trú của một con chim cúc cu mẫu về môi trường sống mục tiêu
Khi những con chim cu non lớn lên và trưởng thành, chúng sẽ sống trong khu vực và môi trường của chúng một thời gian. Nhưng khi tới thời gian để sinh sản,
19
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
chúng nhập cư đến những môi trường sống mới và tốt hơn. Sau khi các nhóm chim cúc cu được hình thành ở các môi trường khác nhau, với giá trị lợi nhuận tốt nhất được chọn làm mục tiêu cho những con cúc cu khác nhập cư. Khi trưởng thành chim cu sống trong tất cả các môi trường, rất khó để nhận ra chim cu thuộc nhóm nào. Để giải quyết vấn đề này,chim cu sẽ được phân nhóm theo phương pháp phân cụm “K-means” (k từ 3-5). Sau khi, các nhóm chim cu được công bố giá trị lợi nhuận trung bình của chúng đã được tính toán. Tiếp sau đó, giá trị tối đa của những lợi nhuận trung bình này sẽ xác định nhóm mục tiêu và do đó, môi trường sống tốt nhất của nhóm đó là môi trường sống mới cho chim cu di cư. Khi di cư về phía điểm mục tiêu, chim cu không bay thẳng đến nơi sinh sống. Chúng chỉ bay một đoạn đường và cũng có một độ sai lệch. Sự chuyển động này được thể hiện rõ ràng trong hình 3.3. Mỗi con chim cúc cu chỉ bay một đoạn λ% của tất cả các khoảng cách đến môi trường sống mục tiêu và cũng có độ lệch φ radian. Hai tham số λ và φ, giúp chim cúc cu tìm kiếm nhiều địa điểm hơn trong môi trường sống. Đối với mỗi con chim cúc cu λ và φ được định nghĩa như sau:
λ ~ U(0,1) φ~U(ω,-ω)
Trong đó, λ∼U (0, 1) có nghĩa là λ là số ngẫu nhiên từ 0 đến 1. ω là tham số hạn chế độ lệch so với môi trường sống của mục tiêu nó dao động trong khoảng π/6 (rad). Khi tất cả chim cúc cu di cư đến điểm mục tiêu và môi trường sống mới đã được xác định, mỗi con chim cúc cu trưởng thành được cho một số trứng. Sau đó, xem xét số lượng trứng dành riêng cho mỗi con chim, một ELR được tính cho mỗi con chim cúc cu. Sau đó quá trình đẻ trứng mới bắt đầu lại.
3.3.4 Tính hội tụ của chim cúc cu
Sau một số lần lặp lại, tất cả quần thể chim cúc cu chuyển sang một môi trường sống tốt nhất với sự giống nhau tối đa của trứng với các loài chim chủ và cũng với các nguồn thực phẩm tối đa. Môi trường sống này sẽ sản sinh ra lợi nhuận tối đa chưa từng có. Sẽ có ít trứng thất thoát nhất trong điều tốt nhất này môi trường sống. Hội tụ hơn
20
SVTH: Nguyễn Thanh Phục
Chương 3: Phương pháp Cuckoo Search
95% các loại chim cúc cu giống nhau môi trường sống đặt dấu chấm hết cho Thuật toán tối ưu hóa Cuckoo.
3.4 Ứng dụng thuật toán trong trong trang trại gió
Hiệu ứng Wake được lồng ghép vào chương trình tính toán công suất để tìm ra công suất lớn nhất. Cụ thể như sau:
Bước 1: Sau khi có vị trí phân bố tua-bin ban đầu, chương trình sẽ thực hiện kiểm tra từng tua-bin trong trang trại gió có kích thước LxL theo các điều kiện thỏa để xảy ra hiệu ứng Wake (kiểm tra bằng điều kiện giới hạn nhỏ nhất xảy ra hiệu ứng Wake). Nếu xảy ra hiệu ứng Wake, sẽ thực hiện tính toán công suất tại các tua-bin đó. Quá trình sẽ thực hiện kiểm tra từ tua-bin thứ 2 đến tua-bin thứ N. Các tua-bin không bị ảnh hưởng bởi hiệu ứng Wake coi như nhận được công suất gió là tối đa.
Công suất tổng sẽ bằng tổng công suất của N tua-bin.
Bước 2: Vị trí tua-bin tiếp theo của tua-bin sẽ được chương trình chính của thuật