Partage
  • Partager sur Facebook
  • Partager sur Twitter

Question sur la modelisation d'écosysteme et vie virtuelle

Sujet résolu
    25 septembre 2012 à 23:00:38

    Bonjour je suis un jeune programmateur et scientifique,
    Je programme un peu et bidouille pas mal, après avoir bien maitriser le TI-basic (en cours on a que ça sous la main quand on s’ennuie :-° ) j'ai commencé à apprendre des langages plus sérieux comme le C et le Java mais mes bases sont encore très fragiles. Or une idée assez précise me tracasse depuis quelques temps : la modélisation d'écosystème virtuelle, de créatures virtuelles etc... Ainsi ayant peu de temps pour programmer en ce moment j'aimerai savoir quel langage de programmation est le plus adapter à ce genre de travail afin de concentrer mon apprentissage dessus.
    Sachant que j'aimerai pouvoir obtenir les informations sous forme de graphe (en gros laisser le programme tourner à la vitesse des calculs, on ne voit pas les créatures évoluer, juste dans le but d'obtenir des informations comme l'évolution des différentes population au cours du temps) mais aussi pour certaines expériences de pouvoir faire quelque chose de graphique (dans un premier temps une représentation 2D schematique suffira largement je pense) pour pouvoir visualiser des comportements plus clairement.
    Merci d'avance pour les conseils que vous pourrez m’apporter.

    Pi-GadeL
    • Partager sur Facebook
    • Partager sur Twitter
      26 septembre 2012 à 10:29:11

      Salut,

      Pour commencer, j'utiliserai R, un langage interprété très pratique pour modéliser, faire des graphiques, des statistiques... Il y a une intro. à ce langage sur le SDZ : Effectuez vos études statistiques avec R. N'hésite pas à demander de l'aide si tu rencontres un problème ;) Que souhaites-tu modéliser exactement ?
      • Partager sur Facebook
      • Partager sur Twitter
        26 septembre 2012 à 11:07:09

        Je rejoint thebrokersval pour te conseiller fortement R aussi.
        Si tu es allergique à ce programme, tu peux regarder du coté de Mathlab (payant) ou Scilab (gratuit).
        Bon courage !
        • Partager sur Facebook
        • Partager sur Twitter
          26 septembre 2012 à 18:19:50

          Je n'ai pas une idée unique mais en gros je voudrais modéliser des écosystèmes virtuels. Tout d’abord très simple et puis de plus en plus complexes.
          En gros il y a 2 étapes à chaque fois pour une étude : programmer les créatures consistant l’écosystème (créatures plus ou moins complexe ayant ou non des possibilités d'évolutions et plus ou moins d'interaction avec les autres créatures et leur environnement) puis pouvoir récupérer des informations sur l'étude. Soit en programmant un affichage graphique dans une fenêtre pour pouvoir observer de mes propres yeux leur évolution et surtout leur comportement. Soit sans les voir en récupérant des infos sous formes de graphe (me permettant pas de voir leur comportement mais d'avoir des résultats beaucoup plus rapide sur une expérience de plus grande échelle (l’écosystème évoluant à la vitesse des calculs sans avoir à être afficher et sans avoir a tourner à un rythme observable par mes yeux))
          Dites moi si c'est un peu confus ^^


          J'ai regardé R comme vous me l'avez suggéré, j'ai survolé très vite fait le tuto donc je me trompe peut être mais R ne semble pas me permettre de modéliser mon écosystème comme je le souhaiterai, ni de voir les créatures évoluer. Cependant il semble être un outil de statistique très intéressant et puissant, il correspond vraiment (et même plus en faite, il m'ouvre de nouvelles perspectives) pour l'étude des informations donnés par l’expérience. Donc j'en prends note ;) ça fait un point de régler :D
          • Partager sur Facebook
          • Partager sur Twitter
            26 septembre 2012 à 19:12:13

            Tout dépend de ce que tu entends par "modéliser" et "visualiser" ; dans le sens où je l'entends, modéliser la prédation d'une espèce sur une autre reviendrai à implémenter ces deux équations sous R et à faire varier les paramètres initiaux en visualisant la dynamique de ces systèmes avec de beaux grafs. Par contre, je ne verrai pas de renard courir après un lapin dans une fenêtre, son visage exprimant joie et bonne humeur après ingurgitation dudit PanPan. Si tu souhaites faire quelque chose se rapprochant plus de cette dernière proposition, qui me semble bien complexe et bien lourde en calculs (quels créatures veux-tu modéliser, quels comportements, quels écosystèmes ?) R n'est effectivement pas approprié - mais ta modélisation s'apparente moins à quelque chose de scientifique qu'au jeu vidéo je pense :)
            • Partager sur Facebook
            • Partager sur Twitter
              26 septembre 2012 à 19:46:26

              Le problème c'est qu'aborder l'étude juste en posant deux équations me semble très difficile car je ne sais comment synthétiser mes expériences en simples équations.
              Si je n'ai pas de projet encore très précis ma recherche n'est pas non plus de l'ordre du jeu. L’esthétique n'est pas dans le cahier des charges et pour se qui est du coté ludique il ne sera là que pour ceux qui sauront comprendre les idées qui se trouve derrières.
              Mon désir de pouvoir avoir une visualisation des créatures à l'action, est de pouvoir observer les comportement dans les expériences me semblant intéressantes. Imaginons que mon expérience sur graphe me montre qu'une créature est hyper adapté à son environnement, l'autre expérience avec une fenêtre graphique me permettra de voir comment elle s'est adaptée (je pense notamment à des expériences qui ont déjà été faite et où des créatures ont exploité des bugs).
              • Partager sur Facebook
              • Partager sur Twitter
                26 septembre 2012 à 20:54:35

                Tu pourrais t'amuser à modéliser l'évolution d'une population d'un point de vue génétique, en te focalisant sur quelques caractères a déterminisme génétique simple. Ainsi, tu pourrais étudier et modéliser les évolutions de la population d'un point de vue phénotypique en basant tes calculs sur les fréquences alléliques au cours des générations.
                Bon, c'est un peu difficile si tu n'a pas fait de génétique des populations, mais c'est réalisable tout de même avec motivation.

                Mais peut être que ton projet est bien différent, en tout cas c'est une piste à explorer.
                • Partager sur Facebook
                • Partager sur Twitter
                Il n'est pas nécessaire d'espérer pour entreprendre ni de réussir pour persévérer ( Guillaume d'Orange)
                  26 septembre 2012 à 21:40:07

                  Oui il faudra que j'explore cette piste pour programmer des créatures pouvant évoluer :) Merci beaucoup pour ces indications je savais pas trop comment programmer l'évolution aléatoire des créatures.

                  Et donc pour la modélisation des créatures et de l’écosystème quelle langage serai adapter ? et quelle bibliothèque pour l'affichage graphique ?

                  @theprokesval merci aussi pour les équations de Lotka-Volterra je connaissais le phénomène et l'allure des courbes mais pas leur équation :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 septembre 2012 à 0:55:04

                    Il y a aussi ce qu'on appelle le jeu de la vie, qui ressemble à ce que tu veux faire. Mais pour que ce soit intéressant, il faut du graphisme^^

                    Dans ce cas, ça se fait très bien en C, et sans doute en Java.


                    Il y a aussi une autre façon de faire qui pourrait t'intéresser, je ne sais pas si ça a un nom : tu fais un tableau, avec dans certaines cases une cellule. La cellule peut «se diviser», et occuper des cases adjacentes, il peut y avoir plusieurs espèces, et quand elles se rencontrent, l'une aura peut-être le dessus sur l'autre...


                    Ce type de programmes peut se faire dans un peu n'importe quel langage. Si tu veux quelque chose de graphique, tu peux sans doute utiliser une bibliothèque externe, voire un autre programme comme GNUplot.


                    Je ne connais pas du tout R, mais je crois qu'il est très orienté vers les statistiques, ce qui en fait un outil de prédilection des biologistes.

                    Matlab (sans h, on parle de matrices et pas de maths) et les équivalents libres Scilab et Octave fonctionnent avec des matrices. Ils sont donc particulièrement adaptés dès lors que tu dois traiter des nombres (une matrice, c'est quand même un tableau rempli de nombres après tout).
                    Ces programmes disposent de leurs propres outils graphiques, si tu veux afficher rapidement et sans effort le contenu d'une matrice. Ils sont très utilisés par les ingénieurs et les physiciens, et un peu les chimistes, et sans doute même les mathématiciens (là je sais pas trop), parce qu'ils offrent beaucoup de fonctions toutes prêtes. Matlab est aussi pas mal utilisé pour l'interfaçage avec des dispositifs expérimentaux.

                    Sinon, Python avec NumPy et SciPy est aussi assez utilisé, et offre de très grandes possibilités dans tous les domaines. Il y a un tutoriel très complet sur le SdZ informatique. Par contre, c'est de la programmation très orientée objet, et ça sert pour toute sorte de logiciels, donc l'apprentissage risque d'être plus ardu, et il faudra apprendre à utiliser un grand nombre de fonctionnalités avant d'aborder les fonctionnalités qui t'intéressent ici.

                    Ah oui, et tu as aussi les logiciels Maple et Mathematica, et l'équivalent libre Maxima, qui font du calcul formel. Il sont donc capables de résoudre une équation (différentielle ou pas, ou un système d'équations...) sans valeur numérique.


                    Et finalement, je pense que tu dois déjà pouvoir faire des trucs vraiment sympas avec ta calculatrice. J'avais une Casio, la vitesse d'exécution était un peu faible, mais le langage permet déjà de faire ce dont tu as besoin, il y a la possibilité d'utiliser des matrices, il y a es outils graphiques pas trop compliqués à utiliser... Mis à part que si tu veux faire une grosse simulation, tu risque de devoir attendre une demi-heure qu'elle finisse, ça me paraît parfaitement adapté !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 septembre 2012 à 12:55:58

                      Merci pour toutes ces infos :D j'ai un bon aperçu des possibilités maintenant. Je vais regarder un peu tout ça et voir se qui me convient le mieux. Est se que tu as quelques exemples des bibliothèques en C et Java qui pourrait m'aider ?

                      Pour la calculatrice c'est vrai qu'elle permet déjà quelques trucs sympa mais bon j'ai pas un modèle performant ^^' Il me faudrait plutôt un équivalent sur ordinateur mais bon quitte à être sur un ordi autant apprendre un langage ayant plus d'avenir que le TI basic
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 septembre 2012 à 0:27:56

                        Je t'avouerais ne pas m'y connaître assez. En C, je pense que les librairies classiques peuvent permettre de faire ça (en plus elles peuvent resservir pour autre chose) : SDL, OpenGL... Ou alors avoir recours à un logiciel tiers qui fait une partie du travail pour toi (GNUplot entre autres, qui est aussi utilisé par Octave).

                        Mais l'idéal est que tu cherches sur Google, il y a beaucoup de questions similaires déjà posées. Sinon, peut-être pourra-t-on mieux te renseigner sur les fora dédiés au C et au Java ?


                        Accessoirement, si tu as déjà une idée de carrière que tu vises, ça peut valoir le coup de commencer dès maintenant à apprendre à utiliser plutôt Matlab/Scilab/Octave ou R : selon le domaine, ça peut être juste incontournable ! Mais tu auras toujours le temps de les voir par la suite, au cours de tes études, si tu en as besoin.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 septembre 2012 à 12:56:25

                          J'ai pas encore d'idée de carrière très précise mais bon je fais mon année de math sup pour le moment en vue d'une école d’ingénieur (je ne sais laquelle pour le moment) et on a une petite introduction à Maple. Mais bon la programmation n'est pas trop au programme ^^'.

                          En tout cas merci pour toutes vos réponses je pense avoir les éléments que je souhaitais :D
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 septembre 2012 à 0:34:22

                            Oui Maple n'est pas vraiment orienté programmation. Même si, si tu passes le concours de l'X, tu auras à affaire à de la vraie programmation en Maple (pas très compliquée, mais quand même). Enfin, si tout n'a pas changé avec la fusion avec les ENS.

                            En fait, le choix du langage reste un choix personnel, mais je me permet de te suggérer très fortement le C dans un premier temps : en particulier pour quelqu'un qui fait pas mal de maths, c'est sans doute le meilleurs moyen de vraiment comprendre le fonctionnement de sa machine, et de prendre des bonnes habitudes.
                            Java ou Matlab sont vraiment puissants dans la mesure où c'est possible de faire des choses très compliquées avec des outils très simples à utiliser, mais finalement ça revient souvent à chercher la bonne bibliothèque/toolbox plus qu'autre chose, et ça peut donner des mauvaises habitudes.

                            Sur ce sujet, je recommande cet article (même si je pense que leur point de vue sur ADA est peut-être pas très neutre).
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Question sur la modelisation d'écosysteme et vie virtuelle

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown