Tại sao lại là một phần của thuật toán di truyền?


8

Thuật toán di truyền đã được tôi chú ý gần đây khi cố gắng sửa / cải thiện đối thủ máy tính cho các trò chơi máy tính chiến lược theo lượt.

Tôi đã triển khai một Thuật toán di truyền đơn giản không sử dụng bất kỳ giao thức chéo nào, chỉ là một số đột biến ngẫu nhiên. Nó dường như hoạt động trong trường hợp này, và vì vậy tôi bắt đầu suy nghĩ:

Tại sao lại là một phần của thuật toán di truyền? Sẽ không đột biến là đủ?

Đây là từ một bãi chứa dữ liệu trên một trang web AI cũ. Người hỏi có UID là 7.

Câu trả lời:


7

Đột biến thường được định nghĩa là một toán tử toàn cầu , tức là đột biến lặp (cuối cùng) có khả năng đạt đến mọi điểm trong không gian vectơ được xác định bởi bộ gen. Theo nghĩa đó, đột biến một mình chắc chắn là 'đủ'.

Về động lực cho sự giao nhau - từ Essentials of Metaheuristic , p42:

Crossover ban đầu được dựa trên tiền đề rằng các cá nhân rất phù hợp thường chia sẻ những đặc điểm nhất định, được gọi là các khối xây dựng , nói chung. Ví dụ: trong cá nhân boolean 10110101, có lẽ *** 101 * 1 có thể là một khối xây dựng

(trong đó * có nghĩa là "0 hoặc 1")

Vì vậy, ý tưởng là sự giao nhau hoạt động bằng cách lan truyền các khối xây dựng nhanh chóng trong toàn bộ dân cư.

Các phương pháp trao đổi chéo cũng cho rằng có một số mức độ liên kết giữa các gen trên nhiễm sắc thể: đó là, cài đặt cho một số gen nhất định trong các nhóm có liên quan chặt chẽ đến cải thiện thể lực. Ví dụ, gen A và B chỉ có thể đóng góp cho thể dục khi cả hai được đặt thành 1: nếu một trong hai được đặt thành 0, thì thực tế là gen kia được đặt thành 1 sẽ không làm gì cả.

Cũng lưu ý rằng chéo không phải là một nhà điều hành toàn cầu . Nếu toán tử duy nhất là chéo thì (cũng từ p42):

Cuối cùng, dân số sẽ hội tụ và thường (không may) hội tụ sớm, thành các bản sao của cùng một cá nhân. Ở giai đoạn này, không có lối thoát: khi một cá nhân vượt qua chính nó, không có gì mới được tạo ra.

Vì lý do này, chéo thường được sử dụng cùng với một số toán tử đột biến toàn cầu.


5

Crossover cho phép kết hợp hai cha mẹ (so với đột biến, chỉ sử dụng một cha mẹ). Trong một số trường hợp, nó rất hữu ích (ví dụ: nếu bạn huấn luyện bot FPS, nếu một phụ huynh giỏi bắn súng và một phụ huynh khác giỏi di chuyển, sẽ rất hợp lý khi kết hợp chúng). Trong một số trường hợp khác, nó không phải là.


4

Khi nghĩ về crossover, điều quan trọng là suy nghĩ về cảnh quan thể dục.

Hãy xem xét một kịch bản giả thuyết trong đó chúng tôi đang áp dụng một thuật toán di truyền để tìm ra giải pháp thực hiện tốt ở 2 nhiệm vụ. Đây có thể là từ ví dụ của Franck (di chuyển và bắn súng) cho AI, hoặc có thể dự đoán 2 kết quả đầu ra trong kịch bản học máy di truyền, nhưng thực sự hầu hết các kịch bản áp dụng GA đều đồng nghĩa (ngay cả khi giải quyết một nhiệm vụ, có thể được các khía cạnh khác nhau của nhiệm vụ được giải quyết).

Giả sử chúng ta có một cá nhân, 1, hoạt động khá tốt ở cả hai nhiệm vụ và chúng tôi đã tìm thấy một loạt các đột biến tạo ra 2 cá thể mới, 2 và 3, hoạt động tốt hơn Cá nhân 1 ở nhiệm vụ 1 và 2 tương ứng. Bây giờ trong khi cả hai đều là những cải tiến, lý tưởng là chúng tôi muốn tìm một giải pháp nói chung tốt, vì vậy chúng tôi muốn kết hợp các tính năng mà chúng tôi thấy là có lợi.

Đây là nơi giao nhau đến; bằng cách kết hợp bộ gen của Cá nhân 2 và 3, chúng ta có thể tìm thấy một số cá thể mới tạo ra hỗn hợp các màn trình diễn của chúng. Mặc dù có thể một cá thể như vậy có thể được tạo ra bởi một loạt các đột biến được áp dụng cho Cá nhân 2 hoặc Cá nhân 3, nhưng phong cảnh có thể đơn giản là không phù hợp với điều này (ví dụ, có thể không có đột biến thuận lợi theo hướng đó).

nhập mô tả hình ảnh ở đây

Bạn đúng một phần do đó; đôi khi có thể là trường hợp lợi ích của sự giao nhau có thể được nhân rộng với một loạt các đột biến. Đôi khi điều này có thể không phải là trường hợp và sự giao nhau có thể làm trơn tru cảnh quan thể dục của GA của bạn, tăng tốc độ tối ưu hóa và giúp GA của bạn thoát khỏi tối ưu cục bộ.


Nếu (như trường hợp), toán tử đột biến là toàn cục (nghĩa là có khả năng biểu thị tất cả các điểm trong không gian tìm kiếm), thì luôn có thể biểu thị kết quả của sự giao thoa thông qua (một số chuỗi) đột biến. Tuy nhiên (theo câu trả lời của tôi) điều ngược lại không phải là trường hợp.
NietzscheanAI

Đó là sự thật, tôi chỉ muốn minh họa quan điểm của bạn và Franck bằng một ví dụ :)
Tim Atkinson

Các ví dụ luôn tốt - Tôi nên bao gồm nhiều hơn trong số chúng ;-)
NietzscheanAI
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.