Automaty komórkowe. Każdy węzeł siatki znajduje się w jednym z N dyskretnych stanów. Np. w modelu SIR moglibyśmy mieć

Podobne dokumenty
Modelowanie wieloskalowe. Automaty Komórkowe - podstawy

Obliczenia inspirowane Naturą

Modelowanie wieloskalowe. Automaty Komórkowe - podstawy

Automaty komórkowe. Katarzyna Sznajd-Weron

Układy dynamiczne Chaos deterministyczny

MODELOWANIE RZECZYWISTOŚCI

W dowolnym kwadracie 3x3 ustawiamy komórki na palące się (stan 3). Program powinien pokazywać ewolucję pożaru lasu.

Ruch drogowy, korki uliczne - czy fizyk może coś na to poradzić?

Podręcznik. Model czy teoria

Złożoność obliczeniowa zadania, zestaw 2

Modelowanie systemów biomedycznych

Rozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie

Mateusz Żyliński Tadeusz Włodarkiewicz. WireWorld. Zebranie informacji dotyczących tematyki projektu oraz przedstawienie koncepcji realizacji projektu

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

Algorytm. Krótka historia algorytmów

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Katarzyna Jesionek Zastosowanie symulacji dynamiki cieczy oraz ośrodków sprężystych w symulatorach operacji chirurgicznych.

Obliczenia inspirowane Naturą

Turing i jego maszyny

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Ćwiczenia z przetwarzania tablic 2D

Modelowanie Wieloskalowe. Automaty Komórkowe w Inżynierii Materiałowej

Podstawy OpenCL część 2

Teoria gier. prof. UŚ dr hab. Mariusz Boryczka. Wykład 4 - Gry o sumie zero. Instytut Informatyki Uniwersytetu Śląskiego

Fraktale. i Rachunek Prawdopodobieństwa

17.1 Podstawy metod symulacji komputerowych dla klasycznych układów wielu cząstek

Agnieszka Nowak Brzezińska Wykład III

MODELOWANIE RZECZYWISTOŚCI

Optymalizacja. Przeszukiwanie lokalne

1. PODSTAWY TEORETYCZNE

Operacje arytmetyczne

Mgr inż. Wojciech Chajec Pracownia Kompozytów, CNT Mgr inż. Adam Dziubiński Pracownia Aerodynamiki Numerycznej i Mechaniki Lotu, CNT SMIL

Teoretyczne podstawy analizy indeksowej klasyfikacja indeksów, konstrukcja, zastosowanie

Algorytm. Krótka historia algorytmów

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Algorytmy sztucznej inteligencji

Metoda Karnaugh. B A BC A

Wstęp. Krystalografia geometryczna

Projekt 9: Dyfuzja ciepła - metoda Cranck-Nicloson.

Obliczenia iteracyjne

INSTRUKCJA DO ĆWICZENIA NR 7

Agnieszka Nowak Brzezińska Wykład III

Macierzowe algorytmy równoległe

b) bc a Rys. 1. Tablice Karnaugha dla funkcji o: a) n=2, b) n=3 i c) n=4 zmiennych.

INFORMATYKA POZIOM ROZSZERZONY

INFORMATYKA POZIOM ROZSZERZONY

Podręcznik. Przykład 1: Wyborcy

MODELOWANIE I PROGNOZOWANIE ZAGROŻEŃ EPIDEMIOLOGICZNYCH

Elementy modelowania matematycznego

Agnieszka Nowak Brzezińska

Optymalizacja ciągła

Obliczenia inspirowane Naturą

Symulacja Monte Carlo izotermy adsorpcji w układzie. ciało stałe-gaz

10. Wstęp do Teorii Gier

1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

5.1 Stopa Inflacji - Dyskonto odpowiadające sile nabywczej

Lista 0. Kamil Matuszewski 1 marca 2016

MODELOWANIE RZECZYWISTOŚCI

MODELOWANIE RZECZYWISTOŚCI

Stochastyczna dynamika z opóźnieniem czasowym w grach ewolucyjnych oraz modelach ekspresji i regulacji genów

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Wizualizacja funkcji w programie MATLAB

Symulacje komputerowe

Maszyna Turinga języki

Rys. 2. Symbole dodatkowych bramek logicznych i ich tablice stanów.

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Zasady gry i przygotowanie

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

Opis postępowania przy eksportowaniu geometrii z systemu Unigraphics NX do pakietu PANUKL (ver. A)

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Czym jest całka? Całkowanie numeryczne

Projekt 6: Równanie Poissona - rozwiązanie metodą algebraiczną.

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Prognozowanie i Symulacje. Wykład I. Matematyczne metody prognozowania

MODELOWANIE RZECZYWISTOŚCI

MODELOWANIE STRUKTURY BIOFILMU PRZY UŻYCIU AUTOMATU KOMÓRKOWEGO MODELING OF BIOFILM STRUCTURE USING CELLULAR AUTOMATON

Podręcznik. Wzór Shannona

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Materiały pomocnicze do programu AutoCAD 2014

L6.1 Systemy liczenia stosowane w informatyce

Rozwiązywanie problemów z użyciem Solvera programu Excel

Rijndael szyfr blokowy

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Języki formalne i automaty Ćwiczenia 5

PSO Rój cząsteczek - Particle Swarm Optimization. Michał Szopiak

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Implementacja modelu FHP w technologii NVIDIA CUDA

Lista 6. Kamil Matuszewski 13 kwietnia D n =

Matematyka dyskretna. Andrzej Łachwa, UJ, A/15

Ciągi liczbowe. Zbigniew Koza. Wydział Fizyki i Astronomii

Procesy Markowa zawdzięczają swoją nazwę ich twórcy Andriejowi Markowowi, który po raz pierwszy opisał problem w 1906 roku.

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Transkrypt:

Automaty komórkowe 1 Wstęp 1.1 Definicja Automaty komórkowe są narzędziem wykorzystywanym czasem do modelowania układów dynamicznych. Są przykładem tego, że proste zasady i lokalne oddziaływania mogą prowadzić do bardzo różnorodnych i skomplikowanych zachowań. Zwykle jako automaty komórkowe rozumie się: regularną 1-D, 2-D... siatkę. Każdy węzeł siatki znajduje się w jednym z N dyskretnych stanów. Np. w modelu SIR moglibyśmy mieć 0 dla stanu podatnego x(i, j) = 1 dla stanu zainfekowanego 2 dla stanu ozdrowiałego (1) stany węzłów uaktualniane są synchronicznie w dyskretnych momentach stan każdego węzła w chwili t + 1 jest deterministyczną funkcją stanu sąsiadów w chwili t najczęściej przyjmuje się periodyczne warunki brzegowe (żeby nie było kłopotów z nierówną ilością sąsiadów na brzegach). Prowadzi to do topografii okręgu (1-D) lub torusa (2-D). Łatwo wyobrazić sobie uogulnienia tego klasycznego sformułowania na stany ciągłe w każdym węźle i funkcje probabilistyczne na zmiany stanów. 1

1.2 Historia Twórcą automatów komórkowych jest jeden z największych myślicieli ery komputerowej, który wprowadził koncepcję samo-reprodukcji - John von Neumann. Docelowo chciał stworzyć model maszyny samosterującej, tzn. takiej, iż powielałaby ona swoją budowę i przekazywała swoje cechy. Na przełomie lat czterdziestych i pięćdziesiątych Neumann opracował swoją teorię opierając się na maszynie Turinga. Opracował on pięć modeli samo-replikujących się automatów, realizacja jednak okazała się zbyt trudna jak na owe czasy. Trafiły one na półkę. Pracami Neumanna zainteresował się dopiero Edgar Frank Codd, który uczynił automaty możliwymi do wykorzystania. Codd zaprojektował automat komórkowy, który mógł obliczyć wszystkie możliwe funkcje, i który mógł się rozmnażać. Jednak mimo że ten projekt zawierał o wiele prostszą koncepcję od pomysłu von Neumanna, również nie został zrealizowany. Posłużył natomiast do skonstruowania powszechnie stosowanej Gry w życie (J.H. Conway). Mimo że w obu przypadkach brakowało realizacji projektów, prace obu teoretyków uważa się za fundamenty powstania automatów komórkowych. Następnym przełomowym wydarzeniem w historii automatów komórkowych było sklasyfikowanie ich. Po wcześniejszych czysto teoretycznych projektach w 1983 roku Stephen Wolfram dokonuje klasyfikacji automatów komórkowych. 1.3 Sąsiedztwo Sąsiedztwo von Neumanna 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 Moore a 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 Margolusa 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ół. 2

1.4 Warunki brzegowe Periodyczne 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. Zamknięte pochłaniające 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ć. Zamknięte odbijające Warunki brzegowe na krawędzi siatki tworzą barierę, od której symulowane cząstki się odbijają. Stosowane do symulacji zamkniętych przestrzeni doświadczalnych. 1.5 Reguły Przepis na nowy stan węzła x opisywany jest przez reguły. Jako przykład weźmy 1-D atomat dwustanowy N = 2 i sąsiedztwo r = 1. stan sąsiedztwa dla t 111 110 101 100 011 010 001 000 Tak stan węzła dla t 0 1 1 0 1 1 1 0 zapiisaną regułę można odczytać jako liczbę binarną i przedstawić ją w systemie dziesiętnym jako 110. Z powyższej tabelki widzimy, że tak rozumianych reguł w tym przypadku mamy 2 8 = 256. Używana terminologia: legal całe sąsiedztwo 0 maouje się na stan 0, i mamy izotropię totalistic stan węzła zależy tylko od sumy sąsiedztwa x(t+1) = f ( sąsiad x(t) ) perypherial stan węzła nie wpływa na swój przyszły stan Reguły można też podzielić pod względem wzorców do których ewoluują automaty komórkowe im podlegające. Wolfram (1984) zdefiniował 4 klasy: 1. ewoluują do ustalonego jednorodnego stanu 2. ewoluują do stanu niejednorodnego lub cyklicznego 3. ewoluują do zachowania chaotycznego lub aperiodycznego 4. ewoluują do skomplikowanych zlokalizowanych struktur 3

1.6 Przykład Poniżej przedstawiam prosty model 1-D automatu komórkowego, z sąsiedztwem o promieniu 1 i stanch {0, 1}. Przestrzeń ma topografię okręgu. Proszę eksperymentować z różnymi wartościami reguł i zaobserwować częstość występowania różnych klas. clear all close all regula = 110; w = 100; T = 100; % numer reguly % ile wezlow % ile iteracji %init = round(rand(1,w)); % losowa inicjalizacja init = zeros(1,w); % deterministyczna inicjalizacja init(w/2) = 1; X(1,:) = init; r = bitget(regula,8:-1:1); % konwersja reguly na ciag bitow vec = [4 2 1]; % wektor pomocny przy odczytywaniu stanu sasiedztwa % z tabelki reguly odpowiada zapalonym bitom % 1- bit o 1 w prawo, % 2- bit srodkowy, % 4 - bit o jeden w lewo (porwownaj tabelka) for t=1:t Y = X(t,:); d(1,:) = [Y(end) Y(1:(end-1))]; % kopia stanu w % chwili t przesunięta o 1 w prawo % zakladamy topografie okregu wiec % przeklejamy ostani element na pierwszy d(2,:) = Y; % kopia stanu w chwili t d(3,:) = [Y(2:end) Y(1)]; % kopia stanu w % chwili t przesunięta o 1 w lewo % zakladamy topografie okregu wiec przeklejamy % pierwszy element na ostani X(t+1,:) = r(8-vec*d(:,:)); bar(x(t+1,:)) pause(0.1) drawnow end imagesc(x); axis equal axis tight xlabel( przestrzen ) ylabel( czas ) title([ Regula:, num2str(regula)]) 4

1.7 Przykład dwuwymiarowego modelu SIR realizowanego przez automaty komórkowe Założenia: 1. choroba trwa a jednostek czasu 2. po wyzdrowieniu uzyskuje się odporność na b jednostek czasu 3. po czasie a + b od początku infekcji ponownie staje się podatnym 4. zarażeniu ulega każdy kto ma w otoczeniu przynajmniej jednego chorego Poniższy kod proszę zasymulowac po kilka razy dla następujących kombinacji parametrów a {2, 4, 8}, b {2, 4, 8} i p {0.01, 0.05, 0.10} Spróbujcie zinterpretować obserwowane wzory 2-D i przebiegi czasowe S, I, R. clear all close all n = 100; % rozmiar sieci n na n a = 5; % ilosc stanow infekcyjnych: 1,...,a b = 14; % ilosc stanow z odpornoscia: a+1,...,a+b T=300; p = 0.2; % poczatkowa czestosc wystepowania stanow infekcyjnych i opornych %Przygotowanie COLORMAP X0 = [0 1 0]; % podatni sa zieloni Xa = colormap(autumn(a)); % zarazeni sa zolto-czerwoni Xb = colormap(winter(b)); % odporni sa niebiesko-zieloni X= cat(1,x0,cat(1,xa,xb)); % cala colormap % Stan poczatkowy D1 = ceil((a+b)*rand(n,n)); % macierz wypełniona liczbami z rozkładu płaskiego od 1 do a+b D2 = rand(n,n) < p; %wybieramy wezly zarazeni i odporni D = D1.*D2; %% PROGRAM image(d); colormap(x); colorbar ; % stan poczatkowy axis square; t = 1; S(t) = sum(sum(d==0)); % poczatkowa ilosc podatnych I(t) = sum(sum((d>0)&(d<a))); % zarazonych (D>0)&(D<b)) R(t) = sum(sum(d>a)); % odpornych for t=2:t 5

D1 = D(:,[n 1:n-1]); D2 = D(:,[2:n 1]); D3 = D([n 1:n-1],:); D4 = D([2:n 1],:); % stan sasiadow w lewo % stan sasiadow w prawo % stan sasiadow powyzej % stan sasiadow ponizej sick_neighbors = ((D1>0)&(D1<a))+((D2>0)&(D2<a)) + ((D3>0)&(D3<a)) + ((D4>0)&(D4<a)); stay_healthy = ((D==0)&(sick_neighbors==0)); % podatni ktorzy nie zachoruja get_sick = ((D==0)&(sick_neighbors>0)); % podatni ktorzy zachoruja get_recovered = (D>=(a+b)); % odporni ktorzy stana sie podatni others = (D>0)&(D<a+b); % wszyscy pozostali D(get_sick) = 1; D(get_recovered) = 0; D(others) = D(others)+1; % uaktualnianie stanu podatnych zaczynajacych chorobe % uaktualnianie stanu odpornych tracacych odpornosc % uaktualnianie stanu pozostalych end % rysujemy stan aktualny image(d); colorbar; title([ t =, num2str(t)]) drawnow S(t) = sum(sum(d==0)); % sumujemy podatnych I(t) = sum(sum((d>0)&(d<a))); % sumujemy zakazonych R(t) = sum(sum(d>a)); % sumujemy odpornych figure % S,I i R t=1:t; plot(t,s,t,i,t,r) legend( podatni, zakazeni, odporni ) xlabel( czas ) 1.8 Zadanie: Zaimplementować model Greenberga i Hastingsa. Jest to prosty model typu reakcja-dyfuzja Założenia: 1. komórka k i,j znajduje się w jednym ze stanów k i,j {0, 1, 2}, 0- stan równowagi, 1- stan przejściowy, 2 - stan wysycenia. 2. stan komórki jest sumą dwóch składników: reakcji k i,j (t + 1) = R i,j (t) + D i,j (t) R i,j (t) = { 2 dla ki,j (t) = 1 0 dla k i,j (t) = 0 2 oraz dyfuzji { 1 dla ki,j (t) = 0 i co najmniej jeden z sąsiadów w stanie 1 D i,j (t) = 0 dla pozostałych przypadków 6