3.3 Constru tion et Illustration
4.1.2 Implémentation des propriétés
An d'unierles diérentes formes de propriétés tout en gardant leur diéren es, toutes les propriétés sont dénies par un ouple symbole-fon tion.Le symbole représentele nomde lapropriété (son identiant) etlafon tion sert à déterminer à haque instant lavaleur de la propriété.
Les propriétés onstantes possèdent une fon tion onstante, les propriétés dynamiques possèdent une fon tion dénissant la règle d'évolution de la valeur de la propriété. Pour re- présenter es propriétés, nous avons déni des fon tions mathématiques dé rivant desrègles d'évolution, ommeles onstantes, lesfon tionslinéaires, lesfon tionslinéaires bornées (max ou min-et-max), les sigmoïdes, et , auxquellesnous avons rajoutéune lasse représentant les fon tionsévolutivesetune autrepour lesfon tions dépendantes.
Par exemple,dansle adre devaleursnumériquesnouspouvonsavoir:
Le hamp de per eption,quiestunepropriéténumériquedontlafon tionest onstante représentant lenombre de ases (lerayon) au maximumquel'agent peutper evoir. L'énergiedel'agent estune propriéténumérique dontlafon tionestlinéaireetdontle
paramètre
t
représenteuneétapedansl'évolution delavaleurett + 1
représentel'étape suivante.Lafatigue de l'agent est unepropriété numérique dont lafon tion estlinéaire etdont leparamètre
λ
représentelavaleurde lapropriété énergiede l'agent.Fun tion st = new ConstantFun tion(4); // st(x) = 4 Property per eption = new Property("per eption", st); Fun tion f = new LinearFun tion(-1, 50); // f(x) = -x + 50
// évolution suivant la fon tion f ave 30 omme valeur de départ. Fun tion evo = new EvolutiveFun tion(30, f);
Property energie = new Property("energie", evo);
Fun tion g = new LowBoundedLinearFun tion(-1, 30, 0); // g(x) = min (0, -x + 30) Fun tion dep = new DependantFun tion(energie, g); // dep(x) = g(energie) = g(f(x)) Property fatigue = new Property("fatigue", dep);
Une fon tion linéaire LinearFun tion est onstruite à partir des valeurs a et b de son équation y=ax+b. Une fon tion linéaire inférieure bornée LowBoundedLinearFun tion est onstruite à partir de la borne minimale bm et des valeurs a et b de son équation y= max(bm,ax+b). Une fon tion évolutive EvolutiveFun tion est onstruite à partir d'une valeur de départ et d'une fon tion mathématique xant sa règle d'évolution. Une fon tion dépendante DependantFun tion est onstruite à partir d'une propriété dont elle dépend et d'unefon tionmathématiquexant le al ulàee tuerenprenanten ompte ettepropriété. Pour déterminerlavaleur d'unepropriétédépendante, ilfaut al ulerl'image delavaleur de lapropriété dont elle dépend par lafon tion mathématique xant le al ulà ee tuer.
Pour déterminer lavaleurd'une propriété évolutive, il faut dansunpremier temps déter- minerl'étaped'évolution
e
delavaleur a tuelledelapropriété. Eneet,lavaleurdel'énergie peutêtre modiée par une intera tion subie ou ee tuée, modiant ainsi l'étape d'évolution delapropriété. Ainsi,lavaleurd'unepropriétéévolutivepourl'étapet + 1
delasimulation,se al uleàpartirdelavaleura tuelledelapropriétéàl'instantt
.Pour ela,àpartirdelavaleur a tuelle de lapropriété, il faut al uler sonanté édentxe
(la valeurx
à l'étape d'évolutione
delapropriété)parrapportàlafon tiond'évolution10
.Cet anté édentestunique(lafon tion d'évolutionestinje tive)etilreprésentel'étaped'évolution de lavaleurde lapropriété. Puis, il faut passer à l'étape suivante
xe+1
pour al uler la nouvelle valeur de la propriété. Cette nouvelle valeur orrespond à l'image de l'étape suivantef (xe+1)
par la fon tion évolutivef
de lapropriété.Prenons l'exemple de l'énergie qui est une propriété dynamique évolutive. La valeur de l'énergie évolue à haque pasde temps et suivant ertaines intera tions subies ou ee tuées parl'agent.Lorsqu'unagentee tuel'intera tionmanger,lavaleurdesapropriétéénergieest immédiatement modiée:
manger
ondition : a tor.own(target) garde : -
a tion : a tor.energie = a tor.energie + target.energie destroy(target)
Prenons le as pré is de la gure 4.1 où l'axe des abs isses représentent les étapes de la simulation. Dans ette gure nous pouvons voir qu'à l'étape
t = 0
de la simulation, la10
Fig. 4.1 Évolution des valeurs des propriétés énergie, fatigue et per eption pendant la simulation. À l'instant 40, l'agent ee tue l'intera tion manger sur une pomme, e qui a pour eet d'augmenter l'énergie de l'agent de 15. La valeur de lapropriété fatigue, qui est dépendante del'énergie, aété hangéeen onséquen e.
valeur de l'énergie vaut