Şu anda genetik algoritmaların çok basit bir örneğini gerçekleştirmeye çalışıyorum. Bir noktada, bir "çocuk" almak için iki sayıyla (ebeveynler) bir "Cross-Over" (biyoloji) yapmak zorundasınızdır.Kesişen iki tamsayı bitwise
Burada Çapraz-Over ilgili bir açıklama bulabilirsiniz: (. İkinci illüstrasyon, daha kolay "tek nokta" Çapraz Üzeri ben yapmaya çalışıyorum biridir)
How to "crossover" two strings (1234 & abcd -> 12cd & ab34)
Kromozomlar (ebeveynler ve çocuklar) sayılardır, ancak "Geçiş" işlemi biraz çalışır.
- hareket sağa bit X miktarı (
>>>
operatörü) - ve yeniden X konumlarının bit hareket: aşağıdaki olan "kromozom" biri için bir çözüm, bulunan ama sol (
<<
operatör) için bu kez
Yani bu kromozomların birinin ucunu tutmak ve 0s ile başlangıcını doldururdu. Ama diğer kromozomun problemini nasıl çözeceğimi ve sonra Cross-Over'ı da nasıl yapacağımı bilmiyorum.
(Muhtemelen XOR bir kez kromozomların başı/sonu tuttu ve 0s ile dinlenme doldurdu.)Ya ben bile başka bir açıdan bu sorunu yaklaşım gerekir? Çapraz-Over kesir p ise
her zaman iki giriş numaraları gibi ne kadar büyük biliyor musunuz (örneğin 16 bit tamsayı) ? – David
Evet, her zaman 16 bit tam sayıdır. Değiştirilebilen bir şey Çapraz Geçişin% 'si. Örneğin,% 75, ilk A (% 25) bit A'yı tutuyor ve daha sonra, bu 4 biti, ana B'den 12 (% 75) bit ile takip ediyordu. –