タグを編集する輸送時間についてのまとめこんばんは。今回は、ブラックボックスとなりがちな輸送時間についての定量的な計算方法を解説します。0.輸送時間の仕組み(結論)結論から申し上げると、輸送時間は、下記の計算式によって導けることがわかりました。=(0.15×(マンハッタン距離)^2+50)/(輸送速度[%])...1とはいえ、初見では何のことかさっぱりわからないかと存じますので、順を追って説明していきます。1.輸送速度まず、輸送についてです。1に示したのでご参照ください。優待状態の場合は、店舗形態、レベルにかかわらず輸送速度が50%加算される仕様になっております。運送屋(輸送特化),レベル9,優待ありですと、150%+50%=200%が輸送速度となります。その他基本店舗、ファクトリーと分類しています。続いては、距離について説明していきます。相手の座標が(x2,y2)だとしましょう。距離といえば、通常はユークリッド距離d=√((x2-x1)^2+(y2-y1)^2)がおなじみです。私も始めはこの距離を前提に計算していたのですが、輸送時間との関係性を導くことはできませんでした。その後、有志の方の検証により、近距離の店舗との輸送時間の関係が明らかになりました。その結果、SO2で使われている距離は、ユークリッド距離ではなくマンハッタン距離に従うことがわかりました。マンハッタン距離とは、d=|x2-x1|+|y2-y1|であらわされます(||は絶対値)。これは、x方向もしくはy方向どちらかに1マスずつ動く(斜め横断はできない)と考えたとき、最短距離で相手座標にたどり着く条件となります。マンハッタンという都市が京都と同様に碁盤目状になっているようで、タクシーの移動距離などの計算に使われているようですね。SO2でも、妖精さんは斜め横断ができないようです。1で述べられておりますが、これはxの距離差とyの距離差のうち大きいほうを距離とする、というチェビシェフ距離を用いています。d=max(|x2-x1|,|y2-y1|)(進んだ問題)店舗競合範囲に用いられる距離は、マンハッタン距離なのか、チェビシェフ距離なのかは気になるところですね。販売妖精→?3.一般的な座標定義さて、次に座標について説明します。自分の位置を把握しましょう。これはお店情報やステータスから確認できます。上のように、街名(x,y)といった形で位置が表記されています。後ろの(x,y)というのが、街の中での座標を表しているのですが、図1の全体マップをご覧いただけるとわかりますように、それぞれの街にも原点座標が存在します。赤い枠のエリアが各街の場所になります。ここから原点の座標を導きだすことは困難ですが、実は公開されているAPIの街定義にて正確な値を知ることができます(マップのピクセルに対応しているらしいです)。私の例ですと、ルビー街(31,47)なので、全体の座標はこれにルビー街の原点座標(430,440)を足したものになります。(461,487)です。このような形で相手の座標も計算することができます。各街の原点座標4.輸送時間計算それでは、0章で述べた1式について解説していきます。(i)自店舗の輸送時間まず、自店舗の輸送時間について考えていきましょう。この場合、自店舗も相手店舗も同じ座標になるため、マンハッタン距離d=0となります。輸送時間[min]=50/(輸送速度[%])となります。この結果から最短輸送時間は、輸送速度にのみ依存するということがわかります。同様に、優待状態では20秒となります。次に、お相手の座標をいくつか例にだして計算してみましょう。(ii)同街での輸送時間計算まず簡単のため、同じ街の方から計算してみましょう。私はマーケットレベル10なので、輸送速度は表1より、166%です。輸送時間=(0.15*60^2×1.5+50)/166=3.554(min)となります。余りの部分は切り捨てで表示されるため、表示時間は”3分”となります。上の画像と一致しましたね。続いて、街間での輸送時間を計算しましょう。今回は、全体の座標に直して計算します。輸送時間=(0.15*500^2+50)/166=226.2(min)となります。実際の値が3時間46分なので、こちらも一致することがわかります。全体の座標を定義することで、マンハッタン距離を一般的に求め、1式を適用できることが明らかとなりました。この結論を見ると衝撃的かもしれませんが、実は道は輸送時間に関係ないという結果となりました。2つが可能性として挙げられておりましたが、この結果から2の輸送時間に関しては否定的となりました。住民関連の検証は困難なため、道の効果については謎が深まるばかりですね。(余談というか素朴な疑問ですが、輸送時間の算出に距離を2乗するのはなんででしょうかね。昔私が考えたときは、妖精が距離の概念を持たないため、魔方陣のようなものを二次元的に広げていって、目的値の距離にたどり着くまで伸ばす、という仮説を立てていましたが、矛盾だらけでした。妥当な説明を思いついた方はコメントいただけるとうれしいです。)5.輸送時間計算シートさて、前章ではめんどくさい計算をしてきましたが、これを踏まえた輸送時間計算シートを作成いたしました。https://docs.google.com/spreadsheets/d/1YR8jQ5cdKrxFWR-30YSpotwgtAnSM2z-HP51PZQuHF8/edit#gid=801343269(改装ループ研究所の組合スプシになっているため、ほかのシートがいろいろあります。“輸送時間計算シート”のタブからご使用ください。)・使い方1上の段:プルダウンリストから、店舗形態、レベル、優待の有無を選択します。相手の座標も同様に入力する3黄色のマーカーに結果が表示される輸送経験値を稼ぎたい方などは、輸送時間の計算も重要な要素となるかと存じます。本シートを活用していて引っ越しの一助となればうれしい限りです。権限などは設定しておりませんので、ご気軽にお使いください。バグなどの恐れはありますので、もし不具合等ありましたら私にご連絡いただければ幸いです。輸送時間計算シートに秒数表示を追加しました。近くの店舗との時間計算にもご利用いただけます。分表示を同じく、小数点以下は切り捨てで表示しています。追記オパール街を追加しました。超長距離の輸送時間計算をお楽しみください。最後に本記事はtwitterで有志の検証がおこなわれ、導かれた結論です。大分前に検証されてから埋もれてしまったため、形として残すために取り急ぎ記事としました。検証いただいた方には厚く感謝御礼申し上げます。2018.11.06追記この記事を投稿して1日経過し、赤街の方からフィードバックをいただきました。ご指摘いただいたアドバイスを参考に修正したところ、前回投稿の時に問題として残った誤差をなくすことに成功しました。この場で厚く感謝申し上げるとともに、記事を修正したことを報告します。✖️ログインが必要ですセクレタリIDでログインログインパスワードを忘れた方SNSアカウントでログインTwitterアカウントでログインセクレタリのご利用は初めてですかメールアドレスで新規登録Twitterアカウントで。