Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Úvod
Prostredie
L-systém
Komunikácia
Mechanizmus šírenia ohňa
Výsledky



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


Mechanizmus šírenia ohňa

Šírenie ohňa je realizované pomocou rastu daného L-systému. Konvenčne, symboly L-systémov sú reprezentovaná korytnačou reprezentáciou. Tu symboly určujú, ktoré bunky sa navštívia najbližšie.

Príklad pravidla

n(x,y,z):E(x,y,z,getWall)=0.0~W(x,y,z,setTemp,5)n(x,y,z)
Pravidlo sa vykoná, ak na súradniciach x,y,z sa nenachádza stena. Ak tam nie je, nastaví sa teplota bunky prostredia na 5 a L-systém sa pohne severne o jednu bunku.

S tým ako sa L-systém šíri cez prostredie, získava z neho informácie, spracováva ich a zapisuje späť. Toto spracovanie sa vykonáva cez objekt zvaný processor. Processor je užívateľský definovaná trieda, ktorá je schopná sa vysporiadať s každým symbolom, s ktorým sa v L-systéme stretne. Keďže je processor zodpovedný za manipuláciu s rôznymi symbolmi, tak rôzne implementácie processora budú interpretovať L-systém rôznymi spôsobmi.

Model ohňa

Tento model je založený na intuícií. Príklad: Teplota v danom bode je nastavené ako priemer teplôt jej susedných buniek. Ak teplota daného bodu presiahne teplotu vznietenia paliva v danej bunke, tak sa oheň vznieti. Množstvo paliva sa potom znižuje o konštantné množstvo v kockách, ktoré horia.

Vizualizácia simulácie

Renderovanie prostredia bolo realizované pomocou Java 3D API. Renderovací algoritmus prechádza každou bunkou prostredia a zisťuje stav jej premenných. Na základe týchto podmienok sa použije vhodná geometria. Bol použitý nasledovný algoritmus:

For every cube w along the width
For every cube l along the length
For every cube h along the height
Examine cube at (w,h,l)
Create appropriate geometry
Transform geometry
Insert appropriate geometry into J3D
branchGraph
End for
End for
End for

Renderovanie prostredia sa vykonáva oddelene od samotného procesu simulácie ohňa. Kým sa renderovanie spustí, musí L-systém dokončiť krok vývoja a až potom zavolať renderovací systém na renderovanie prostredia, aby sa zobrazili vykonané zmeny.

Hore
Kontakt: Marek Bundzel