Obliczenia inspirowane Naturą

Podobne dokumenty
Obliczenia inspirowane Naturą

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Systemy Lindenmayera (L-systemy)

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Systemy Lindenmayera (L-systemy)

Obliczenia inspirowane Naturą

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Obliczenia inspirowane Naturą

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 9

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Języki formalne i automaty Ćwiczenia 5

1 Automaty niedeterministyczne

Języki formalne i automaty Ćwiczenia 3

Języki, automaty i obliczenia

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 1

Języki formalne i automaty Ćwiczenia 4

Hierarchia Chomsky ego

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Modelowanie roślin przy użyciu języków formalnych

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Jaki język zrozumie automat?

Hierarchia Chomsky ego Maszyna Turinga

0.1 Lewostronna rekurencja

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Obliczenia inspirowane Naturą

Obliczenia inspirowane Naturą

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Języki formalne i automaty Ćwiczenia 7

Aproksymacja funkcji a regresja symboliczna

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Języki formalne i automaty Ćwiczenia 2

Wykład 1 Wybrane problemy algorytmiki

JĘZYKI FORMALNE I METODY KOMPILACJI

Dopełnienie to można wyrazić w następujący sposób:

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Imię, nazwisko, nr indeksu

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Efektywna analiza składniowa GBK

Analiza semantyczna. Gramatyka atrybutywna

10. Translacja sterowana składnią i YACC

Języki, automaty i obliczenia

Algorytmy i struktury danych. wykład 2

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Gramatyki regularne i automaty skoczone

JĘZYKIFORMALNE IMETODYKOMPILACJI

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Definicje. Algorytm to:

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Elementy Teorii Obliczeń

(j, k) jeśli k j w przeciwnym przypadku.

Programowanie genetyczne, gra SNAKE

Temat: Algorytm kompresji plików metodą Huffmana

Wykład 5. Jan Pustelnik

Optymalizacja. Wybrane algorytmy

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

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

Matematyka stosowana i metody numeryczne

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy stochastyczne, wykład 07 Parametryczne systemy

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

Języki, automaty i obliczenia

Gramatyki rekursywne

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Języki formalne i automaty Ćwiczenia 6

Arytmetyka liczb binarnych

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Spacery losowe generowanie realizacji procesu losowego

Gramatyki atrybutywne

Turing i jego maszyny

Maszyna Turinga języki

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

L E X. Generator analizatorów leksykalnych

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

W rachunku prawdopodobieństwa wyróżniamy dwie zasadnicze grupy rozkładów zmiennych losowych:

Statystyka i eksploracja danych

Definicja 2. Twierdzenie 1. Definicja 3

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Technologie informacyjne - wykład 12 -

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

GRAMATYKI BEZKONTEKSTOWE

JIP. Analiza składni, gramatyki

Numeracja dla rejestrów zewnętrznych

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Bisymulacja. Niezawodność systemów współbieżnych i obiektowych. Grzegorz Maj Grzegorz Maj Bisymulacja

Wiedza (nawigacyjna)? Metody reprezentacji. Brak jest jednoznacznej (uznanej definicji)... Ale informacje (dane, fakty) + sposób wykorzystania

Obliczenia inspirowane Naturą

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Tworzenie języków specyfikacji dla zagadnień numerycznych

Maszyna Turinga (Algorytmy Część III)

Transkrypt:

Obliczenia inspirowane Naturą Wykład 04 Systemy Lindenmayera Jarosław Miszczak IITiS PAN Gliwice 19/10/2016 1 / 37

1 L-Systemy 2 GroIMP i XL ALife 2 / 37

L-Systemy L-systemy czyli systemy Lindenmayera. 1968, Aristid Lindenmayer wykorzystanie do opisu rozwoju alg i innych prostych organizmów wielokomórkowych. L-systemy to przykład systemu przepisywania ciągów (ang. string rewriting system). Transformują one zadany ciąg wejściowy za pomocą gramatyki czyli zespołu reguł. Reguły są wywoływane rekurencyjnie co prowadzi do pojawienia się struktur samopodobnych. 3 / 37

L-Systemy Przepisywanie Metoda tworzenie nowych obiektów poprzez zastępowanie ich części. Abstrakcyjny systemy przepisywania Zbiór A wraz z binarną relacją, A A, nazywaną redukcją (ang. reduction relation lub rewrite relation). 4 / 37

L-Systemy L-systemy to przykład deklaratywnego sposobu programowania. Programowanie deklaratywne System przepisywania nie określa algorytmu, a jedynie reguły przekształcania obiektów podobnie jak deklaratywne języki programowania. 5 / 37

L-systemy Systemy przepisywanie ciągów Systemy przepisywanie ciągów Bazuje na strukturze wolnego monoidu, czyli możliwości operowania na skończonych ciągach elementów zbioru. Monoid Zbiór A z elementem jednostkowym i z operacją binarną, która jest łączna, ((x y) z = x (y z)). Inaczej: półgrupa z jednością. Wolny monoid Zbiór wszystkich skończonych ciągów elementów z monoidu A o długości zero lub więcej. 6 / 37

L-systemy Systemy przepisywanie ciągów System przepisywania ciągów to para (A, ), gdzie A jest alfabetem to relacja binarna na A, A A W interesującym nas przypadku identyczność do napis pusty oznaczany jako ɛ. 7 / 37

L-systemy Gwiazdka Kleene a L-Systemy Dla zadanego zbioru A definiujemy ciąg zbiorów A 0 = {ɛ} A 1 = A A n = {αa : α A n 1, a A} Gwiazdka Kleene a Plus Kleene a A = A + = A n n N A n n N\{0} 8 / 37

L-systemy Definicja L-Systemy L-system L-system jest zdefiniowany jako trójka (A, α, P), gdzie A jest alfabetem α A to aksjomat czyli symbol startowy P relacja binarna, tzw. wyprowadzenie, P : A A 9 / 37

L-systemy Zasada działania L-Systemy L-systemy polegają na równoległym wykonaniu reguł zgodnie z poniższymi zasadami: reguły są stosowane iteracyjnie; w każdej iteracji są zastosowane wszystkie możliwe reguły; stałe to symbole z alfabetu, które nie pojawiają się po lewej stronie żadnej reguły. 10 / 37

L-systemy Własności L-Systemy Systemy D0L L-system nazywany jest bezkontekstowym gdy każda reguła produkcji stosuje się tylko do pojedynczego symbolu. Jeśli reguła produkcji zależy nie tylko od pojedynczego symbolu, ale także od symboli sąsiednich, to taki L-system nazywany jest kontekstowym. Systemy stochastyczne Jeśli dla danego symbolu reguły produkcji są przypisane z pewnym prawdopodobieństwem, to taki L-system nazywa się stochastycznym. 11 / 37

L-Systemy Oryginalny przykład Lindenmayera Oryginalnie Lindenmayer wykorzystał L-system do opisu wzrostu alg. Proces ten modelował za pomocą następującego systemu: zmienne: a, b aksjomat: a reguły (produkcje): (a ab), (b a) 12 / 37

L-Systemy Oryginalny przykład Lindenmayera Aksjomat a a Produkcje a ab b a a a b b a a b a a b a b a a b a b a 13 / 37

L-Systemy Oryginalny przykład Lindenmayera n = 0 : a n = 1 : ab n = 2 : aba n = 3 : abaab n = 4 : abaababa n = 5 : abaababaabaab n = 6 : abaababaabaababaababa n = 7 : abaababaabaababaababaabaababaabaab 14 / 37

L-Systemy Oryginalny przykład Lindenmayera Otrzymujemy w ten sposób słowa Fibonacciego z pominięciem pierwszego elementu. b dla n = 1; F n := a dla n = 2; F n 1 F n 2 dla n > 2. Gdzie oznacza konkatenację czyli łączenie ze sobą wyrażeń (operator <> w Mathematica, + w Java/C++/Python,. w Perl/PHP) 15 / 37

L-Systemy Ciąg (napis) wygenerowany przez L-system może być łatwo zinterpretowany jako ciąg komend. F rysuj do przodu (o zadaną długość) f przesuń się do przodu (o zadaną długość) +/- wykonaj obrót w prawo/lewo o zadany kąt. W ten sposób ciąg wygenerowany przez L-system jest interpretowany jako program do rysowania. Naśladuje to metodę programowania znaną z języka Logo. 16 / 37

L-systemów Generowanie roślin Program Inkscape udostępnia prosty interfejs do generowania grafiki wektorowej za pomocą L-systemów (Extensions Render L-System). 17 / 37

L-systemów Smok Heighwaya Smok Heighwaya (ang. dragon curve) jest określona poprzez następujący L-system: zmienne: X, Y stałe: F, +, - start: FX reguły: X X+YF+, Y -FX-Y kąt: 90 Tutaj, F oznacza rysuj odcinek, - oznacza obrót w lewo, a + oznacza obrót w prawo. W tym wypadku symbole X i Y są wykorzystywane do kontrolowania ewolucji systemu i nie są interpretowane jako polecenia rysowania. 18 / 37

L-systemów Smok Heighwaya 19 / 37

L-systemów Generowanie roślin zmienne: X, F stałe: +, -, [, ] aksjomat: X reguły: X F-[[X]+X]+F[+FX]-X, F FF Tutaj F oznacza rysuj do przodu, a X nie ma interpretacji graficznej. Symbole - obrót w lewo i + obrót w prawo o kąt 25. Symbole [ oznacza wrzuć na stos, a ] pozycję i kąt. 20 / 37

L-systemów Generowanie roślin 21 / 37

L-systemów Generowanie roślin może dopuszczać elementy losowe. W najprostszym przypadku możemy uwzględnić: losowość kąta losowość długości przesunięcia Ograniczeniem są tu tylko możliwości języka w którym interpretujemy L-system. 22 / 37

L-systemów Generowanie roślin Dodanie losowości do kątów i długości kroku powoduje powstanie bardziej naturalnych roślin. 23 / 37

L-systemów Generowanie roślin Dodanie losowości do kątów i długości kroku powoduje powstanie bardziej naturalnych roślin. Nie jest to L-system probailistyczny losowość występuje tylko w interpretacji graficznej. 24 / 37

L-systemy Klasyfikacja L-systemów L-Systemy D0L-system deterministyczny, bezkontekstowy (0 oznacza długość kontekstu); D1L-system deterministyczny, kontekstowy; 0L-system stochastyczny, bezkontekstowy; 1L-system stochastyczny, kontekstowy, (1,1)L-system (albo 2L) stochastyczne, wrażliwy na kontekst lewo- i prawostronny; 25 / 37

Reguły probabilistyczne L-Systemy W L-systemach deterministycznych każdemu symbolowi odpowiadała dokładnie jedna reguła (produkcja). W systemie probabilistycznym: regułom przypisane są prawdopodobieństwa wykorzystanie ich w trakcie wykonania; przykładowo reguła deterministyczna: 0 1[0]0 reguła probabilistyczna: ((0.5, 0 1[0]0), (0.5, 0 0)) dwie reguły, każda ma przypisane prawdopodobieństwo zastosowania 26 / 37

Reguły kontekstowe L-Systemy W systemach D0L reguły są jednoznaczne określone dla symbolu. Systemy D1L W systemach D1L reguły są zależne od symboli z którymi sąsiaduje przekształcany symbol b a c aa zamień a na aa tylko jeżeli jest w otoczeniu b i c jeden symbol może mieć przypisanych wiele reguł zależnych od jego sąsiedztwa. 27 / 37

Reguły parametryczne L-Systemy Systemy parametryczne pozwalają na przekazywanie informacji wykorzystywanej do interpretacji graficznej lub w regułach. załóżmy, że symbol ma dwa parametry, a(x,y) jest ona wówczas nazywana modułem; reguła może wykorzystywać informacje o parametrach, np. a(x,y) : x == 0 a(1, y+1)b(2,3) zostanie wykonana tylko jeżeli pierwszy parametr jest równy zero. 28 / 37

Reguły parametryczne L-Systemy Systemy parametryczne pozwalają na określenie długości segmentu i kąta za pomocą gramatyki, a nie interpretacji graficznej. Jeżeli moduł przechowuje informacje o wieku, gramatyk może uwzględniać starzenie się segmentów. 29 / 37

GroIMP i XL ALife GroIMP i XL Gramatyki wzrostu system opisu rozwoju struktur wywodzący się z L-systemów. Bazują na strukturach biologicznych ale mają zastosowanie w różnych dziedzinach. XL (extended L-systems) język opisu relacyjnych gramatyk wzrostu (RGG Relational Growth Grammars). RGG bazują na grafie połączeń; każdy z nodów może wykonywać niezależne obliczenia; możliwe jest zdefiniowanie globalnych interakcji; GROIMP system symulacji RGG. 30 / 37

GroIMP i XL ALife GroIMP i XL Przykład śnieżka Kocha Axiom ==> F(1) RU(120) F(1) RU(120) F(1); F(x) ==> F(x/3) RU(-60) F(x/3) RU(120) F(x/3) RU(-60) F(x/3); 31 / 37

GroIMP i XL ALife GroIMP i XL 32 / 37

GroIMP i XL ALife ALife Przykładem implementacji ALife jest symulator framsticks http://www.framsticks.com/ Autorzy: Maciej Komosinski, Szymon Ulatowski Umożliwa on symulacje ewolucji populacji oddziaływujących osobników. 33 / 37

GroIMP i XL ALife ALife 34 / 37

GroIMP i XL ALife ALife 35 / 37

GroIMP i XL ALife ALife ewolucji na animacji... 36 / 37

GroIMP i XL ALife ALife Jak życie rozija się z materii nieożywionej? Jakie są ograniczenia rozwoju organizmów żywych? Skąd pochodzi inteligencja? 37 / 37