In[1]:=

Ewolucja_liczb_wymiernych_1.gif

In[2]:=

Ewolucja_liczb_wymiernych_2.gif

In[3]:=

Ewolucja_liczb_wymiernych_3.gif

In[4]:=

Ewolucja_liczb_wymiernych_4.gif

In[5]:=

Ewolucja_liczb_wymiernych_5.gif

In[6]:=

Ewolucja_liczb_wymiernych_6.gif

In[7]:=

Ewolucja_liczb_wymiernych_7.gif

In[8]:=

Ewolucja_liczb_wymiernych_8.gif

Przykład dzialania powyższych funkcji:

In[9]:=

Ewolucja_liczb_wymiernych_9.gif

Out[9]=

Ewolucja_liczb_wymiernych_10.gif

In[10]:=

Ewolucja_liczb_wymiernych_11.gif

Out[10]=

Ewolucja_liczb_wymiernych_12.gif

In[11]:=

Ewolucja_liczb_wymiernych_13.gif

Out[11]=

Ewolucja_liczb_wymiernych_14.gif

In[12]:=

Ewolucja_liczb_wymiernych_15.gif

Out[12]=

Ewolucja_liczb_wymiernych_16.gif

In[13]:=

Ewolucja_liczb_wymiernych_17.gif

Out[13]=

Ewolucja_liczb_wymiernych_18.gif

In[14]:=

Ewolucja_liczb_wymiernych_19.gif

Out[14]=

Ewolucja_liczb_wymiernych_20.gif

W tym momencie ,,aparat komórkowy’’ jest już gotowy, potrzebujemy teraz ,,wrogiego środowiska’’. Wszytkie organizmy które kiepsko poradzą sobie z zadaniem ,,obliczenia’’ liczby Pi, E lub Sqrt[2] zostaną sklasyfikowane niżej i nie przejdą do dalszego etapu. Ocena polega na obliczeniu
sumy:

In[15]:=

Ewolucja_liczb_wymiernych_21.gif

Teraz tworzymy populację 200 prymitywnych (długość DNA to 4 zasady) osobników:

In[16]:=

Ewolucja_liczb_wymiernych_22.gif

In[17]:=

Ewolucja_liczb_wymiernych_23.gif

Obliczamy ,,jakość’’ każdego osobnika funkcją d i dla wygody sortujemy od nalepszego do najgorszego:

NOWE POKOLENIE:

In[18]:=

Ewolucja_liczb_wymiernych_24.gif

In[19]:=

Ewolucja_liczb_wymiernych_25.gif

Out[19]=

Ewolucja_liczb_wymiernych_26.gif

Bierzemy połowę ,,najlepszych’’:

In[20]:=

Ewolucja_liczb_wymiernych_27.gif

Out[20]=

Ewolucja_liczb_wymiernych_28.gif

Duplikujemy (rozmnażamy przez podział) najlepszych:

In[21]:=

Ewolucja_liczb_wymiernych_29.gif

Out[21]=

Ewolucja_liczb_wymiernych_30.gif

Dokonujemy mutacji (są one mało prawdopodobne, więc często prawie nic się nie zmienia):

In[22]:=

Ewolucja_liczb_wymiernych_31.gif

Out[22]=

Ewolucja_liczb_wymiernych_32.gif

Tworzymy nowe pokolenie, i wracamy na początek (oznaczone wcześniej ,,NOWE POKOLENIE’’):

In[23]:=

Ewolucja_liczb_wymiernych_33.gif

Out[23]=

Ewolucja_liczb_wymiernych_34.gif

Oczywiście robienie tych czynności ręcznie ma sens tylko na początku, aby zrozumieć o co chodzi. Potem należy zostawić to komputerowi, pętla Do powtarza zadane czynności wielokrotnie:

In[48]:=

Ewolucja_liczb_wymiernych_35.gif

Out[48]=

Ewolucja_liczb_wymiernych_36.gif

In[49]:=

Ewolucja_liczb_wymiernych_37.gif

Out[49]=

Ewolucja_liczb_wymiernych_38.gif

In[50]:=

Ewolucja_liczb_wymiernych_39.gif

Out[50]=

Ewolucja_liczb_wymiernych_40.gif

In[51]:=

Ewolucja_liczb_wymiernych_41.gif

Out[51]=

Ewolucja_liczb_wymiernych_42.gif

In[52]:=

Ewolucja_liczb_wymiernych_43.gif

Out[52]=

Ewolucja_liczb_wymiernych_44.gif

In[53]:=

Ewolucja_liczb_wymiernych_45.gif

Out[53]=

Ewolucja_liczb_wymiernych_46.gif

In[54]:=

Ewolucja_liczb_wymiernych_47.gif

Out[54]=

Ewolucja_liczb_wymiernych_48.gif

In[55]:=

Ewolucja_liczb_wymiernych_49.gif

Out[55]=

Ewolucja_liczb_wymiernych_50.gif

Spikey Created with Wolfram Mathematica 8.0