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
避けられない部分もあるが、できるだけ望ましいエリア分割をおこなうにはどうするか。
基本的に道路ネットワークであれば、地理的に近いノードは最短経路も似通いやすいため、それで評価しても十分実用的。
まだあまり深く調べられてない。
まだあまり深く調べられてない。