Gramatyki Lindenmayera

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

Tablice 1. Deklaracja tablicy
Lingwistyka Matematyczna
Funkcje tworzące są wygodnym narzędziem przy badaniu zmiennych losowych o wartościach całkowitych nieujemnych. Funkcje tworzące pierwszy raz badał de.
Język C/C++ Funkcje.
Programowanie obiektowe
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Projektowanie aplikacji równoległych Jarosław Kuchta.
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
CIĄGI.
Wzorce.
mgr inż. Ryszard Chybicki Zespół Szkół Ponadgimnazjalnych
Programowanie sieciowe
FUNKCJE INFOMACYJNE KOMÓRKA CZY.ADAR KOMÓRKA CZY.ADAR NR. BŁĘDU CZY.TEKST NR. BŁĘDU CZY.TEKST INFO L INFO L CZY. PUSTA BRAK CZY. PUSTA BRAK CZY. BŁ TYP.
Wyrażenia algebraiczne.
KNW- Wykład 8 Wnioskowanie rozmyte.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Tablice jednowymiarowe 1
Odkrywanie wzorców sekwencji
Zależności funkcyjne.
Nierówności (mniej lub bardziej) geometryczne
Podstawy układów logicznych
Elementy Rachunku Prawdopodobieństwa i Statystyki
Gramatyki Lindenmayera
Prezentacja programu Lsystem urban development
Języki i automaty część 3.
II. Matematyczne podstawy MK
Elżbieta Fiedziukiewicz
Gramatyki i translatory
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
III EKSPLORACJA DANYCH
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
ZBIORY PODSTAWY.
Podstawy języka Instrukcje - wprowadzenie
Aplikacje internetowe
Algorytmika.
Gramatyki Lindenmayera
Co to jest dystrybuanta?
Diagram aktywności (czynności)
Zagadnienia AI wykład 2.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Zasady arytmetyki dwójkowej
ANALIZA SKŁADNIOWA.
MODELOWANIE ZMIENNOŚCI CEN AKCJI
Systemy wspomagające dowodzenie twierdzeń
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Pętle – instrukcje powtórzeń
Gramatyki Lindenmayera
Wstęp do programowania Wykład 9
Zbiory fraktalne I Ruchy browna.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
IFS, IFSP I GRA W CHAOS ZBIORY FRAKTALNE I WYBRANE SPOSOBY ICH GENEROWANIA.
I LICZBY ZESPOLONE ZBIORY FRAKTALNE. LICZBY ZESPOLONE.
Zbiory fraktalne I Automaty komórkowe.
Zarządzanie projektami
KNW - wykład 3 LOGIKA MODALNA.
Gramatyki Lindenmayera Powstanie Deterministyczny L-system.
Średnia arytmetyczna, mediana i dominanta
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Obliczanie wartości liczbowych wyrażeń algebraicznych.
Media Cyfrowe  Media cyfrowe to dowolna forma (lub format) prezentacji i użytkowania treści (np. tekstowych, graficznych, audiowizualnych), które są.
STATYSTYKA – kurs podstawowy wykład 11
Elementy cyfrowe i układy logiczne
Pojęcia podstawowe Algebra Boole’a … Tadeusz Łuba ZCB 1.
Zbiory – podstawowe wiadomości
Projektowanie wspomagane komputerem
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Gramatyki Lindenmayera Systemy parametryczne Systemy stochastyczne Systemy z nawiasami

Systemy parametryczne Litery nalezą do alfabetu V , natomiast parametry do zbioru liczb rzeczywistych . Moduł to A(a1, a2, … , an), gdzie AV, zaś parametry a1, a2, . . . , an. Przyjmujemy M zbiór M = V × *, gdzie * jest zbiorem wszystkich skończonych ciągów parametrów. Do tego zbioru należy każdy moduł systemu. Oznaczmy też przez M*= (V × *)* zbiór wszystkich ciągów modułów oraz przez M+= (V × *)+ zbiór wszystkich niepustych ciągów modułów.

Niech  będzie zbiorem formalnych parametrów, wtedy C() niech oznacza wyrażenie logiczne, a E() wyrażenie arytmetyczne z użyciem parametrów ze zbioru . Dodatkowo wykorzystujemy: operatory działań arytmetycznych: +,−, *, /, operator potęgowania ^, operatory relacji: <,<=,>,>=,=,==, operatory logiczne: !,&&, || (negacji, i, lub); nawiasy () oraz odwołania do standardowych funkcji matematycznych np. sinus, logarytm czy funkcji zwracających zmienne losowe. Zbiór składający się z poprawnych logicznie wyrażeń oznaczmy przez C() oraz zbiór poprawnych arytmetycznie wyrażeń przez E().

Parametryczny OL-system - definicja Parametryczny OL-system definiuje się jako uporządkowaną czwórkę: , gdzie: V - to alfabet systemu,  - zbiór formalnych parametrów, ω (V × *)+ jest niepustym parametrycznym słowem zwanym aksjomatem, P  (V × *)× C() × (V × E())* jest skończonym zbiorem produkcji. Produkcję w tak zdefiniowanym systemie można oznaczyć jako a : w  , gdzie: a – poprzednik, w - warunek a  to następnik.

Warunki dopasowania produkcji do modułu znak w module i znak w poprzedniku produkcji są identyczne, liczba aktualnych parametrów modułu jest zgodna z liczbą formalnych parametrów w poprzedniku produkcji, warunek przyjmuje wartość „prawda”, jeśli wartość aktualnego parametru z przetwarzanego modułu może być zamieniona przez wartość formalnego parametru występującego w produkcji.

Jeśli przepisanie pozwala wyprowadzić parametryczne słowo  z modułu a to regułę podstawiania można oznaczyć jako a  .

Niech  = a­1,…,am będzie parametrycznym słowem takim, że słowo  = 1,…, mV* można bezpośrednio wyprowadzić (wygenerować) przez ; fakt ten oznaczmy jako   . Wówczas    ma miejsce wtedy i tylko wtedy gdy ai  ­­­i dla i=1,…,m. Słowo  jest generowane przez G w wyprowadzeniu o długości n jeśli istnieje ewolucyjna sekwencja słów 0, 1,…, n taka, że 0 = ω, n =  oraz 01…n. Jeśli nie ma zdefiniowanej żadnej produkcji dla danego poprzednika a V, to wtedy przyjmuje się, że istnieje produkcja identyczności a  a należąca do zbioru produkcji P.

W taki sposób produkcja jest zamieniana na nią samą W taki sposób produkcja jest zamieniana na nią samą. Parametryczny L-system nazywa się deterministycznym wtedy i tylko wtedy, gdy dla każdego modułu A(t1, t2, . . . , tn)  V ×* istnieje tylko jedna akceptująca go reguła w zbiorze produkcji.

Parametryczny OL-system Przykład 1 Niech dany będzie parametryczny OL-system, który będzie zwiększał wartość parametru o 1 określoną liczbę razy. Wówczas gdzie: V ={A, B, C,…, Z}, ω: A(1) p1: A(t) : t >0  t<4  A(t+1) p2: A(t): t=4  B(t) Efekt przepisań: ω: A(1) 1: A(2) 2: A(3) 3: A(4)

Parametryczny OL-system Przykład 2 Niech będzie dany parametryczny 2L-system obliczający wyróżnik  dla trójmianu kwadratowego oraz niech 0 oznacza puste słowo. Wówczas produkcje można zdefiniować następująco: p1: A(a) < B(b) > C(c) : a>0 b >0  c>0  D( b ^ 2 – 4 * a *c, a, b) p2: D(d, a, b): d=0  E(( -b ) / ( 2 * a )) p3: D(d, a, b): d>0  F(( -b - d ) / ( 2 * a )) G(( -b + d ) / ( 2 * a )) Dla aksjomat u ω: A(1) B(1) C(-2) Mamy produkcje 1: A(1)D(9,1,1)C(-2) 2: A(1)F(-2)G(1)C(-2)

Systemy stochastyczne Stochastyczny OL-system definiuje się jako uporządkowaną czwórkę: gdzie: V – to alfabet systemu, ω  V+, to niepuste słowo zwane aksjomatem, P  V  V* jest skończonym zbiorem produkcji, to funkcja prawdopodobieństwa odwzorowująca zbiór produkcji w zbiór prawdopodobieństw produkcji. Zakłada się, że dla każdej litery a  V suma prawdopodobieństw wszystkich produkcji z poprzednikiem a jest równa 1.

Definicja wyprowadzenia Wyprowadzenie    nazywamy stochastycznym w G, jeśli dla każdego wystąpienia litery a w słowie  prawdopodobieństwo wyboru produkcji p zawierającej poprzednik a jest równe (p). Zatem jeśli w sekwencji występuje kilka tych samych liter to mogą być do nich zastosowane różne produkcje z takim samym poprzednikiem.

Systemy stochastyczne Losowe produkcje można stosować nie tylko w L-systemach bezkontekstowych, ale również w systemach wrażliwych na kontekst, jak również do parametrycznych. Wówczas do zdefiniowanego modelu dochodzi jeszcze jeden czynnik to funkcja prawdopodobieństwa odwzorowująca zbiór produkcji w zbiór prawdopodobieństw produkcji. Przykładowo w parametrycznym kontekstowym L-systemie produkcję należy oznaczyć przez al < a > ap : w  : , gdzie: al to lewy kontekst, a – poprzednik, ap - prawy kontekst, w – warunek,  - następnik, natomiast  to wyrażenie arytmetyczne zwracające dodatnią liczbę zwaną czynnikiem probabilistycznym.

Systemy stochastyczne Jeśli nie ma zdefiniowanej żadnej produkcji dla danego poprzednika a V, to wtedy przyjmuje się, że istnieje produkcja identyczności aa należąca do zbioru produkcji P.

Systemy stochastyczne Jeśli podczas przepisywania jest zbiorem produkcji akceptujących dany moduł A(t1, t2, … , tn)  V × *, to wówczas prawdopodobieństwo prawd(pk) zastosowania konkretnej produkcji do modułu jest równe: Ogólnie prawdopodobieństwo nie jest stale związane z produkcją, ale może zależeć od wartości parametru w przepisywanym module i jego kontekście.

Systemy stochastyczne Przykład Niech dany będzie stochastyczny, parametryczny 2L-system zdefiniowany następująco: gdzie: V ={A, B, C,…, Z}, ω: A(9)B(1)C(2) p1: A(t)  A(t+1) :1 p2: A(t): t > 4  B(t):3 p3: A(t) <B(u) > C(w): u<=5  A(t+1)B(u)C(w+1)

Systemy stochastyczne Przykład Zaczynając przepisania należy wylosować pasującą regułę. prawd(p­1)= 1/4=0,25 prawd(p2)=3/4= 0,75 Jeśli zostanie wylosowane p2 to pierwsze przepisanie: 1: B(9)A(10)B(1)C(3)C(2) W kolejnym przepisaniu ponownie obliczamy p prawdopodobieństwa wyboru produkcji: prawd(p1)=1/140,1 prawd(p2)=3/140,2 prawd(p3)=10/140,7 Po wylosowaniu odpowiedniej reguły kolejne przepisanie może mieć postać: 2: B(9)A(11)A(11)B(1)C(4)C(3)C(2)

L-systemy z nawiasami Służą do symulacji rozwoju struktur rozgałęziających się Dodajemy do alfabetu dwa symbole „[” i „]”. [ - oznacza początek rozgałęzienia ] – powrót do poprzednio otwartego rozgałęzienia Możliwe zagnieżdżanie łańcuchów nawiasów

L-systemy z nawiasami W bezkontekstowych L-systemach, nawiasy są przepisywane na same siebie i nie zaburzają samego procesu przepisywania. Jednak w L-systemach z kontekstem może się zdarzyć, że litery które stanowiłyby kontekst zostaną rozdzielone strukturami gałęziowymi. Natomiast, gdy dla liter można znaleźć odpowiedni kontekst, to nazywa się on całkowitym kontekstem.

L-systemy z nawiasami przykład graficzny Definiujemy: ω: F p1: FF[+F]F Czwarte przepisanie

L-systemy z symbolami dodatkowymi Przykład Chcemy aby żółw mógł rysować inne obiekty a nie tylko linie. Wprowadzamy symbole dodatkowe np. X,Y,Z, które mają interpretację w grafice żółwia np. X F+F+F Przepisania generujemy jak w zwykłym systemie, dopiero przy interpretacji graficznej odwołujemy się do dodatkowych reguł aby narysować obiekt.

L-systemy z symbolami dodatkowymi – Krzywa Hilberta Definiujemy: ω: X  = 90o p1: X  +YF-XFX-FY+ p2 Y  -XF+YFY+FX- Reguły dla żółwia: X  +F-F-F+ Y  -F+F+F- Przepisania: pierwsze i trzecie

Literatura H.-O. Peitgen, H. J¨urgens, D. Saupe Granice Chaosu Fraktale cz.2, Wydawnictwa Naukowe PWN, Warszawa 1996; A. Lindenmayer, P. Prusinkiewicz, The Algorithmic Beauty of Plants”, Springer-Verlag, Elektroniczna wersja opublikowana w 2004

Literatura Jacob Ch. (1995) Modeling Growth with L-systems & Mathematica, Mathematica in Education and Research, Volume 4, No. 3 (1995), TELOS-Springer, pp. 12-19, http://pages.cpsc.ucalgary.ca/˜jacob/Publications/ModelingGrowth.ma.pdf

Literatura Prusinkiewicz P., Hammel M., Hanan J., Mech R. (1995) The Artificial Life of Plants, From Artificial life for graphics, animation, and virtual reality, volume 7 of SIGGRAPH ’95 Course Notes, pages 1-1-1-38. ACM Press, 1995, http://algorithmicbotany.org/papers/l-sys.sig95.pdf Prusinkiewicz P. , Hammel M., Hanan J., Mech R. (1996) L-Systems: From The Theory To Visual Models Of Plants from M. T. Michalewicz, editor, Proceedings of the 2nd CSIRO Symposium on Computational Challanges in Life Sciences, CSIRO Publishing, http://algorithmicbotany.org/papers/l-sys.csiro96.pdf