L'utilisation de D *, D * -Lite ou de l'un des algorithmes incrémentaux de cette catégorie constitue une grande réserve (et il est à noter que cette mise en garde est rarement mentionnée dans la littérature). Ces types d'algorithmes utilisent une recherche inversée. C'est-à-dire qu'ils calculent les coûts à partir du nœud de l'objectif, comme une ondulation se propageant vers l'extérieur. Lorsque les coûts des arêtes changent (par exemple, vous ajoutez ou supprimez un mur dans votre exemple), ils disposent de diverses stratégies efficaces pour ne mettre à jour que le sous-ensemble des nœuds explorés (autrement dit «visités») affectés par les modifications.
La grande mise en garde est que l'emplacement de ces changements par rapport à l'emplacement de l'objectif fait une énorme différence pour l'efficacité des algorithmes. J'ai montré dans divers articles et ma thèse qu'il était tout à fait possible que la pire performance de l'un de ces algorithmes incrémentaux soit pire que de jeter toute l'information et de recommencer à zéro avec quelque chose de non incrémental comme le vieil A *.
Lorsque les informations de coût modifiées se rapprochent du périmètre du front de recherche en expansion (la région "visitée"), peu de chemins doivent être modifiés et les mises à jour incrémentielles sont rapides. Un exemple pertinent est un robot mobile avec des capteurs attachés à son corps. Les capteurs ne voient que le monde à proximité du robot et, par conséquent, les changements se produisent dans cette région. Cette région est le point de départ de la recherche, et non l'objectif. Ainsi, tout se passe bien et les algorithmes sont très efficaces pour mettre à jour le chemin optimal pour corriger les modifications.
Lorsque les informations de coût modifiées sont proches de l'objectif de la recherche (ou si votre scénario voit les emplacements de changement d'objectif, et pas seulement le début), ces algorithmes subissent un ralentissement catastrophique. Dans ce scénario, presque toutes les informations enregistrées doivent être mises à jour, car la région modifiée est si proche de l'objectif que presque tous les chemins précalculés transforment les modifications et doivent être réévalués. En raison de la surcharge de stockage d'informations supplémentaires et de calculs pour effectuer des mises à jour incrémentielles, une réévaluation à cette échelle est plus lente qu'un nouveau départ.
Étant donné que votre exemple de scénario semble permettre à l'utilisateur de déplacer le mur de son choix, vous rencontrerez ce problème si vous utilisez D *, D * -Lite, LPA *, etc. Les performances temporelles de votre algorithme seront variables, en fonction de l'utilisateur. contribution. En général, "c'est une mauvaise chose" ...
À titre d'exemple, le groupe d'Alonzo Kelly à la CMU avait un programme fantastique appelé PerceptOR, qui tentait de combiner des robots terrestres avec des robots aériens, partageant tous des informations de perception en temps réel. Lorsqu'ils ont essayé d'utiliser un hélicoptère pour fournir des mises à jour des coûts en temps réel au système de planification d'un véhicule terrestre, ils se sont heurtés à ce problème, car l'hélicoptère pouvait voler en avant du véhicule au sol, les changements de coûts se rapprochant de l'objectif, ce qui ralentissait bas leurs algorithmes. Ont-ils discuté de cette observation intéressante? Non. Au final, le mieux qu'ils aient pu faire a été de faire voler l'hélicoptère directement au-dessus du véhicule terrestre, ce qui en faisait le mât de détection le plus cher au monde. Bien sûr, je suis mesquin. Mais c’est un gros problème dont personne ne veut parler - et ils devraient,
Il y a seulement une poignée de papiers qui en parlent, principalement par moi. Parmi les articles écrits par les auteurs ou les étudiants des auteurs des articles originaux énumérés dans cette question, je peux penser à un seul qui mentionne réellement ce problème. Likhachev et Ferguson suggèrent d'essayer d'estimer l'ampleur des mises à jour requises et de vider les informations stockées si la mise à jour incrémentielle prend plus de temps qu'un nouveau départ. Cette solution de contournement est assez judicieuse, mais il en existe d’autres également. Ma thèse de doctorat généralise une approche similaire pour un large éventail de problèmes informatiques et dépasse le cadre de cette question. Toutefois, vous trouverez peut-être les références utiles car elle offre une vue d'ensemble complète de la plupart de ces algorithmes et plus encore. Voir http://db.acfr.usyd.edu.au/download.php/Allen2011_Thesis.pdf?id=2364 pour plus de détails.