Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Kochova snehová vločka - začíname
Kombinácia ostrovov a jazier - parametre sekcie View
Dračia krivka
Vetviace sa štruktúry - svet rastlín
Stochastické L-systémy
Kontextovo závislé L-systémy
Parametrické L-systémy



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


Kontextovo závislé L-systémy

Po zvládnutí predošlých dvoch príkladov, vieme ako vygenerovať L-systémy veľmi podobné rastlinám a taktiež už vieme ako do tohto procesu generovania vniesť neurčitosť a náhodnosť tak príznačnú pre objekty v prírode. Ďalšou pomerne užitočnou vlastnosťou je zavedenie kontextovej senzitivity. Čo to ale znamená? Je to pomerne jednoduché, formalizmus L-systémov upravíme, resp. použijeme tak, aby si všímal svoje najbližšie okolie a podľa toho, ako toto okolie vyzerá a čo sa v ňom nachádza vyberal prepisovacie pravidlá pre ďalšie generovanie obrazca. Tento prístup má význam napr. pri simulácii šírenia rôznych látok v tele rastliny. Myslím, že najvhodnejšie bude uviesť priamo príklad. Otvoríme nový projekt a v sekcii View použijeme štandardné parametre z príkladu č.2. A v časti L-system zadáme následovné:

lsystem: 0
derivation length: 30
ignore: +-F
axiom: F1F1F1
1 < 1 > 1 --> 0
1 < 1 > 0 --> 1
1 < 0 > 1 --> 1F1
1 < 0 > 0 --> 0
0 < 1 > 1 --> 1
0 < 1 > 0--> 1
0 < 0 > 1 --> 1[-F1F1]
0 < 0 > 0 --> 0
* < - > * --> +
* < + > * --> -
endlsystem

Produkcia tohoto L-systému má nasledujúcu štruktúru:

1         < 1 >      1     -->      0
ľavý kontext | aktuálny symbol | pravý kontext | výsledný symbol

Toto pravidlo nahradí symbol 1 symbolom 0, len ak je prepisovaný symbol 1 obklopený zľava aj sprava symbolom 1. V zadaní tohoto L-systému sa taktiež vyskytuje parameter ignore: +-F, ktorý hovorí simulatoru cpfg, aby symboly +, -, F, nebral do úvahy v procese porovnávania kontextov. Na konci definície L-systému sa nachádza dvojica pravidiel v podobe:

* < - > * --> +

symboly * na pravej aj ľavej strane, reprezentujú ľubovoľný kontext. Dané pravidlá je možné zjednodušiť vynechaním symbolov *. Nasledujúce pravidlá sú ekvivalentné:

* < - > * --> +
- > * --> +
* < - --> +
- --> +

spustením simulátora cpfg dostaneme nasledujúce výstupy, zadaním rôznych hodnôt derivačného kroku môžeme pozorovať vývoj obrazca (derivation length nadobúda hodnoty 10, 20, 30, 40).

derivation length: 10
derivation length: 20
derivation length: 30
derivation length: 40

Hore
Kontakt: Marek Bundzel