automaty komÓrkowe - gra w Życie

49
AUTOMATY KOMÓRKOWE - GRA W ŻYCIE Małgorzata Okrój Natalia Nadratowska MF gr.2

Upload: zared

Post on 18-Feb-2016

68 views

Category:

Documents


0 download

DESCRIPTION

AUTOMATY KOMÓRKOWE - GRA W ŻYCIE. Małgorzata Okrój Natalia Nadratowska MF gr.2. Automaty komórkowe – definicja formalna. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

AUTOMATY KOMÓRKOWE - GRA W ŻYCIE

Małgorzata OkrójNatalia Nadratowska

MF gr.2

Page 2: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Automaty komórkowe – definicja formalna

Jeżeli przez oznaczymy regularną, uporządkowaną siatkę złożoną z jednakowych komórek c o budowie zależnej od rozmiaru przestrzeni i od kształtu pojedynczej komórki, natomiast przez S – skończony zbiór stanów, jaki może przyjąć komórka c, oraz przez N – skończony zbiór sąsiadów, spełniający warunek:

crrNc :,

A funkcję przejścia definiującą reguły ewolucji automatu w kolejnych krokach oraz dynamikę tych przejść zapiszemy jako:

SSf m :to automat komórkowy definiujemy jako czwórkę:

),,,( fSNA

Aby opis automatu komórkowego był pełny, niezbędne jest określenie warunków brzegowych i początkowych.

Page 3: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

HistoriaTwórcą automatów komórkowych jest jeden z największych myślicieli ery komputerowej, który wprowadził koncepcję samo-reprodukcji – John von Neuman. Docelowo chciał stworzyć model maszyny samosterującej, tzn. takiej, iż powielałaby ona swoją budowę i przekazywała swoje cechy. Na przełomie lat czterdziestych i pięćdziesiątych Neumann opracował swoją teorię opierając się na maszynie Turinga. Opracował on pięć modeli samo-replikujących się automatów, realizacja okazała się zbyt trudna jak na owe czasy. Pracami Neumanna zainteresował się dopiero Edgar-Frank Codd, który uczynił automaty możliwymi do wykorzystania. Codd zaprojektował automat komórkowy, który mógł obliczyć wszystkie możliwe funkcje i który mógł się rozmnażać. Jednak mimo, że ten projekt zawierał o wiele prostszą koncepcję od pomysłu von Neumanna, również nie został zrealizowany. Posłużył natomiast do skonstruowania powszechnie stosowanej Gry w życie.Mimo że w obu przypadkach brakowało realizacji projektów, prace obu teoretyków uważa się za fundamenty powstania automatów komórkowych.

Page 4: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Podział automatów komórkowych według Wolframa

Klasa I:Automaty niezmienne – ewoluują do czasu, kiedy wszystkie komórki osiągną identyczny stan niezależnie od stanu początkowego (zbieżne). Klasa II:Automaty ewoluujące do stanu stabilnego lub okresowych wzorców(okresowe). Klasa III:Automaty wykazujące nieporządek zarówno lokalnie jak i globalnie, nie wykazujące żadnego wzorca (chaotyczne).

Klasa IV:Automaty wykazujące bardziej złożone, długotrwałe zachowanie („żywe").

Page 5: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Siatka automatu komórkowego

Każdy automat posiada przestrzeń, w której następuje jego ewolucja. Z definicji automatu taką przestrzeń tworzą jednakowe komórki, a nazywamy ją siatką α. Każda komórka przechowuje swój stan – zależny od przestrzeni stanów. Komórki różnią się, są niezależne oraz każdą komórkę można jednoznacznie zidentyfikować poprzez położenie na siatce.

Istnieją trzy konstrukcyjne czynniki automatu komórkowego, które w zasadniczy sposób wpływają na strukturę siatki:- wymiar przestrzeni, zależny od wielkości badanego modelu (1D,2D,3D,nD);- warunek regularności, mówiący o całkowitym zapełnieniu siatki przez jednakowe komórki (komórki trójkątne, kwadratowe, heksagonalne, sześcienne itp. dla nD);- liczba sąsiadów

Page 6: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Warunki brzegowePeriodyczne (przenikające)Definiują one zamkniętą siatkę w taki sposób, że np. symulując poruszającą się cząstkę po dojściu do krawędzi pojawi się ona z drugiej strony. Komórka znajdująca się na brzegu siatki ma za sąsiada komórkę leżącą po drugiej stronie siatki.

Zamknięte pochłaniające (o stałej wartości)Siatka jest zdefiniowana w taki sposób, że brzegi siatki wypełnione są z góry ustaloną wartością, która poprzez funkcję przejścia ustala wpływ na zachowanie automatu. W praktyce, symulując np. cząstkę gazu, po przekroczeniu krawędzi siatki przestaje ona istnieć. Najczęściej stosuje się je w automatach, w których generuje się automatycznie komórki i niezbędna jest ich redukcja, aby nie zagęścić liczby komórek w automacie.

Page 7: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Warunki brzegoweZamknięte odbijające (o stałej wartości)Warunki brzegowe na krawędzi siatki tworzą barierę, od której symulowane cząstki się odbijają. Stosowane do symulacji zamkniętych przestrzeni doświadczalnych.

Page 8: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Warunki początkoweWażnym elementem konstrukcyjnym automatów komórkowych są warunki początkowe, czyli stany poszczególnych komórek w zerowej iteracji. To od ustawienia początkowego zależy dalsza ewolucja automatu, jego zachowanie, stan końcowy, tym samym powodzenie całej symulacji.Niektóre automaty komórkowe z założenia muszą mieć w odpowiedni sposób ustalone warunki początkowe. Przykładowo w Grze w życie, to od warunków początkowych zależy czy w efekcie końcowym otrzymamy wszystkie komórki martwe, czy też komórki, które będą żyły w cyklicznych formach, czy też będą do samego końca powstawały chaotycznie. Ustawienie warunków początkowych może również wpływać na przynależność automatu komórkowego do różnych klas Stephena Wolframa. Zatem warunki początkowe danego automatu komórkowego zależą od jego charakteru i problemu, który ma symulować.

Page 9: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Przestrzeń stanów

Przestrzeń stanów określamy poprzez zdefiniowanie wartości wybranej ze skończonego zbioru Q, który może być podzbiorem zbiorów podstawowych (np. liczb, liter) lub złożonych (struktury, obiekty).Poprzez przestrzeń stanów opisane zostają wszystkie możliwe stany komórki. Stan komórki zależy od aktualnych stanów komórek z otoczenia, jak i komórka swoim stanem wpływa bezpośrednio na stany swoich sąsiadów. Od dobrego określenia przestrzeni stanów zależy szybkość automatu komórkowego, jak i jego podstawowe cechy charakterystyczne.

Page 10: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Reguły przejśćReguły przejść określają ewolucją automatu komórkowego w dyskretnym czasie. Stany poszczególnych komórek aktualizuje się w każdej dyskretnej chwili t=1,2,3,... Tym samym każdy automat komórkowy jest obiektem dynamicznym w czasie. Jak już wcześniej wspomniano, stan każdej komórki można określić na podstawie aktualnych stanów komórek sąsiednich.

Stan komórki z w chwili t oznaczamy jako xt , a stan sąsiedztwa jako u(xt). Dla takich kryteriów stan komórki x w kolejnym kroku iteracji można opisać wzorem: )),((1 ttt xxufx

Gdzie f określa funkcję przejścia, która może być opisana różnego rodzaju zależnościami, np. jako tabela przejść, w postaci algorytmicznej lub jako zbiór reguł. Reguły przejść muszą być zdefiniowane obok przestrzeni stanów oraz zdefiniowanego sąsiedztwa, ponieważ w innym przypadku automat nie mógłby ewoluować.

Page 11: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Ewolucja automatu komórkowego

Cały proces ewolucji automatu można podzielić na kilka części: 1. Stan początkowy – jest to, wspomniane już, ustalenie warunków początkowych. Zwykle są to stany neutralne nie powodujące konfliktów w automacie.2. Aktualizacja siatki automatu – w każdej iteracji każda z komórek automatu przechodzi przez poniższą sekwencję instrukcji:

1. Sprawdzenie reguł przejść – w tym kroku sprawdzany jest aktualny stan komórki, stany komórek sąsiednich jak i inne parametry automatu;2. Sprawdzanie sąsiedztwa – bada się, czy któraś z komórek sąsiednich nie wchodzi w stan konfliktu. Jeżeli takie konflikty zaczynają występować, to należy wyeliminować wszystkie istniejące konflikty, według ustalonych wcześniej reguł dla takich przypadków;3. Sprawdzanie warunków brzegowych – sprawdzane tu są komórki które są na krawędziach siatki. Usuwa się je gdy są zbędne (sąsiedztwo zamknięte pochłaniające) lub tworzy nowe (sąsiedztwo periodyczne);

Page 12: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Ewolucja automatu komórkowego4. Sprawdzenie ilości iteracji – jeśli jest to automat o skończonym, z góry określonym cyklu życiowym, to w tym kroku sprawdzamy czy może nastąpić koniec ewolucji. Czasami sprawdza się również w tym miejscu czy automat zmienił swój stan i czy przeszedł do stanu stabilnego i nic w nim się już nie zmieni w kolejnych krokach iteracji.

5. Zwiększenie licznika iteracji i przejście do kroku 2.1.

Page 13: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Automaty dwuwymiarowe – Gra w życie

Stworzono wiele reguł przejścia definiujących ewolucję dwuwymiarowego automatu komórkowego, jednak najbardziej rozpowszechnione są reguły stworzone przez Conwaya. Gra toczy się na nieskończonej planszy podzielonej na kwadratowe komórki. Każda komórka ma ośmiu sąsiadów. Komórka może znajdować się w jednym z dwóch stanów: 0 ( komórka jest martwa) lub 1 (komórka jest żywa).Stany komórek zmieniają się co jedną iterację. Stan wszystkich komórek w pewnej iteracji jest używany do obliczenia stanu wszystkich komórek w następnej iteracji.

Wszystkie komórki zmieniają swój stan w tym samym momencie.

Stan komórki w kolejnej iteracji zależy tylko od stanów jej sąsiadów.

Page 14: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Automaty dwuwymiarowe – Gra w życie

Reguły ewolucji:

• Martwa komórka, która ma dokładnie 3 żywych sąsiadów, staje się żywa w następnej jednostce czasu (rodzi się)

• Żywa komórka z 2 albo 3 żywymi sąsiadami pozostaje nadal żywa; przy innej liczbie sąsiadów umiera

Page 15: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Podział struktur

Niezmienne Statki - Spaceships - Glider ( szybowce ) - Inne statki Oscylatory - Działa ( guns ) - Dymiące pociągi ( inaczej zwane puffery; puffer train ) - Breedery ( z ang. Rozpłodnik, hodowca ) Ogrody Edenu

Page 16: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Niezmienne

Struktury niezmienne, inaczej stabilne lub statyczne, pozostają identyczne bez względu na krok czasowy (dla każdej żywej komórki spełniony jest warunek przetrwania i dla żadnej spośród martwych nie jest spełniony); najprostsza taka struktura (Block) składa się z 4 żywych komórek. Pojawiają się bardzo często jako produkty końcowe ewolucji struktur. Tworzy się je stosunkowo prosto, istnieją schematy według których można wymyślać nowe tego typu struktury.

Page 17: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Niezmienne

Page 18: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Niezmienne

Page 19: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Niezmienne

Page 20: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Statki - Spaceships

Statki zwykle zmieniają się okresowo – choć okresy nie przekraczają najczęściej kilkunastu kroków czasowych, wraz z każdym cyklem przesuwają się o stałą liczbę pól po planszy w określonym kierunku.Najbardziej znanym przykładem takiej struktury, będącym jednocześnie symbolem gry w życie, jest glider (szybowiec)

Page 21: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Glider - szybowiec

Glider jest oscylatorem, o okresie długości 4. Może przesuwać się wyłącznie na ukos, pod kątem 45 stopni. Nie istnieją jego modyfikacje, to znaczy, że nie istnieje taki algorytm, który pozwala na dodawanie nowych komórek tak, aby powstające struktury dalej były statkami.

Glider często powstaje samoczynnie, jako produkt reakcji, w których olbrzymia liczba komórek ewoluuje w chaotyczny sposób.

Page 23: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Glider - szybowiecGlider jest najważniejszą strukturą gry w życie, ze względu na: - wielkie możliwości tworzenia nowych struktur, nawet bardzo

złożonych, poprzez zderzanie ich odpowiedniej ilości w odpowiednim względnym położeniu.- olbrzymią ilość struktur (tzw. dział) będących w stanie produkować glidery (z różnymi częstotliwościami);- kluczowy udział w niemal każdej strukturze obrazującej pewien algorytm, np. poszukiwaniu liczb pierwszych czy generowaniu liczb pseudolosowych oraz tworzonych tylko dla samego efektu.

Page 24: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Inne statkiPoza tym znane są także inne statki. Różnią się one od glidera kierunkiem poruszania się (pion lub poziom, zamiast po ukosie) oraz możliwością modyfikacji - poprzez dodawanie komórek w odpowiedni sposób będziemy uzyskiwać kolejne statki.

Stosuje się też do nich nazwę Dakota z liczbą określającą ich rozmiar.

Bardzo duże Dakoty nie mogą latać samodzielnie, ale mogą w towarzystwie mniejszych statków .

Page 27: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

OscylatoryOscylatory zmieniają się okresowo, co pewien czas powracają do swojego stanu pierwotnego; najprostsza taka struktura składa się z trzech żywych komórek położonych w jednym rzędzie. Najprostsze z nich dość często pojawiają się jako produkty końcowe ewolucji struktur.Okresy oscylatorów najczęściej przyjmują wartości 2,3,4,6 lub 8, choć w grze w życie znaleziono i takie, których okres wynosi prawie 150000 (!). Większość liczb naturalnych może być długościami okresu oscylatora. Wyjątkami są jednak liczby 19, 23, 31, 37, 38, 41, 43, oraz 53. Nie wiadomo, czy oscylatory dla takich długości okresów istnieją, ale jest bardzo prawdopodobne, że tak jest.

Page 29: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Fontanna

Page 32: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Oscylatory o okresie 5

Page 33: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Oscylator o okresie 15

Page 34: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Oscylatory - Działa

Działa to oscylatory, które co jeden okres "wyrzucają" z siebie jeden statek, który odłącza się i egzystuje samodzielnie. Najwięcej dział generuje glidery, poza tym część jest zdolna do wytwarzania statków kosmicznych. Długość okresu tych struktur waha się od 30 (najprostszy Gosper Glider Gun) aż do kilkudziesięciu tysięcy kroków czasowych.

Page 35: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Gosper Glider Gun

Page 36: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Oscylatory – Dymiące pociągi

Puffery, inaczej puffer trainy – dymiące pociągi są najbardziej efektownymi strukturami gry w życie. Oscylują (o okresie zwykle w okolicach kilkunastu kroków) oraz poruszają się po planszy, a przy tym pozostawiają za sobą cyklicznie inne struktury, które odłączają się i egzystują samodzielnie.

Page 37: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Oscylatory - BreederyBreedery to puffery o bardzo złożonym zachowaniu. Breedery pozostawiają za sobą działa lub nawet inne puffery, jednak jedynym warunkiem określającym czy dany puffer jest breederem, jest kwadratowy przyrost w czasie populacji jego żywych komórek.

Page 38: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Ogrody Edenu

Ogrody Edenu formalnie są strukturami plasującymi się w kategorii niestałych, ale zostały wyróżnione ze względu na swoją szczególną właściwość. Są to bowiem układy, które nie mogą powstać w wyniku ewolucji jakiejkolwiek struktury. Jest ich bardzo niewiele, najmniejszy spośród nich składa się z około 100 komórek. Zostały nazwane biblijnymi Ogrodami Edenu, ponieważ nie mają one żadnych poprzedników, z których można do nich trafić. Są poprawnym stanem automatu komórkowego jednak nie są następnikiem żadnego poprawnego stanu.

Page 39: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Ogrody Edenu

Do niedawna najmniejszy znany Ogród Edenu.

Wzór mniejszy od dotychczasowego o jedną komórkę (szare zostały usunięte, granatowe – dodane)

Page 40: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Modyfikacje gry w życie

Page 41: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Modyfikacje reguł Reguły, jakim podlega automat opisywane są

często skrótowo w następujący sposób:

przed ukośnikiem umieszcza się te liczby komórek w sąsiedztwie, dla których żywe komórki przeżywają (dla reguły Conwaya będzie to 23);

następnie umieszcza się ukośnik: /; po ukośniku umieszcza się te liczby komórek

w sąsiedztwie, dla których martwe komórki ożywają (dla reguły Conwaya będzie to 3);

Page 42: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Przykłady:Następujące reguły można więc

zapisać:

Reguły Conwaya 23/3 Reguły Trzy Cztery : 34/34. Chaotyczne diamenty – Diamoeba

(5678/35678)

Page 43: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Modyfikacji gry w życie jest zbyt wiele (2^18 = 262144).Tabela zawiera przykładowe reguły wspomniane

przez Wolframa oraz kilka innych.

Reguła Nazwa Opis

1/1 Narośl Opracowany przez Kellie Evans; tworzy interesujące formy, startuje nawet od pojedynczej komórki.

12345/3 Labirynt Tworzy wzory przypominające labirynty.

125/36 2x2 Ma dużo oscylatorów i statków

235678/3678 Plamy Struktury szybko się stabilizują, o dziwo znacznie różni się od poprzedniej reguły

238/357 Pseudożycie Ewolucja przypomina 23/3, ale mało który wzór z gry w życie działa pod tymi regułami

245/368 RuchLosowe struktury zwykle się stabilizują, ale wiele statków występuje naturalnie i często się pojawia. Najczęściej pojawiają się struktury stabilne, okresowe z okresem 2 lub 4, statek o okresie 7 i "dymiący pociąg" o okresie 170.

34/34 Trzy Cztery Początkowo sądzono, że ma ona tendencje do stabilizacji, ale dzięki symulacji komputerowej okazało się, że większe wzory eksplodują. Dużo małych oscylatorów i statki.

4567/345 Asymilacja Tworzy statystyczne struktury przypominające diament, wnętrza kryształów częściowo wypełnione

45678/3 Koral Wzory rosną powoli, tworzą struktury przypominające rafę koralową.

5/345 Długie życie

Reguła opracowana przez Andrew Trevorrowa, bardzo łatwo można spotkać oscylatory o długim okresie.

Page 44: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Modyfikacje kształtu komórek

Oprócz powszechnie przyjętego podziału płaszczyzny na kwadraty można zastosować także sześciokąt (siatka heksagonalna). Najczęściej stosowaną regułą jest 3/24, jednak nie znaleziono struktur tak interesujących jak w oryginale.

Page 45: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Modyfikacje kolorystyczne Nie zmieniając reguł automatu,

możemy zabarwić część komórek, co da ciekawszy efekt, nie wpłynie jednak na kształt generowanych struktur.

Page 46: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Immigration Żabka w Immigration Dla żywych komórek dostępne są dwa kolory – zwykle

czerwony i żółty. Dla martwych sytuacja się nie zmienia względem oryginału.

Definiując warunki początkowe każdej z komórek przypisujemy jeden kolor. Na każdy z kolorów powinna być zabarwiona przynajmniej jedna komórka, w przeciwnym razie uzyskamy zwykłą grę w życie.

Nowo powstające komórki przyjmują taki kolor, jaki ma większość z ich 3 żywych sąsiadów.

Kolory żywych komórek nie zmieniają się w trakcie gry.

Page 47: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

QuadLife Glider gun w QuadLife Dla żywych komórek dostępne są aż cztery kolory – zwykle czerwony, żółty, zielony i

niebieski. Dla martwych sytuacja się nie zmienia względem oryginału. Definiując warunki początkowe każdej z komórek przypisujemy jeden kolor. Na

przynajmniej dwa spośród kolorów powinna być zabarwiona przynajmniej jedna komórka, przeciwnym razie uzyskamy zwykłą grę w życie.

Nowo powstające komórki przyjmują taki kolor, jaki ma większość z ich 3 żywych sąsiadów; jeżeli ma po jednym sąsiedzie z każdego koloru przyjmuje pozostały kolor.

Kolory żywych komórek nie zmieniają się w trakcie gry.

Page 48: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

DarwiniaGra w życie pojawiła się jako jedno z intr

do gry komputerowej Darwinia Każda komórka może pozostać żywa

najwyżej przez 50 cykli, później umiera. Poza tym stosowane są klasyczne

zasady Conwaya 23/3. Każda symulacja kończy się śmiercią

wszystkich komórek.

Page 49: AUTOMATY  KOMÓRKOWE -   GRA W ŻYCIE

Źródła

http://www.wikipedia.pl http://robert.nowotniak.com/GameOfLife/ http://home.interserv.com/~mniemiec/

lifeterm.htm http://www.gamedev.pl http://psoup.math.wisc.edu/mcell/index.html -

program do symulacji gry w życie (mcell)