Automaty komórkowe Cellular Automata CA
automat komórkowy 1011 – liczba neuronów w organizmie liczba galaktyk we wszechświecie 6 * 1023 liczba Avogadra Otoczenie - duże zespoły wzajemnie oddziałujących elementów zmierzających do stanu równowagi Uproszczenia w symulacjach komputerowych charakter oddziaływań Ograniczenie oddziaływań do sąsiadów Gra w życie J.H. Conway 2D; periodyczne warunki brzegowe Elementy populacji – osobnicy – w węzłach siatki Reguły przetrwania, śmierci, generowania nowych osobników
CA Stanisław Ulam, lata 40 XX w Step Wolfram (twórca pakietu Mathematica) Struktura danych (tablica komórek) Algorytm Parametry: Typ komórki Stan początkowy Funkcja przejścia
Automat sprawiedliwy – niezależny od kierunku przeliczania komórek (kopia tablicy) sasiedztwo Sąsiedztwo Neumanna Sąsiedztwo Moore’a
Przykłady automatów komórkowych Gra w życie Conway’s Game of Life prelokacja Ofiary i drapieżnicy Mrówka Langtona Symulacje fizyczne
Gra w życie - reguły Dla każdego elementu populacji: if ( 2<=liczba_sąsiadów<=3 ) element przeżywa 1 generację if ( liczba_sąsiadów >=4 ) element umiera //przeludnienie if ( liczba_sąsiadów <=1 ) element umiera //izolacja Dla każdego pustego pola: if ( liczba_sąsiadów = 3 ) tworzy się nowy element populacji w tym polu
Gra w życie reguły Życie i śmierć zachodzą równocześnie Przesłanki Nie istnieje konfiguracja pierwotna, dla której w prosty sposób można udowodnić, że rośnie ona w sposób nieograniczony Powinny istnieć konfiguracje pierwotne prowadzące do wzrostu bez granic znikające tworzące stabilną konfigurację wchodzące w nieskończone oscylacje
Gra w życie ak Efekt końcowy automatu Stan stabilny Stan cyklicznie zmieniający się z niedużym okresem Stan chaotyczny Złożone, stabilne konfiguracje o długich okresach Życie – równoważne maszynie Turinga
Gra w życie reguły - zastosowania Model formowania opinii społecznej „warszawski” „wrocławski” Symulacja rozchodzenia się choroby zakaźnej Model Isinga CA + GA Badanie gęstości upakowania kulek w polach
Model formowania opinii społecznej Stany: tak, nie si,j = -1 lub 1 Wartość początkowa – np. 80% populacji – tak; 20% - nie Opinie rozrzucone losowo Przeprowadzenie rund dyskusyjnych – wymiana z innymi członkami populacji (sąsiedzi –odległość emocjonalna), siła przekonywania fi,j – siła przekonywania Dynamika układu – opisana regułą większości S=f0,0s0,0(t) + f0,1s0,1(t) + f1,0s1,0(t) + f0,-1s0,-1(t) + f-1, 0s-1,0(t) 0,0 0,1 1,0 -1,0 0,-1 S0,0 = +1, jeśli S>=0 S0,0 = -1, jeśli S<0
Model formowania opinii społecznej Inny sposób wyboru sąsiadów , np. losowy, dla zadanego zasięgu, proporcjonalny do odległości Szumy Znając dynamikę zmian pojedynczego osobnika – obserwacja zmian rozkładu opinii Tworzenie grup wokół przywódców (osoby o mocnym wpływie) Tworzenie wałów ochronnych (słabsi osobnicy za murem osobników silniejszych) Rozwój „grup oporu”
Model wrocławski Bazuje na obserwacji zachowań stadnych Jedna silnie skorelowana (to samo zdanie na pewien temat) para potrafi narzucić swoje zdanie sąsiadom Jeśli para ma różne zdania – otoczenie nie zmienia poglądów
Rozchodzenie się choroby zakaźnej Obszar N x N; rozmieszczenie osobników w polach Periodyczne warunki brzegowe lub nie Szczepienie – wśród losowo wybranej grupy 1 losowo wybrany niezaszczepiony osobnik – źródłem choroby V=liczba_osób_zaszczepionych/liczność_populacji Nz – liczba osób niezaszczepionych Zk- liczba osób zakażonych (spośród Nz) I – wskaźnik infekcji I=Zk/Nz < 1 I(V) – funkcja malejąca Istnieje Vc – wskaźnik infekcji gwałtownie maleje
Model Isinga Badanie magnetycznych własności ciał N spinów w węzłach siatki 2D Spiny oddziałują z sąsiadami i zewnętrznym polem magnetycznym Stany spinów: dół -1; góra 1 Cel – minimum energii układu Metoda Metropolisa
prelokacja Symulacja pożaru lasu Szybkość i kierunek wiatru Wilgotność powietrza i poszycia Odległość między drzewami Istnienie i rozmiary przecinek Rozmieszczenie ognisk zapalnych Pudełko z kulkami przewodnikami i izolatorami umieszczonymi w dwóch przeciwnych ściankach; po przyłożeniu napięcia – prąd popłynie jeśli utworzy się prelokujący klaster (przy powolnym wzroście liczby przewodników - gwałtowne przejście do stanu przewodnictwa) Poszukiwanie ropy naftowej, wody – cechy porowatych skał
Algorytm prelokacji węzłowej Tablica zajętości Wypełniona losowo z prawdopodobieństwem p „1” lub „0” Wektor pamięci ME Etykiety – kolejne liczby całkowite (numer klastra) Przeglądanie tablicy zajętości wierszami, nadając etykiety elementom zajętym; elementowi, który ma sąsiadów (po lewej stronie i powyżej (i-1,j); (i,j-1) przyporządkowana jest najniższa z etykiet sąsiadów (y) Ustawienie wektora pamięci ME(x)=y; x,y – etykiety; x>y Uzgadnianie kilkustopniowe – zastąpienie etykiet z wektora ME ( od największej wartości ) x->y
Etykietowanie elementów -sąsiedztwo 1 2 3 Element badany sąsiedzi
prelokacja 1 1 2 3 4 5 6 7 8 ME(3)=2 ME(6)=4 ME(4)=3 6 -> 4 3 -> 2 4 -> 3 1 2 5 7 8 1 2 3 4 5 7 8 1 2 3 5 7 8
Kropla spadająca na wietrze Kropla przesuwa się między węzłami sieci pod wpływem siły ciężkości i wiatru Cel – określenie średniej wartości dryftu (xk-x0) Parametry symulacji: x0, y0 – punkt początkowy δ x = δy – odległości między współrzędnymi węzłów p1, p2, p3, p4 - prawdopodobieństwa ruchu w 4 kierunkach p1+ p2+ p3+ p4 = 1 Liczba symulacji Kryterium stopu pojedynczej symulacji – yk= 0
Kropla spadająca na wietrze Reguły poruszania się po sieci (xi,yi) : Wylosuj r rzeczywiste є(0,1) if (r <= p1) (xi,yj) -> (xi+1,yi) → if (r >= p1 && r < p1+p2 ) (xi,yi) -> (xi,yi-1) ↑ if (r >= p1+p2 && r < p1+p2 +p3 ) (xi,yj) -> (xi-1,yi) ← if (r >= p1+p2+p3 && r < 1 ) (xi,yj) -> (xi,yi+1) ↓
Kropla spadająca na wietrze → ↑ ← ↓ y0 yk =0 x0 xk
Ruchy Browna Brown 1827, Einstein 1905, Smoluchowski 1906 Ruchy małych cząstek zawiesiny w sieci Wyznaczenie położenia cząstki zawiesiny w chwili t=0, Δt, 2Δt, 3Δt,…. oraz Δxi, Δyi Badanie średniej wartości kwadratu przesunięcia wraz z upływem czasu (liczba kroków)
Ruchy Browna śr_wartość_kwadratu_x(liczba kroków)- zależność liniowa śr_wartość_kwadratu_y(liczba kroków)- zależność liniowa
Ruchy Browna Nachylenie prostej Dla gazów - 2D; D – współczynnik dyfuzji D=kT/(6πηr) k - stała Boltzmanna T – temperatura η współczynnik lepkości r – promień cząstki
Mrówka Langtona Langton’s Ant Pamiętane parametry: Bieżąca pozycja (x, y) Kierunek ( 1 z 8 lub 1 z 4 ) W każdej iteracji przeliczana jedna komórka Modyfikacja komórki (P(x,y)=T/F) Modyfikacja kierunku przesunięcie o jedno pole Np.: if (P(x,y)) zmień kierunek o 900 w lewo; else zmień kierunek o 900 w prawo; P(x,y)=~P(x,y); Move (o 1 pole w zadanym kierunku) Po 100 000 kroków – tablica nieuporządkowana ak
Wyliczanie kolejnych wierszy tablicy na podstawie poprzednich – generacja fraktali Sierpińskiego Zaznaczenie nieparzystych liczb w trójkącie Pascala Stan komórki – na podstawie dwóch komórek powyżej ( p + p -> p; p +np. -> np.; np. +np. ->p) ak
Symulacje fizyczne Komórki – wycinek zdyskretyzowanej przestrzeni Iteracje – dyskretny czas Nowa wartość komórki zależy od poprzedniej i sąsiadujących Rozkład ciśnienia Rozchodzenie się fal na wodzie Wiatr Podobne wyniki przy sąsiedztwie 4, 8, 12 AK-fale, wiatr plamy piasek gaz
L-systemy (systemy Lindenmayera) 1986 r – biolog, Aristid Lindenmayer Modelowanie biologicznego wzrostu Tworzenie grafiki komputerowej przedstawiającej rośliny, krzewy, drzewa Technika przepisywania: zastępowanie części początkowego ciągu znaków (aksjomatu) zgodnie z ustalonymi regułami (produkcjami)
Rodzaje L-systemów Deterministyczne bezkontekstowe Stochastyczne parametryczne
L-systemy deterministyczne, bezkontekstowe Ustalone słowo początkowe (aksjomat) Zbiór reguł (produkcji) a→א א – słowo Przykład: ω: b p1: a→ab p2: b→a b→a→ab→aba→abaab→abaababa→abaababaabaab
L-systemy stochastyczne Produkcje z pewnym prawdopodobieństwem a→(P)א Przykład: ω: F p1: F→(0.33) F [+F] F [-F] F p2: F→(0.33) F [+F] F p3: F→(0.34) F [-F] F F – krok do przodu + rysowanie linii [ - zapisz na stosie stan ] – zdejmij stan z stosu
L-systemy kontekstowe Produkcja stosowana, gdy zgadza się kontekst (prawy, lewy lub oba) 2L-systemy al.<a> ar → א 1L-systemy al.<a → א a> ar → א Przykład: ω: baaaa p1: b< a → b p2: b → a baaaa → abaaa → aabaa → aaaba → aaaab →aaaaa
L-systemy parametryczne Produkcja: A(t) : t > 5 → B(t+1)CD(t*0.5, t-2) Symbol A ma 1 parametr – t if ( t>5 ) A zamienione jest na …… Domyślna produkcja: a → a Przykład: ω: B(2)A(4,4) p1: A(x,y) : y<=3 → A(x*2,x+y) p2: A(x,y) : y>3 → B(x)A(x/y,0) p3: B(x) : x<1 → C p4: B(x) : x>=1 → B(x-1) B(2)A(4,4) → B(1)B(4)A(1,0) → B(0)B(3)A(2,1) → CB(2)A(4,3) → CB(1)A(8,7) → CB(0)B(8)A(8/7,0) → CCB(7)A(16/7,8/7) → ….
Interpretacja ciągów znaków - żółw Stan żółwia: (x,y,C) x,y –położenie α – kierunek Dane: krok = d zmiana kąta = β Ciąg znaków – komenda: F – krok do przodu o d w kierunku α z rysowaniem linii f – krok do przodu bez rysowania linii + – skręt w lewo o β - – skręt w prawo o β
Kwadratowa wyspa Kocha ω: F-F-F-F p1: F → F – F + F + FF – F – F + F F – krok do przodu o d + – skręt w lewo o 900 - – skręt w prawo o 900 n=0 n=1
Wyspy Kocha
F – krok do przodu + rysowanie linii [ - zapisz na stosie stan ] – zdejmij stan z stosu
liście