(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/