萌えハッカーニュースリーダー

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

出典: https://github.com/brianberns/Pips
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

えっと… dominoes ですよね?

hakase
博士

正解!…って、ドミノだけに、当然(当然=トーゼン)か!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search