ペルリ的な何かなブログ

Simutransとかいろいろ自由気ままに書き散らす

【Simutrans】locality_factorの挙動について 総括

放置して時間が経つと何を書こうとしてたのか忘れるので放置はよくないですね。

 

最終回の総括としてこの1年くらいでやってきたことを書き残していきたいと思います。

まず旅客(郵便)は前提としてほぼ同じ条件で発生するようです。

また、各建築物の旅客発生条件は1月くらいに書いた記事で触れたとおりです。

pm1965.hatenadiary.jp

そして、前提として各市内建築、本社、モニュメントは役場が存在し、所属する都市が存在しないと旅客が発生しないようです。

 

その1およびその続きではlocality_factorが実際に都市間距離に応じて旅客の発生量に影響を及ぼし、同一都市内と対特殊建築ではlocality_factorの値関係なしに旅客が発生することを実証しました。

また同一都市内と都市外への旅客発生はその比率がlocality_factorの値によって変わることもわかりました。

pm1965.hatenadiary.jp

pm1965.hatenadiary.jp

その3とその5においてはより実践的な2次元の平面的な空間においての旅客発生を観察し、同心円状に旅客発生の分布が生じることを検証しました。

pm1965.hatenadiary.jp

pm1965.hatenadiary.jp

その4では1次元的なマップに戻ってより長距離における旅客発生の状況を確認しました。

pm1965.hatenadiary.jp

いろいろやってきましたが、locality_factorの値によって、都市間の旅客発生量の調整ができるということは実証されました。

どのくらいの値にするのが…というのはなかなか旅客をどのように発生させたいのかというのとマップサイズや都市の数によっても変わってくるので一概に言えない話ですが、概ね以下のようなことが言えると思います。

・locality_factor=1の場合は大半の旅客が同一都市内で完結し、特殊建築へのアクセス客は距離関係なしに発生するので最もローカル線などで遊ぶに適しているか長距離客の発生は少ない。

・locality_factorをマップ対角距離の10%くらいに設定するとローカル線と都市近郊の通勤の両立ができる範囲かもしれません。

・locality_factorをマップ対角距離の50%程度にするとそろそろ距離関係なしに旅客が発生するようになり、マップ端の都市同士では多少旅客発生が少なめになる。

そんな感じでしょうか。

【Simutrans】役場と浮浪者・無職者について

そういえばと思って、Simutransの役場だけの都市ってどういう挙動してるんだろうということで検証してみました。

役場だけの都市

昔は役場だけの都市をマップ外の都市に見立てて…なんてことをやってる人もいましたが、そもそも役場だけの都市ってどういう旅客の発生なんだろうということで調べてみました。

locality_factorの検証用に使ったマップを転用して、旅客発生用の都市を中心に
①純粋に役場だけの都市
②てきとうに人口を増やした役場のみの都市
③②の2倍の人口を持つ役場のみの都市
④②と同じ人口の市内建築を含む都市
の4都市を用意してそれぞれの旅客発生を観察しました。

その結果が以下の通りです。

結果

このようになりました。
ということで役場だけの都市でも人口に応じて旅客発生が変化することがわかりました。

そして概ね役場だけの都市は同じ人口を持つ市内建築のある都市の半分の旅客が発生するようです。

今回はそんな検証でした。

【Simutrans】locality_factorの挙動について 番外編

総括の前に一つやることを忘れていました。

旅客(128jpにおいては二等旅客)についての影響は調べていましたが、郵便(128jpにおいては一等旅客)はどうのよというところです。

軽く調べたところ、旅客も郵便もlocality_factorの設定における影響は同じと考えて差し支えなさそうです。

locality_factor=100の郵便の湧き

その1くらいで使ったマップでサクッとlocality_factor=100のときの郵便の発生数を調べたところ、旅客と同じような感じになっていたので。

そんな話を忘れかけてたので更新しておきます。
次回の更新は今度こそいよいよ総括したいと思います

【Simutrans】locality_factorの挙動について その5

なんやかんやでlocality_factorの挙動についていろいろ検証してきましたが、この記事含めてあと2記事で終わりにできると思います。

こういう検証を進めるといろいろ疑問が出てくるわけですが、ほどほどのところで切り上げないとキリがありません。

今回のデータ採取はその3で使ったマップでデータの採り直しです。

pm1965.hatenadiary.jp

1次元的なマップでの旅客発生の挙動と長距離の旅客発生については概ねその4で方向性が見えてきたので再度2次元的なマップにおいての正確なデータ採取ができたのでこの記事ではそのあたりを貼っていき、次の記事で総括したいと思います。

 

60マス間隔の格子に人口36000人の都市を13×13で配置しています。

結果は概ねその3と同じなので結果だけ貼っていきます。

まずは端の都市からの結果です。

https://twitter.com/omoshirochiri/status/1692475448205455582?s=20

続いてマップ中央の都市からの結果です。

ざっくりとこんな感じになりました。

 

ようやく旅客の異常発生の原因も特定でき、データ採取がうまくいきました。

これまでの記事、これからの記事に関してはカテゴリーに[locality_factorの挙動]を追加しておきますのでこれまでの記事に関してもそこからアクセスできるようにします。

次回は総括でこの3か月間の検証をまとめていきたいと思います。

【Simutrans】locality_factorの挙動について その4

まだこれ続くの?って感じかもしれませんがまだ続きます。

調べれば調べるほど旅客の発生というものがいろいろ謎な挙動なのでいろいろ試行錯誤してるので記事ばかりが増えていきますね。

前回までのあらすじは先の記事のリンクを貼りますのでそちらを参照してください。

pm1965.hatenadiary.jp

 

概ね今回が最終回ってところですが、今回は細長いマップを10000マスまで生成して10000マスのときの旅客発生を見てみました。

きょうのマップ

10000マス以上の細長いマップに50マス間隔で駅と都市を設置してという、おなじみのやり方です。
都市の数は201都市、端の都市だけ市内相互の移動を見るために同一都市となっているのも同じ手法です。

その結果がコレになります。

10000マスにおけるlocality_factorと距離別の旅客発生

で、このグラフを見るとわかると思うんですが、異常値が出ています。

異常値のみの抜粋版

一部の都市に対して旅客が発生してなかったり明らかに多く発生しています。

この原因なのですが、検証に使ってる都市の人口というか使った建物がとても高レベル(1棟で人口30万人)というところに起因するんじゃないかと思って、都市の人口を4万7千人まで減らしました。

その結果、異常値が出なくなりましたので、旅客度が極端に高い建物が存在した場合には偏った旅客発生が生じる場合があるということがわかりました。

 

その対策をした結果が以下のグラフです。

locality_factorと都市間距離による旅客発生率の関係(改良版)

これだけ貼られても見えにくいので、範囲を絞って掲載していきます。

500マス圏内の場合は今までの検証に近い形となるので割愛します。

500マスを超える範囲においてはlocality_factorの値をマップ距離の50%程度まで設定すると距離に応じて旅客発生の数をある程度絞れると思います。

ただし、マップ端からの検証なので中央付近の都市からは山なりの形状になると思います。

ちなみに平均値は0.5%程度を基準と考えるとわかりやすいかと思います。

 

この連載も次でおそらく最終回となりますが、次回はまた平面上で観察してこの連載のまとめをやって終わりにしたいと思います。

【Simutrans】locality_factorの挙動について その3

なんやかんや3記事目になりましたlocality_factorの挙動についてですが、ほんとうは今回で最後にするつもりだったのですが、まだ足りないためもう1回くらい続きそうです。

前回までの記事のリンクをとりあえず貼っておきますのでまだ見てない方はそちらから先に読むといいと思います。 

pm1965.hatenadiary.jp

pm1965.hatenadiary.jp

今回はより実践的に一直線上に都市を配置するのではなく平面上に都市を配置した場合にどうなるのかというのを中心に検証していきます。

 

恒例となりつつある今回のマップですが、これです。

今回は碁盤の目です

670四方くらいのマップに60×60の格子状の道路を作り、その交点付近におなじみの都市を建設してその旅客の湧き具合を観察していきます。

ちなみに都市の間隔は60マス、13×13の碁盤の目を作り、都市の総数は169都市です。

これを作るのが面倒くさくて時間がかかりました。

これでもふた昔前の大きいマップ程度のサイズ感ですが、これ以上大きな検証用のマップを作るのもまた酷なので。

今回の記事のグラフはマップ端の都市における客の湧き方と中央の都市における客の湧き方を観察する手前、グラフは座標系で作成しています。

今回も乗り物をルートなしにして駅に客を貯めてたまった客の量をグラフ化しました。

早速ですがグラフをぺたぺた貼っていきます。

locality_factor=1のとき、マップ端(0,0)の都市からの旅客発生

locality_factor=1のときは同一都市内での移動が圧倒的に多いのは前回の記事の通りですが、都市の数が多いのでその比率は下がっているように思えます。

locality_factor=1のとき、マップ中央の都市(座標6,6)からの旅客の湧き

この二つのグラフから見てわかるように、locality_factorが距離に与える影響はマンハッタン距離ではなく直線距離であることがわかると思います。

続いてlocality_factorを48(マップの対角距離の5%)に設定します。

端の都市から

中央の都市から

まぁ、こんな感じになっています。

続いて84(対角距離の10%)にします。

端から

中央から

基本的に多少のばらつきがあるものの概ね前回の記事のグラフを回転体にしたようなグラフとなっています。

さて、問題はここからでlocality_factor=210にしたときのグラフを見ればわかると思います。

locality_factor=210のときのマップ端の都市からの旅客発生

210に設定したとき、なぜか四隅の都市への旅客発生が異常に多くなりました。

またこのときのマップ中央の都市からの旅客発生ですが、特定の都市への旅客が発生しない状況となり、中央からの旅客発生のグラフが作成できない状態となりました。

中央の都市の場合、一部の都市にしか旅客が発生してない

いろいろ原因を調べたかったのですが、よくわかりません。

対角距離の15%~30%程度の値を入れると端からの旅客発生に対しては四隅の都市に集中する傾向にあり、中央都市からの旅客発生はそれ以上の値にすると同様の症状となりました。(たぶんマップ内全体の人口が多すぎるせいなんじゃないかと思いますが…)

参考としてlocality_factor=300のデータも載せておきます。

よくわかりませんが謎の壁になっています。

最後に420(対角距離の50%)です。

相変わらず壁はありますが、概ね前回の記事の旅客発生を0,0座標を軸に回転させたらこんな感じになるんじゃないでしょうか。

 

そんな感じで今回の検証をしましたが、わかったこととしてはlocality_factorが旅客発生に及ぼす距離としてはマンハッタン距離ではなく直線距離だということです。

あともう1回くらいはlocality_factorと戯れることになりそうです。

【Simutrans】続locality_factorの挙動について

先月の記事に続いての記事となります。

pm1965.hatenadiary.jp

前回の検証はいろいろと手間がかかるのでマップを巨大化させるのに手間がかかったので高レベルの市内建築を用意して検証を楽にする目的が先日の記事で作ったアドオン群の一番の目的です。その検証はオマケ程度だったりします。

 

それで先月の記事では長さ400マス程度のマップを使ってデータ採取をしましたが、今回は1000マスを超えるサイズのマップを用意して都市も40個以上設置してみました。

今回用意したマップ

やってることは前回の検証と同じですが、高レベル市内建築のおかげでこの見た目でも1都市の人口は12万人となっており、旅客が短時間に大量に発生するため検証時間の短縮が見込めます。

今回も列車を出庫させてルートなしの状態としてその時に液に溜まった旅客の数で旅客発生を観察していきます。

で、その結果が以下の表となります。

locality_factorが小さければ標準偏差が大きく(ばらつきが多い)中央値は低くなります。(これは先月の記事でも言えることですが)

これを駅ごとの比率に換算してグラフにしたのが以下のグラフです。

先月のグラフと大差ないと思いました。気になってた500マス以上の範囲もlocality_factorの値が低くてもある程度の旅客が発生しており大きい場合は距離関係なしに旅客が発生していることがわかると思います。

ただ500マス以上の距離だとlocality_factorの値が大きいほど近距離よりも長距離客が多い傾向にも思えますが、単に市内建築の数が少なく高レベルの建物1つだけという状況が作り出してるようにも感じます。いずれにせよ、locality_factorの値がマップサイズと同等程度になってくると都市間を移動する旅客はその距離にかかわらず、同数程度発生するということがわかると思います。

 

さて、ここまで都市間に発生する旅客にのみ注目してきましたが、ここに同一市内を移動する旅客が混ざってきた場合にどうなるかというのを見ていきたいと思います。

 

そんなわけで端の1都市を削除して同レベルの市内建築を建てて、その旅客発生を観察しました。

あくまでも各駅の旅客発生度を揃えるため、同一市内の別駅であっても旅客度が同じになるようにしたほうがいいと考え、片端の都市は他都市に比べて人口が2倍になっています。

また手を抜いてマップ拡張をしてないので最長の都市間距離は24マス短くなっていますが、上のグラフを見る限りそれほどの影響はなさそうでしょうということにしておきます。

その結果が以下の表となります。(画像がでかくなって見にくいため途中省略してます)

locality_factorが小さい(1桁くらい)と市内移動の客のほうが多いですが、50を超えてくると市内客よりも同レベルの旅客発生度でも別の都市に移動する客が多くなり、マップサイズの半分くらい(もしかしたら絶対値で500?)になってくると最も遠い都市と同じくらいの数しか旅客発生しないということがわかります。

参考程度に市内移動客の偏差値も算出しています。

この結果も同様に比率に換算してグラフ化しました。

こうしてグラフ化すると可視化されてよく見えると思います。

基本的にlocality_factorと都市間距離の関係はそれほど変化がなさそうです。

このグラフだと近距離の関係がわかりにくいので400マス程度程度に範囲を絞ったグラフも貼り付けておきます。

こうしてみると、旅客は対ランドマーク、産業、市内建築と発生しますが、市内建築相互移動の旅客の中でも市内移動と市外移動に分かれているんじゃないかとも思えます。

実用上の環境となるとこの状況に加えて産業やランドマークも混ざってくるので実態とは異なってる部分も少なくないです。

最初に掲載した先月の記事でも触れましたが、市内建築対ランドマークはlocality_factor関係なしに各旅客度だけで旅客が発生しますし、産業に関しても決まった都市の市内建築としか旅客が発生しないので。

そんな感じの記事でした。