D *、D * -Lite、またはこのカテゴリのインクリメンタルアルゴリズムのいずれかを使用する場合、大きな警告があります(この警告が文献でめったに言及されていないことに注意する価値があります)。これらのタイプのアルゴリズムは逆検索を使用します。つまり、外部に広がる波紋のように、目標ノードから外部にコストを計算します。エッジのコストが変化する場合(例で壁を追加または削除する場合)、それらはすべて、変更の影響を受ける探索済み(「訪問済み」)ノードのサブセットのみを更新するためのさまざまな効率的な戦略を持ちます。
大きな注意点は、目標の位置に対するこれらの変更の位置がアルゴリズムの効率に大きな違いをもたらすということです。さまざまな論文と私の論文で、これらのインクリメンタルアルゴリズムの最悪の場合のパフォーマンスは、すべての情報を捨てて、プレーンオールドA *のような非インクリメンタルなものから新たに開始するよりも悪い可能性があることを示しました。
変更されたコスト情報が拡張検索フロント(「訪問済み」領域)の境界に近い場合、変更する必要のあるパスはほとんどなく、増分更新は高速です。適切な例は、体にセンサーが取り付けられた移動ロボットです。センサーはロボットの近くの世界のみを見るため、変化はこの地域にあります。この領域は、目標ではなく検索の開始点であるため、すべてがうまく機能し、アルゴリズムは最適なパスを更新して変更を修正するのに非常に効率的です。
変更されたコスト情報が検索の目標に近づいた場合(またはシナリオが開始点だけでなく目標の変更位置を確認した場合)、これらのアルゴリズムは致命的なスローダウンを被ります。このシナリオでは、変更された領域が目標に非常に近いため、事前に計算されたほとんどすべてのパスが変更を通過し、再評価する必要があるため、保存された情報のほとんどすべてを更新する必要があります。追加の情報と計算を保存して増分更新を行うオーバーヘッドのため、このスケールでの再評価は新たに開始するよりも時間がかかります。
このシナリオ例では、ユーザーが望む壁を移動できるように見えるため、D *、D * -Lite、LPA *などを使用すると、この問題が発生します。アルゴリズムの時間パフォーマンスは、ユーザーによって異なります。入力。一般的に、「これは悪いことです」...
例として、CMUのAlonzo Kellyのグループには、地上ロボットと空中ロボットを組み合わせて、知覚情報をリアルタイムで共有しようとするPerceptORという素晴らしいプログラムがありました。ヘリコプターを使用して地上車両の計画システムにリアルタイムでコストの更新を提供しようとすると、ヘリコプターが地上車両の前方を飛行し、目標に近いコストの変化を見て、減速するため、この問題に直面しましたアルゴリズムをダウン。彼らはこの興味深い観察結果について議論しましたか?いいえ。結局のところ、彼らが管理した最善の方法は、ヘリコプターを地上車両の真上に飛ばすことでした。これは世界で最も高価なセンサーマストになりました。確かに、私はささいなことです。しかし、誰も話したくないというのは大きな問題です。
これについて議論する論文はほんの一握りしかありませんが、ほとんどが私です。この質問にリストされた元の論文の著者または著者の学生によって書かれた論文のうち、実際にこの問題に言及しているのは1つだけと考えることができます。LikhachevとFergusonは、必要な更新の規模を推定し、増分更新が新たな開始よりも時間がかかると推定される場合は、保存されている情報をフラッシュすることを提案します。これはかなり賢明な回避策ですが、他にもあります。私の博士号は、幅広い計算問題にわたって同様のアプローチを一般化しており、この質問の範囲を超えていますが、これらのアルゴリズムの大部分などの概要を網羅しているため、参考文献が役立つ場合があります。http://db.acfr.usyd.edu.au/download.php/Allen2011_Thesis.pdf?id=2364を参照してください 詳細については。