Giới thiệu về thuật toán SOS (Sympiosis Organisms Search)

Một phần của tài liệu Áp dụng giải thuật tìm kiếm sinh vật lai tối ưu vị trí đặt tụ bù trong lưới điện phân phối có xét đến nhiều mức phụ tải khác nhau (Trang 83 - 86)

Chương 4. ÁP DỤNG THUẬT TOÁN HSOS CHO BÀI TOÁN OCP

4.2. Giới thiệu phương pháp HSOS

4.2.1. Giới thiệu về thuật toán SOS (Sympiosis Organisms Search)

Thuật toán SOS được đề xuất bởi Cheng và Prayogo vào năm 2014 [47] là một thuật toán mới lạ. Thuật toán này mô tả mối quan hệ cộng sinh giữa hai sinh vật khác nhau trong một hệ sinh thái. Tương tự như các thuật toán khác dựa trên dân số, SOS được đề xuất sử dụng một nhóm các giải pháp đề cử đến các khu vực đầy hứa hẹn trong không gian tìm kiếm trong quá trình tìm kiếm giải pháp tối ưu toàn cục. SOS bắt đầu với một quần thể ban đầu được gọi là hệ sinh thái. Trong hệ sinh thái ban đầu, một nhóm sinh vật được tạo ngẫu nhiên vào không gian tìm kiếm. Mỗi sinh vật đại diện cho một giải pháp đề cử cho vấn đề tương ứng. Mỗi sinh vật trong hệ sinh thái được liên kết với một giá trị thích ứng nhất định, phản ánh mức độ thích ứng với mục tiêu mong muốn. Trong SOS, thế hệ giải pháp mới được chi phối bằng cách bắt chước mối quan hệ cộng sinh giữa hai sinh vật trong hệ sinh thái. SOS có 3 giai đoạn giống như mô hình tương tác sinh học trong thế giới thực được giới thiệu: giai đoạn tương sinh, giai đoạn hội sinh và giai đoạn ký sinh.

4.2.1.1. Giai đoạn tương sinh:

Tương sinh là một mối quan hệ cộng sinh, nơi cả hai sinh vật có được lợi ích từ nhau. Trong SOS, một sinh vật X j được chọn ngẫu nhiên từ hệ sinh thái, được sử dụng để tương tác với một sinh vật X i . Sinh vật X i là thành viên thứ i của hệ sinh thái. Cả

hai sinh vật đều tăng khả năng sinh tồn lẫn nhau dựa trên sự tương hỗ trong hệ sinh thái. Các sinh vật mới cho X iX j được tạo ra dựa trên mối quan hệ cộng sinh lẫn nhau giữa sinh vật X iXj bằng các phương trình sau [49] :

XinewXirand  0,1  XbestMVbf1 (4.1)

XnewjXjrand  0,1  XbestMVbf2 (4.2)

2

j

i X

MV X

 (4.3) Trong đó, rand(0,1) là một vector của các số ngẫu nhiên giữa 0 và 1; Xbest là đại diện cho một sinh vật tốt nhất trong một hệ sinh thái; MV biểu thị một vector tương hỗ đại diện cho mối quan hệ cộng sinh lẫn nhau giữa sinh vật XiXj ; bf1bf2 là các hệ số lợi ích mô tả mức độ lợi ích cho mỗi sinh vật. Những yếu tố này được lựa chọn ngẫu nhiên như 1 hoặc 2. (1 là cho một phần lợi ích trong khi 2 là cho lợi ích đầy đủ).

Các sinh vật chỉ được cập nhật nếu thể lực mới của chúng tốt hơn hơn thể lực trước khi tương tác của chúng.

4.2.1.2. Giai đoạn hội sinh:

Tương tự như giai đoạn tương sinh, một sinh vật Xj được chọn ngẫu nhiên từ hệ sinh thái để tương tác với Xi. Trong hoàn cảnh này, sinh vật Xi cố gắng hưởng lợi từ sự tương tác. Tuy nhiên, bản thân sinh vật Xj không có lợi mà cũng không phải chịu mối quan hệ. Giải pháp đề cử mới của Xi được tính theo sự cộng sinh giữa sinh vật XiXj, được mô hình hóa trong biểu thức (4.4). Theo các quy tắc, sinh vật Xi chỉ được cập nhật nếu thể lực mới của nó là tốt hơn so với thể lực của nó trước khi tương tác [49].

   best j

i new

i X rand X X

X   1,1   (4.4) 4.2.1.3. Giai đoạn ký sinh:

Trong SOS, sinh vật Xi được trao một vai trò tương tự như con muỗi Anopheles thông qua việc tạo ra một ký sinh trùng nhân tạo được gọi là Parasite_Vector.

Parasite_Vector được tạo trong không gian tìm kiếm bằng cách nhân đôi sinh vật Xi, sau đó Xi tự sửa đổi kích thước bằng cách sử dụng một số ngẫu nhiên để tạo Parasite_Vector trong không gian tìm kiếm. Sinh vật Xj được chọn ngẫu nhiên từ hệ sinh thái và đóng vai trò như là vật chủ của Parasite_Vector. Parasite_Vector cố gắng thay thế Xj trong hệ sinh thái. Cả hai sinh vật sau đó được đánh giá để đo lường thể lực của chúng. Nếu Parasite_Vector có giá trị thể lực tốt hơn, nó sẽ giết chết sinh vật Xj và đảm nhận vị trí của nó trong hệ sinh thái. Nếu giá trị thể lực của Xj tốt hơn, Xj sẽ có khả năng miễn dịch với ký sinh trùng và Parasite_Vector sẽ không còn có thể sống trong hệ sinh thái đó. [47]

Pseudocode của thuật toán SOS

Đặt tham số điều khiển (Kích thước của bài toán D, kích thước hệ sinh thái Eco_size và số lần lặp tối đa itermax )

Khởi tạo quần thể sinh vật một cách ngẫu nhiên Đặt iter = 1

while ( iter < itermax )

Xác định sinh vật tốt nhất Xbest trong một hệ sinh thái for i = 1: Eco_size

% Giai đoạn tương sinh %

Chọn ngẫu nhiên một sinh vật Xj , trong đó XjXi Sửa đổi sinh vật XiXj bằng các phương trình (4.1-4.3);

Tính giá trị thể lực của các sinh vật mới;

Cập nhật các sinh vật mới với thể lực tốt hơn;

% Giai đoạn hội sinh %

Chọn ngẫu nhiên một sinh vật Xj , trong đó XjXi

Sửa đổi sinh vật Xi với sự trợ giúp của sinh vật Xj sử dụng phương trình (4.4);

Tính giá trị thể lực của sinh vật mới;

Cập nhật các sinh vật mới với thể lực tốt hơn;

% Giai đoạn ký sinh %

Chọn ngẫu nhiên một sinh vật Xj , trong đó XjXi Sửa đổi sinh vật Xi theo Mục 4.2.1.3;

Tính giá trị thể lực của sinh vật mới;

Cập nhật các sinh vật mới với thể lực tốt hơn;

end

iter = iter + 1;

end

Hình 4.1. Pseudocode của thuật toán SOS [1].

Một phần của tài liệu Áp dụng giải thuật tìm kiếm sinh vật lai tối ưu vị trí đặt tụ bù trong lưới điện phân phối có xét đến nhiều mức phụ tải khác nhau (Trang 83 - 86)

Tải bản đầy đủ (PDF)

(131 trang)