ヒューリスティックコンテストでは、一部の数値が与えられないタイプの問題が出題されることがあります。多くの場合はインタラクティブ形式の問題で、少しずつ与えられる情報で数値を予測していくことになります。 (例:AHC003, HTTF2022予選, HTTF2023本選, AHC018) こうした推定タイプの問題では、ベイズ推定が強力な手法となることがあります。 本記事はベイズ推定を使って問題を解いてみたい方の第一歩となることを目的としています(C++での実装例も載せました)。題材はAHC003としました。問題の概要は以下です。 30×30のグリッド(上下左右が辺で結ばれている)があり、各辺の長さは与えられない。 始点と終点が与えられるので経路を出力すると、その経路の長さ(±10%の誤差を含む)が返ってくる。これを1000回繰り返す。 出力した経路が最短経路に近いほど得点が高くなる。回数を重ね