18+
Ta strona może zawierać treści nieodpowiednie dla osób niepełnoletnich.
Zapamiętaj mój wybór i zastosuj na pozostałych stronach
topic

Gra w Życie

gi...........on • 2012-08-13, 22:53
"Gra w Życie" (ang. The Game of Life)

Jest wymyślonym przez brytyjskiego matematyka Johna Conwaya w 1970 roku automatem komórkowym, czyli prościej mówiąc zestawem modeli matematycznych opisujących siatkę komórek oraz reguły ich zachowania - zmiany stanów i przejść.

Założenie również jest proste - mamy dwuwymiarową płaszczyznę podzieloną na komórki. W teorii jest ona nieskończenie wielka - tutaj natomiast dla celów prezentacyjnych będzie miała określony, skończony wymiar X na Y.

Każda komórka na płaszczyźnie może przyjąć jeden z dwóch stanów (stany binarne) - wizualnie komórka jest "wypełniona" (żywa) lub pusta (martwa).

Po zadaniu stanu początkowego na płaszczyźnie (wypełnieniu określonych przez "gracza" komórek) algorytm startuje i przetwarza stany wszystkich komórek w każdym kolejnym korku według określonych zasad:

- Jeśli zadana komórka jest martwa i otaczają ją dokładnie trzy komórki żywe, to komórka ta staje się żywa (rodzi się) w następnej turze.

- Jeśli zadana komórka jest żywa i otaczają ją mniej niż dwie lub więcej niż trzy żywe komórki, to komórka ta umiera w następnej turze - w przeciwnym wypadku pozostaje żywa.

Przez komórki otaczające mają być rozumiane takie, które sąsiadują z zadaną komórką - znajdują się na dowolnym z otaczających ośmiu pól na siatce 3x3, na której zadana komórka jest na środku.

Warto nadmienić, że opisane zasady wykorzystane są w oryginalnej grze, natomiast modyfikując je można stworzyć "życie" tworzące struktury innego rodzaju i reagujące w inny sposób.


To by było na tyle, jeśli chodzi o teorię...

No tak... pewnie początek wrzutki nie brzmi za ciekawie, bo robię wywody matematyczne, ale zaraz będzie ciekawiej.

Otóż okazuje się, że prosty w założeniu i pracujący na prostych zasadach układ jest w stanie wykazywać bardzo ciekawe "zachowania" - poczynając od tworzenia różnych typów struktur, które można pogrupować (o czym dalej), a kończąc na złożonych konfiguracjach potrafiących na przykład replikować się, tworzyć inne struktury, lub nawet... dokonywać obliczeń, stając się przy tym maszyną Turinga (modelem komputera zdolnego wykonywać algorytmy).

I z grubsza na tym polega cały fenomen - ludzie od lat obserwują zachowania się zadanych układów, odnajdując coraz nowsze cechy charakterystyczne.


Rodzaje struktur

Stabilne:

Struktury, których komórki nie zmieniają stanów w kolejnych fazach (generacjach, rundach "gry"), przykładowo takie:



Oscylatory:

Struktury zmieniające się okresowo, czyli powtarzające pewien cykl w formie zestawu układów komórek w nieskończoność.

Przykładowo prosty oscylator zwany "blinker" o okresie równym 2:



Oraz bardziej zaawansowany "pulsar" o okresie 3:



Oczywiście istnieją też bardziej zaawansowane oscylatory z okresami rzędów tysięcy.

"Statki":

Podobnie jak oscylatory charakteryzują się cyklicznością, jednak w odróżnieniu od nich przemieszczają się po wykonaniu pełnego okresu (w kierunku zależnym od struktury) - przykładowo "glider":



"Pociągi" (lub "Lokomotywy"): (ang. "puffers")

Warianty statków, które dodatkowo przy przemieszczaniu się pozostawiają za sobą inne struktury. Nazwa pochodzi od skojarzenia z lokomotywą, która pozostawia za sobą kłęby dymu.

Bardziej zaawansowana forma puffera to Breeder ("rozpłodnik"), zdolny do pozostawiania po sobie innych bardzo złożonych struktur. Jego przyrost komórek w populacji jest kwadratowy.

Breeder w makroskali:



Pozostawia on po sobie serie "dział" (ang. Guns) - struktur produkujących seryjnie statki. W tym przypadku są to działa "Gosper's Glider", które wyglądają tak (w przybliżeniu i odwrócone o 90 stopni w stosunku do poprzedniego obrazka):



Jak można zauważyć i wywnioskować po nazwie, działo to produkuje opisane wcześniej "glidery".

Niestałe (niestabilne):

To struktury, które "żyją" i rozwijają się przez określoną ilość pokoleń, po czym ulegają zniszczeniu lub stabilizacji w prostszą stałą strukturę - przykładowo taki układ (zwany "acorn"):



Potrzebuje on 5206 faz aby się ustabilizować - dodatkowo przy okazji produkując inne struktury.


Podsumowując

Jeśli temat Cię zaciekawił to polecam obejrzeć te filmy:





Oraz pobawić się napisanym przeze mnie symulatorem. Kliknięcie w komórkę zmienia stan - ustaw stan początkowy (i ewentualnie prędkość upływania pokoleń w milisekundach), kliknij "Start" i podziwiaj. Ewentualnie klikaj w "Step", aby samemu wywoływać kolejne pokolenia:

http://www.gipson.pl/gol/

P.S. Symulator jest on-line, napisany w JavaScript'cie - nic nie trzeba ściągać.

xts

2012-08-13, 23:14
w ch*j inteligentne

_R...........s_

2012-08-13, 23:27
Ciekawe ilu wpadło na genialny pomysł, żeby narysować ku*asa i zobaczyć co się stanie, niektórzy mają k***a fantazje.
Swoją drogą, to całkiem ciekawa ta gierka. Zabawy na jakieś k***a 30 minut (czyli mniej więcej tyle samo, ile większość nowych gier w singlu).

ps, jeśli chodzi o ku*asa, to efekt całkiem ciekawy, po jakichś 30 cyklach się stabilizuje.

Kajulec

2012-08-14, 00:03
Z czystym sumieniem daje piwo, dobra robota :)

takija

2012-08-14, 01:01
Za późno jest na takie rozkminy i za mało piwa sie przelało... Podejdę do tego tematu jutro ;)

Keku

2012-08-14, 09:30
Cytat:

I z grubsza na tym polega cały fenomen - ludzie od lat obserwują zachowania się zadanych układów, odnajdując coraz nowsze cechy charakterystyczne.

Sranie w banie. To jest proste jak drut i wszystkie te strukturki zostały zaobserwowane na samym początku kiedy coś takiego jak internet było w jeszcze w fazie planów w jakiejś militarnej bazie.

Powoli zaczyna mnie wk***iać ten pseudonaukowy bełkot rodem z fokusa. Co wam da taka wiedza? To się nadaje jedynie jako przykład automatu komórkowego i tyle. Może lepiej zmienić napis pod logo sadola na "Codzienna dawka ch*jowej wiedzy"?

gi...........on

2012-08-14, 10:15
Keku napisał/a:

Sranie w banie. To jest proste jak drut i wszystkie te strukturki zostały zaobserwowane na samym początku kiedy coś takiego jak internet było w jeszcze w fazie planów w jakiejś militarnej bazie.

Powoli zaczyna mnie wk***iać ten pseudonaukowy bełkot rodem z fokusa. Co wam da taka wiedza? To się nadaje jedynie jako przykład automatu komórkowego i tyle. Może lepiej zmienić napis pod logo sadola na "Codzienna dawka ch*jowej wiedzy"?



Rzeczywiście, maszyna Turinga stworzona z dwóch prostych reguł jest prosta jak drut, sam Turing był tylko głupim pedałem, a wszystkie struktury posiadające okres rzędu tysięcy, jak nie milionów zostały przebadane bez użycia komputera... jak Cię wk***ia taki "bełkot" to nie czytaj - wtedy Ty masz święty spokój, a przy okazji nie wk***iasz innych.

Wróć jak sam coś opracujesz i pogadamy - tylko żeby nie był to artykuł zgodny z zainteresowaniami pt. "Jak siedzieć cały dzień na dupie i jęczeć".

JakobekS

2012-08-14, 10:44
@Keku
Co nam da taka wiedza? Poszerzenie horyzontów. A po co? Po prostu, bo można.

Siekana

2012-08-14, 10:45
Duże piwo. Właśnie tym się zajmuję ;)

Najbardziej rozwinął to Stephen Wolfram (ten od Mathematica) w New Kind of Science. Jeżeli Cię to interesuje to bardzo polecam.

sadystaxx

2012-08-14, 10:45
gipson dzięki za przypomnienie mi okresu studiów :-D
Pewnie na dysku mam jeszcze gdzieś swoje symulatorki.

Nie jestem jednak pewien czy sadistic to dobre forum na tego typu rozrywkę :-x

gi...........on

2012-08-14, 11:04
sadystaxx napisał/a:

gipson dzięki za przypomnienie mi okresu studiów :-D
Pewnie na dysku mam jeszcze gdzieś swoje symulatorki.

Nie jestem jednak pewien czy sadistic to dobre forum na tego typu rozrywkę :-x



Ja również nie byłem pewny czy to dobre miejsce, ale stwierdziłem, że podzielę się tematem przy okazji, że sam go odświeżam... a pamiętam, że kiedy pierwszy raz o tym czytałem, to zrobiło to na mnie wrażenie.

marcu

2012-08-14, 11:15
Dobry symulator :P PIWO :D chociaż było by lepiej jakby możnało każdą komórkę zamalować przy wciśnietym LPM, a nie jak jest obecnie, że jedna komórka jedno kliknięcie :)

Ja...........ro

2012-08-14, 11:21
Już widzę, jak większość ludzi po prostu rysuje na tym ku*asa. Tylko czekać, aż któryś rozgryzie i zrobi ku*asa, który jeszcze tryska
PS. polecam narysować, potocznie ujmując, swastykę (ja narysowałem o długości linii 7. 3 kratki za zagięcie)

gi...........on

2012-08-14, 11:30
marcu napisał/a:

Dobry symulator :P PIWO :D chociaż było by lepiej jakby możnało każdą komórkę zamalować przy wciśnietym LPM, a nie jak jest obecnie, że jedna komórka jedno kliknięcie :)



Tak, myślałem o tym, ale w sumie napisałem to na szybko, żeby zobaczyć jak działa, nie przywiązując zbytnio uwagi do obsługi - żeby stworzyć coś zaawansowanego i tak potrzebna byłaby dużo większa płaszczyzna, a JavaScript po prostu się do tego nie nadaje, bo w tym przypadku zamiast pracować na czystych danych, pracuje na HTMLu (podmiany tła wartości tabelki w HTMLu) i jest to - mówiąc dosadnie - zajebiście niewydajne :)

St...........ke

2012-08-14, 11:30
Takim czymś to ja się bawiłem z 15 lat temu, na moim C-64 :P