Conway'in Hayat Oyunu - Conway's Game of Life

Tek bir Gosper 'ın planör tabanca oluşturarak planör
Arkasında planör silahları (yeşil) bırakan ve ardından planörler (mavi) oluşturan kirpi türü bir yetiştiricinin (kırmızı) ekran görüntüsü ( animasyon )

Hayat Oyunu da basitçe olarak bilinen Yaşam , bir olan hücresel otomat İngiliz tarafından geliştirilen matematikçi John Horton Conway Bu bir 1970 yılında sıfır oyunculu oyun evrimi başka girişi gerektiren başlangıç durumuna göre belirlenir, yani. Kişi, bir başlangıç ​​konfigürasyonu yaratarak ve nasıl geliştiğini gözlemleyerek Hayat Oyunu ile etkileşime girer. Bu edilir komple Turing ve bir simüle edebilirsiniz evrensel yapıcısı veya başka herhangi bir Turing makinesi .

Tüzük

Game of Life'ın evreni , her biri canlı veya ölü (ya da sırasıyla nüfuslu ve nüfussuz ) iki olası durumdan birinde olan kare hücrelerden oluşan sonsuz, iki boyutlu bir ortogonal ızgaradır . Her hücre , yatay, dikey veya çapraz olarak bitişik hücreler olan sekiz komşusu ile etkileşime girer . Zaman içindeki her adımda, aşağıdaki geçişler gerçekleşir:

  1. İkiden az canlı komşusu olan herhangi bir canlı hücre, az nüfustanmış gibi ölür.
  2. İki veya üç canlı komşusu olan herhangi bir canlı hücre, bir sonraki nesle kadar yaşar.
  3. Üçten fazla canlı komşusu olan herhangi bir canlı hücre, sanki aşırı nüfus nedeniyle ölür.
  4. Tam olarak üç canlı komşusu olan herhangi bir ölü hücre, sanki üreme yoluyla canlı bir hücre haline gelir.

Otomatın davranışını gerçek hayatla karşılaştıran bu kurallar aşağıdaki şekilde özetlenebilir:

  1. İki veya üç canlı komşusu olan herhangi bir canlı hücre hayatta kalır.
  2. Üç canlı komşusu olan herhangi bir ölü hücre, canlı bir hücre olur.
  3. Diğer tüm canlı hücreler bir sonraki nesilde ölür. Benzer şekilde, diğer tüm ölü hücreler ölü kalır.

İlk model , sistemin tohumunu oluşturur. Yukarıdaki kurallar canlı veya cansız tohumdaki her hücreye aynı anda uygulanarak birinci nesil oluşturulur; doğumlar ve ölümler aynı anda gerçekleşir ve bunun gerçekleştiği ayrı ana bazen kene denir . Her nesil, bir öncekinin saf bir işlevidir . Kurallar, yeni nesiller yaratmak için tekrar tekrar uygulanmaya devam ediyor.

kökenler

1940 sonlarında, John von Neumann yaşamı, kendini yeniden üretebilen ve bir Turing makinesini simüle edebilen bir yaratım (bir varlık veya organizma olarak) olarak tanımladı . Von Neumann, sıvı veya gaz içinde rastgele yüzen elektromanyetik bileşenleri kullanacak bir mühendislik çözümü düşünüyordu. Bu, o sırada mevcut teknoloji ile gerçekçi olmadığı ortaya çıktı. Stanislaw Ulam , von Neumann'ın teorik elektromanyetik yapılarını simüle etmesi amaçlanan hücresel otomatları icat etti . Ulam, hücresel otomatlarını iki boyutlu bir kafeste simüle etmek için bilgisayarları kullanmayı birkaç makalede tartıştı. Buna paralel olarak, von Neumann, Ulam'ın hücresel otomatını oluşturmaya çalıştı. Başarılı olmasına rağmen, diğer projelerle meşguldü ve bazı detayları yarım bıraktı. Kendi mühendislik tasarımını simüle etmeye çalıştığı için yapımı karmaşıktı. Zamanla, diğer araştırmacılar tarafından daha basit yaşam yapıları sağlandı ve gazetelerde ve kitaplarda yayınlandı.

Matematiksel mantıktaki sorularla ve kısmen Ulam'ın simülasyon oyunları üzerindeki çalışmalarıyla motive olan John Conway , 1968'de çeşitli farklı iki boyutlu hücresel otomat kurallarıyla deneyler yapmaya başladı. Conway'in ilk amacı, ilginç ve öngörülemeyen bir hücre otomatını tanımlamaktı. Örneğin, bazı konfigürasyonların ölmeden önce uzun süre dayanmasını ve diğer konfigürasyonların döngülere izin vermeden sonsuza kadar devam etmesini istedi. Hücresel otomata uzmanlarının gerçekten de Game of Life'ın von Neumann'ın iki genel gereksinimini karşılama anlamında canlı olan bir konfigürasyonu kabul ettiğini kanıtlamayı başarmasından önce, bu önemli bir meydan okuma ve açık bir problemdi. Game of Life'tan önceki tanımlar kanıta yönelik olsa da, Conway'in yapısı , otomatın canlı olduğunu önceden kanıtlamadan basitliği hedefliyordu .

Conway, önemli deneylerden sonra, bu kriterleri karşılamak için kurallarını dikkatli bir şekilde seçti:

  1. Patlayıcı büyüme olmamalıdır.
  2. Kaotik, öngörülemeyen sonuçlara sahip küçük başlangıç ​​kalıpları olmalıdır.
  3. Von Neumann evrensel kurucuları için potansiyel olmalıdır .
  4. Kurallar, yukarıdaki kısıtlamalara bağlı kalarak mümkün olduğunca basit olmalıdır.

Oyun içinde Ekim 1970 sayısında ilk genel çıkışında yapılan Scientific American yılında, Martin Gardner 'in ' Matematiksel Oyunları ' sütununda. Teorik olarak, Game of Life evrensel bir Turing makinesinin gücüne sahiptir : Algoritmik olarak hesaplanabilen her şey Game of Life içinde hesaplanabilir. Gardner, "Yaşam, bir canlı organizmalar toplumunun yükselişi, düşüşü ve değişimleri ile benzerlikleri nedeniyle, 'simülasyon oyunları' (gerçek yaşam süreçlerine benzeyen oyunlar) olarak adlandırılan büyüyen bir sınıfa aittir.

Yayınlandığından beri, Game of Life, kalıpların gelişebileceği şaşırtıcı yollardan dolayı büyük ilgi gördü. Ortaya çıkma ve kendi kendine örgütlenme örneği sağlar . Bilgisayar bilimi , fizik , biyoloji , biyokimya , ekonomi , matematik , felsefe ve üretici bilimler gibi çeşitli alanlardaki akademisyenler , oyunun basit kurallarının uygulanmasından karmaşık kalıpların ortaya çıkabileceği yolu kullanmışlardır. Oyun aynı zamanda , tasarım ve organizasyonun bir tasarımcının yokluğunda kendiliğinden ortaya çıkabileceğine dair bir şekilde sezgisel olmayan fikri iletmek için kullanılan didaktik bir benzetme olarak da hizmet edebilir. Örneğin, filozof Daniel Dennett , bilinç ve özgür irade gibi karmaşık felsefi yapıların, evrenimizi yönetebilecek nispeten basit deterministik fizik yasalarından olası evrimini göstermek için Yaşam Oyunu "evreni" analojisini kapsamlı bir şekilde kullandı. .

Game of Life'ın popülaritesine, giderek daha ucuz bilgisayar erişimiyle aynı zamanda ortaya çıkması yardımcı oldu. Oyun bu makinelerde saatlerce çalıştırılabilir, aksi takdirde geceleri kullanılmaz kalırdı. Bu bakımdan, bilgisayar tarafından oluşturulan fraktalların daha sonraki popülerliğinin habercisiydi . Birçokları için Game of Life sadece bir programlama zorluğuydu: aksi takdirde boşa harcanan CPU döngülerini kullanmanın eğlenceli bir yolu . Ancak bazıları için Hayat Oyunu daha felsefi çağrışımlara sahipti. 1970'ler ve sonrasında bir kült geliştirdi; güncel gelişmeler, bir Game of Life tahtasının sınırları içinde bilgisayar sistemlerinin teorik emülasyonlarını yaratacak kadar ileri gitti.

desen örnekleri

Yaşam Oyununda davranışlarına göre sınıflandırılan birçok farklı kalıp türü ortaya çıkar. Yaygın desen türleri şunları içerir: bir nesilden diğerine değişmeyen natürmortlar ; sonlu sayıda nesilden sonra ilk durumlarına dönen osilatörler ; ve kendilerini ızgara boyunca çeviren uzay gemileri .

Game of Life'daki en eski ilginç kalıplar bilgisayar kullanılmadan keşfedildi. En basit natürmortlar ve osilatörler, grafik kağıdı , kara tahtalar ve Go'da kullanılanlar gibi fiziksel oyun tahtaları kullanılarak çeşitli küçük başlangıç ​​konfigürasyonlarının kaderi izlenirken keşfedildi . Bu erken araştırma sırasında Conway, R- pentomino'nun az sayıda nesilde kararlı hale gelmediğini keşfetti . Aslında, dengelenmesi 1103 nesil sürer, bu zamana kadar 116 nüfusa sahiptir ve altı kaçan planör üretmiştir ; bunlar keşfedilen ilk uzay gemileriydi.

Canlı hücreler siyah ve ölü hücreler beyaz olarak gösterilen yukarıda bahsedilen üç model tipinin (hücrelerin rastgele bir başlangıç ​​konfigürasyonundan sıklıkla ortaya çıktıkları için) sıkça ortaya çıkan örnekleri aşağıda gösterilmiştir. Periyot , bir kalıbın ilk konfigürasyonuna dönmeden önce yinelemesi gereken işaretlerin sayısını ifade eder.

Pulsar en yaygın dönem 3 osilatör. Doğal olarak oluşan osilatörlerin büyük çoğunluğunun, flaşör ve kurbağa gibi 2 periyodu vardır, ancak birçok periyodun osilatörlerinin var olduğu bilinmektedir ve 4, 8, 14, 15, 30 ve diğer birkaç periyodun osilatörleri bilinmektedir. rastgele başlangıç ​​koşullarından kaynaklandığı görülmektedir. Stabilizasyondan önce uzun süreler boyunca gelişen kalıplara Methuselahs denir ve ilk keşfedilen R-pentominodur. Diehard , 130 nesilden sonra, yedi veya daha az hücreli modeller için maksimum olduğu tahmin edilen, stabilize etmek yerine sonunda kaybolan bir kalıptır. Meşe palamudu, 13 kaçan planör de dahil olmak üzere 633 hücre üretmek için 5206 nesil alır.

R-pentomino
Zor Ölüm
meşe palamudu

Conway başlangıçta hiçbir kalıbın süresiz olarak büyüyemeyeceğini, yani sınırlı sayıda canlı hücreye sahip herhangi bir başlangıç ​​konfigürasyonu için popülasyonun belirli bir üst sınırın ötesinde büyüyemeyeceğini varsaymıştı. Oyunun "Matematiksel Oyunlar"daki orijinal görünümünde, Conway, 1970'in sonundan önce varsayımı kanıtlayan veya çürüten ilk kişiye elli dolarlık bir ödül teklif etti. Ödül, Kasım ayında Massachusetts Teknoloji Enstitüsü'nden bir ekip tarafından kazanıldı. Bill Gosper tarafından yönetilen ; "Gosper planör tabancası", ilk planörünü 15. nesilde ve bundan sonra her 30. nesilde bir başka planör üretir. Uzun yıllar boyunca bu planör silahı bilinen en küçük silahtı. 2015 yılında, her 120. nesilde bir planör serbest bırakan "Simkin planör tabancası" adı verilen ve daha az canlı hücreye sahip olan ancak uçlarında daha büyük bir sınırlayıcı kutuya yayılmış bir silah keşfedildi.

Gosper planör tabancası
Simkin planör tabancası

Daha sonra, sonsuz büyüme sergileyen daha küçük desenler bulundu. Aşağıda gösterilen modellerin üçü de süresiz olarak büyür. İlk ikisi, tek bir blok yerleştirme anahtar motoru oluşturur : Oyunun evreninde kendisini çevirdiği için ikişer ikişer natürmort bloklarını geride bırakan bir konfigürasyon. Üçüncü konfigürasyon, bu tür iki desen oluşturur. İlki, minimal olduğu kanıtlanmış sadece on canlı hücreye sahiptir. İkincisi beşe beş kareye sığar ve üçüncüsü yalnızca bir hücre yüksekliğindedir.

Hayat oyunu sonsuz1.svg     Hayat oyunu sonsuz2.svg

Hayat oyunu sonsuz3.svg

Daha sonraki keşifler arasında , sabit olan ve planörler veya diğer uzay gemileri üreten diğer silahlar ; arkalarında bir enkaz izi bırakarak hareket eden kirpi trenleri ; ve uzay gemilerini hareket ettiren ve yayan tırmıklar . Gosper ayrıca , bir damızlık veya ıstakoz olarak adlandırılan ve arkasında bir silah izi bırakarak çalışan, asimptotik olarak optimal ikinci dereceden bir büyüme oranına sahip ilk modeli oluşturdu .

Planörlerin diğer nesnelerle ilginç şekillerde etkileşime girmesi mümkündür. Örneğin, iki planör belirli bir konumda bir blokta vurulursa, blok planörlerin kaynağına daha yakın hareket edecektir. Üç planör doğru şekilde vurulursa, blok daha uzağa hareket edecektir. Bu kayan blok belleği , bir sayacı simüle etmek için kullanılabilir . AND , OR ve NOT gibi mantık kapıları oluşturmak mümkündür . İki sayaca bağlı bir sonlu durum makinesi gibi davranan bir model oluşturmak mümkündür . Bu, evrensel bir Turing makinesiyle aynı hesaplama gücüne sahiptir , bu nedenle Game of Life teorik olarak sınırsız belleğe ve zaman kısıtlamasına sahip herhangi bir bilgisayar kadar güçlüdür; o olduğunu tam Turing . Aslında, Game of Life'da Tetris'i simüle eden bir model de dahil olmak üzere birkaç farklı programlanabilir bilgisayar mimarisi uygulanmıştır .

Ayrıca, bir model, orijinal modelin kopyaları dahil olmak üzere yeni nesneler oluşturacak şekilde planörleri ateşleyen bir silah koleksiyonu içerebilir. Tam bir Turing bilgisayarı içeren ve kendisinin daha fazla kopyası da dahil olmak üzere birçok türde karmaşık nesne oluşturabilen evrensel bir kurucu oluşturulabilir.

2018'de, ilk gerçek temel şövalye Sir Robin, Adam P. Goucher tarafından keşfedildi. Bir şövalye gemisi, dikey olarak veya 45° diyagonal boyunca hareket etmek yerine, aşağı doğru hareket ettiği her bir kare için ( satrançtaki bir şövalye gibi) iki kare sola hareket eden bir uzay gemisidir . Bu, kırk sekiz yılda bulunan bir temel uzay gemisi için ilk yeni uzay gemisi hareket modelidir. "Temel", planörler ve natürmortlar gibi daha küçük etkileşimli modellere ayrıştırılamayacağı anlamına gelir.

kararsızlık

Game of Life'daki birçok kalıp, sonunda natürmortların, osilatörlerin ve uzay gemilerinin bir kombinasyonu haline gelir; diğer desenler kaotik olarak adlandırılabilir. Bir model, sonunda böyle bir kombinasyona yerleşene kadar çok uzun bir süre kaotik kalabilir.

Hayat Oyunu karar verilemez , bu da bir başlangıç ​​kalıbı ve sonraki bir kalıp verildiğinde, sonraki kalıbın ortaya çıkıp çıkmayacağını söyleyebilecek hiçbir algoritma olmadığı anlamına gelir. Bu, durma probleminin doğal bir sonucudur : belirli bir programın çalışmayı bitirip bitirmediğini veya bir ilk girdiden sonsuza kadar çalışmaya devam edip etmeyeceğini belirleme problemi.

Gerçekten de Game of Life, evrensel bir Turing makinesine (UTM) eşdeğer bir model içerdiğinden , bu karar verme algoritması, varsa, bir UTM'ye karşılık gelen ilk model olarak alarak durma problemini çözmek için kullanılabilir. artı bir girdi ve UTM'nin durma durumuna karşılık gelen sonraki model. Ayrıca, sonsuza kadar kaotik kalan bazı kalıpların var olduğu sonucu çıkar. Durum böyle değilse, kaotik olmayan bir model ortaya çıkana kadar oyunu sırayla ilerletebilir, ardından daha sonraki bir modelin görünüp görünmeyeceğini hesaplayabilirsiniz.

kendini kopyalama

18 Mayıs 2010'da Andrew J. Wade, ebeveynini yok ederken kendisinin bir kopyasını yaratan "İkizler" adlı kendi kendini inşa eden bir model duyurdu. Bu model 34 milyon nesilde tekrarlanır ve Chapman-Greene inşaat kollarından yapılmış iki sabit konfigürasyon arasında salınan planörlerden yapılmış bir talimat bandı kullanır. Bunlar da, desenin yeni kopyalarını oluşturur ve önceki kopyayı yok eder. İkizler aynı zamanda bir uzay gemisidir ve Game of Life'da inşa edilen ilk uzay gemisidir, eğik bir uzay gemisidir, ne ortogonal ne de tamamen diyagonal olan bir uzay gemisidir. Aralık 2015'te Gemini'nin diyagonal versiyonları inşa edildi.

23 Kasım 2013'te Dave Greene , Game of Life'ta talimat bandı da dahil olmak üzere kendisinin tam bir kopyasını oluşturan ilk çoğaltıcıyı yaptı .

Ekim 2018'de Adam P. Goucher, kendi kendini kopyalama yeteneğine sahip bir meta hücre olan 0E0P metahücresinin yapımını tamamladı. Bu, Brice Due'ın yalnızca önceden oluşturulmuş kopyalarla çalışan OTCA meta pikseli gibi önceki meta hücrelerden farklıydı. 0E0P metahücresi, programlanmış kuralı simüle eden kopyalar oluşturmak için inşaat kollarını kullanarak çalışır. Game of Life'ın veya diğer Moore komşuluk kurallarının gerçek simülasyonu, daha fazla durumla von Neumann mahallesini kullanarak eşdeğer bir kuralı simüle ederek yapılır . 0E0P adı, "Zero Encoding by Zero Population" ifadesinin kısaltmasıdır; bu, bir meta hücrenin boş alanı simüle eden "kapalı" bir durumda olması yerine, hücre bu duruma girdiğinde, bir boşluk bırakarak 0E0P meta hücresinin kendisini kaldırdığını gösterir.

yineleme

Gözlemciler, ızgaradaki canlı hücrelerin çoğu rastgele başlangıç ​​modelinden, nesiller geçtikçe popülasyonun sürekli değiştiğini göreceklerdir. Basit kurallardan ortaya çıkan örüntüler bir tür matematiksel güzellik olarak kabul edilebilir . Başlangıç ​​simetrisi olmayan küçük izole alt modeller simetrik olma eğilimindedir. Bu olduğunda, simetri zenginlikte artabilir, ancak yakındaki bir alt desen onu rahatsız edecek kadar yaklaşmadıkça kaybolamaz. Çok az vakada, toplum sonunda tüm canlı hücrelerin yok olmasıyla birlikte yok olur, ancak bu pek çok nesil boyunca gerçekleşmeyebilir. Başlangıçtaki kalıpların çoğu sonunda ya sabit rakamlar ya da iki veya daha fazla durum arasında sonsuza kadar salınan kalıplar üreterek söner; birçoğu da başlangıç ​​konumundan süresiz olarak uzaklaşan bir veya daha fazla planör veya uzay gemisi üretir. En yakın komşu temelli kurallar nedeniyle, hiçbir bilgi ızgarada birim zamanda bir hücreden daha büyük bir hızla hareket edemez, bu nedenle bu hıza ışığın hücresel otomat hızı denir ve c ile gösterilir .

algoritmalar

R-pentomino gibi geleceği bilinmeyen erken modeller, bilgisayar programcılarını Game of Life'daki kalıpların evrimini izlemek için programlar yazmaya yönlendirdi. İlk algoritmaların çoğu benzerdi: kalıpları bilgisayar belleğinde iki boyutlu diziler olarak temsil ediyorlardı. Tipik olarak, iki dizi kullanılır: biri mevcut nesli tutmak ve diğeri ardılını hesaplamak için. Genellikle 0 ve 1 sırasıyla ölü ve canlı hücreleri temsil eder. Yuvalanmış bir for döngüsü , ardıl dizinin karşılık gelen öğesinin 0 veya 1 olması gerektiğine karar vermek için her hücrenin canlı komşularını sayarak geçerli dizinin her öğesini sırayla ele alır. Ardıl dizi görüntülenir. Bir sonraki yineleme için, diziler rolleri değiştirir, böylece son yinelemedeki ardıl dizi, bir sonraki yinelemede geçerli dizi olur.

Bu temel şemada çeşitli küçük geliştirmeler mümkündür ve gereksiz hesaplamalardan tasarruf etmenin birçok yolu vardır. Son zaman adımında değişmeyen ve komşularından hiçbiri değişmeyen bir hücrenin o anki zaman adımında da değişmeyeceği garanti olduğundan, hangi alanların aktif olduğunu takip eden bir program, aktif olmayan güncelleme yapmayarak zamandan tasarruf edebilir. bölgeler.

Bir yonca düğümünün yüzeyinde Yaşam Oyunu
Bir yonca düğümünün yüzeyindeki Hayat Oyunu

Sayma döngüsündeki kararlardan ve dallardan kaçınmak için, kurallar , komşularıyla ilgili iç alanın benmerkezci yaklaşımından bilimsel bir gözlemcinin bakış açısına göre yeniden düzenlenebilir : belirli bir komşuluktaki dokuz alanın tümünün toplamı üç ise, iç alan durumu gelecek nesil için hayat olacak; tüm alanların toplamı dört ise, iç alan mevcut durumunu korur; ve diğer her toplam iç alanı ölüme ayarlar.

Bellekten tasarruf etmek için depolama, bir dizi artı iki satır arabelleğine indirgenebilir. Bir satır arabelleği, bir satırın ardıl durumunu hesaplamak için kullanılır, ardından ikinci satır arabelleği, bir sonraki satırın ardıl durumunu hesaplamak için kullanılır. İlk tampon daha sonra satırına yazılır ve üçüncü satır için halef durumunu tutmak üzere serbest bırakılır. Bir toroidal dizi kullanılıyorsa, dizideki ilk satırın orijinal durumunun son satır hesaplanana kadar kaydedilebilmesi için üçüncü bir arabellek gerekir.

Bir toroidal dizi içinde planör tabancası. Planör akışı sonunda etrafı sarar ve silahı yok eder.
Periyodik sınır koşulları ile kare kafes üzerinde kırmızı planör

Prensipte, Game of Life alanı sonsuzdur, ancak bilgisayarların hafızası sınırlıdır. Bu, aktif alan dizinin sınırına girdiğinde sorunlara yol açar. Programcılar bu sorunları çözmek için çeşitli stratejiler kullanmışlardır. En basit strateji, dizinin dışındaki her hücrenin öldüğünü varsaymaktır. Bunun programlanması kolaydır ancak aktif alan sınırı geçtiğinde hatalı sonuçlara yol açar. Daha karmaşık bir hile, birbirine dikilecek alanın sol ve sağ kenarlarını ve ayrıca üst ve alt kenarları da göz önünde bulundurarak bir toroidal dizi elde etmektir . Sonuç, bir alan kenarı boyunca hareket eden aktif alanların karşı kenarda yeniden ortaya çıkmasıdır. Desen çok büyürse yine de yanlışlık ortaya çıkabilir, ancak patolojik kenar etkileri yoktur. Büyüyen kalıpları tutmak için daha büyük diziler oluşturarak dinamik depolama tahsisi teknikleri de kullanılabilir. Sonlu bir alanda Yaşam Oyunu bazen açıkça incelenir; Golly gibi bazı uygulamalar, standart sonsuz alan, yalnızca bir boyutta sonsuz alan veya silindir, torus veya Möbius şeridi gibi topoloji seçenekleriyle sonlu bir alan seçimini destekler .

Alternatif olarak, programcılar Game of Life alanını iki boyutlu bir diziyle temsil etme fikrini terk edebilir ve canlı hücreleri temsil eden bir koordinat çiftleri vektörü gibi farklı bir veri yapısı kullanabilir. Bu, popülasyon canlı koordinat dizisinin boyutunu aşmadığı sürece, desenin alan etrafında engellenmeden hareket etmesine izin verir. Dezavantajı, canlı komşuları saymanın bir karma tablo araması veya arama işlemi haline gelmesi ve simülasyon hızını yavaşlatmasıdır. Daha karmaşık veri yapıları ile bu sorun da büyük ölçüde çözülebilir.

Büyük zaman derinliklerinde büyük kalıpları keşfetmek için Hashlife gibi karmaşık algoritmalar faydalı olabilir. Game of Life'ın ve diğer hücresel otomatların, eşzamanlı oyunun davranışını tam olarak taklit ederken keyfi eşzamansız güncellemeler kullanarak uygulanması için bir yöntem de vardır. Kaynak kod dahil olmak üzere çeşitli programlama dilleri, Yaşam senaryosunun temel Oyunu uygulamak örnekler C , C ++ , Java ve Python bulunabilir Rosetta Kanunu .

Varyasyonlar

Game of Life'ın başlangıcından bu yana, yeni, benzer hücresel otomatlar geliştirildi. Standart Game of Life, B3/S23 olarak sembolize edilir. Bir hücre, tam olarak üç komşusu varsa doğar, iki veya üç yaşayan komşusu varsa hayatta kalır ve aksi takdirde ölür. İlk sayı veya sayı listesi, ölü bir hücrenin doğması için gerekli olan şeydir. İkinci grup, canlı bir hücrenin bir sonraki nesle kadar hayatta kalması şartıdır. Dolayısıyla B6/S16, "altı komşu varsa bir hücre doğar ve bir veya altı komşu varsa yaşar" anlamına gelir. Bu şekilde tanımlanabilen iki boyutlu bir ızgara üzerindeki hücresel otomatlar , Yaşam benzeri hücresel otomatlar olarak bilinir . Diğer bir yaygın Life benzeri otomat olan Highlife , B36/S23 kuralıyla tanımlanır, çünkü orijinal oyunun B3/S23 kuralına ek olarak altı komşuya sahip olmak bir doğuma neden olur. HighLife, en çok sık meydana gelen çoğaltıcıları ile tanınır.

Ek Yaşam benzeri hücresel otomatlar mevcuttur. Bu 2 18 farklı kuralın büyük çoğunluğu, ilgilenilemeyecek kadar kaotik veya ıssız evrenler üretir, ancak büyük bir alt küme ilginç davranışlar sergiler. Bir başka genelleme , 2 102 olası hücresel otomat kuralıyla (Hayat Oyunu yine bunlardan biridir) izotropik kural uzayını üretir . Bunlar, Yaşam benzeri kurallarla aynı kare ızgarayı ve aynı sekiz hücreli komşuluğu kullanan kurallardır ve aynı şekilde dönme ve yansıma altında değişmezdir. Ancak, izotropik kurallarda, komşu hücrelerin birbirlerine göre konumları, bir hücrenin gelecekteki durumunu belirlemede sadece bu komşuların toplam sayısı değil, dikkate alınabilir.

İki boyutlu altıgen Game of Life'dan 2 adımlı osilatör ve 4 adımlı osilatör ile birlikte 48 adımlı bir osilatör örneği (kural H:B2/S34)

Game of Life'daki bazı varyasyonlar, kuralın yanı sıra evrenin geometrisini de değiştirir. Yukarıdaki varyasyonlar iki boyutlu bir kare olarak düşünülebilir, çünkü dünya iki boyutludur ve kare bir ızgara şeklinde düzenlenmiştir. Temel hücresel otomatlar olarak bilinen tek boyutlu kare varyasyonlar ve iki boyutlu altıgen ve üçgen varyasyonlar gibi üç boyutlu kare varyasyonlar geliştirilmiştir . Periyodik olmayan döşeme ızgaraları kullanan bir varyant da yapılmıştır.

Conway'in kuralları, canlı ve ölü iki durum yerine , üç veya daha fazla olacak şekilde genelleştirilebilir . Durum geçişleri daha sonra ya bir ağırlıklandırma sistemi ya da her durum için ayrı geçiş kurallarını belirten bir tablo ile belirlenir; örneğin, Mirek's Cellebration'ın çok renkli Kurallar Tablosu ve Ağırlıklı Yaşam kural ailelerinin her biri Game of Life'a eşdeğer örnek kurallar içerir.

Fraktallar ve fraktal sistemlerle ilgili kalıplar, bazı Yaşam benzeri varyasyonlarda da gözlemlenebilir. Örneğin, otomat B1/S12 , tek bir canlı hücreye uygulandığında Sierpinski üçgenine çok yakın dört yaklaşım üretir . Sierpinski üçgeni, Yaşam Oyunu'nda, sonsuz uzunlukta tek hücre kalınlığında canlı hücre dizisinin uzun vadeli büyümesinin yanı sıra Highlife, Seeds (B2/S) ve Wolfram's Rule 90 incelenerek de gözlemlenebilir. .

Göç Yaşam Oyunu çok benzer bir varyasyonu, orada iki olduklarını hariç üzerinde , devletler genellikle iki farklı renk olarak ifade edilir. Ne zaman yeni bir hücre doğarsa, onu doğuran üç hücrede çoğunluk olan açık durumunu alır. Bu özellik , oyun içindeki uzay gemileri ve diğer nesneler arasındaki etkileşimleri incelemek için kullanılabilir . QuadLife adı verilen bir başka benzer varyasyon, eyaletlerde dört farklı durumu içerir. Üç farklı komşudan yeni bir hücre doğduğunda dördüncü değeri alır, aksi takdirde Göçmenlik gibi çoğunluk değerini alır. Hücreler arasındaki varyasyon dışında, bu varyasyonların her ikisi de Yaşam Oyunu ile aynı şekilde hareket eder.

Müzik

Çeşitli müzik besteleme teknikleri, özellikle MIDI sıralamasında Game of Life'ı kullanır . Game of Life'da oluşturulan kalıplardan ses oluşturmak için çeşitli programlar mevcuttur.

Önemli programlar

NS 6 366 548 773 467 669 985 195 496 000 inci (6 × 10 27 ) Hashlife modunda Golly kullanılarak Intel Core Duo 2 GHz CPU'da 30 saniyeden daha kısa sürede hesaplanan Life oyununda yapılan Turing makinesinin nesli

Bilgisayarlar, Game of Life konfigürasyonlarını ilk yayınlandığından beri takip etmek için kullanıldı. John Conway ilk başlangıç yapılandırmaları nasıl geliştiğini çeşitli araştırırken, o kullanarak onları eliyle izlenen gitmek onun siyah ve beyaz taşlarla tahta. Bu sıkıcıydı ve hatalara açıktı. Conway R-pentomino'yu araştırırken, Cambridge Üniversitesi'nde lisans öğrencisi olan John Francis, Conway'in sonuçlarını kontrol etmek için bir program yazdı ( yakınlardaki Teorik Astronomi Enstitüsü'nde bir IBM System/360 ana bilgisayarı için). Bu program, konfigürasyonun 1000 nesilden sonra kararlı bir duruma ulaşmadığını gösterdi.

İlk interaktif Game of Life programı, MJT Guy ve SR Bourne tarafından PDP-7 için ALGOL 68C'nin erken bir versiyonunda yazılmıştır . Sonuçlar Scientific American'ın Ekim 1970 sayısında şu ifadeyle birlikte yayınlandı : "Onun yardımı olmadan oyunla ilgili bazı keşifler yapmak zor olurdu."

Game of Life'ın ev bilgisayarlarında ilk iki uygulaması, BBC BASIC'te yazılan Malcolm Banthorpe tarafından yapıldı . İlki Acorn User dergisinin Ocak 1984 sayısındaydı ve Banthorpe bunu Mayıs 1984 sayısında üç boyutlu bir versiyonla takip etti. York Üniversitesi'nde Bilgisayar Bilimi Profesörü olan Susan Stepney, bunu 1988'de tek boyutlu hücresel otomatlar üreten Life on the Line programıyla izledi.

Artık çevrimiçi binlerce Game of Life programı var, bu nedenle burada tam bir liste verilmeyecektir. Aşağıdakiler, popülerlik veya olağandışı özellikler gibi bazı özel kayda değer iddiaları olan küçük bir program seçimidir. Bu programların çoğu, örüntü düzenleme ve simülasyon için bir grafik kullanıcı arabirimi, Game of Life dahil olmak üzere birden fazla kuralı simüle etme yeteneği ve Game of Life ve diğer hücresel otomat kurallarındaki geniş bir ilginç örüntü kitaplığı içerir.

  • Golly , Game of Life ve diğer hücresel otomatlar (tüm Life benzeri hücresel otomatlar, Mirek's Cellebration'dan Generations hücresel otomatlar ailesi dahil) için çapraz platformlu (Windows, Macintosh, Linux, iOS ve Android) açık kaynaklı bir simülasyon sistemidir. , ve John von Neumann'ın 29 durumlu hücresel otomatı) Andrew Trevorrow ve Tomas Rokicki tarafından. Son derece hızlı üretim için Hashlife algoritmasını ve hem düzenleme hem de simülasyon için Lua veya Python komut dosyası kullanılabilirliğini içerir.
  • Mirek's Cellebration, Windows için ücretsiz bir ve iki boyutlu hücresel otomat görüntüleyici, gezgin ve düzenleyicidir. Game of Life dahil olmak üzere çok çeşitli hücresel otomat kurallarını simüle etmek ve görüntülemek için güçlü olanaklar ve komut dosyası yazılabilir bir düzenleyici içerir.
  • Xlife, Jon Bennett tarafından geliştirilen bir hücresel otomat laboratuvarıdır. Uzun süredir standart UNIX X11 Game of Life simülasyon uygulaması, Windows'a da taşınmıştır. Game of Life ile aynı mahallede ve hücre başına sekiz olası duruma kadar hücresel otomat kurallarını işleyebilir.

Google , 2012'de Game of Life'ın bir paskalya yumurtasını hayata geçirdi. Terimi arayan kullanıcılara, arama sonuçları sayfasında oyunun bir uygulaması gösteriliyor.

Ayrıca bakınız

Referanslar

Dış bağlantılar