Algorytmy stochastyczne, wyklad 05 Systemy Liendenmayera
Transkrypt
Algorytmy stochastyczne, wyklad 05 Systemy Liendenmayera
Systemy Liendenmayera Grafika żółwiowa L-systemy Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-03-20 Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy 1 Systemy Liendenmayera Definicja 2 Grafika żółwiowa Definicja 3 L-systemy Przykład L-systemy ze stosem Stochastyczne LS Jarosław Piersa Definicja WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Przypomnienie gramatyka to system (Σ, A, s0 , P), Σ — symbole terminalne (końcowe / alfabet) A — symbole nieterminalne (pomocnicze), A ∩ Σ = ∅ s0 ∈ A — symbol początkowy P ⊂ (Σ ∪ A)+ × (Σ ∪ A)∗ — produkcje / reguły zastępowania zastępujemy jeden symbol w każdym kroku Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja System Liendenmayera System Liendenmayera to trójka (Σ, s0 , P), Σ — alfabet / symbole s0 ∈ Σ — symbol początkowy P ⊂ Σ+ × Σ∗ — produkcje / reguły zastępowania symbole terminalne i pomocnicze są utożsamione jeżeli nie ma jawnej reguły dla symbolu x, to przepisujemy x zastępujemy wszystkie symbole jednocześnie Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Przykład Σ = {a, b} s0 = a a → ab P= b→a Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Przykład w kolejnych iteracjach uzyskujemy a ab aba abaab abaababa abaababaabaab abaababaabaababaababa ... Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Obserwacje powyższy ciąg słów nazywamy słowami Fibonacciego długość n-tego słowa Fibonacciego wynosi Fn dla n → ∞ zachodzi: liczba liter a długość słowa = →φ liczba liter a liczba liter b Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Ciekawostki słowo Fibonacciego jest nieokresowe (dla okresów krótszych niż Fn /2) słowa Fibonacciego mają „kwadraty” (podciąg powtórzony dwa razy po sobie) każde słowo nad alfabetem binarnym długości 4 lub więcej musi mieć przynajmniej jeden kwadrat! słowa Fibonacciego nie mają „sześcianów” (podciąg powtórzony trzy razy po sobie) Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Ciekawostki słowa Fibonacciego nadają się jako kodowanie wiadomości z odpornością na szumy / autokorektą w słowie Fibonacciego nigdy nie wystąpią obok siebie: „aaa” ani „bb” odczytanie takiego podciągu oznacza błąd przesyłu wiadomości Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Grafika żółwiowa Dany: Żółw na płaszczyźnie z przymocowanym do skorupy pisakiem (x, y ) położenie żółwia α ∈ [0, 2π) orientacja żółwia Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Grafika żółwiowa Żółw może F — iść naprzód o s kroków rysując linię pisakiem lub dowolny symbol pisany wielką literą x := x + s · cos(α) y := y + s · sin(α) α bez zmian Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Grafika żółwiowa Żółw może f — iść naprzód o s kroków bez rysowania kreski x := x + s · cos(α) y := y + s · sin(α) α bez zmian Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Grafika żółwiowa Żółw może + — obrót w lewo o kat θ (x, y ) bez zmian α := (α + θ)( mod 2π) wzorek dla układu kartezjańskiego z osią OY zorientowaną „do góry” Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Definicja Grafika żółwiowa Żółw może − — obrót w prawo o kat θ (x, y ) bez zmian α := (α − θ)( mod 2π) Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład Deterministyczne bezkontekstowe Σ = {F, f , +, −} s0 = F P = {F → F+F–F+F} α = π/3 Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład n=1 n=3 3 25 2.5 20 2 15 1.5 n=5 10 1 200 5 0.5 0 -1.5 -1 -0.5 0 0.5 1 n=2 0 -15 -10 -5 0 150 5 n=4 9 100 80 8 70 7 50 60 6 0 50 -150 -100 5 40 4 30 3 20 2 10 1 0 0 -5 -4 -3 -2 -1 0 1 2 3 -50 -40 -30 -20 Jarosław Piersa -10 0 10 20 WSN 2013/2014 Wykład 04 -50 0 50 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS L-Systemy z nawiasami L-Systemy nawiasowe / ze stosem / z rozgałęzieniami Do alfabetu dołączamy dodatkowo: ’[’ oraz ’]’ Σ = {F , f , +, −, [, ]} [ — zapisz bieżącą pozycję i orientację żółwia (połóż kopię na stosie) ] — odtwórz zapisaną pozycję (zdejmij ze stosu) Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład L-Systemy nawiasowe / ze stosem / z rozgałęzieniami Σ = {F , L, +, −, [, ]} L — to samo co F , ale inne reguły produkcyjne Produkcje P = { F → L[+F ][−F ] L → LL } s0 = F Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład n=3 n=1 1.8 n=5 30 7 1.6 6 25 5 20 1.4 1.2 1 4 15 0.8 3 10 0.6 2 0.4 0.2 0 5 1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 0 -3 -2 n=2 n=4 3.5 14 -1 0 1 2 3 0 -15 -10 -5 0 5 10 15 -10 0 10 20 30 n=6 60 50 3 12 2.5 10 40 2 8 30 1.5 6 1 4 20 10 0.5 0 2 -1.5 -1 -0.5 0 0.5 1 1.5 0 -6 -4 -2 Jarosław Piersa 0 2 4 6 0 -30 -20 WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Stochastyczne LS Stochastyczne / niedeterministyczne W zbiorze produkcji dopuszczamy dwa lub więcej produkcji o tym samym poprzedniku Np. P = { F → L[+F ][−F ] F → L[F ][−F ] F → L[+F ] } wybieramy losową z nich jeżeli jest tylko jedna, to wybieramy zawsze ją jeżeli nie ma żadnych, to stosujemy X → X Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład 15 12 8 10 6 10 8 4 5 6 2 4 0 0 2 -2 0 -6 -4 -2 0 2 4 -6 14 14 12 12 10 10 8 8 -4 -2 0 2 -5 -10 4 -5 0 5 10 16 14 12 10 8 6 6 6 4 4 2 4 2 0 -6 -4 -2 0 2 4 6 8 0 2 -4 -2 0 2 Jarosław Piersa 4 6 8 10 0 -10 -8 WSN 2013/2014 Wykład 04 -6 -4 -2 0 2 4 6 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Szum do obrotu i przesunięcia dodajemy małą zmienną losową zamiast przesunięcie o s, przesuwamy o s + N(0, σ 2 ) zamiast obrót o θ, obracamy o θ + N(0, τ 2 ) Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład 25 16 14 20 12 10 15 8 10 6 4 5 2 0 -10 -8 -6 -4 -2 0 2 4 6 Jarosław Piersa 0 -5 0 WSN 2013/2014 Wykład 04 5 10 15 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Liście i kwiaty dodajemy dodatkowo symbole i produkcje F → [+GL]F F → [−GP]F L — liść / leaf, P — kwiat /petel, G — nienadpisywane przesunięcie (G → G ) Jarosław Piersa WSN 2013/2014 Wykład 04 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Przykład 20 15 15 10 10 5 5 0 0 -5 0 5 10 Jarosław Piersa -15 -10 -5 WSN 2013/2014 Wykład 04 0 5 Systemy Liendenmayera Grafika żółwiowa L-systemy Przykład L-systemy ze stosem Stochastyczne LS Źródła P. Prosiunkiewicz, A. Liendenmayer, The algorithmic beaty of plants Jarosław Piersa WSN 2013/2014 Wykład 04