GeoGuessrのヘッジ、どこにピンを刺せばいいのか問題
この記事は 2025 TSG Advent Calendar 4日目の記事です。昨日の記事は、ゆみやさんの 自分がセルフホストしているソフトウェア環境まとめ【2025年12月版】 - Project Fx 2.0 でした。
* * *
突然ですが、ここはどこでしょう?
GeoGuessrをやっていると、こういう景色で「**ギリシャ** か**イタリア** か、**スペイン** もあるな……」「とりあえず真ん中あたりの海に刺しておくか~」と悩むシチュエーション、ありますよね❓え、ない?
* 2地点のどちらかで迷っているとき
* 同じ国の中で、3〜4地点くらい候補があるとき
* 「マレーシアのどこか」「インドネシアのどこか」のように、ざっくりしか分からないとき
など、悩ましい局面はいろいろありますが、最後はどこか1か所にピンを置くしかありません。こうした場面で有効な戦略が、どこが正解でも平均的に高い点数を取れるような位置にピンを置く**「ヘッジ (hedge)」** です。
この記事では、
> **「GeoGuessrでヘッジするとき、結局どこにピンを置けば一番トクなのか?」**
を、シチュエーションごとに解き明かしていきます。
注:この記事において「トク」というのは、スコアの期待値が最大になる、という意味です。点数の分散は考慮しません。また、Duelsなどの対戦モードにおける最適戦略とは厳密には異なります。
ちなみに最初の画像の場所は、**AI生成なので存在しません** (カス)
generated by Nano Banana Pro
### TL;DR
先に結論だけ雑に書いておくと:
##### 候補が**2択だけ** のとき
真ん中に置かない方がいい。**「より正解っぽいと思う方に全振り」** が点数期待値最大
##### 候補が**近い距離で3択以上** あるとき(小さい国の複数都市など)
候補の**真ん中寄り** に置いた方が得になる場合がある
##### 候補が**広い範囲の何か所か** に離れて分布するとき
遠くに外すとどうせ点数はほぼゼロになるので、**一番ありそうな国・クラスターに寄せて刺す**のが得
##### **海を挟んだ複数の地域が候補になっているとき**
地点分布や距離によって、「どちらかの陸に寄せるのが得」「海にヘッジするのが得」が変わる。 実際の最適地点は **期待値計算ツール** で調べてみよう
### GeoGuessrの点数はどう決まっている?
GeoGuessrの点数は、正解地点からの距離に応じて指数関数的に減っていきます。
> 正解から \\( d \\) キロメートル離れると、点数は \\( S(d) = 5000 e^{-K d} \\)
* \\( d = 0 \\) だと(正解地点に置けると)5000 点
* 距離が離れるごとに、一定の割合でスコアが減っていく
* \\( K \\) は点数のシビアさを決める係数。マップごとに違うが、ACWだと大体 \\( K=0.00054 \\)くらい
ACWの距離と点数の相関
### 2択のヘッジで真ん中に置くのは、損
#### 直感的には真ん中に置きたいかもしれないが……
たとえば、(そんな状況があるかはさておき)「うーんこれ、**ギリシャのあそこ**か、**イタリアのあそこ** の2択に見えるな……」という状況があったとします。
ここで 🤔「じゃあ間を取ってアドリア海あたりにピンを刺しておこう!どっちに転んでも平均的にはいいスコアでしょ!」という、真ん中ヘッジをすると、**期待値的にはこれは常に損** です。
#### ざっくり数値を見てみる
以下は概算の例ですが、雰囲気は掴めます。ギリシャ→中間地点→イタリアで、スコアが3割ずつ減っていくとすると、
ピンを置く位置 | 正解がギリシャ | 正解がイタリア | 期待値(確率50%ずつ)
---|---|---|---
ギリシャ | 5000点 | 2450点 | **3725点**
中間 | 3500点 | 3500点 | 3500点
イタリア | 2450点 | 5000点 | **3725点**
真ん中に置くと「当たったときの最大点(5000点)」を自分で削りにいってしまう一方、外れたときに救える点は指数関数の性質上ほとんど増えません。したがって期待値的には、**どちらかに全振りした方が得** です。
アテネとヴェローナで2択な場合の得点期待値
正解地点近くの点数の減衰が大きいので、なんとなく納得はできると思います。極端な例(日本とスイスの二択)で考えたりしてみると、直感が生えやすいかもしれません。
#### 結論:2択ならどちらかに寄せるのが期待値最大
候補が2地点だけなら:
> **「自分がより当たりそうだと思う方」にピンを置くのが、常に期待値最大** (中間には置かない)
「51% vs 49%でこっちかな?」くらいでも、 **真ん中より、51% 側に全振りした方がスコア期待値としては得** です。
### 3択以上のヘッジだと、どこが最適かは場合による
さて、ここからが本題です。候補が**3か所以上** あっても、常にいずれかの候補地点が最適なヘッジ地点になるでしょうか?
……答えは **No** です。では具体例を見てみましょう。
#### 3点が互いに近い場合、「真ん中」に置くのが最適
たとえば、東京、名古屋、新潟の3か所を同じくらいの確率で悩んでいたとします。
このように、候補の3点が互いに近い距離の場合、ある1点にクリック地点を寄せようとすると、他の2点が正解だった場合の減点の影響のほうが大きくなります。
東京、新潟、名古屋の3点で迷った場合の得点期待値。長瀞あたりに刺すのが最適
ということで、こういうケースでは、
> いずれかの候補の上にピンを置くより、**候補の真ん中らへんに置いた方が得**
になったりします。詳しくは「それぞれの候補からの距離の平均が最も小さくなる場所」が最適ヘッジ地点の近似としてよいです。そのあたりの理由は最後の付録で解説します。
ざっくり感覚としては、ACWの場合は直径600kmくらいの範囲に候補が固まっていれば、その中の真ん中寄りに置いた方が得です。
それぞれの候補が複数地点のクラスタになった場合も同様です。このケースでは**真ん中をねらって打つのが強い** です。
東京都、新潟県、愛知県で迷った場合の得点期待値、最適な地点
#### 候補が世界に散らばっているときは、どれかに寄せて打つ
一方で、これが**1000kmを越えるスケール** になってくると話が変わります。たとえば、バンコク、ダッカ、コロンボの3か所で迷っているとします。
それぞれ互いに**めちゃくちゃ離れている** (約1500~2000km)ので、
* どこか 1 つの真上に置いて当たったとき:5000 点
* それ以外の 2 つが当たりだったとき:千km 単位で外す → どうせ数百点しかもらえない
という構造になります。
このとき、「3国の真ん中」あたりに刺しても、当たりに対しても外れに対しても数千km 外すので、結局どれに対しても大きく外してしまい、**平均すると「どれか1国に振り切って当たるのを祈った方がマシ」** です。
バンコク、ダッカ、コロンボで迷った場合の得点期待値、最適な地点
ここで効いてくるのが、最初に説明したスコア計算式 \\( S(d) = 5000 e^{-K d} \\) です。 外した距離 \\( d \\) が数千km単位になってくるとほぼ 0 点扱いになるため、「遠い候補は無視してOK」という雰囲気がより強くなります。
なので、世界マップのような広いスケールでは、こういう結論になります。
> 離れた複数か所の候補で迷っている場合は、**「どのクラスターを信じて刺すか」が大事**
それぞれの候補が複数地点のクラスタになった場合も同様です。このケースでは**どれか一つのクラスタを選んで打つのが強い**です。ただこの例は候補の配置がやや悪いので、バングラデシュ一択ですが……。
タイ、バングラデシュ、スリランカで迷った場合の得点期待値、最適な地点
### 実践的なケースを見てみよう:その海ヘッジ、実は損?
ここまでの話はかなり手計算っぽいノリで、簡単な状況だけを考えてきました。最後に、もっと実践的なケースで、どこに刺すと期待スコアが最大になるか?をすこし計算してみましょう。
今回の記事のために、**「地点一覧を読み込んで、どこに刺すと期待スコアが最大になるか?」** を計算するツールを作ってみました。突貫工事なのでシンプルです。
github.com
実際にここから試せます。
mug.sh
機能はこれだけです。
* GeoGuessrのカスタムマップJSON(地点一覧)を読み込む
* 得点期待値が一番大きい地点を探す
* ついでにヒートマップを描画する
では、このツールを使って、陸地と陸地の間にヘッジする、いわゆる**「海ヘッジ」** の是非を解析してみます。 対象は**マレーシア** と**インドネシア** とし、地点分布のデータには、いくつかのマップの出題地点を混ぜて使います。
#### 海ヘッジ 1:マレーシア編 — 半島側に置くべし。海ヘッジは損
マレーシアはざっくり、大陸側の**半島マレーシア** とボルネオ島の**東マレーシア** の 2 つの地域に分かれています。この2つのエリアで迷って、マレー沖にピンをヘッジしたことがある人もいるのではないでしょうか?
しかし、得点の期待値を計算してみると、
> 「ボルネオか本土かで迷って海にヘッジする」より、**バッサリ半島側に寄せて、その真ん中に刺した方が得**
という結果になります。
マレーシアのヘッジ得点期待値。半島上の青い点が期待値最大
というのも、マレーシアの出題地点は、**本土側に地点が偏っており、ボルネオ側は少なめ** という構成のマップが多いです。その結果、
* 「半島マレーシア」の真ん中付近に置いたときの期待値が最大
* 「半島とボルネオの間の海あたり」に刺した場合:
* 半島が当たりなら、それなりの距離を外してしまう
* ボルネオが当たりならちょっとおいしいが、そもそもボルネオ地点の数が少ない
* → トータルの期待値としては**半島側の真ん中に負ける**
ボルネオ側にロマンを感じて海ヘッジしたくなりますが、**期待値的には半島全振りが合理的** です。
#### 海ヘッジ 2:インドネシア編 — 海ヘッジが強い
一方、インドネシアは事情がだいぶ違います。
多くの島を持つ国土ですが、**スマトラ** 、**ジャワ** 、**カリマンタン** 、**スラウェシ** など、GeoGuessrの地点も**島ごとにかなり分散して** 配置されているマップが多いです。
この場合、
> **「真ん中」あたりのジャワ海** に置くと、どの島が当たっても「そこそこ中距離の外し」にできる
という状況になります。
実際に、インドネシアの地点リストで期待値ヒートマップを描くと、**ジャワ海あたり** に「期待値的に一番おいしいゾーン」が出てきます。要するに、インドネシアでは**海ヘッジがちゃんと合理的な戦略になりえます** 。
インドネシアのヘッジ得点期待値。ジャワ海上の青い点が期待値最大
マレーシアと見比べると、
> * マレーシア:本土に地点が偏っている → ボルネオ/海に寄せるのは損
> * インドネシア:島ごとに地点が分散 → 海ヘッジがむしろ最適寄り
>
という、同じ「海を挟んだ国」でもかなり違う性質が見えてきます。
### まとめ:実戦でどう使うか
ここまでの話をまとめると:
* GeoGuessr のスコアは距離に応じて指数関数的に減る
* **2択** ヘッジでは「中間」は常に損で、**確率が高い方に全振りが正解**
* **3択以上** で、
* **近い範囲** に固まっているなら、**真ん中寄りが勝つ** こともある
* 候補が**世界に散らばっている** ときは、**「一番ありそうなクラスターに寄せる」方が得**
* 海ヘッジについては:
* 地点が一方の地域に偏っているマップ(**マレーシア** など)では**海ヘッジは損**
* 地点が島ごとに分散しているマップ(**インドネシア** など)では**海ヘッジが有力**
あとは、自分のプレイスタイルに合わせて、
* 期待値最優先で攻めに行くか
* あえてロマン込でちょっと損なヘッジを楽しむか
を選ぶのが良いかなと思います。
### 付録:得点期待値最大化のもう少しちゃんとした計算
ここからは少しだけ数式多めで、お気持ちの議論をします。
#### モデルのおさらい
* 距離空間 \\( (M,d) \\) を考える。
* 正解の位置 \\( X \\) は候補点 \\( x_1,\dots,x_n\in M \\) のいずれかで、 \\( \mathbb{P}(X=x_i)=p_i \\)、ここで\\( \sum p_i=1 \\)。
* ピンを置いた位置を \\( g\in M \\) とする。
* 距離 \\( d(g,x) \\) に対して、得点を \\( S(g,x) = 5000 e^{-K d(g,x)},\quad K>0 \\) で定める。
このとき得点の期待値は
$$ \mathbb{E}[S(g,X)] = 5000 \sum_{i=1}^n p_i e^{-K d(g,x_i)}. $$
> 「期待値最大化問題」は
>
> $$ \max_{g\in M}; F(g),\quad F(g):=\sum_{i=1}^n p_i e^{-K d(g,x_i)} $$
>
> を解くことになる。
#### 候補が2択だけのとき:端点が必ず最適
候補が A,B の2択のみで、それぞれの確率を \\( p \\) と \\( 1-p \\) とする。
* A,B 間の最短経路を弧長パラメータ \\( t\in[0,D] \\) で書いて \\( \gamma(0)=A,\ \gamma(D)=B \\)
* クリック位置 \\( g=\gamma(t) \\) に対して $$ d(g,A)=t,\quad d(g,B)=D-t $$
すると、得点期待値(以下、5000 は定数なので省く)は
$$ f(t) = p e^{-Kt} + (1-p) e^{-K(D-t)}. $$
これを \\( d \\) に関する1変数関数として見る。
##### 凸性の計算
$$ \begin{aligned} f'(t) &= -Kp e^{-Kt} + K(1-p) e^{-K(D-t)},\\\ f''(t) &= K^2\left(p e^{-Kt} + (1-p) e^{-K(D-t)}\right) > 0. \end{aligned} $$
したがって \\( f \\) は区間 \\( [0,D] \\) 上で**厳密に凸** 。
凸関数の性質として、区間上の凸関数の最大値は端点でとる。よって、
> **命題 1(2択ヘッジ)** 2点 A,B のみが候補のとき、 期待スコアを最大にする点は必ず A か B のどちらかであり、 A–B の「中間」に置くのが最適になることはない。
どちらの端点が良いかを比べるには、
$$ f(0)=p+(1-p)e^{-KD},\quad f(D)=pe^{-KD}+(1-p) $$
を比較すればよい。差は
$$ f(0)-f(D) = (2p-1)(1-e^{-KD}). $$
* \\( D>0\Rightarrow 1-e^{-KD}>0 \\)
* よって \\( p>1/2 \\) なら A が最適、\\( p<1/2 \\) なら B が最適、\\( p=1/2 \\) ならどちらでも同じ。
#### 3点以上で、かつ「互いに近い」場合:geometric medianに近づく
今度は候補が \\( n\ge 3 \\) 点、全部近くに固まっている状況を考える。 簡単のため
* 空間は \\( \mathbb{R}^2 \\)(ユークリッド平面)
* 確率は等しい \\( p_i=1/n \\)
* 全ての候補が半径 \\( R \\) 程度の円盤内にあり、\\( KR\ll 1 \\)(距離スケールが小さい)
とする。
##### 指数関数を一次まで展開する
距離 \\( d(g,x_i) \\) が十分に小さいときは
$$ e^{-K d(g,x_i)} = 1 - K d(g,x_i) + O( (Kd)^2) $$
とテイラー展開できる。これを期待値に代入すると、
$$ \begin{aligned} \mathbb{E}[S(g,X)] &\approx \frac{5000}{n}\sum_{i=1}^n (1 - K d(g,x_i))\\\ &= 5000\left( 1 - K\cdot\frac{1}{n}\sum_{i=1}^n d(g,x_i) \right) + O(K^2R^2). \end{aligned} $$
定数項と係数は最適化には関係ないので、一次近似レベルでは
> **期待スコア最大化** \\( \Leftrightarrow \\) **平均距離**
>
> $$ \Phi(g) := \frac{1}{n}\sum_{i=1}^n d(g,x_i) $$
>
> を最小化する問題
したがって、GeoGuessr のスコアは指数関数だが、候補点が比較的近い範囲にある場合、指数を一次近似すると **“距離の和を最小化する点” (geometric median)** が最適ヘッジ地点の近似になる。
##### 3点の場合とフェルマー点
特に \\( n=3 \\) のとき、三角形 \\( \triangle x_1x_2x_3 \\) の
* 全ての角が \\( 120^\circ \\) 未満:各頂点からの距離和 \\( \sum|g-x_i| \\) を最小化する、三角形内部の一点(**フェルマー点**)が存在する
* どこかの角が \\( 120^\circ \\) 以上:その鈍角頂点が各頂点からの距離和最小
になることが知られている。
小距離・小 \\( K \\) の近似のもとでは、
* 前者のケースでは → 期待値最大の点は 3 頂点の真上ではなく三角形内部(フェルマー点付近)
* 後者のケースでは → 期待値最大の点は鈍角頂点の真上
になる、という対応になる。
#### 付録まとめ
* 2択ヘッジ
* → 凸性から「必ず端点が最適」
* 3点以上・近距離
* → 線形近似で「距離の和の最小化」に帰着
* → geometric median(3点ならフェルマー点 or 鈍角頂点)
* 3点以上・一般配置
* → geometric median問題+指数重み付き
* → 解析的解法は基本あきらめて数値最適化
本文で出てきた実戦ルールは、このあたりの性質をざっくり噛み砕いたもの、という位置づけになる。