Comment créer une espèce sur netlogo ?

Fermé
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017 - 21 déc. 2016 à 20:46
mynoe Messages postés 18 Date d'inscription dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017 - 1 janv. 2017 à 12:09
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
21 déc. 2016 à 20:52
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 dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
22 déc. 2016 à 21:10
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 déc. 2016 à 21:18
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 dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
25 déc. 2016 à 19:43
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
25 déc. 2016 à 21:28
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 dimanche 27 novembre 2016 Statut Membre Dernière intervention 8 avril 2017
26 déc. 2016 à 09:05
Bonjour est-ce qu'il serait possible que je vous transmette mon code par mail ?

Merci pour votre aide constante
0