Tại sao có giá trị chéo không phải là 0,5?


8

Hầu hết các tài liệu tôi đã đọc về GA đề nghị sử dụng giá trị chéo khoảng 0,7, do đó, bạn lấy 70% gen đầu tiên của một nhiễm sắc thể và 30% còn lại để tạo ra một nhiễm sắc thể mới.

Nếu bạn đang chọn nhiễm sắc thể bố mẹ bằng cách lấy hai nhiễm sắc thể hàng đầu (xếp hạng theo thể lực), thì tôi có thể thấy logic ở đây, vì bạn đang tăng thêm trọng lượng cho các gen của nhiễm sắc thể được xếp hạng cao hơn. Tuy nhiên, nếu bạn đang sử dụng phương pháp ngẫu nhiên (chẳng hạn như bánh xe roulette) để chọn cha mẹ, thì điểm quan trọng của việc sử dụng bất cứ thứ gì ngoài 0,5 làm giá trị chéo là gì? Cho rằng bạn đã chọn nhiễm sắc thể A và B làm cha mẹ, bạn có khả năng chọn A đầu tiên và B thứ hai như B đầu tiên và A thứ hai không?

Tôi mới chỉ thực sự viết một GA cho đến nay (vẫn đi xuống ở cuối đường cong học tập, nhưng tiến lên nhanh chóng nhờ một số trợ giúp tuyệt vời ở đây!), Nhưng các thí nghiệm trên đó cho thấy 0,5 mang lại sự hội tụ nhanh hơn cho giải pháp hơn bất kỳ giá trị khác.

Hay tôi đang thiếu một cái gì đó?


2
Most of the literature I've read about GAs suggests using a crossover value of around 0.7<- một điều cần lưu ý là rất nhiều loại giá trị này trong tối ưu hóa heuristic được dẫn xuất ít nhiều dựa trên những giá trị dường như dẫn đến kết quả tốt (thay vì dẫn xuất theo kinh nghiệm). Tôi ít quen thuộc với GA nhưng tôi biết trong các phương pháp tối ưu hóa dựa trên dân số khác, các hằng số được xác định khá tùy tiện, trong đó một số nhà nghiên cứu đã thực hiện một số thí nghiệm cơ bản, tìm thấy các giá trị hoạt động tốt hơn và sau đó các giá trị đó được cộng đồng tối ưu hóa chấp nhận .
enderland

1
Ngoài ra, tôi không thực sự chắc chắn tại sao câu hỏi này bị hạ thấp - nó có vẻ hoàn hảo về chủ đề và phạm vi.
enderland

1
Tôi sẽ không lo lắng về downvote ... Tôi nhận được một trên hầu hết các bài đăng tôi thực hiện ở đây.
Robert Harvey

2
@enderland: bạn có thể nói quá xa khi các giá trị đó bị đột biến ngẫu nhiên và các kết hợp mạnh nhất tồn tại? ;-)
Jörg W Mittag

2
Tôi cũng nói thêm rằng giá trị chéo của bạn không nhất thiết phải duy trì trạng thái tĩnh - vì một phần của mục tiêu của GA là có nhiều phương sai để khám phá nhiều đường dẫn, có thể là một tùy chọn để chọn giá trị chéo ngẫu nhiên giữa, nói, 0,5 và 0,8. Đặc biệt là nếu bạn không nhất thiết phải sử dụng chọn xác định.
Delioth

Câu trả lời:


5

Các hoạt động chéo lý tưởng phụ thuộc rất nhiều vào không gian vấn đề. Các giả định cơ bản của các thuật toán tiến hóa và di truyền là hai giải pháp tốt đôi khi có thể được kết hợp thành một giải pháp tốt hơn - các giải pháp tốt trông tương tự như các giải pháp tốt khác. Điều này theo trực giác có ý nghĩa nếu không gian vấn đề có một tối ưu duy nhất mà mỗi thế hệ kế tiếp sẽ hội tụ.

Khi có nhiều tối ưu, không gian ở giữa các tối ưu này theo định nghĩa là không tối ưu. Nếu chúng ta lấy một nhiễm sắc thể A gần một tối ưu và kết hợp nó với nhiễm sắc thể B từ gần tối ưu khác, chúng ta sẽ rơi vào giữa, và có khả năng sẽ có một nhiễm sắc thể c kém hơn cha mẹ của nó. Ở gần một hoặc cha mẹ khác làm tăng khả năng có được nhiễm sắc thể d tốt hơn hoặc ít nhất là không tệ hơn nhiều so với cha mẹ.

     _                d         ^ fitness
    / \              d \        |
   /   A            B   \       |
__/     \___ccc___dd     \____  |
-----------------------------------> chromosome space
     |                |
     |     valley     |
     |     of "meh"   |
1. optimum         2. optimum

Giá trị chéo chỉ là một tham số thuật toán bạn có thể điều chỉnh cho phù hợp với cấu trúc vấn đề của mình. Đôi khi bạn sẽ thấy sự hội tụ nhanh hơn với giá trị chéo thấp, đôi khi có giá trị chéo rất cao. Nhưng đối với các giá trị rất cao, điều này sẽ giống như một sự giao nhau mà chỉ là một thay đổi rất nhỏ như một đột biến. Vì vậy, thay vì sử dụng giá trị gần 1.0, bạn muốn giảm tỷ lệ chéo và tăng tỷ lệ đột biến.


@amon Cảm ơn bạn đã giải thích. Tôi đoán giống như với hầu hết những thứ này, đó là một trường hợp chơi xung quanh để xem những gì hoạt động trong tình huống cụ thể
Avrohom Yisroel

Điều này khiến tôi nghĩ rằng có lẽ tỷ lệ chéo nên được chọn ngẫu nhiên mỗi lần.
Hỏi về Monica

2

Một cách khó hiểu, tỷ lệ chéo và tỷ lệ đột biến, trong khi được đặt tên tương tự, thường được giải thích khác nhau.

Tỷ lệ đột biến của x% ==> Bạn thực hiện toán tử đột biến với xác suất 1.0 và mỗi ứng dụng của toán tử đó sẽ thay đổi x% số bit của cá thể bị đột biến.

Tỷ lệ chéo của x% ==> Bạn chọn thực hiện chéo tất cả với xác suất x.

Vì vậy, tỷ lệ chéo 70% không có nghĩa là bạn lấy 70% bit từ cha mẹ 1 và 30% từ cha mẹ 2. Điều đó có nghĩa là bạn sẽ thực hiện bất kỳ toán tử chéo nào bạn đã chọn 70% thời gian. 30% thời gian còn lại, bạn sẽ vượt qua cha mẹ không được sửa đổi vào bể con.


Cảm ơn vi đa trả lơi. Có lẽ tôi đã không giải thích rõ ràng về bản thân mình, nhưng đây là cách tôi hiểu hai người. Tôi đã không hỏi về đột biến, chỉ về chéo.
Avrohom Yisroel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.