Étude comparative de résolution de labyrinthe : Algorithme de Parcours vs Algorithme génétique
Lors de ma troisième année de but, mon année à l'université en Roumanie, dans le cadre de mon cours d'introduction à l'intelligence artificielle, il nous a été
demandé de réaliser un projet libre. Le projet devait être réalisé individuellement et la consigne était la suivante : choisir un problème quelconque et le résoudre
de deux manières différentes. Premièrement, une solution libre quelconque. Deuxièmement, une solution utilisant le Deep Learning ou un Algorithme Génétique que nous
avions étudié en cours.
J'ai alors pensé à un sujet de la sciene qui me passionne : Physarum polycephalum. Un organisme
surnommé le "Blob" capable de résoudre des problèmes de résolution de chemin, notamment dans des labyrinthes, de façon bien plus efficace qu'un être humain.
J'ai donc voulu opposer deux choses : une solution logique humaine (méthode de la main droite) et une solution qui imite un blob (algorithme génétique).
J'ai commencé par définir quelques points importants comme les résultats attendus et la façon de calculer les performances. Ensuite, j'ai développé une classe Python
permettant de modéliser un labyrinthe. Suite à cela, j'ai implémenté l'algorithme de la main droite pour résoudre le labyrinthe. Enfin, j'ai implémenté l'algorithme
génétique capable de résoudre ce labyrinthe et j'ai comparé les résultats.
Ci-dessous un aperçu de l'affichage des résultats après éxecution du script.
Compétences requises
- Développement en Python
- Principes des algorithmes génétiques
- Analyser un problème et définir des solutions adaptées
Compétences acquises
- Implémenter un algorithme génétique
- Résoudre un problème complexe à l'aide d'algorithmes
- Rédiger un rapport précis en analysant des résultats
Le code utilisé pour ce projet est disponible ici, vous y trouverez la procédure de réutilisation ainsi qu'une explication plus détaillée du projet : Dépôt github
Également, vous pouvez lire le rapport que j'ai rédigé dans le cadre de ce projet qui explique en détail le code : Rapport