On Tue, 25 Mar 2014 17:43:21 +0100 Benjamin POUSSIN <poussin@codelutin.com> wrote:
On Tue, 25 Mar 2014 10:58:36 +0100 Stephanie MAHEVAS <Stephanie.Mahevas@ifremer.fr> wrote:
...
Donc contrairement à ce qui avait été définit pour la maquette initiale, l'optimisation ne dépend par de facteur (comme les analyses de sensibilité). oui
En fait c oui. Mais cela ne sert qu'a simplifier la modification de la base de données pour créer une nouvelle simulation.
En y re-reflexchissant, je pense que le mieux est d'avoir un nouveau type utilisable comme parametre dans les scripts (rules, plan, optimisation) Ce nouveau paramètre (Factor?) lorsque l'utilisateur du script voudra lui affecter une valeur, ouvrira une fenêtre équivalente à l'onglet ou on sélectionne les facteurs. Il pourra ainsi sélectionner un champ dans la base. Le type Factor permettant ensuite de modifier simplement la valeur de ce champ pour créer dans le cas des optimisations de nouvelles simulations. Donc si on prend un exemple pour une optimisation: """ public Factor param_prix; public Factor param_mortalite; public void getNextGeneration(OptimisationContext context) { // ... // on met les valeurs que l'on souhaite aux factors param_prix.set(12); param_mortalite.set(0.3); // on indique d'ajouter une nouvelle simulation en utilisant // la région de cette optimisation, mais en modifiant certaine // valeur de la base grâce au factor passé en paramètre. context.addSimulation(param_prix, param_mortalite) // ... } """ On peut aussi imaginer avoir la possibilité de créer facilement un Factor par programmation. (mais je ne sais pas si c'est une bonne idée). public void getNextGeneration(OptimisationContext context) { // ... // on crée un Factor // - qui pointe la mortalite d'une population // - dans la region sur lequel on simule // - pour la population dont le nom est "sardine" ("sardine" pourrait etre un param) Factor p = Factor .select(Population.MORTALITE) .from(context.getRegion()) .where(Population.NAME, "sardine"); p.set(0.5); context.addSimulation(p); // ... } """ -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com