При использовании D *, D * -Lite или любого из дополнительных алгоритмов в этой категории есть большая оговорка (и стоит отметить, что эта оговорка редко упоминается в литературе). Эти типы алгоритмов используют обратный поиск. То есть они вычисляют затраты наружу от узла цели, как пульсация, распространяющаяся наружу. Когда цены на ребра изменяются (например, вы добавляете или удаляете стену в вашем примере), все они имеют различные эффективные стратегии для обновления только подмножества исследуемых (так называемых «посещенных») узлов, на которые влияют изменения.
Большое предостережение состоит в том, что расположение этих изменений относительно местоположения цели имеет огромное значение для эффективности алгоритмов. Я показал в различных статьях и в моем тезисе, что для наихудшего варианта производительности любого из этих инкрементальных алгоритмов вполне возможно быть хуже, чем выбрасывать всю информацию и начинать заново с чего-то неинкрементного, как обычный старый A *.
Когда измененная информация о стоимости близка к периметру расширяющегося фронта поиска («посещенная» область), нужно изменить несколько путей, и постепенные обновления выполняются быстро. Уместным примером является мобильный робот с датчиками, прикрепленными к его телу. Датчики видят только мир рядом с роботом, и, следовательно, изменения происходят в этом регионе. Эта область является отправной точкой поиска, а не целью, и поэтому все работает хорошо, и алгоритмы очень эффективны при обновлении оптимального пути для исправления изменений.
Когда измененная информация о стоимости близка к цели поиска (или ваш сценарий видит места изменения цели, а не только начало), эти алгоритмы терпят катастрофическое замедление. В этом сценарии необходимо обновить почти всю сохраненную информацию, поскольку измененная область настолько близка к цели, что почти все предварительно рассчитанные пути проходят через изменения и должны быть переоценены. Из-за накладных расходов на хранение дополнительной информации и вычислений для выполнения инкрементных обновлений переоценка в этом масштабе медленнее, чем новый старт.
Поскольку ваш примерный сценарий позволяет пользователю перемещать любую стену по своему усмотрению, вы столкнетесь с этой проблемой, если будете использовать D *, D * -Lite, LPA * и т. Д. Производительность вашего алгоритма во времени будет переменной, в зависимости от пользователя. вход. В общем, "это плохо" ...
Например, у группы Алонзо Келли в CMU была фантастическая программа под названием PerceptOR, которая пыталась объединить наземных роботов с воздушными роботами, и все они обменивались информацией о восприятии в режиме реального времени. Когда они попытались использовать вертолет для предоставления в реальном времени обновлений стоимости системы планирования наземного транспортного средства, они столкнулись с этой проблемой, поскольку вертолет мог лететь впереди наземного транспортного средства, видя изменения стоимости ближе к цели и, таким образом, замедляя вниз их алгоритмы. Обсуждали ли они это интересное наблюдение? В конце концов, лучшее, что им удалось, - это заставить вертолет летать прямо над наземным транспортным средством, что сделало его самой дорогой в мире мачтой для датчиков. Конечно, я мелкая Но это большая проблема, о которой никто не хочет говорить - и они должны,
Есть только несколько статей, которые обсуждают это, в основном я. Из работ, написанных авторами или студентами авторов оригинальных работ, перечисленных в этом вопросе, я могу вспомнить только одну, которая действительно затрагивает эту проблему. Лихачев и Фергюсон предлагают попытаться оценить масштаб требуемых обновлений и очистить сохраненную информацию, если предполагается, что добавочное обновление займет больше времени, чем новый старт. Это довольно разумный обходной путь, но есть и другие. Моя кандидатская диссертация обобщает аналогичный подход в широком спектре вычислительных задач и выходит за рамки этого вопроса, однако вы можете найти полезные ссылки, поскольку в ней содержится подробный обзор большинства из этих алгоритмов и многое другое. См. Http://db.acfr.usyd.edu.au/download.php/Allen2011_Thesis.pdf?id=2364. для деталей.