5. Cấu trúc luận văn
2.1.3 Lưu đồ giải thuật thuật toán tiến hóa PSO
Khởi tạo thông số quần thể
Số lần lặp lớn nhất đã đạt đủ chưa? Bắt đầu
Khởi tạo cá thể với vị trí và vận tốc ngẫu nhiên
Tìm hàm thích nghi
Tìm Pbest của mỗi cá thể và Gbest của quần thể
Cập nhật vị trí, vận tốc, Pbest và Gbest của mỗi cá thể
No
Yes Dừng
Hình 2.2: Lưu đồ giải thuật thuật toán PSO Thuật toán PSO có thể viết dưới dạng mã giả như sau:
For Each particle Khởi tạo particle
End for Do
For Each particle
Tính fitness value
If fitness value < Pbest Then Pbest = the fitness value End if
End For
If Pbest < Gbest then Gbest = Pbest
End if For each particle
Tính vật tốc particle theo công thức (2.1) Cập nhật vị trí theo công thức (2.2) End For
While (chưa đạt đến số thế hệ tối đa cho phép);
Thuật toán PSO có thể dùng để tìm tối ưu toàn cục và vị trí mà tại đó hàm thích nghi đạt giá trị tối ưu, cũng như để xác định hiệu suất hội tụ nếu đã biết giá trị tối ưu toàn cục.
Việc đạt ngưỡng của chỉ số hội tụ ở đây phụ thuộc vào mục đích sử dụng của thuật toán. Trong trường hợp thuật toán được dùng để tìm vị trí tối ưu toàn cục, sau một số lần định trước, nếu kết quả không được cải thiện xem như chỉ số hội tụ đạt ngưỡng. Còn trong trường hợp đã biết trước kết quả, sau một số vòng lặp chọn trước (thí dụ 200), nếu sự sai khác giữa giá trị hàm thích nghi và giá trị tối ưu nhỏ hơn một ngưỡng được chọn (thí dụ 0.0001), ta xem lần lượt thì đó là hội tụ, ngược lại là không hội tụ.
Với những gì trình bày ở trên, rõ ràng là PSO rất giống với tính toán tiến hóa. Tuy nhiên, trong PSO thay vì sử dụng các toán tử di truyền mỗi cá thể cập nhật vị trí của mình không chỉ dựa trên kinh nghiệm tìm kiếm của bản thân mà còn tận dụng kinh nghiệm và sự khám phá của các bạn bè khác. Việc đưa thêm khái niệm vận tốc vào vị trí hiện hành để sản sinh vị trí kế tiếp giống với toán tử đột biến trong thuật giải di truyền. Chỉ khác là, trong PSO toán tử đột biến được trợ giúp bởi kinh nghiệm “bay” không chỉ của bản thân mà còn của đồng loại trong khi đột biến của di truyền là ngẫu nhiên. Vì thế, PSO có tính tất định cao hơn thuật giải di truyền.