Gra w Życie

24.07.2009 - Wiktor Janas
Trudność

U zarania epoki komputerowej, w mrocznych czasach zimnej wojny i wyścigu nuklearnego prowadzono badania nad stworzeniem maszyn, które mogłyby budować kopie samych siebie. Zasadność takich badań nie budzi wątpliwości: wszak armie robotów grają kluczową rolę w licznych wizjach zagłady ludzkości. Zanim zaś zniszczymy Ziemię, moglibyśmy użyć ich do przygotowania nowej planety na przybycie kolonizatorów. Załóżmy, że chcemy użyć robotów do stworzenia systemu kanałów irygacyjnych na Marsie obejmującego, powiedzmy, połowę planety. Oczywiście wyprodukowanie odpowiedniej ilości maszyn na Ziemi oraz przetransportowanie ich na inną planetę stanowiłoby nie lada wyzwanie. Gdyby jednak roboty potrafiły się powielać, moglibyśmy, zamiast wielu, wyprodukować i wysłać tylko jednego robota, który na miejscu powieliłby się odpowiednią ilość razy.

W tym artykule nie będziemy zajmować się jednak ani armią zbuntowanych marsjańskich robotów, które postanowiły najechać Ziemię ani innymi trudnościami technicznymi. Zamiast tego przedstawimy bardzo prosty a zarazem niezwykle ciekawy model pozwalający nam na symulowanie działania takich maszyn przy użyciu naszych komputerów: automat komórkowy. W działaniu może on wyglądać na przykład tak:

 

ewolucja prostego układu

Rzecz dzieje się na prostokątnej planszy podzielonej na kwadratowe komórki – dokładnie tak, jak na kartce w kratkę. Każda komórka może być albo żywa (zamalowana kratka) albo martwa (pusta kratka). Na początku zamalujemy pewne kratki – będzie to opis naszej maszyny. Jej działanie będziemy obserwowali patrząc na to, jak układ żywych komórek zmienia się w czasie. Rozwój sytuacji na planszy będzie przebiegał w krokach. W jednym kroku wykonamy na planszy jednocześnie dwie zmiany:

  • uśmiercimy wszystkie żywe komórki otoczone przez mniej niż dwie lub więcej niż trzy żywe komórki (możemy wyobrazić sobie, że komórki umierają z samotności lub zatłoczenia)
  • powołamy do życia wszystkie martwe komórki otoczone przez dokładnie trzy żywe komórki.

Za komórki „otaczające” przyjmiemy: bezpośrednio w górę, dół, lewo, prawo oraz na skosy, czyli w sumie każda komórka ma ośmiu sąsiadów. Automat działający według powyższych reguł nazywa się Grą w Życie. Przyjrzyjmy się kilku krokom ewolucji przykładowego układu:

kroki ewolucji

  • Na czerwono zaznaczyliśmy żywe komórki, które mają mniej niż dwóch żywych sąsiadów. W następnym kroku będą one martwe.
  • Na niebiesko zaznaczyliśmy żywe komórki mające powyżej trzech sąsiadów. One również zginą.
  • Na zielono zaznaczyliśmy martwe komórki mające dokładnie trzech żywych sąsiadów. Zostaną one ożywione.
  • Na czarno zaznaczyliśmy żywe komórki mające dwóch lub trzech żywych sąsiadów. Stan tych komórek nie zmieni się.

Co ciekawe, ostatnia klatka powyższego schematu jest taka sama, jak pierwsza. Oznacza to, że po trzech krokach ewolucji przedstawiony układ powraca do swojej postaci początkowej. Już niedługo przekonamy się, że takie „zapętlające się” układy (zwane oscylatorami) mają szczególne znaczenie w Grze w Życie.

4.75
Twoja ocena: Brak Ocena: 4.8 (4 ocen)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com