Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Hypotéza
Implementácia
Inicializácia
Simulácia
Efektívnosť
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


Inicializácia

Najprv špecifikujeme počet buniek, ktoré budú následne náhodne umiestnené na 2D štvorcovej doméne. Ich počet býva obvykle medzi 5001000. Každej bunke je priradený daný typ. Tie boli spomenuté v podkapitole Všeobecný popis. Typ bunky môže byť špecifikovaný náhodne systémom alebo použivateľom a definuje správanie tejto bunky v systéme. Informácia daného typu bunky obsahuje: farbu, intenzitu delenia, pravdepodobnosť bunky, že zmení svoj typ. Konkrétna implementácia funkcie pravdepodobnosti je kontextovo nezávislá, čiže neovplyvňujú ju stavy a vlastnosti okolitých buniek. Prehľad týchto atribútov je v nasledujúcej tabuľke.

AtribútVýznamTyp
Farba RGB 3 floaty [0-1]
Intenzita delenia čas medzi deleniami float
Pravdepodobnosť inicializácie pravdepodobnosť daného typu float (0-1)
Pravdepodobnosť mutácie zmena na iný typ float (0-1)
Adhézia sila medzi typmi float (0-1)

Bunky následne podstúpia relaxačný proces, aby docielili pravidelnú stabilnú priestorovú konfiguráciu. Na to aby sa to stalo, sa každá bunka pohne čo najďalej od svojich susedov. Iba bunky v danom odpudivom polomere sú považované za susedov. Ten sa určí úmerne na základe ideálnej oblasti každej bunky. Pre danú oblasť A a m buniek sa odpudivý polomer r rovná

r=wr√(A/m)

kde wr je nami definovaná hodnota presnosti. Adhézny parameter α určuje silu ako sa bunky v relaxačnej schéme odpudzujú. Táto sila je úmerná (1-α), ak α = 1 sila je nulová. Pomocou nej môžeme docieliť napr. že dva typy buniek zostanú slabo alebo silno spojené.

Pre danú bunku C na pozícii (xc, yc) určíme novú pozíciu (xc', yc')
  1. Pre každú susednú bunku Pi na pozícii (xi, yi)
    1. Vypočítame dxi, dyi a di
    2. Vypočítame fi
    3. Vypočítame Dxi a Dyi
  2. Vypočítame novú pozíciu pre bunku C

kde

  • r je polomer odpudivej sily
  • fi je skalárna hodnota, ktorá vyjadruje odpudivú silu. Pre fi potrebujeme takú funkciu, že fi=1, ak vzdialenosť medzi bunkami di=0 a fi>0, pričom di>r
  • wx a wy sú nami definované váhové činitele, ktoré vyjadrujú odpudivé posuny v x a y smeroch. (viac v podkapitole Anizotropia)
  • n je počet susedov, ktorý spadajú do oblasti vytýčenej polomerom odpudivosti
  • Dxi a Dyi sú jednotlivé sily posunu vzhľadom k susedným bunkám Pi
  • αpic sú nami zadané adhézne hodnoty, špecifikované pre príslušný typ bunky

Jednotlivé sily posunutia Dxi a Dyi sa vypočítajú v závislosti na odpudivej skalárnej hodnote fi (závislá na vzdialenosti medzi bunkami) a na adhéznom činiteli αpic medzi bunkami Pi a C. Adhézny činiteľ vyjadruje skutočnosť, že bunky sa pohybujú nerovnako rýchlo v závislosti na kohézii medzi bunkami rozličných typov.

Náhodné počiatočné
rozdelenie buniek
Po fáze relaxácie
F bunky zvolené manuálne
F bunky zvolené náhodne

Keď sa dosiahne stabilná konfigurácia, systém prejde do simulačnej fázy.

Hore
Kontakt: Marek Bundzel