Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Teória L-systémov
Symboly interpretované korytnačkou
Morfogenéza
Zoznam appletov a programov na webe
3D applet
L-studio tutoriál
Galéria
Nebiologické aplikácie L-systemov
O tejto kapitole



Ostatné kapitoly
Lindenmayerove systémy
Modelovanie ekosystémov
Dawkinsove biomorfy
Reakčno-difúzne modely
Difúzne ohraničené zhlukovanie
Voronoiove diagramy
Časticové systémy
Fibbonaciho čísla a zlatý rez


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


3D applet

Popis appletu

Applet je určený pre prácu a zobrazovanie 2D aj 3D L-systémov. Podporuje ako základné typy L-systémov, tak aj parametrické, stochastické a kontextové L-systémy. Taktiež zobrazuje aj vygenerovaný reťazec.

V ľavej časti okna appletu sa nachádza textové pole popisujúce daný L-systém, ktorý je možné editovať, a textové pole zobrazujúce vygenerovaný reťazec. Reťazec sa zobrazuje iba do dĺžky 10 000 znakov, ak je reťazec dlhší, tak zvyšné znaky sa nezobrazujú. V pravej časti okna sa nachádza obrázok s L-systémom a nad ním sú umiestnené základné prvky pre ovládanie appletu.

Ovládanie

Applet sa ovláda predovšetkým myšou. V ľavej hornej časti okna sa nachádzajú pod sebou dve rozbaľovacie ponuky pre výber L-systému. Prvá ponuka slúži pre výber kategórie (typu) a druhá pre výber konkrétneho L-systému z danej kategórie. Výber je možné realizovať aj otáčaním kolieska myši nad danou rozbaľovacou ponukou.

Ovládanie pohľadu kamery pomocou myši

Je možné realizovať tri akcie pre zmenu pohľadu kamery. Kliknutím a následným držaním ľavého tlačidla myši do okna s obrázkom je možné rotovať L-systém okolo stredu. Kliknutím a následným držaním pravého tlačidla myši sa realizuje približovanie a odďaľovanie, a v prípade stlačenia oboch tlačidiel naraz je možné posúvať L-systém ľubovoľným smerom. Treba však poznamenať, že čím je scéna zložitejšia (má väčší počet polygónov) tým viac je ovládanie pohľadu kamery pomalšie.

Na hlavnom panely appletu môžeme nájsť tieto zaškrtávacie políčka:

  • Editovať L-systém – ak je políčko zaškrtnuté, tak sa zobrazuje textové pole s L-systémom, ktorý je možné editovať, v opačnom prípade sa maximalizuje okno s obrázkom L-systému na celú šírku appletu
  • Zobrazovať homomorfizmus – nastavuje či sa má zobrazovať vygenerovaný reťazec s homorfizmom
  • Zobrazovať reťazec – nastavuje či sa má zobrazovať vygenerovaný reťazec bez homomorfizmu
  • Rotovať – zapína/vypína rotáciu L-systému
  • Antialiasing – zapína/vypína vyhladzovanie hrán (zlepšuje to celkovú kvalitu obrázku, ale značne spomaľuje vykresľovanie)
  • Valce – ak je políčko označené, tak sa namiesto čiar vykresľujú valce
  • Homomorfizmus – určuje či sa má používať homomorfizmus pri generovaní reťazca

Applet obsahuje tieto tlačidlá:

  • Generuj – načíta L-systém, vygeneruje reťazec s iteráciou, ktorá je nastavená v textovom poli „Iterácia“ a zobrazí L-systém
  • +1 – vykoná jeden derivačný krok dopredu (aktuálna iterácia + 1) a zobrazí L-systém
  • -1 – vykoná jeden derivačný krok späť (aktuálna iterácia - 1) a zobrazí L-systém
  • 0 – vykoná návrat na nultý derivačný krok (iterácia = 0) a zobrazí L-systém
  • Nastavenia – zobrazí dialógové okno s grafickými nastaveniami, kde je možné špecifikovať ďalšie detaily týkajúce sa zobrazovania

Okno z nastaveniami obsahuje položky:

  • Používať farbu pozadia – ak je označené, tak sa používa nastavená farba pozadia (farbu je možné zvoliť príslušným tlačidlom nachádzajúcim sa vedľa tejto položky), inak sa používa predvolená farba pre každý L-systém
  • Kresliť zem – ak je označené, tak sa kreslí pod L-systémom plocha hnedej farby (zem), ale iba v prípade tých L-systémov, ktoré majú vykresľovanie zeme predvolené
  • Zobrazovať tiene – ak je označené, tak sa zobrazujú tiene
  • Používať predvolenú iteráciu – ak je označené, tak pri výbere nového L-systému sa vždy nastaví iterácia na predvolenú hodnotu, ktorá zodpovedá danému L-systému, inak sa iterácia nastaví vždy na nulu
  • Používať predvolené nastavenie valcov – ak je označené, tak sa pre každý L-systém používa predvolené nastavenie valcov
  • Urýchľovať rotácie myšou – ak je nastavené, tak sa pri rotáciách L-systému zjednodušuje vykresľovanie, čím sa rotácie urýchľujú

Príkazy Ctrl-c a Ctrl-v nefungujú v java applete, fungujú však v java aplikácii. Java aplikácia je aj pri zdrojových textoch.

Popis definície L-systému

Jednotlivé riadky súboru sa musia začínať jedným z kľúčových slov axiom, angle, define, ignore, homomorphism (homo) alebo znakom #. Ak sa riadok začína inak, bude ignorovaný.

  • Za axiom nasleduje axióm daného L-systému.
  • Za angle nasleduje implicitný uhol pootočenia korytnačky v stupňoch
  • Za define nasleduje definícia konštanty.
  • Za ignore nasledujú znaky, ktoré majú byť ignorované pri testovaní kontextu
  • Za homomorphism alebo homo v ďalších riadkoch nasledujú pravidlá homomorfizmu, ktorých syntax je rovnaká ako u pravidiel L-systému
  • Za # nasleduje jedno pravidlo.

Symboly interpretované korytnačkou

Komentáre

Text nasledujúci po '//*' až do konca riadku je považovaný za komentár, tak isto aj blok textu uzavretý medzi znakmi '/*' a '*/' je považovaný za komentár.

Výrazy

Výrazy sa používajú v podmienkovej časti, časti určujúcej pravdepodobnosť použitia stochastického pravidla a v parametroch symbolov na pravej strane pravidla. Výrazy môžu obsahovať čísla, konštanty a formálne parametre skombinované štandardným spôsobom pomocou zátvoriek, matematických operátorov a funkcií. Operátory zoradené podľa priority od najvyššej k najnižšej:

RND(x) vracia náhodné číslo z intervalu <0,x)
ABS(x) vracia absolútnu hodnotu z x
SIN(x) vracia sin(x)
COS(x) vracia cos(x)
TAN(x) vracia tan(x)
COTG(x) vracia cotan(x)
EXP(x) vracia e umocnené na x
FLOOR(x) vracia najväčšie celé číslo menšie alebo rovné x
ROUND(x) zaokrúhli x
CEIL(x) vracia najnižšie celé číslo väčšie alebo rovné x
SQRT(x) vracia druhú odmocninu z x
LN(x) vracia prirodzený logaritmus x
LOG(x) vracia desiatkový logaritmus x
ASIN(X) vracia arcsin(x)
ACOS(X) vracia arccos(x)
ATAN(X) vracia arctan(x)
^ operátor umocňovania
*, /, % operátory násobenia, delenia a zvyšku po delení
+, - operátory sčítania a odčítania
==, !=, <,>, >=, <= relačné operátory (operátory porovnania)
! unárny operátor logickej negácie
&& operátor logického súčinu
|| operátor logického súčtu

Význam skratiek uvádzaných pri jednotlivých L-systémoch:

Skratka Literatúra
BOP Prusinkiewicz P., Lindenmayer A.: Algorithmic Beauty of Plants. Springer Verlag, New York, 1990.
LNiB
CSIRO Prusinkiewicz P., Hammel M., Hanan J., Mich R.: L-systems: From the Theory to Visual Models of Plants. Proceedings of the 2nd CSIRO Symposium on Computational Challanges in Life Sciences. CSIRO Publishing 1996.
DP_Chval Chvál J., Diplomová práca

zdrojové texty a class súbory

Hore
Kontakt: Marek Bundzel