Comment créer une espèce sur netlogo ?

mynoe Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
mynoe Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un modélisé une forêt sur netlogo, maintenant il faudrait que chaque arbre produise des graines qui vont par la suite se transformer en arbres.
Avec quelles fonctions peut-on faire cela sur netlogo ?
Faut-il que je créée une nouvelle espèce Breed [graines graine] ?
Et pour qu'elles puissent par la suite se transformer en arbre est-ce que sprout-arbres pourrait fonctionner ? Comment utiliser cette fonction en corrélation avec les graines ??

Merci de votre aide

Bonne soirée
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Je pense qu'une seule espèce pourrait suffire, il faudrait juste distinguer son état (graine ou arbre) et éventuellement modifier sa représentation graphique lors du passage de graine à arbre.

En effet ce serait bizarre de devoir changer de tortue (pour changer d'espèce) lors de son passage de graine à arbre alors que c'est pourtant bien la même tortue qui est en jeu.

Je pense que sprout-<breeds> devrait faire l'affaire, sous réserve que ce que tu veux c'est bien de créer les graines sur le même patch que l'arbre (ce qui aurait du sens).
0
mynoe Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

j'ai suivi votre conseil en rajoutant une variable statut propre à mes arbres.
Mais maintenant je suis bloquée car je ne sais pas comment effectuer la dispersion des graines dans un rayon R autour de l'arbre ayant produit les graines.

J'ai trouvé les commandes : layout-circle grp-graines R mais cela n'est pas adapté

De même, Setxy + random xcor random ycor ne me permet pas de rester dans le périmètre voulu

Voici un extrait du code :
hatch-arbres nbgraine
[
set statut "graine"
setxy..... je suis bloquée ici
]

Par avance merci de votre aide,

bonne soirée
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est plus simple de réfléchir en coordonnées polaires ici.

Tu tires deux nombres aléatoires :
  • ρ entre 0 et R
  • θ entre 0 et 2π

Et tu calcules :
  • x = x0 + ρ.cos(θ)
  • y = y0 + ρ.sin(θ)

(x,y) sera inclus dans le cercle de centre (x0,y0) de rayon R.
0
mynoe Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir j'ai adopté votre méthode des coordonnées polaires. Merci beaucoup pour votre aide

En revanche, depuis que j'ai ajouté cette la procédure qui génère les graines l'exécution du programme se trouve grandement ralenti. Je ne peux pas le faire tourner pour 20 ticks au bout de 7 il est quasi à l'arrêt.....

1 individu génère 500 graines au minium
pour chaque individu on utilise hatch-arbres nb graines
De plus, pour chaque graine produite on va vérifier la position de la graine par rapport a tous les arbres voisins dans un rayon x
Cela fait beaucoup de traitement simultané et le programme n'arrive plus à avancer

Auriez vous un conseil pour améliorer les performances ?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Si tu multiplies par 500 le nombre d'arbres à chaque fois c'est normal que les performances se dégradent. Cependant en NetLogo les performances importent peu, ce n'est pas trop l'intérêt de ce langage.

Ceci étant dit pour améliorer le code il faudrait que tu le donnes histoire de voir comment ça se comporte. En particulier il faudrait regarder si tu détruis bien tes turtle inutiles.
0
mynoe Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour est-ce qu'il serait possible que je vous transmette mon code par mail ?

Merci pour votre aide constante
0