GA ile gençliğimde denemeler yaptım. Python'da şu şekilde çalışan bir simülatör yazdım.
Genler, bir sinir ağının ağırlıklarını kodladılar.
Sinir ağının girişleri dokunuşları algılayan "antenler" dir. Yüksek değerler çok yakın ve 0 dokunmama anlamına geliyordu.
Çıkışlar iki "tekerleğe" aitti. Her iki tekerlek de ileri giderse, adam ileri gitti. Tekerlekler zıt yönlerde olsaydı, adam döndü. Çıktının gücü, tekerleğin dönüş hızını belirledi.
Basit bir labirent oluşturuldu. Gerçekten basitti - aptalca bile. Ekranın alt kısmında başlangıç ve üstte iki duvar arasında bir hedef vardı. Her duvarın rastgele bir alanı vardı, bu yüzden her zaman bir yol vardı.
Başlangıçta rastgele çocuklar (onları böcek olarak düşündüm) başladım. Bir adam hedefe ulaşır ulaşmaz veya bir süre sınırına ulaşılır ulaşmaz uygunluk hesaplanır. O sırada hedefe olan mesafeyle ters orantılıydı.
Daha sonra onları eşleştirdim ve bir sonraki nesli yaratmak için "yetiştirdim". Yetiştirilmek üzere seçilme olasılığı uygunluğu ile orantılıydı. Bazen bu, çok yüksek bir nispi uygunluğa sahip olması durumunda kendisinin tekrar tekrar yetiştirildiği anlamına geliyordu.
Bir "sol duvara sarılma" davranışı geliştireceklerini düşündüm, ama her zaman daha az optimal bir şey izlediler. Her deneyde, böcekler spiral bir şekle dönüştü. Sağdaki bir duvara değene kadar dışarı doğru sarmal olurlardı. Bunu takip ederlerdi, sonra boşluğa vardıklarında aşağı doğru (boşluktan uzağa) ve etrafta sarılırlardı. 270 derece sola dönerler, sonra genellikle boşluğa girerlerdi. Bu onları duvarların çoğundan ve çoğu zaman hedefe götürür.
Eklediğim bir özellik, bireyler arasındaki ilişkiyi izlemek için genlere bir renk vektörü koymaktı. Birkaç nesil sonra, hepsi aynı renkte olacaktı, bu da bana daha iyi bir yetiştirme stratejisine sahip olmam gerektiğini söylüyor.
Daha iyi bir strateji geliştirmelerini sağlamaya çalıştım. Sinir ağını karmaşıklaştırdım - bir bellek ve her şeyi ekledim. Yardım etmedi. Hep aynı stratejiyi gördüm.
Sadece 100 kuşak sonra yeniden bir araya gelen ayrı gen havuzlarına sahip olmak gibi çeşitli şeyler denedim. Ama hiçbir şey onları daha iyi bir stratejiye itemez. Belki imkansızdı.
Bir başka ilginç şey de zaman içindeki zindeliği grafikle çizmektir. Yukarı çıkmadan önce aşağı inen maksimum fitness gibi kesin desenler vardı. Hiç bir evrim kitabının bu olasılık hakkında konuştuğunu görmedim.