Remove ads
ewoluująca skokowo sieć prostych obiektów Z Wikipedii, wolnej encyklopedii
Automat komórkowy – system składający się z pojedynczych komórek, sąsiadujących ze sobą według pewnego ustalonego wzorca. Każda z komórek może przyjąć jeden ze stanów, przy czym liczba stanów jest skończona, 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[1].
Automaty komórkowe, których struktury opisane są przez siatkę komórek oraz ich stany, przejścia i reguły tych przejść, są modelami matematycznymi. Tworzą one środowisko dla większych dyskretnych klas modeli, ponieważ wszystkie opisujące je struktury przyjmują wartości dyskretne.
Każdy automat komórkowy składa się z -wymiarowej regularnej, dyskretnej siatki komórek, każda komórka jest taka sama (jest kopią poprzedniej), cała przestrzeń siatki musi być zajmowana w całości przez komórki ułożone obok siebie. Każda z nich posiada jeden stan ze skończonego zbioru stanów. Ewolucja każdej komórki przebiega według tych samych ściśle określonych reguł lokalnych (jednorodność), które zależą wyłącznie od poprzedniego stanu komórki oraz od stanów skończonej liczby komórek-sąsiadów. Ewolucja następuje w dyskretnych przedziałach czasowych, jednocześnie dla każdej komórki (równoległość). W automacie komórkowym komórka jest automatem.
Jeżeli przez oznaczymy regularną, uporządkowaną siatkę złożoną z jednakowych komórek o budowie zależnej od rozmiaru przestrzeni i od kształtu pojedynczej komórki,
natomiast przez – skończony zbiór stanów, jaki może przyjąć komórka
oraz przez – skończony zbiór sąsiadów, spełniający warunek:
a funkcję przejścia definiującą reguły ewolucji automatu w kolejnych krokach oraz dynamikę tych przejść zapiszemy jako:
to automat komórkowy definiujemy jako czwórkę:
Aby opis automatu komórkowego był pełny, niezbędne jest określenie warunków brzegowych i początkowych.
Podstawą jego definicji jest dwuwymiarowa, kwadratowa siatka, w której każda komórka jest opisana przez wektor pozycji: gdzie są indeksami kolumn i wierszy siatki. Stan każdej komórki w iteracji jest opisywany przez i może przyjmować wartości binarne 0 i 1. Na automat komórkowy składają się:
Twórcą automatów komórkowych jest jeden z największych myślicieli ery komputerowej, który wprowadził koncepcję samoreprodukcji – John von Neumann[2]. Docelowo chciał stworzyć model maszyny samosterującej, tzn. takiej, iż powielałaby ona swoją budowę i przekazywała swoje cechy. Na przełomie lat 40. i 50. Neumann opracował swoją teorię, opierając się na maszynie Turinga[3]. Opracował on pięć modeli samoreplikujących się automatów, których jednak realizacja okazała się zbyt trudna, aż do momentu, gdy zainspirowany pomysłem Stanisława Ulama, wprowadził do swego modelu dyskretny czas i przestrzeń[4].
Każdy automat odpowiada wyżej wymienionym definicjom. Jego budowa musi się opierać na konkretnych danych. Nie mogą istnieć w jednym automacie dwie komórki, które nie mają wszystkich elementów takich samych (różnią się choćby liczbą sąsiadów). Budowa wszystkich komórek musi być identyczna (muszą mieć tyle samo sąsiadów, takie same zbiory stanów itp.). Budowa elementów automatu może również wpłynąć znacząco na jego jakość.
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 jej położenie na siatce.
Istnieją trzy konstrukcyjne czynniki automatu komórkowego, które w zasadniczy sposób wpływają na strukturę siatki:
Jeśli oznaczymy kierunki na zasadzie róży wiatrów: N, S, E, W oraz kierunki pośrednie NW, NE, SE, SW, to sąsiedztwem von Neumanna będzie zbiór czterech komórek: N, S, E, W
Sąsiedztwo von Neumanna
Posługując się powyższymi oznaczeniami, sąsiedztwem Moore’a będzie zbiór wszystkich ośmiu komórek dookoła komórki centralnej
Sąsiedztwo Moore’a
Jest to połączenie dwóch poprzednich sąsiedztw w jedno.
Stosuje się je w automatach do symulacji spadającego piasku, czy też interakcji cząsteczek gazu. Reguły przejścia opierają się na kwadratowych blokach tworzonych przez cztery sąsiadujące komórki. Stany tych sąsiednich komórek zmieniają się jednocześnie, przy czym komórki przyjmują wartości binarne 1 i 0. Tak dzieje się na całej siatce automatu. W następnym kroku reguły są obliczane podobnie, tylko że zmieniają się grupy komórek. Bloki tworzące owe grupy przesuwają się o jeden w prawo i w dół.
Otoczenie Margolusa. Krok pierwszy, drugi i trzeci. Widać zmianę bloków w poszczególnych krokach. Bloki w kroku pierwszym i trzecim obejmują te same komórki.
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. Ten typ przejść bardzo dobrze opisuje nasze otoczenie – środowisko, w którym wszystko również odbywa się na periodycznej przestrzeni, jaką jest torus.
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.
Warunki brzegowe na krawędzi siatki tworzą barierę, od której symulowane cząstki się odbijają. Stosowane do symulacji zamkniętych przestrzeni doświadczalnych.
Przestrzeń stanów określamy poprzez zdefiniowanie wartości wybranej ze skończonego zbioru 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.
Reguły przejść określają ewolucję automatu komórkowego w dyskretnym czasie. Stany poszczególnych komórek aktualizuje się w każdej dyskretnej chwili 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 w chwili oznaczmy jako a stan sąsiedztwa jako Dla takich kryteriów stan komórki w kolejnym kroku iteracji można opisać wzorem:
gdzie 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ć.
Ważnym elementem konstrukcyjnym automatów komórkowych są warunki początkowe, czyli stany poszczególnych komórek w zerowej iteracji, czyli na samym początku. To od ustawienia początkowego komórek 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. Weźmy pod uwagę Heavy triangles, układ ten zaczyna się od jednej komórki uaktywnionej umieszczonej w środku siatki 1D. Przykładowo w Game of Life, 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. Od ustawienia warunków początkowych może również zmienić się przynależność automatu komórkowego do różnych klas Stephena Wolframa – opisanych poniżej. Jednym słowem warunki początkowe danego automatu komórkowego zależą od jego charakteru i problemu – zadania przez niego symulowanego.
Po ustaleniu i zdefiniowaniu wszystkich elementów składowych automatu komórkowego można przejść do nakładania reguł na siatkę, czyli aktualizowania jej.
Cały proces ewolucji automatu można podzielić na kilka części:
Technika automatów komórkowych jest używana do symulacji komputerowych w wielu problemach nauki i techniki. Automaty te dostarczają również wielu zagadnień teorii dynamiki nieliniowej.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.