Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Bunka
Dendrity
SVRule
Laloky
Percepčný Lalok
Inštinkt
Stimul (Stimulus)
Emitor
Receptor
Half-life



Ostatné kapitoly
LEE
Framsticks
EINSTein
Nerve garden
Poly World
Simulácia evolúcie rozhodovania
Nornovia
Creatures 3
Primordial Life
Core War
Desktop Garp
Tierra
Avida


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


SVRule

Citujúc z Genetics Kit Help súboru:

State Variable Rules (SVRules) sú geneticky definované funkcie, ktoré sa používajú v celej štruktúre mozgu, pre riadenie niektorých aspektov správania sa synapsií, ako taktiež na výpočet stavu neurónu.

V časti o Bunke bolo uvedené, ako leakage rate ovplyvňoval State bunky, aby ho dostal do stavu relax. Leakage rate je funkcia, ktorá sa aplikuje na stav, aby dostala výstup z bunky. SVRule je taká istá. Je to funkcia, ktorá sa aplikuje na stav bunky, aby vypočítala jej výstup. Leakage aj SVRule pracujú na stave, aby vytvorili výstup. V nasledujúcom príklade nastavíme leakage rate na maximálnu možnú hodnotu (52 rokov). To deaktivuje leakage rate a aplikuje na stav neurónu len SVRule. To nám umožní pozorovať účinky samotného SVRule.

SVRule je niečo ako miniatúrny program napísaný v špeciálnom programovacom jazyku. Tento programovací jazyk má niekoľko "opcodes" alebo operácií, ktoré môže aplikovať na rôzne druhy dát. Výsledok všetkých týchto opcodes je priradený k výstupu bunky. V SVRule je možných len 8 samotných opcodes, čo ho robí veľmi malým a rýchlym na vykonanie - SVRule sa musí pre každú bunku vykonať približne 10 krát.

Nasleduje zoznam opcodes dostupných pri písaní SVRule. Ich popisy boli získané experimentálne, takže nemusia byť 100 percentne pravdivé.

Opcode Popis
end Označuje koniec SVRule. Ľubovoľný opcode za touto značkou je ignorovaný.
0 Číslo 0. Môže byť použité na výpočty.
1 Číslo 1. Môže byť použité na výpočty. Napríklad pripočítač alebo odčítať 1 od aktuálneho stavu.
64 Číslo 64. Môže byť použité na výpočty. Napríklad pripočítač alebo odčítať 64 od aktuálneho stavu.
255 Číslo 255. Môže byť použité na výpočty. Napríklad pripočítač alebo odčítať 255 od aktuálneho stavu.
chem 0 Predstavuje aktuálne množstvo chemikálie 0 v mozgu. Táto chemikália môže byť do mozgu pridané pomocou genetického receptora.
chem 1 Predstavuje aktuálne množstvo chemikálie 1 v mozgu. Táto chemikália môže byť do mozgu pridané pomocou genetického receptora.
chem 2 Predstavuje aktuálne množstvo chemikálie 2 v mozgu. Táto chemikália môže byť do mozgu pridané pomocou genetického receptora.
chem 3 Predstavuje aktuálne množstvo chemikálie 3 v mozgu. Táto chemikália môže byť do mozgu pridané pomocou genetického receptora.
state Predstavuje aktuálnu hodnotu stavu bunky.
output Predstavuje aktuálnu hodnotu výstupu z bunky.
thres Hodnota `Nominal Threshold` definovanej v `Cell Body Dynamics`.
type 0 Suma dendritov typu 0.
type 1 Suma dendritov typu 1.
anded 0 Ak sa odpaľujú všetky dendrity typu 0, tak toto bude hodnota sumy týchto dendritov. Ak žiaden z týchto dendritov nie je odpálený, tak táto hodnota bude 0.
anded 1 Ak sa odpaľujú všetky dendrity typu 1, tak toto bude hodnota sumy týchto dendritov. Ak žiaden z týchto dendritov nie je odpálený, tak táto hodnota bude 0.
input Bude definovaný.
conduct Bude definovaný.
suscept Aktuálna citlivosť na reinforcement.
STW STW znamená Short Term Weight.
LTW LTW znamená Long Term Weight. LTW je niečo ako odpočinkový stav pre STW. STW a LTW sa k sebe navzájom približujú, pričom LTW sa približuje pomalšie ako STW.
Strength Aktuálna hodnota sily dendritu.
TRUE Ak sa predchádzajúci opcode rovná TRUE, tak vykoná zostávajúci opcode.
PLUS Pridaj hodnotu nasledujúcej voľby do predchádzajúceho opcode.
MINUS Pridaj hodnotu nasledujúcej voľby do predchádzajúceho opcode. Napríklad `state:MINUS:1` odráta 1 z aktuálnej hodnoty "state".
TIMES Vezme ľavú stranu opcodu, vynásobí ju s pravou stranou a výsledok predelí 256. Napríklad: `64:TIMES:thres` kde `thres` je 32 bude 32*64/256=8.
INCR Vracia hodnotu predchádzajúceho opcode, inkrementovanú o 1. Napríklad `state:INCR` pridá jedna k aktuálnemu stavu.
DECR Vracia hodnotu predchádzajúceho opcode, dekrementovanú o 1. Napríklad `state:DECR` odráta jedna od aktuálnemu stavu.
unused Bude definovaný.
unused Bude definovaný.
ERROR Bude definovaný.

Hore
Kontakt: Marek Bundzel