Dzīvības spēle ir iedomāta robotu spēle (šūnu automāts), ko 1970. gadā izveidoja britu matemātiķis Džons Hortons Konvejs.

Spēle tiek saukta par spēli tāpēc, ka cilvēki, kas to spēlē, var to dažādi iestatīt, lai liktu tai darīt dažādas lietas. Dažreiz cilvēki spēlē spēli, sākumā mainot veidu, kā iedomātais robots ir iestatīts, lai vērotu, kas notiks. Dzīvības spēle ir spēle, kurā nav neviena spēlētāja, jo tā mainās, nevienam nespēlējot (pēc tam, kad ir izvēlēta sākuma pozīcija). Cita veida spēlē divi spēlētāji var uzstādīt iedomātus robotus, lai noskaidrotu, kurš no tiem ir labāks.



Kas ir Dzīvības spēle — īsi un skaidri

Dzīvības spēle ir vienkāršs, taču izrāvienu pilns piemērs šūnu automātam: kvadrātveida režģis, kur katra šūna var būt dzīva vai mirusi. Režģis tiek atjaunināts pa laikmetiem (generācijām), un katras šūnas nākotne ir atkarīga tikai no tās pašas un tās astoņu blakus esošo šūnu stāvokļa. Lai gan noteikumi ir vienkārši, rezultātā var rasties ļoti sarežģīti, reizēm pārsteidzoši modeļi.

Noteikumi

Pamatrulles (standarta Konveja versija, apzīmēta B3/S23):

  • Kaišinieki: katrai šūnai ir astoņi kaimiņi — horizontāli, vertikāli un diagonāli blakus esošās šūnas.
  • Dzimšana (Birth, B3): ja mirusa šūna tieši 3 no tās 8 kaimiņiem ir dzīvas, tad nākamajā solī tā kļūst dzīva.
  • Izturēšanās (Survival, S23): ja dzīva šūna ir 2 vai 3 dzīvu kaimiņu, tā paliek dzīva nākamajā solī.
  • Nāve: ja dzīva šūna ir mazāk par 2 dzīviem kaimiņiem, tā nomirst no atrautības (underpopulation); ja vairāk par 3 — tā nomirst no pārpildīšanas (overpopulation).
  • Atjaunināšana: visu režģi atjauno vienlaikus — jaunas stāvokļi neietekmē aprēķinus tajā pašā solī.

Kā tas darbojas praksē

Sākumā izvēlas sākotnējo izkārtojumu (sēriju dzīvu šūnu). Tad atkārtoti piemēro noteikumus pa solim (generācijām). Katrs solis ir deterministisks — no konkrētas sākotnējās konfigurācijas izriet viena un tā pati nākotnes attīstība. Dažreiz konfigurācija pēc daudziem soļiem stabilizējas, dažreiz ritmiski atkārtojas, dažreiz izplatās vai pilnībā izzūd.

Piemēri un biežāk sastopamie modeļi

  • Still lifes (nekustīgi modeļi) — nemainās pēc noteiktas attīstības: piemēram, "Block" (2x2 bloks), "Beehive", "Loaf", "Boat".
  • Oscillatori — modeļi, kas atkārtojas ar periodu >1: "Blinker" (periods 2), "Toad" (periods 2), "Beacon" (periods 2), "Penta-decathlon" (periods 15) u.c.
  • Kuģīši (spaceships) — pārvietojas cauri režģim: pazīstamākais ir "Glider" (mala pārvietošanās pa diagonāli, periods 4) un "Lightweight spaceship (LWSS)".
  • Guns un kūteri — konstrukcijas, kas regulāri izšauj kuģīšus, piemēram, slavenais Gosper glider gun, kas periodiski rada gliderus.
  • Kompleksas konstruktīvas shēmas — loģiskās shēmas, skaitītāji un pat Tjūringa mašīnas tika uzbūvētas Dzīvības spēlē, pierādot, ka tā ir aprēķināmi universāla (Turing-complete).

Kāpēc tas ir interesanti

  • Vienkāršas lokālas likumsakarības var radīt sarežģīgu, neparedzamu uzvedību — labs piemērs pašorganizācijai un emerģentajām parādībām.
  • Dzīvības spēle tiek izmantota kā modelis un demonstrācija matemātiskām idejām: fraktāliem, datorzinātnei, matemātiskajām struktūrām un tādām koncepcijām kā atgriezeniskā saite un stabilitāte.
  • Ir liela un aktīva kopiena, kas pēta jaunus modeļus, atklāj un klasificē elementus, būvē sarežģītas konstrukcijas.

Kā eksperimentēt ar Dzīvības spēli

  • Sāk ar nelielu sākuma konfigurāciju (piem., bloku, blinkera vai glidera) un palaid simulatōru pa vienam solim vai uz ātru skaitīšanu.
  • Pieraksti, vai modelis stabilizējas, kļūst par oscilatoru, izplatās vai izzūd.
  • Izmēģini gadījuma izkārtojumus (random seed) — interesantas struktūras var izveidoties no nejaušas sākotnējās pozīcijas.
  • Rīki: pastāv daudzi datorprogrammatūras un tiešsaistes simulācijas (piem., Golly, dažādi interaktīvi tīmekļa simulātori), kas ļauj ātri modelēt un analizēt izmaiņas.

Variācijas un paplašinājumi

Ir daudz konveijas spēles modifikāciju, kas maina dzimšanas un izdzīvošanas noteikumus (piem., HighLife B36/S23), maina režģi (trīsstūra, heksagonāls) vai pievieno nejaušību un citas dinamiskas sastāvdaļas. Katra variācija var radīt pavisam jaunas uzvedības formas un modeļus.

Vienkāršs pseido-kods

Īss apraksts, kā darbina standarta versiju:

 1. Nolasīt pašreizējo režģi (matricu). 2. Par katru šūnu saskaitīt dzīvo kaimiņu skaitu. 3. Ja šūna bija dzīva:      - ja kaimiņu skaits 2 vai 3 -> dzīvo nākamajā solī      - citādi -> mirst    Ja šūna bija mirusi:      - ja kaimiņu skaits == 3 -> kļūst dzīva      - citādi -> paliek mirusi 4. Aizstāt matrici ar jaunajiem stāvokļiem un atkārtot no 2. 

Nobeigums

Dzīvības spēle ir vienkāršs, bet dziļš eksperimentāls rīks, kas ļauj pētīt, kā lokālas interakcijas var radīt sarežģītu globālu uzvedību. No izglītības un izklaides viedokļa tā ir pieejama, bet arī matemātiski un konceptuāli bagāta, tāpēc piesaista gan hobijistus, gan pētniekus visā pasaulē.