Tôi đang viết một thuật toán di truyền. Dân số của tôi nhanh chóng phát triển một loài độc canh. Tôi đang sử dụng một số lượng nhỏ (32 cá thể) với một số lượng nhỏ các gen rời rạc (24 gen cho mỗi cá thể) và một phương pháp giao phối chéo chéo điểm duy nhất. Kết hợp điều đó với một chiến lược lựa chọn bánh xe roulette và rất dễ dàng để xem tất cả sự đa dạng di truyền bị mất chỉ trong vài chục thế hệ.Ngăn chặn cận huyết và độc canh trong thuật toán di truyền (câu hỏi mới)
Điều tôi muốn biết là câu trả lời thích hợp là gì? Tôi không có kiến thức cấp học thuật về GA và chỉ một vài giải pháp đến với tâm trí:
- Sử dụng dân số đông hơn. (chậm)
- Sử dụng kiểm tra thời gian chạy để tránh sinh sản. (chậm)
- Sử dụng nhiều điểm giao nhau hơn. (không hiệu quả)
- Tăng số lượng đột biến.
Một số câu trả lời thích hợp cho tình huống là gì?
Tôi đang tiến hành di chuyển chức năng thể dục của mình sang GPU bằng CUDA. Tôi tăng dân số lên 4096 và có kết quả tốt hơn. Tôi thích quy tắc của bạn về population_size> num_genes^2. – ahoffer
Cảm ơn nhưng hãy nhớ rằng nó chỉ là một quy tắc cá nhân của ngón tay cái, và tôi không có dữ liệu để sao lưu nó lên khác hơn là instut ruột và kinh nghiệm cá nhân. :) – NWS