Halo semuanya. Dalam artikel ini saya ingin menggambarkan eksperimen saya tentang menciptakan "kehidupan buatan" di komputer.
Seperti apa bentuknya?
gambar bisa diklikLingkungan virtual dibuat di komputer dengan aturannya sendiri dan makhluk hidup sederhana pertama dilepaskan. Saya akan memanggil mereka bot. Bot bisa mati atau bertahan hidup dan memberikan keturunan. Keturunan mungkin sedikit berbeda dari leluhur.
Nah,
evolusi dan
seleksi alam diambil sebagai pekerjaan.
Dan saya hanya bisa menyaksikan perkembangan dunia.
Semakin tak terduga bagi pencipta dan opsi pengembangan dunia akan semakin beragam, semakin sukses percobaan dapat dipertimbangkan.
Perilaku bot dikendalikan oleh kode yang tertulis di dalamnya.
Ini adalah kode yang merupakan genom yang bertanggung jawab atas perilaku bot dan yang akan berubah selama evolusi.
Struktur internal kode adalah hal yang paling menarik dalam proyek ini.
Kode harus sederhana dan tahan berbagai modifikasi (perubahan tidak disengaja dari setiap elemen dalam kode) di atas sendiri tanpa kesalahan sintaksis.Kami akan kembali ke kode nanti, pertama saya akan menggambarkan dunia itu sendiri.
Deskripsi "dunia bot"
Dunia adalah bidang persegi dua dimensi. Horisontal itu ditutup dalam lingkaran, yaitu, jika bot melampaui tepi kiri, itu akan muncul di sisi kanan. Di atas dan di bawah gerakan dibatasi oleh dinding. Dunia, sebagaimana dipahami, adalah bagian dari reservoir, semakin tinggi, semakin banyak energi yang bisa diperoleh dari Matahari. Di bagian bawah, energi Matahari tidak lagi tersedia. Sebenarnya ini sudah cukup. Saya mulai bereksperimen dengan dunia seperti itu.
Lalu ia menambahkan "mineral" di bagian bawahnya yang bisa Anda peroleh energi. Semakin dalam, semakin banyak "mineral" yang bisa didapat bot. Setelah itu, bagian bawah dunia juga mulai dihuni.
Bot dapat bergerak dalam delapan arah dan menyelidiki sel yang berdekatan.
Bot dapat memakan bot lain yang terletak di sel yang berdekatan.
Bot mengumpulkan energi dan ketika mereka mengakumulasi jumlah tertentu, klon mereka akan keluar dari mereka.
Program yang sama ditulis dalam klon seperti pada induknya, tetapi dalam satu kasus dari empat acak diubah satu byte dalam program. Ini mungkin tidak mempengaruhi perilaku klon dengan cara apa pun, karena tidak semua perintah dalam program genom dieksekusi, sebagian besar genom mungkin tidak terlibat. Hal ini juga dapat menyebabkan kerusakan atau peningkatan kemampuan bot untuk bertahan hidup di dunia ini. Dalam kasus pertama, bot akan mati atau tidak bisa meninggalkan banyak keturunan. Jika kemampuan bot meningkat, lebih cenderung meninggalkan lebih banyak keturunan, yang akan menggantikan tetangga yang kurang sukses.
Bot tidak mati karena usia tua. Bot dapat mati jika cadangan energinya turun di bawah nol, jika dimakan oleh bot lain dan jika telah mengakumulasi jumlah energi maksimum, ia harus melepaskan keturunan, tetapi dikelilingi di semua sisi dan tidak dapat melakukan ini. Setelah mati, jika tidak dimakan, bot berubah menjadi organik, yang mulai tenggelam sampai bertemu dengan rintangan. Setelah itu, organik tetap dalam limbo. Bot lain bisa makan organik.
Di sini saya memberikan gagasan singkat tentang dunia bot virtual, cukup untuk memahami materi lebih lanjut. Sebenarnya dunia itu sendiri tidak begitu penting, Anda dapat bereksperimen dengan dunia yang berbeda. Jauh lebih menarik bagaimana gen kode bekerja.
Genom kode
- . — ( ). (
), , , . , , . 64 . ,
.
, ( ) . ,
. . 64 , 64 ( 0 63).

.
23.
«». , , , . . , , ,
. ,
«»,
. -.

, 1
63. ,
0,
«»,
1. 1 —
63. ,
.
63
«», . . , , 64.
, .
. , 8 , .
64 (0..63) . .

,
25 «».
25 (), . , . 0 63, 8. , 8 . 8 (0..7) — , . (64) 8. . ,
, , .
,
, . . , « », .
,
« ?» , , , , , . 1 1000, 0 63. , , 15. :
0, 15, 30, 45, 60 ...... 945.
. .

() 10.
№10. 33, « ?».
(+1), , .
14*15=210
210, +2.
23. .
10+23=33.
33 №33
, 210, +3.
8. .
10+8=18.
18 №18
,
«»,
« »,
«»,
« » . , , , .

() 7.
№7. 26, «».
(+1), , .
18 % 8 = 2
, , , +2.
0. .
7+0=7.
№7. , .
.
, +3.
3. .
7+3=10.
10 №10 , , .
, +4.
43. .
7+43=50. 50 №50
, +5. 24. . 7+24=31.
31 №31
, +6.
59. .
7+59=66.
66. , 64 2 №2
, , . . . , .
, - , . , , .
.
. , . :
«»,
«»,
«»,
« » . (
,
«»,
«»,
« ?» ) 15 , .
, .
, . , , , . ,
«» «» , . 25 . , , , ,
. , ,
«».
.
. ,
«» , .
.
, , , , .

.
«»,


. - .
.

( ) .
,
«» . , 4 8.

. , , .
. , .
. . , .

. , . , . ,
( , ).

, , , . .

. , . . (-) .
, 7- , , , . ,
RomanoBruno Java. . .
, , . .
,
« ». - .


21 . , .

347 , .

2000 , . , . , , , .
, , .
, , .
,
«».
«» , .
, , - . . .
- , .
, , ( ).
-, , , , . , , .
, , .
-, , .
, . 93 « ». . , - .
, .
Pixilangyadi.sk/d/rLamoeyt3NBRwLRomanoBruno Java
GitHub.