先月末くらいから頻繁に更新している弊ブログですが、今回のネタは何かと謎の多いlocality_factorについてです。
概要として年代によって旅客の発生する距離が変わるみたいなことは認識しててもなかなかその全容が見えない設定だったので、検証してみました。
なかなか検証方法が思いつかなかったのですが、結局このようなマップを用意しました。
20×384の細長いマップを生成し、中央に複々線の線路を用意。役場を1つ設置してあとは同じ建物を敷き詰めたマップです。
この状態だと役場のある駅以外はすべて集客範囲内の旅客発生が均一となり、距離によって旅客発生が変わらないのならば1つの駅からすべての駅に向かう客が同じくらい発生し、距離によって変わるのならば近い駅から順番に多くなると考えました。
これですべての駅に停車する列車を出してルートなしの状態にすれば各駅に旅客が溜まっていき、その溜まった旅客の数を見れば距離に応じた旅客発生がわかるという事です。
で、やりましたが、locality_factor=1の場合でも偏りが発生しませんでした。
結論として同一都市内においてはlocality_factorの関係なしに旅客が発生するという事がわかりました。
そこで今度は各駅ごとに都市を分けてそれぞれの駅で同じ市街地を作り、検証しました。
これで先ほどと同じことをした結果、待機客の行先に偏りが生じました。
これを3回繰り返し、locality_factorを変えて記録した結果が以下のグラフです。
locality_factor=1のときは近距離都市間の客が露骨に増えて、100マス程度で平均値を下回り、200マス程度以上の場合は同じくらいの旅客発生となりました。
小さめのマップでやっているので実用的な部分は何とも言えないところがありますし、都市間の距離も直線距離なのかマンハッタン距離なのか(根拠はないけどおそらく後者)も検証していませんが、ひとまずこのような結果となりました。
ついでに市内建築対特殊建築も検証してみましたが、locality_factor=1でも距離に応じての偏りがありませんでした。
市内対産業はその性質上、近隣都市のみに流動が発生し、距離に応じての影響が検証しにくいので除外しています。
結論
・locality_factorの距離は都市間の旅客のみが対象で同一都市内での移動には影響しない
・locality_factorが低い状態だと距離に応じて旅客の発生数が変わる
・locality_factorは特殊建築に向かう旅客の発生には影響しない
という感じでしょうか
ちなみに、なぜ都市間なのかというところですが、大昔のSimutrans(2006年のバージョン88.03以前)は市域のすべてから旅客が発生する仕様だったためその仕様の名残があるのだと思われます。