玄天黄地

学生時代、箸にも棒にも掛からなかったアホの子が、やっと普通のアホになれるか?

幅のある地物

 

   道路や鉄道は、ネットワークとして見る場合には、一次元複体( ごく普通に shapefile で表現できる線図形)として表現するのが自然である。これは今更言うまでもないこと。

 では、車線単位の道路など、ネットワーク構造を維持しながら、幅も有限の大きさで把握したいときにはどうするか。

 適当なモデルで良ければ、いくらでも表現の方法はある。ここでは、次の3点を条件として考える。

 

1)実際の道幅と整合的にモデル化されること。

2)自動車の移動方向と整合的にモデル化されること。

3)道路のネットワーク構造を維持できること。

 

1)は、単に図形が本物らしく見えればよいだけなので、極端なことを言えば、道路敷地をポリゴンと見なせば終わり、ということになるかも知れない。

2)は、そのポリゴンに何らかの方法で向き付けを行うことで達成できそうだ。

問題は3)である。道路を1次元で考えれば一次元複体になるべきなので、2次元(向きその他の条件を有するポリゴン)として持った場合に、何らかの数学的に自然な演算を施すと、一次元複体になってほしい訳である。

この条件は、道路をモデル化した2次元図形は、同じくモデル化した1次元図形にホモトープで合ってほしい(連続した変形で、互いに移りあうことができてほしい)と言い換えることができるかも知れない。

 

 一般に、このようなホモトピーは何通りも存在すると考えられるが、何らかの意味合いで「標準的なホモトピー」を定義できれば、良いモデルになるのではないか。

 

 そこで、自然な仮定を少しだけ追加する。

 

 道路をモデル化した一次元複体は、shapefile で表現している場合は折れ線近似であるが、モデル空間では(実際の道路と同様に)滑かな曲線であるものとする。滑かな曲線の代表例としては、正常に運転した自動車の軌跡でも良いし、道路設計時の中心線でも良い。連続微分可能な曲線で構成されている(だから、任意の地点で接線や法線が定義できる)と言う仮定だけを置く。shapefile にする場合は(電脳空間でデータを持つ場合は)、単に離散化するだけである。離散化した結果として、折れ線になるわけだ。離散化する際の細かさは、現実のデータ取得における要求精度とか、計算機の表現可能精度とかで決定されることにしておけば、モデルの決め方には影響されないであろう。

 

 このような一次元複体は、もはや単体複体ではないが(線分ではないので)、単体複体と同相である(連続性は維持される)。従って、ネットワーク構造は不変である。また、構成される曲線に微分可能性を仮定したので、任意の点で法線方向を考えることができる。このような一次元複体は、単連結ではないが、そのまま微分多様体になり、接ベクトルと法ベクトルが定義できる。そこで、これ以降は、1次元でモデル化した道路を1次元微分多様体だと思って議論を進める。

(実際には、呼び方を変えただけで同じものである。ただ、微分多様体と呼ぶことにすれば、微分可能な多様体が本来持っている性質を新たに説明することなく使うことができる。次の段落で登場する用語「ベクトルバンドル」は、その代表例である)

 この1次元微分多様体 D は、任意の点で法ベクトルバンドルが定義可能である。数学の教科書では、N(D) のような書き方をしている場合もあるようだ。法ベクトルは、D 上のどの点を見ているかで向きが異なるが、局所的には(道路の一部分に注目して、その範囲では道路はまっすぐだと見なしても良いものとすれば)、法ベクトルは道路の進行方向と常に直交する。まあ、当たり前だ。

 ここで、1次元微分多様体 D の上の各点 p において、その点における1次元微分多様体 D の法ベクトルの方向を考える。その方向に短い距離 r だけ移動した位置は、点 p 及び 距離 r の関数として機械的に求めることができる。この点を S( p, r ) としよう。仮に、r を常に一定(例えば 4m )とすれば、これは単に、4m 幅の道路の縁を規定したに過ぎない。r も p の関数だと見ることにして、関数 r( p ) は連続だと仮定するならば、 S( p, r(p) ) は道幅が可変の道路縁を表現したものと考えることができる。

 ある程度数学的に厳密な書き方となるように心がけて書いたので、少しわかりにくいかも知れないが、以上のことをできるだけ数学的表現を使わないようにして言い換えると、

▽道路を shapefile のようなネットワーク構造でモデル化しているとき、

▽その「モデル化された道路線」から有限の幅を定義して

▽その幅の位置を二次元の道路区域の境界だと思えば良い

という当たり前の事実になる。

 厳密な書き方をしたのは、コーディングする際に間違いなく実装できるようにするため、処理アルゴリズムに予想しないバグを混入させないようにするため、それだけである。

 

 ここまでで定義できた二次元図形を、「ベルト・プリミティブ」と仮称することにしよう。

 

 ベルト・プリミティブは、D×N(D) の一部として表現される。2次元多様体であるが、N(D) 方向に縮退させる(連続的に変形させる)ことができ、縮退させた結果は D になる。連続変形なので、D と D×N(D) とはホモトープである。また、D×N(D) は D を底空間とする(ベクトルバンドルの言葉での)全空間だが、D×N(D) の任意の点から D への写像は、ベクトルバンドルにおける【全空間から底空間への射影】と同じである。(そのように構成したのだから、当然そうなる)

 ベルト・プリミティブを構成するまでは、数学的にゴチャゴチャ書いたが、要するに、ベクトルバンドルをはじめとする幾何学の知識がそのままこのベルト・プリミティブで成立するようにモデル化しましたよ、と言っているに過ぎない。数学に明るい人が読んだら「何を当たり前のことにこんなに紙面を費やしているのか」という感想を持つのではないか。


 ここまで、1次元微分多様体としてモデル化された道路の向きについては余り述べてこなかった。1次元微分多様体 D は向き付け可能なので、道路ネットワークを有向グラフとすることができる。対向車線があるような(一般の)道路は、一対の有向曲線が位置は同じで互いに反対の向きで定義されているものとして考える(昔からのグラフ理論の考え方と同じ)。現実には、この有向曲線の位置は、道路のセンターラインを取得するのが自然だろうが、この項ではそれは必須ではない。

 

 上り線のベルト・プリミティブと下り線のベルト・プリミティブを一対で定義して、これらは互いに境界(の一部)を共有しているものとして考えれば、ごく一般的な対面交通の道路がモデル化できたことになる。

 

 S( p, r(p) ) に加えて、S( p, 2r(p) ) も考え、2r(p) 幅が道路だと考えることにすれば、片側2車線の道路をモデル化できたことになる。3車線以上も同様である。また、r(p) が 4m から 6m までのエリアを路側帯などと定義することも可能であろう。バス停などで部分的に道路幅が広くなっているところも、その部分だけ r(p) が大きくなったものと考えれば良い。進行方向右側も同様に考えることは可能である。

ーーーー

 一次元のモデルでは、交差点は一点で表現された。1次元複体では、0次元辺単体が交差点の表現であった。二次元のモデルでは、もう少し複雑になる。

 一番単純な例として、一方通行の道路2本が平面交差している場合を考える。線図系ならば、ノードに4本のアークが接続している部分である。
 2本のベルト・プリミティブが交差している。いずれのベルト・プリミティブも、地表面のような大域的な二次元空間に埋め込まれているので、交差している部分は点集合としては共通部分になる。ベルト・プリミティブの数学的な構造は忘れて、単なる二次元図形だと思って共通部分を求めると、その部分が交差点区域になる。当たり前だ。

 

 ノードが4本のアークに接続していること(あるいは、2本の路線がある点で交わっていることは)、2本のベルト・プリミティブが適当な領域だけ、接着写像で同一の場所を占めていると考えれば良い。

 道路の位置を、路線単位で基点からの距離で表すこととした場合、路線A の u km 地点と路線B の v km 地点とが同じ地点を表していることは、明示的には分からない。しかし、交差点の位置を( ( A, u ), ( B, v ) ) で表現することにすれば、これがそのまま接着写像の定義に結びつけることができる。路線A と路線B とは別々のベルト・プリミティブだが、それぞれを1次元図形にホモトピー変形すれば、ちゃんと見慣れた一次元複体が得られる。

 交差点が三叉路の場合でも同じである。ノードから3方に伸びる線要素に対して、それぞれベルト・プリミティブを考えることができる。それらは、交差点付近で共通部分を持つ。

 交差点内で右左折可能な場合は、さらに複雑になるが、直進路、右折路、左折路などの全てについて、短い走路を一次元で定義しておき、それら全てにベルト・プリミティブを定義し、共通部分の和集合を交差点部分と見れば良い。

 1次元複体で定義した場合は、右左折の可否を明示することができなかったが、ベルト・プリミティブとその共通集合の和集合として交差点を定義した場合は、右左折の可比は対応するベルト・プリミティブの存否で明示的に規定できる。この意味で、ベルト・プリミティブは、より現実に近いモデルだと言える。

 

ーーーー

 

 さて、ここまでの記述は、私が勝手に考えたアイデアである。実際に、道路モデルを標準化する場合に、どのように議論が進むかは分からない。関係者には、このアイデアを示してみようと思うが、どうなるかな。