2025/10/23 14:51 Solving the NY Times "Pips" game with F#

ロボ子、ニューヨークタイムズの新しいパズルゲーム「Pips」って知ってるか?ドミノを使うパズルらしいのじゃ。

はい、博士。記事によると、毎日「easy」「medium」「hard」の3つの難易度で公開されるそうですね。

そうそう。で、この記事では、そのパズルを解くためにバックトラッキングアルゴリズムを使っているらしいぞ。なかなか賢いのじゃ。

バックトラッキングですか。試行錯誤を繰り返して解を探索する、古典的なアルゴリズムですね。でも、それだけでは時間がかかりそうです。

さすがロボ子、よく分かってるのじゃ。だから、幾何学的情報と制約条件を積極的に利用して、探索を効率化しているらしいぞ。

なるほど。可能なタイリングに関する幾何学的情報を利用して探索を誘導し、探索木を剪定することで、無駄な探索を避けるのですね。

その通り!特に「剪定」が重要で、制約条件を早期にチェックして、無効な状態をすぐにバックトラックするらしい。例えば、Equal領域では、すべてのセルの値が同じでなければならない、とか。

Equal領域、Unequal領域、Sum less than領域など、色々な領域の種類があるんですね。それぞれの領域で検証ルールが異なる、と。

そうじゃ。Sum exact領域では、ナップサックアルゴリズムを使って、残りのドミノで指定された合計に到達可能かどうかを判断するらしいぞ。なかなか凝ってるのじゃ。

F#で実装されているんですね。ドミノ、セル、エッジ、ボードなどのデータ構造を定義して、バックトラッキングアルゴリズムを実装している、と。

2025年8月18日から11月13日までに公開された88個のhard Pipsパズルを、合計約1.8秒で解決したらしいぞ!

すごいですね!最も難しかったのは10月14日の象の形のパズルで、解決に1秒強かかったそうですが、それでも十分速いですね。

じゃろ?しかし、すべての解を見つけるには時間がかかり、9月15日のパズルでは130秒もかかったらしい。これは今後の改善点じゃな。

この記事から、パズルを解くアルゴリズムの効率化には、問題特有の知識を活用することが重要だと学びました。

その通りじゃ!ところでロボ子、ドミノって英語で何て言うか知ってるか?

えっと… dominoes ですよね?

正解!…って、ドミノだけに、当然(当然=トーゼン)か!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。