Olá pessoal. No artigo, quero descrever meu experimento sobre a criação de "vida artificial" em um computador.
Como Ă© isso?
a imagem é clicávelUm ambiente virtual é criado no computador com suas próprias regras e o primeiro ser vivo simples é lançado. Vou chamá-los de bots. Bots podem morrer ou sobreviver e gerar filhotes. O descendente pode ser um pouco diferente do ancestral.
Bem, entĂŁo a
evolução e
a seleção natural são tomadas como trabalho.
E eu sĂł posso assistir o desenvolvimento do mundo.
Quanto mais inesperadas para o criador e as opções de desenvolvimento mundial forem mais diversas, mais bem-sucedido o experimento pode ser considerado.
O comportamento dos bots Ă© controlado pelo cĂłdigo escrito neles.
É o código que é o genoma responsável pelo comportamento do bot e que mudará durante a evolução.
A estrutura interna do cĂłdigo Ă© a coisa mais interessante no projeto.
O código deve ser simples e suportar várias modificações (alteração acidental de qualquer elemento no código) acima de si, sem erros de sintaxe.Voltaremos ao código mais tarde, primeiro descreverei o próprio mundo.
Descrição do "mundo dos bots"
O mundo Ă© um campo quadrado bidimensional. Horizontal, ele Ă© fechado em um cĂrculo, ou seja, se o bot ultrapassar a borda esquerda, ele aparecerá no lado direito. Acima e abaixo do movimento Ă© limitado pela parede. O mundo, como concebido, Ă© uma seção de um reservatĂłrio, quanto mais alto, mais energia pode ser obtida do Sol. Na metade inferior, a energia do Sol nĂŁo está mais disponĂvel. Na verdade, isso já Ă© suficiente. Comecei a experimentar exatamente esse mundo.
Então ele adicionou "minerais" na parte inferior dos quais você pode obter energia. Quanto mais profundo, mais "minerais" o bot pode obter. Depois disso, a parte inferior do mundo também começou a ser povoada.
Os robôs podem se mover em oito direções e sondar células adjacentes.
Os robôs podem comer outros robôs localizados em uma célula adjacente.
Os robĂ´s acumulam energia e, quando acumulam uma quantidade determinada, o clone deles brota deles.
O mesmo programa é escrito no clone e no pai, mas em um caso em cada quatro alterados aleatoriamente um byte no programa. Isso pode não afetar o comportamento do clone de forma alguma, uma vez que nem todos os comandos no programa do genoma são executados, a maior parte do genoma pode não estar envolvida. Também pode causar uma deterioração ou melhoria na capacidade do bot de sobreviver neste mundo. No primeiro caso, o bot morrerá ou não poderá deixar muitos descendentes. Se as habilidades do bot melhorarem, é mais provável que haja mais descendentes, o que substituirá os vizinhos menos bem-sucedidos.
Bots nĂŁo morrem de velhice. Um bot pode morrer se suas reservas de energia caĂrem abaixo de zero, se for consumido por outro bot e se tiver acumulado a quantidade máxima de energia, ele deve brotar de um descendente, mas Ă© cercado por todos os lados e nĂŁo pode fazer isso. ApĂłs a morte, se nĂŁo foi comido, o bot se transforma em produtos orgânicos, que começam a afundar atĂ© encontrar um obstáculo. Depois disso, os orgânicos permanecem no limbo. Outros bots podem comer produtos orgânicos.
Aqui, dei uma breve idéia do mundo virtual dos bots, suficiente para entender mais material. Na verdade, o mundo em si não é tão importante, você pode experimentar com mundos diferentes. É muito mais interessante como o gene do código funciona.
Genoma do cĂłdigo
- . — ( ). (
), , , . , , . 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.