Conway'in Hayat Oyunu

Hayat oyunu 1970'te İngiliz matematikçi Horton Conway tarafından geliştirirmiş bir hücresel otomattır. Hücresel otomatın en iyi bilinen örneğidir.
Bu oyun aslında, insan oyunculardan girdiye ihtiyaçsız başlangıç durumları tarafından evreleri saptanan anlamına gelen insansız bir oyundur. Birinin başlangıç yapılandırmasını yaratarak ve nasıl geliştiğini gözlemleyerek hayat oyununu etkilemesidir.

Yineleme

Izgaranın üstündeki bir rastgele yaşayan başlangıç kalıplarından dolayı gözlemciler nesiller yanında imlerken sürekli değişerek nüfusu bulacaklardır. Kalıplar üzerine düşünülmüş güzelliğin bir formu olabilen basit kurallardan ortaya çıkar. Simetrik olmayan başlangıçlar simetrik olma eğilimi ile izole edilmiş küçük alt kalıplardır. Bollukta bu bir kez artabilir simetri olur, ama bir yakın kalıp düzenini bozmak için yakına gelmedikçe, kaybetdirilemez. Birçok sebepte tüm yaşayan hücrelerin yok olmasıyla toplum sonuncunda ortadan kaybolur,  buna rağmen birçok büyük nesil için bu olmayabilir.  İki veya birçok durum arasında sonsuza kadar salınan sabit biçimler veya kalıplardan birini üreterek çoğu başlangıç kalıbı sonunda "yanar"; hem de birçoğu başlangıç konumundan belirsizce uzaklara giden bir veya daha çok “planör” veya “uzay gemisi” üretir.

Algoritmalar

Yaşam Oyununun en erken sonuçları bilgisayarların kullanımı dışında elde edildi. Grafik kâğıtları, kara tahtalar, cismi oyun tahtalarında (go gibi) ve onun gibileri kullanılarak çeşitli kaderlerin küçük başlangıç kurulumları izlenir iken basit “osilatörler” ve “durgun-yaşamlar” keşfedildi. İlk araştırmalar boyunca, Conway F-pentomino (onun “R-pentomino” dediği) nesillerin küçük bir sayısı içinde dengede başarısız olduğu keşfetti.
Bu keşifler dünya üstündeki bilgisayar programlarına Yaşam kalıplarının evriminin izinde programlar yazmak için ilham verdi. Biri güncel nesilleri tutmak için ve biri içinde olan ardıllarını hesaplamak için tipik tarzda iki sıra kullanıldı. Çoğunlukla 0 ve 1 sırasıyla ölü ve yaşayan hücreleri temsil etti. Bir çift döngü, her ardıl dizlerin uygun elemanlarının 0 veya 1 olup olmadığına karar vermek için her hücrenin yaşan komşu hücresini sayarak döngü içinde güncel dizilerin her elamanını hesaba katar. Ardıl diziler gösterildi. Gelecek tekrarlama için diziler, gelecek tekrar için güncel dizi olan son tekrar içindeki ardıl diziler için görevleri değiş tokuş ettirir.
Basit şema için Minör artırımların çeşitleri olanaklıdır ve gereksiz hesapları kaydetmek için birçok yol vardır. Bir hücre son zaman basamağında ve onun değişmiş komşularının hiçbirinde değişmeyen, en uygun güncel zaman adımında değişmeyeceğine garanti edilmiş, yani güncellenmeyen hareketsiz bölgelerden geçerek zamanı kayıt edebilen aktif alanın izlerini tutan bir programdır.
Prensipte, yaşam alanı sonsuzdur ama bilgisayar sonlu hafızaya sahiptir ve çoğunlukla ileride sıranın boyutları bildirilmelidir. Sıranın sınırında aktif bölgeler haddini aştığında bu problemlere yol gösterir. Bu problemleri adreslemek için programcılar birçok stratejiye sahiptir.  En basit strateji basit olarak her hücrenin dışındaki ölü dizileri varsaymaktır. Bu program için basittir ama aktif bölge sınırı geçtiği zaman, yanlış sonuçlar gösterir. Bir karışık hile bir halka diziden kar sağlayarak beraber dikili olan alanların sağ ve sol kenarlarını, ayrıca köşelerin dibi ve zirvesini üzerinde düşünmektir. Sonuç karşı köşede bir yeniden görünen arazinin kenarına çaprazlama hareket eden aktif bölgelerdir. Eğer kalıp çok geniş büyürse, Ama en azından patolojik kenar etkisi yoktur, yine de yanlışlık meydana gelebilir. Dinamik belleğin paylaşımının teknikleri ayrıca büyüyen kalıpları tutmak için durmadan genişleyen diziler yaratarak kullanılabilir.
Alternatif olarak, programcı yaşayan hücreleri gösteren koordinat çiftlerinin bir vektörü gibi bir farklı veri yapısı kullanabilir ve iki boyutlu bir dizi ile Yaşam alanlarını gösteren kavramlardan vazgeçebilir. Bu yaklaşım nüfusun yaşayan koordineli dizinin büyüklüğünü geçmedikçe kalıplara engellenmemiş alanların çevresinde hareket etmelerine izin verir. Dezavantajı simülasyonun hızı yavaşlayarak yaşayan hücreleri saymak bir arama işlemi haline gelir. Karmaşık veri yapıları ile bu problem büyük ölçüde çözülebilir.
Geniş kalıpları keşfetmek için  fevkalade zaman derinlikleri, Hashlife gibi karışık algoritmalar yararlı olabilir.

Yaşamda varyasyonlar

Yaşamın orijinal başlangıcından beri, yeni kurallar geliştirirdi. Standart Yaşam Oyunu içinde, eğer bir hücre kesin olarak 3 komşuya sahipse,  bir hücre "doğmuş" olur, eğer 2 veya 3 yaşayan komşuya sahipse ve başkalarını öldürüyorsa, hayatta kalır, "23/3" gibi sembolize edilir. Bir hücrenin devam etmesi için sayıların listesi veya ilk sayı gerekir. İkinci set için doğum gereklidir. Bu nedenle "16/6" "eğer 6 tane komşu var ise bir hücre doğar ve eğer 1 veya 6 komşudan herhangi biri varsa geçinir" anlamına gelir. Yüksek Yaşam bu nedenle 23/36 olur, çünkü içinde 6 tane komşusu vardır, üstelik orijinal oyunun 23/36 kuralı bir doğuşu yaratır. Yinelemelerinden dolayı Yüksek Yaşam en iyi olarak bilinir. İlaveten bu evrenlerin geniş çoğunluğunun kaotik veya metruk olmasına rağmen varyasyonlar yaşamda var olur.