Arcflagsは、2点間の最短経路探索を高速化する1手法。
| AreaA s --- v ---...---|- `--- u ... | t * リンク<s-v>は、目的ノードtが存在するエリアA内の、 どれかのノードへの最短経路に使われることが事前計算によりわかっている * リンク<s-u>は、エリアA内のどのノードへの最短経路にも使われないことがわかっている * sから探索を広げる際、<s-u>は探索しない
できるだけ、1つのエリア内のノードへ至る経路は類似していた方がいい。
あるエリア内の2つのノードvとw、それとは離れた場所の2つのリンクlとmについて、vに行くにはlを通る経路が、wに行くにはmを通る経路が最短となってしまうと、クエリ時に探索するリンクが増えて時間がかかってしまう。
エリアAに属するノードへの最短経路で類似度の低いものが複数あると、 探索時にはその全てを探索しなければならないことになる。 この例のように2通りだけならまだいいが、候補がもっと増えると、計算時間に影響が出る。 AreaA| v -----|---...-o---- s | / w ---|---...-o---' エリア内や、できるだけ近い箇所で分岐するようなノードばかりのエリアで分割できれば、 1本道(や、ごく少数)の探索で済むため、高速化の効果は大きい v -----|---...-o---- s / w
避けられない部分もあるが、できるだけ望ましいエリア分割をおこなうにはどうするか。
基本的に道路ネットワークであれば、地理的に近いノードは最短経路も似通いやすいため、それで評価しても十分実用的。
まだあまり深く調べられてない。
まだあまり深く調べられてない。