Làm thế nào để đột biến và trao đổi chéo làm việc với các nhiễm sắc thể có giá trị thực?


7

Chính xác thì "đột biến" và "lai" được áp dụng như thế nào trong bối cảnh thuật toán di truyền dựa trên các số thực (trái ngược với chỉ các bit)? Tôi nghĩ rằng tôi đã hiểu làm thế nào hai giai đoạn đó được áp dụng trong bối cảnh "chính tắc" trong đó nhiễm sắc thể là các chuỗi bit có độ dài cố định, nhưng tôi không thể tìm thấy ví dụ cho các tình huống khác. Những pha đó sẽ trông như thế nào trên miền của các số thực?

Câu trả lời:


4

Bạn có bộ gen với một số gen nhất định:

genome = { GeneA: value, GeneB: value, GeneC: value }

Vì vậy, lấy ví dụ:

genome = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }

Một vài ví dụ về đột biến có thể là:

  • Chuyển qua hai gen: { GeneA: 1, GeneB: 3.4, GeneC: 2.5 }
  • Thêm / trừ một giá trị ngẫu nhiên từ một gen: { GeneA: 0.9, GeneB: 2.5, GeneC: 3.4 }

Giả sử bạn có hai bộ gen:

genome1 = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }
genome2 = { GeneA: 0.4, GeneB: 3.5, GeneC: 3.2 }

Một vài ví dụ về sự giao nhau có thể là:

  • Lấy trung bình: { GeneA: 0.7, GeneB: 3.0, GeneC: 3.3 }
  • Đồng phục (50% cơ hội): { GeneA: 0.4, GeneB: 2.5, GeneC: 3.2 }
  • Điểm chéo N: { GeneA: 1, | CROSSOVER POINT | GeneB: 3.5, GeneC: 3.2 }

Bạn có thể khá giàu trí tưởng tượng khi phát triển các phương pháp đột biến và chéo.


4

Như @Thomas W đã nói, bạn có thể khá bất động khi bạn đang phát triển các phương pháp đột biến và chéo. Mỗi vấn đề có tính chất vi khuẩn riêng và do đó, đòi hỏi một chiến lược khác nhau.

NHƯNG, từ kinh nghiệm của tôi, tôi muốn nói rằng 90% sự giao thoa và đột biến trên kiểu gen số thực được giải quyết bằng thuật toán BLX-α.

Giao nhau

Phạm vi thuật toán BlX-α

Thuật toán này thực sự đơn giản. Cho cha mẹ XY và một giá trị α (trong phạm vi [0,1], thường là khoảng 0,1 / 0,15, nhưng nó phụ thuộc vào vấn đề), đối với mỗi gen của kiểu gen của bạn:

  1. trích xuất gen xiyi
  2. tìm giá trị tối thiểu và tối đa
  3. gen mới sẽ là một số ngẫu nhiên trong khoảng [min - phạm vi * α, max + phạm vi * α]

Một biến thể của thuật toán này là BLX-αβ, trong đó chúng tôi tính đến việc cha mẹ nào thực hiện tốt hơn và sử dụng hai hằng số (α>) để tăng xác suất rằng giá trị mới sẽ gần với một trong những phụ huynh tốt nhất

Phạm vi thuật toán BLX-αβ

Đột biến:

Với đột biến, tình huống tương tự: chúng ta cần lấy một giá trị ngẫu nhiên có liên quan đến miền vấn đề của chúng ta (chúng ta không muốn các đột biến bị phá hủy! Chúng có chức năng khám phá không gian).
Trong những trường hợp này, rất hữu ích để xác định một phạm vi cho đột biến và sử dụng phạm vi đó để tìm giá trị mới của gen bằng BLX-α.

Một thuật toán đột biến tinh vi hơn có thể đạt được bằng cách sử dụng BLX-α trên các ranh giới phụ thuộc vào giá trị thực tế của gen và chức năng tập thể dục của từng cá nhân.
Hãy tưởng tượng rằng cá nhân chúng ta thực hiện theo cách rất xấu; trong trường hợp đó, toán tử đột biến sẽ được sử dụng để chuyển cá nhân đến một điểm xa trong không gian tìm kiếm, nơi nó có thể sẽ hoạt động tốt hơn.
Mặt khác, nếu cá nhân đã phù hợp, chúng tôi có thể không muốn giới thiệu một số thay đổi mạnh mẽ bằng cách sử dụng đột biến. Trong trường hợp đó, phạm vi đột biến sẽ được chứa nhiều hơn và sẽ có chức năng điều chỉnh kiểu gen thay vì khám phá để thay thế tốt hơn.

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.