Projet ISN : Modélisation d’un algorithme de fourmis. Cirino Robin Et Svoboda Célia TS1
Introduction En vue d’être sanctionnés d’une note pour la spécialité « informatique et sciences du numérique » il nous a été demandé d’établir et réaliser par groupes de deux candidats un projet de la forme et du contenu de notre choix. Ainsi après avoir étudier les bases de la programmation en java à l’aide des environnements de développement de Java’s cool et de Processing. Nous avons choisi de travailler à l’aide de ce dernier support (Processing) car celui-ci nous permet facilement de réaliser des animations simples dont le temps de développement est assez réduit. Nous avions alors l’idée de réaliser un algorithme déjà reconnu dans le monde de l’informatique, qui serait celui des fourmis, il serait intéressant tout d’abord d’observer nos attentes autour d’un tel sujet, puis de voir ce que nous avons pu accomplir, et enfin d’exposer les possibles suites et améliorations qui pourraient être apportées à notre projet.
I) L’Etude du projet La réalisation du projet s’est établie sur la période quasi-intégrale du troisième trimestre scolaire (mars-avril-mai), la première étape a été de définir le sujet, nous cherchions alors une idée originale et peu commune, nous avons choisi d’écarter la plupart des sujets s’établissant autour de l’enjeu des loisirs comme la réalisation d’un jeu par exemple. Notre objectif a été de nous concentré sur l’importance d’un algorithme solide et efficace dans un programme et ce peu importe ce qu’il puisse être. L’algorithme des fourmis s’est alors présenté à nous, en effet il est possible de le retrouver dans l’énoncé de nombreux concours spécialisés en informatique et en programmation. Le principe de cet algorithme est de simuler la vie d’une fourmilière et surtout le comportement singulier des fourmis, en effet leur mode de vie social en font une des forme de société les plus complexes présentes chez les êtres vivants. L’objectif précis d’un tel algorithme est de déterminer à l’aide de leur déplacement pistés par des phéromones la solution à un problème d’optimisation. Car il est un fait que les fourmis communiquent entre elles et se transmettent ainsi leur expérience, ainsi chacune ayant un déplacement aléatoire elles ont acquis une grande expérience de leur environnement elles peuvent ainsi indiquer à leurs congénères quel est par exemple le chemin le plus court menant à leur nourriture et celui pour revenir à leur fourmilière également.
Le cahier des charges Choix du sujet, définition de l’objectif et organisation d’un cahier des charges (Séance 1). Mise en forme d’une introduction au projet et mise sous forme de liste des fonctions utiles pour le futur projet. (Séance 2). Compte-rendu des limites du projet, et collecte des renseignements sur les notions de programmation en jeu.(Séance 3). Réalisation d’une partie graphique simplifiée du projet sous Processing(Séance 4 ). Mise en forme des algorithmes nécessaire à la complétion du projet(Séance 5). Réalisation d’un proto-type de projet(Séance 6). Optimisation du code et finition de l’algorithme(Séance 7). Mise à niveau de la partie graphique du programme , et production du compte-rendu du projet en l’attente de la présentation(Séance 8). Rédaction des conclusions personnelles et création du diaporama de synthèse(Séance 9).
II)L’Elaboration du projet L’étape de réalisation du projet à été sans nul doute la plus intéressante avant l’épreuve orale. Nous avions en effet tout d’abord décidé d’utiliser des techniques bien différentes de celles dont nous avons finalement fait l’usage, il était auparavant question d’employer la technologie de la programmation objet et de la représentation vectorielle dans un plan pour parvenir à nos fins. Grâce à de précieuses sources comme le livre « Nature of code » écrit par DANIEL SHIFFMAN, ainsi que la documentation officielle de Processing, nous avons pu découvrir une approche bien différente que la plupart utilise pour réaliser notre projet. Tout d’abord nous nous sommes concentrés sur la réalisation graphique du projet car, elle est finalement le rendu final qui sera pris en compte dans la notation du projet, cependant nous avons rencontrés quelques problèmes qui nous ont poussés à abandonner l’idée de la programmation objet ainsi que l’utilisation de vecteurs planaires pour modéliser les déplacement de nos fourmis. En effet l’utilisation de vecteurs étant bien que plus pratique à utiliser demeure néanmoins plus difficile à appréhender pour une même durée de temps que l’utilisation d’équation de droites pour modéliser un déplacement. C’est par conséquent par faute de temps que nous avons choisi d’abroger toute tentative d’utilisation de ces technologies (POO et Vecteurs), en outre le projet devait se reconstruire et ainsi il n’a pas pu être aussi abouti que nous le souhaitions.
Cependant nous ne démentons pas l’expérience que nous a permis d’acquérir l’étude de ces sources, elles ont eu pour rôle de nous projeter plus loin que les limites du programme scolaire et nous ont également montré que pour effectuer un bon projet, il faut un départ solide, condition que nous n’avons pas su satisfaire. Concernant maintenant la répartition des rôles du binôme, il en a été ainsi, l’un profitant d’une plus grande expérience dans le domaine de la programmation devait montrer la voie dans la réalisation de ce projet. L’autre candidat l’a alors accompagné et aidé dans cette tâche, en accumulant également une certaine expérience il a aidé son camarade en produisant des fonctions annexes certes, mais fonctionnelles et tout à fait correctes, de plus son regard neuf dans ce domaine à su dynamiser l’ensemble du projet. Au cours du projet il nous a été donné de parcourir nombreux domaines de programmation, comme la gestion graphique et l’animation d’un projet, la modélisation d’un déplacement aléatoire influencé par de nombreux paramètres (Algorithme de Monte-Carlo,loi normale, bruit de Perlin, …), la définition de types de données avancés comme les tableaux multi-dimmensionnels, et bien d’autres encore …
III)Résultats et perspectives Le projet tel qu’il se tient à l’état final n’est pas représentatif de ce que nous voulions réaliser au départ, notre objectif concernant la modélisation du comportement des fourmis n’est pas réalisé cependant nous sommes parvenu à modéliser leur déplacement de manière convenable compte tenu de l’échec de notre première tentative et de la malheureuse perte de temps que celui-ci a occasionné. Cependant nous sommes fiers d’avoir pu découvrir énormément de nouvelles choses, sur le monde de la programmation en nous forgeant de plus une expérience solide sur le travail de groupe et sur l’utilisation de ces nouvelles compétences. Ce qui nous permet d’espérer de nombreuses perspectives d’avenir, car en revenant sur notre projet il serait alors tout à fait à notre portée de rectifier le tir concernant le premier essai par exemple en y implantant les fonctions essentielles que nous n’avons pas pu implantées comme la modélisation d’un déplacement aléatoire ou bien la communication entre les fourmis et ainsi la détermination d’un chemin optimisé de leur fourmilière vers leur nourriture.
Conclusion En tant que conclusion sur ce projet, il est possible de dire que notre cahier des charges nous semblant au premier abord correct aurait pu être plus précis et rigoureux de manière à savoir dans qu’elle direction nous aurions su nous orienter dès le départ. Ce qui nous aurait éviter une perte de temps considérable qui a handicapée le projet, cependant nous nous sommes alors remis dans la bonne voie pour réaliser ce projet et si le temps nous eûmes était plus profitable nous aurions pu mettre en pratique ce qui est resté théorique mais bel et bien présent dans nos esprits. Nous sommes et c’est assez évident un peu déçu du résultat final que nous avons produit mais nous voyons en lui une source d’inspiration quasiment inépuisable concernant les améliorations que nous pouvons lui apporter. C’est ainsi que nous gardons foi en nos compétences développées grâce à ce projet de groupe et que nous voyons un avenir très positif et productif.