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