Saya bereksperimen dengan GA di masa muda saya. Saya menulis sebuah simulator dengan Python yang berfungsi sebagai berikut.
Gen-gen itu mengkodekan bobot jaringan saraf.
Input jaringan saraf adalah "antena" yang mendeteksi sentuhan. Nilai yang lebih tinggi berarti sangat dekat dan 0 berarti tidak menyentuh.
Outputnya adalah dua "roda". Jika kedua roda maju, pria itu maju. Jika roda berada di arah yang berlawanan, pria itu berbalik. Kekuatan output menentukan kecepatan putaran roda.
Labirin sederhana dihasilkan. Itu sangat sederhana - bahkan bodoh. Ada awal di bagian bawah layar dan gol di bagian atas, dengan empat dinding di antaranya. Setiap dinding memiliki ruang yang diambil secara acak, jadi selalu ada jalan.
Saya mulai secara acak (saya menganggapnya sebagai bug) pada awalnya. Segera setelah satu pria mencapai tujuan, atau batas waktu tercapai, kebugaran dihitung. Itu berbanding terbalik dengan jarak ke gawang saat itu.
Saya kemudian memasangkannya dan "membesarkan" mereka untuk menciptakan generasi berikutnya. Probabilitas dipilih untuk dibiakkan sebanding dengan kebugarannya. Terkadang ini berarti seseorang dibiakkan dengan dirinya sendiri berulang kali jika memiliki kebugaran relatif yang sangat tinggi.
Saya pikir mereka akan mengembangkan perilaku "memeluk dinding kiri", tetapi mereka tampaknya selalu mengikuti sesuatu yang kurang optimal. Dalam setiap percobaan, bug bertemu dengan pola spiral. Mereka akan berputar ke luar sampai mereka menyentuh dinding ke kanan. Mereka akan mengikuti itu, lalu ketika mereka sampai ke celah, mereka akan spiral ke bawah (jauh dari celah) dan di sekitar. Mereka berbelok 270 derajat ke kiri, lalu biasanya memasuki celah. Ini akan membuat mereka melewati sebagian besar tembok, dan seringkali ke tujuan.
Salah satu fitur yang saya tambahkan adalah memasukkan vektor warna ke dalam gen untuk melacak keterkaitan antar individu. Setelah beberapa generasi, mereka semua memiliki warna yang sama, yang memberi tahu saya bahwa saya harus memiliki strategi pemuliaan yang lebih baik.
Saya mencoba membuat mereka mengembangkan strategi yang lebih baik. Saya mempersulit jaringan syaraf - menambah memori dan segalanya. Itu tidak membantu. Saya selalu melihat strategi yang sama.
Saya mencoba berbagai hal seperti memiliki kumpulan gen terpisah yang hanya digabungkan kembali setelah 100 generasi. Tetapi tidak ada yang akan mendorong mereka ke strategi yang lebih baik. Mungkin itu tidak mungkin.
Hal lain yang menarik adalah grafik kebugaran dari waktu ke waktu. Ada beberapa pola yang pasti, seperti kebugaran maksimum yang turun sebelum naik. Saya belum pernah melihat buku evolusi berbicara tentang kemungkinan itu.