"Gra w życie" Conway'a jest jednym z najbardziej znanych automatów komórkowych. Jego działanie przebiega według następujących zasad:

  • każda komórka jest żywa lub martwa – czyli może występować w jednym z dwóch stanów,

  • sąsiedztwo Moore'a – tzn. 8 komórek dookoła,

  • żywa komórka pozostanie żywa w kolejnym kroku, jeżeli ma dokładnie 2 lub 3 sąsiadów,

  • martwa komórka ożyje w kolejnym kroku, jeżeli ma dokładnie 3 sąsiadów.

Regułę tę można zapisać jako 23/3

- przed ukośnikiem podajemy, przy ilu żywych sąsiadach żywe komórki przeżywają,

- po ukośniku podajemy, przy ilu żywych sąsiadach martwe komórki ożywają.

Interesujące formy życia

Dla tego automatu możemy wyróżnić kilka ciekawych form życia: 

Glider glider (ang. szybowiec) jest tzw. oscylatorem – po skończonej liczbie kroków przyjmuje formę izomorficzną ze swoim stanem początkowym.

Blinker blinker i clock clockniezmiennikami – w każdej iteracji przyjmują formę izomorficzną ze swoimi stanami początkowymi.

A zatem: każdy niezmiennik jest oscylatorem, ale nie każdy oscylator jest niezmiennikiem.

Poniższy film pokazuje zachowanie glidera, blinkera i clocka w ciągu 50 cykli życia:

Miotacz, to taki rodzaj automatu komórkowego, który produkuje inne (mniejsze) wzory nieskończenie wiele razy. Glider gun (ang. miotacz szybowców) jest najmniejszym miotaczem odkrytym do tej pory – najmniejszym w sensie żywych komórek w stanie początkowym oraz swoich rozmiarów: wysokości i szerokości. Działa on nastepująco:

Bardzo widowiskowymi oscylatorami są też motyl i fontanna:

Zadanie (1)

Rozpakuj katalog graWZycie.zip i umieść jego zawartość w katalogu roboczym MATLABa . Przeczytaj dokładnie treść skryptu conway.m a także treści m-funkcji fPoliczSasiadow.m i fWczytajZycie.m.


a) prześledź nowe polecenia dotyczące wykonywania animacji:

- trzy linijki na początku pliku wybierają sterownik do wyświetlania grafiki (jeżeli pracujesz pod Linuxem, możesz je zakomentować lub wykasować),

- polecenie getframe zapisuje obraz z wykresu do klatki filmu,

- polecenie movie2avi zapisuje film z formatu matlabowego do formatu avi.

Możesz poczytać więcej o tych poleceniach w helpie.


b) Zauważ w jaki sposób załadowano na planszę początkowe formy życia: glider, blinker i clock. Zamiast nich załaduj stan początkowy z pliku gliderGun.txt możesz go umieścić na planszy w punkcie o współrzędnych (3,3). Nakręcając film ustaw prędkość klatek na sekundę na 12, ustaw liczbę iteracji na 200 i podziwiaj efekty.


c) Zobacz, jaką zawartość mają pliki w katalogu formyZycia i utwórz plik fontanna.txt zawierający dane odpowiednie do narysowania fontanny. Przetestuj zachowanie automatu dla tej formy życia.

fontanna


d) Zakomentuj linijki ładujące życie z pliku. Zamiast nich wpisz polecenia generujące losową planszę:

zycie = round(rand(rozmiar,rozmiar));

Linijka ta przyda się w innych przykładach.

 

Ostatnia modyfikacja: poniedziałek, 2.09.2013, 18:57 PM