← ShuGo トップへ

ShuGo は「みんなの移動時間・距離・運賃」から集合場所を提案します。どういう計算で、どのデータを使い、どこまでが概算なのかをこのページで公開します。結果を信じてもらうために、根拠を隠さないのが本アプリの方針です。

1.全体の流れ

  1. 参加者ごとに出発駅移動手段(徒歩・電車・車・タクシー・自転車)を入力します。
  2. 参加者の位置関係から集合の候補になる駅を絞り込みます(第2節)。
  3. 候補ごとに全員分の移動時間・距離・運賃を求めます(第5節のデータ出典)。
  4. 選んだ評価軸(第3節)と公平性のとり方(第4節)でスコアを付け、順位を出します。
  5. 上位の候補を、1位との差つきで並べて提示します(第7節)。

2.候補地点の作り方

地図上のあらゆる点を検討するのではなく、を候補にしています。理由は2つです。

候補の作り方は次のとおりです。

3.4つの評価軸

評価軸何を小さくするか
時間最短各参加者の移動時間
距離最短各参加者の移動距離
料金最安各参加者の交通費
バランス+ごはん時間・距離・料金を無次元化して加重和にしたうえで、周辺の飲食店の多さ(ランチ/ディナーで切替)も加味

結果画面では総合スコアだけでなく、時間・料金・公平性の内訳を棒グラフで表示します。スコアの中身を完全に隠すことはしません。

4.公平性のとり方(minimax)

「全員の移動時間の合計」だけを小さくすると、一人だけ極端に遠い場所が選ばれることがあります。合計は小さくても、その一人にとっては最悪の解です。ShuGo はこれを避けるために、公平性のとり方を選べるようにしています。

設定意味向いている場面
みんな公平(既定)いちばん損をする人の負担を最小化します。数学的には minimax(最大値の最小化)です。誰か一人に無理をさせたくないとき
全体最適全員の合計をいちばん小さくします。全体の移動量を抑えたいとき
均等重視負担のばらつきを最小にします。「全員だいたい同じくらい」にしたいとき

既定を minimax(みんな公平) にしているのは、単純な合計最小化とは別の解が選ばれる場面が実際にあるからです。「なぜここ?」の画面では、いちばん遠い人が誰で、その人の負担が何分になるかを明示しています。

5.データ出典

用途出典
駅の位置・駅名・路線国土数値情報(鉄道データ N02)/国土交通省
徒歩・自転車・車・タクシーの所要時間と距離Google Maps Platform — Routes API
周辺の飲食店(名称・評価・営業時間・写真)Google Maps Platform — Places API
電車の所要時間・乗換ls8h Transit API(日本の鉄道に対応した経路データ)
電車の運賃ls8h Transit API。データが無い区間は距離からの概算にフォールバック
車・タクシーの料金距離からの自前推定(タクシーは距離換算、車はガソリン代換算)

地図の表示にも Google Maps Platform を使用しています。

6.精度の限界(重要)

算出結果は意思決定の目安であり、実際の移動を保証するものではありません。次の点をあらかじめお伝えします。

正確な運賃・時刻は、各鉄道事業者や経路検索サービスでご確認ください。

7.1つの「正解」は出しません

集合場所には、値段・時間・行きやすさなど数値にできない事情があります。ShuGo は1候補だけを正解として押し付けません

8.広告と算出の分離(ファイアウォール)

集合場所の算出に、広告・掲載料を一切反映しません。 これは本アプリの根幹の原則です。

この分離は方針の表明にとどめず、自動テストで固定しています。