2012-12-08 11 views
15

Tôi hiện đang đọc một bài báo về việc sử dụng GA trong các vấn đề tối ưu hóa hạn chế. Tại một số phần, nó đang nói về việc áp dụng đề án niching trên các cá nhân (hoặc mặt trận Pareto mà họ thực hiện).Đề án niching là gì?

Nó có vẻ giống như một chương trình lựa chọn điển hình nhưng khi tôi tìm kiếm, tôi không thể tìm thấy một lời giải thích tốt cho nó.

Ai đó có thể giải thích cho tôi một cách đơn giản nhất có thể, những gì Đề án niching là?

Trả lời

33

Nói một cách đơn giản, niching là một lớp các phương thức cố gắng hội tụ thành nhiều giải pháp trong một lần chạy.

Đập là ý tưởng phân đoạn dân số của GA thành các tập hợp rời nhau, dự định để bạn có ít nhất một thành viên trong mỗi khu vực của chức năng thể dục là "thú vị"; nói chung bằng cách này, chúng tôi có nghĩa là bạn bao gồm nhiều hơn một optima địa phương.

Hãy tưởng tượng một chức năng như f(x) = sin(x^2).

enter image description here

Một GA bình thường cuối cùng sẽ hội tụ về phía một trong những cực tiểu toàn cầu hai. Điều nào phụ thuộc vào dân số ban đầu và sự biến động di truyền ngẫu nhiên xảy ra trong suốt thời gian chạy, nhưng cuối cùng, bạn sẽ nhận được n bản sao của một cá nhân trong một hoặc các thung lũng khác. Ví dụ, nếu bạn nhìn vào một GA như vậy khi nó đã gần như hội tụ, bạn có thể thấy một cái gì đó giống như

standard GA

Niching là một lớp chung của kỹ thuật nhằm kết thúc với khoảng một nửa dân số hội tụ trong mỗi tiểu (hoặc thậm chí có thể bao gồm một vài thành viên ở mức tối thiểu ít phù hợp tại x=0).

niching

Như tôi vừa nói, niching là không thực sự là một thuật toán quá nhiều như một lớp học chung của thuật toán. Một phương pháp như vậy là chia sẻ thể dục của Goldberg. Trong phương pháp này, chúng tôi xác định bán kính thích hợp sigma. Bất kỳ hai cá nhân gần nhau hơn này sigma được coi là trong cùng một niche, và do đó phải chia sẻ giá trị tập thể dục của họ (nghĩ về điều này như là một chức năng làm giảm tập thể dục của mỗi thành viên của niche càng đông dân cư thích hợp). Sau đó, bạn có GA hoạt động trên các giá trị tập thể dục được chia sẻ thay vì các giá trị thô.

Ý tưởng ở đây là bạn không khuyến khích hội tụ vào một vùng duy nhất của chức năng thể dục bằng cách giả vờ có nguồn lực hạn chế ở đó. Càng nhiều cá nhân cố gắng di chuyển vào, thì tất cả họ càng tệ hơn. Kết quả là khi GA hội tụ đến một địa phương tối ưu một nơi nào đó, sự tập thể dục của tối ưu đó giảm vì sự cạnh tranh gia tăng trong niche. Cuối cùng, một khu vực khác của cảnh quan thể dục trở nên hấp dẫn hơn và các cá nhân di cư ở đó. Ý tưởng là để đạt được trạng thái ổn định - một điểm cố định trong động lực - nơi một đại diện thích hợp của mỗi niche được duy trì.

Chia sẻ rất khó vì cần đặt thủ công bán kính thích hợp và thuật toán khá nhạy cảm với lựa chọn này. Một lựa chọn khác là đông đúc. Đặc biệt, bạn có thể tra cứu "Xác định đám đông", một phương pháp phổ biến trong một khoảng thời gian.Trong các phương thức dựa trên crowding, thay vì đối phó với bán kính rõ ràng, chúng ta làm việc bằng cách giới hạn tập hợp các cá thể mà một con mới có thể thay thế cho một số giải pháp tương tự, ví dụ như con cái có thể chỉ được phép thay thế một trong các cha mẹ của nó. Hiệu quả là cố gắng ngăn chặn việc thay thế một cá thể duy nhất bằng một cá thể rất giống với một tá người khác trong quần thể và do đó để bảo tồn sự đa dạng theo cách đó.

1

Yep giải thích tốt bởi deong cho niching. Tất cả các kỹ thuật này được thực hiện để duy trì sự đa dạng của dân số.

Thats những gì mặt trước pareto cũng vậy. Các GA đang tìm kiếm mặt trước Pareto là các thuật toán tiến hóa đa mục tiêu. Họ cố gắng tối ưu hóa không chỉ một tiêu chí mà là hai hoặc nhiều hơn. Vì vậy, mặt trận Pareto là tất cả các Indiviudals không bị chi phối bởi một cá nhân dân số. http://en.wikipedia.org/wiki/Pareto_efficiency

Nói cách ngắn: Một cá nhân A là thành viên của mặt trận Pareto nếu không có B cá nhân trong dân số ít nhất là tốt như A liên quan đến tất cả các tiêu chuẩn và tốt hơn so với A trong ít nhất một tiêu chí.