(Conway`s Game of Life)

Transkrypt

(Conway`s Game of Life)
Piotr Buczek
Maciej Szerling
‘GRA W ŻYCIE’
(Conway's Game of Life)
PROJEKT UCYF
ETAP I :
„Zebranie informacji dotyczących tematyki projektu oraz przedstawienie koncepcji realizacji
projektu”
„ Współdziałanie + proste zasady = złożone zjawiska”
John Nash, wybitny amerykaoski matematyk, laureat ngarody Nobla
I. Informacje ogólne
A
utomat komórkowy to system składający się z pojedynczych komórek, znajdujących się obok
siebie. Ich układ przypomina szachownicę lub planszę do gry. Każda z komórek może przyjąd
jeden ze stanów, przy czym liczba stanów jest skooczona, ale dowolnie duża. Stan komórki
zmieniany jest synchronicznie zgodnie z regułami mówiącymi, w jaki sposób nowy stan komórki
zależy od jej obecnego stanu i stanu jej sąsiadów.
Przykłady zjawisk dających się opisad automatami komórkowymi:




Kolonie owadów
Analiza ruchu ulicznego
Neuroprzekażniki
Gospodarka rynkowa
‘Gra w życie’ jest to jeden z pierwszych i najbardziej znanych przykładów automatu komórkowego,
wymyślony w roku 1970 przez brytyjskiego matematyka Johna Conwaya.
Głównymi zaletami modelu stworzonego przez Conwaya są:




Najbardziej znany I rozpowszechniony model automatu komórkowego
Duża liczba dostępnych źródeł (ksiązki,artykuły,gotowe rozwiązania
implementacyjne dla poszczegółnych platform)
Prosty zestaw reguł
Liczne ciekawe zjawiska I fenomeny tego automatu
Stephen Wolfram, który podzielił automaty komórkowe na cztery różne klasy, biorąc pod uwagę
efekty jakie one wywołują, przyporządkował grę w życie do klasy czwartej, charakteryzującej się tym,
że nie prowadza one ani do globalnego porządku, ani do globalnego chaosu. Przedstawił on hipotezę,
że ten automat może wykonywad obliczenia i jest równoważny maszynie Turinga. Chris Langton,
twórca innego popularnego automatu komórkowego, znanego jako mrówka Langtona wykazał w
roku 1991, że proponowana przez Wolframa klasa czwarta, znajduje się pomiędzy klasą zachowao
chaotycznych (klasa II) i struktur okresowych (klasa III).
II.Rys historyczny
A
utor gry, Conway zainspirowany pracami Stanisława Ulama oraz Roberta Schrandta nad
układami sąsiadów i regułami zmian, eksperymentował nad stworzeniem takiego automatu
pod koniec lat 60. XX wieku. Reguły, które w ostateczności przyczyniły się do powstania gry
Życie, zostały wybrane, ponieważ pozwalały na równowagę pomiędzy zbyt szybkim rozrastaniem się
struktur i zbyt wolnym pojawianiem się szybko znikających obiektów.Do badania populacji żyjących
Conway używał komputera PDP-7.
Gra została spopularyzowana przez Martina Gardnera na łamach Scientific American. Od momentu
publikacji zawsze wzbudzała duże zainteresowanie z powodu zaskakującego sposobu, w jaki struktury
potrafią ewoluowad. To właśnie jej pojawienie się wzbudziło zainteresowanie automatami
komórkowymi wśród studentów, którzy traktowali ją jako rozrywkę, oraz fizyków, którzy zwrócili
uwagę na możliwości automatów w zakresie symulatorów fizycznych. Dzisiaj matematyków,
ekonomistów i naukowców z innych dziedzin interesuje sposób, w jaki przy zastosowaniu tylko kilku
prostych reguł powstają skomplikowane struktury.
III.Reguły gry
Z
definiowano kilka wzorców reguł generowania, najbardziej rozpowszechnione są jednak reguły
wymyślone przez Conwaya.
Gra toczy się na nieskooczonej planszy (płaszczyźnie) podzielonej na kwadratowe komórki.
Każda komórka ma ośmiu "sąsiadów", czyli komórki przylegające do niej bokami i rogami. Każda
komórka może znajdowad się w jednym z dwóch stanów: może byd albo "żywa" (włączona), albo
"martwa" (wyłączona). Stany komórek zmieniają się w pewnych jednostkach czasu. Stan wszystkich
komórek w pewnej jednostce czasu jest używany do obliczenia stanu wszystkich komórek w
następnej jednostce. Po obliczeniu wszystkie komórki zmieniają swój stan dokładnie w tym samym
momencie. Stan komórki zależy tylko od liczby jej żywych sąsiadów. W grze w życie nie ma graczy w
dosłownym tego słowa znaczeniu. Udział człowieka sprowadza się jedynie do ustalenia stanu
początkowego komórek.
Skomplikowany opis reguł bardzo łatwo jest przyswoid za pomocą reprezentacji graficznej:
ZASADA I:
„Martwa komórka z dokładnie trzema żywymi sąsiadami ożywa”
ZASADA II:
„żywa komórka z dwoma lub trzema sąsiadami pozostaje żywa”
ZASADA III
„We wszystkich innych przypadkach komórka obumiera lub pozostaje martwa”
IV.Struktury występujace w grze i ich zachowanie
W
ielka popularnośd „Gry w życie” sprawiła że stała się ona celem licznych studiów
naukowych. Podczas badao wyodrębniono specjalne kształty komórek,struktury,które
pojawią się podczas symulacji. Wyróżnia się kilka charakterystycznych typów struktur
,oto niektóre z nich(wraz z przykładami graficznymi dla struktur niezmiennych):

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 koocowe ewolucji struktur. Tworzy się je
stosunkowo prosto, istnieją schematy według których można wymyślad nowe tego typu
struktury.

Oscylatory 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śd często pojawiają się jako produkty koocowe ewolucji
struktur.
Okresy oscylatorów najczęściej przyjmują wartości 2,3,4,6 lub 8, chod w grze w życie
znaleziono i takie, których okres wynosi prawie 150000 (!). Dla pewnych reguł istnieje nawet
oscylator o nazwie "biały rekin", który ma okres 150000034.

Struktury niestałe zmieniają się, nie powracając nigdy do swojego stanu pierwotnego. Jest to
w praktyce grupa łącząca struktury nie należące do żadnej z pozostałych kategorii. Z tego też
powodu jest ich najwięcej, a ich uzyskanie nie sprawia większych trudności (losowy układ
komórek wprowadzony jako warunki początkowe zwykle okazuje się byd strukturą niestałą).
V.Główne założenia projektowe
Rozmiar planszy: 64 x 64 komórek
Wyświetlanie wyników na ekranie VGA
Wprowadzanie warunków początkowych za pomocą komputera PC połączonego z płytką za
pomocą portu USB lub bezpośrednie wprowadzania na płytkę za pomocą pliku MIF
Regulowana liczba cyklów symulacji
VI.Algorytm gry napisany w pseudo-kodzie
for x = 0 do 63
for y = 0 do 63
policz otaczające komórki punkcie (x,y) na starej planszy
if komórka żywa i 2 lub 3 komórki otaczające żywe
komórka żywa na nowej planszy w punkcie(x,y)
if komórka martwa i 3 komórki otaczające żywe
komórka żywa na nowej planszy w punkcie(x,y)
otherwise
komórka martwa na nowej planszy w punkcie(x,y)
skopiuj starą planszę do nowej planszy
VII .Schemat układu:
VIII .Zgromadzone materiały:
Sterownik monitora VGA – „Układy FPGA w przykładach” Majewski, Zbysioski
Opis płytki testowej: http://www.zpt.tele.pw.edu.pl/~ptomasze/docs/univ.pdf
Informacje o kontrolerze USB http://www.ftdichip.com/
Strona dotycząca sterownika JD2XX: https://jd2xx.dev.java.net
"Synteza Układów Logicznych" prof. Tadeusz Łuba
„Język VHDL w praktyce” Józef Kalisz
„Projektowanie układów cyfrowych w języku VHDL” Mark Zwolinski
„Język VHDL” Kevin Skahill
Wikipedia – informacje o grze , grafiki
Przykład realizacji projektu http://www.ee.ualberta.ca/~elliott/ee552/VHDLexamples/life/

Podobne dokumenty