Le 15/06/2017 15:19, Eric Chatellier a écrit :
Le 15/06/2017 à 12:52, Audric Vigier a écrit :
Je ne fais pas d'optimisation sur cette simulation là pour le moment, je vérifie son contenu avant de passer à l'optim. J'ai eu le souci en faisant tourner la simulation une seule fois, sans règle, sans optim. Ok, j'ai trouvé l'origine du problème.
Dans SiMatrix#fishingMortalityPerGroup(), il y a le code:
ObjectiveFunction f = new ObjectiveFunctionBaranov(Cgroup, Mgroup, NgroupRef); Fgroup = MinimisationUtil.fmin(0.0, 2.0, 1.0e-10, f); // step ??
Dans ce cas, Cgroup = Nan et ça part en boucle infinie (la boucle while).
Ensuite, si on regarde dans tes exports CapturesPoids.csv et CapturesNombre.csv, il y a effectivement des valeurs NaN.
Tu peux essayer de déterminer pourquoi tu as des NaN ?
Les NaN ne concernent que les captures de langoustine. Comme on enlève NaN langoustines au step 0, l'abondance de langoustines est de NaN dès le step1.... pourtant ça ne devient dérangeant qu'au step 11. En ce qui concerne le "pourquoi" ces NaN, là je ne sais pas. Les captures de NaN concernent de multiples métiers que je n'avais pas modifiés, et qui parfois pêchent plusieurs populations. Depuis ce bug, j'ai modifié ma base sur d'autres aspects (sélectivités d'autres métiers, je force la sélectivité de la classe 0 à 0 pour tout le monde). En repartant de cette base modifiée, si je fixe la sélectivité des langoustiniers comme je voulais le faire (ce qui devrait provoquer le bug), je n'arrive pas à reproduire l'erreur, il n'y a plus de NaN dans les exports. Je ne sais pas pourquoi l'erreur n'est plus là, d'autant plus que je n'ai modifié que des sélectivités de merlus, pas de langoustines. Bref, mystère! Merci de t'être penché sur cette bizarrerie Bon après-midi, Audric
-- Audric Vigier Doctorant à Ifremer, unités EMH (Nantes) et STH/LBH (Brest) E-mail : audric.vigier@ifremer.fr Tel : +33 (0)2 40 37 41 64 (8164)