Projet d'algorithmique et programmation avancée
Questions et réponses
Question 1
Ce que je ne comprend pas c'est la différence et l'avantage qu'à le robot 3 sur le robot 2, car le robot 3 peut certes mémoriser de façon illimitée la map, mais il le fait pas à pas, des qu'il passe une case. A quoi cela lui sert-il ? Qu'est-ce que ça change par rapport au robot 2 ? Prenons l'exemple d'un robot qui passe sur une case de coordonnées (5,4) dont les voisines de gauche, droite et bas sont accessibles, la voisine du haut étant un obstacle. Si le robot est de type II, la seule information qu'il peut mémoriser est le fait d'être déjà passé sur la case (5,4). S'il est de type III, il peut mémoriser le fait que la case (5,3) est inaccessible. Cela ouvre des possibilités pour des robots très sophistiqués qui vont être capables de revenir sur des cases accessibles encore sales, et ceci même si on leur demande de nettoyer un labyrinthe. Mais avant d'envisager un tel challenge, il faut commencer à concevoir une application qui simule un robot de type I et ceci pour deux raisons : (1) Il faut d'abord réfléchir à l'architecture globale de l’application et aller à l'essentiel de ce qui est demandé pour vous assurer une note correcte, plutôt que de risquer d'avoir un
prototype de robot très performant mais qui tourne dans un programme de bric et de broc ne respectant pas les bonnes pratiques de conception, notamment le fait de décomposer l'application en parties aussi indépendantes que possibles les unes des autres, pouvant être développées et testées séparément. (2) C'est en observant le comportement de vos prototypes de robots de type I que vous identifierez leurs défauts, et cela vous donnera des idées pour la conception de robots à mémoire.
Question 2
Je me suis dit que peut-être, la cartographie du robot 3 pouvait être enregistrée dans un fichier texte, ce qui lui permettrait de reconnaitre une map dans laquelle il a déjà fait le ménage. Du coup l'avantage de la cartographie prendrait tout sont sens. Connaissant déjà la pièce, les case inaccessible, il ferait le ménage plus rapidement.
Ce n'est pas ce qui est demandé dans l'énoncé du projet mais c'est une idée très intéressante qui pourrait servir de base à un robot de type IV dont la mémoire interne, illimitée, serait initialisée avec une carte de la zone à nettoyer. Bien sûr, une telle idée ne serait à développer que par les étudiants passionnés ayant réalisé de manière exemplaire tout ce qui est demandé dans le sujet, et sans tomber dans le piège qui consisterait à négliger les autres enseignements. Encore une fois, avant de vous lancer dans une réalisation compliquée, assurez vos arrière en faisant d'abord quelque chose qui est simple et qui fonctionne.