ホームページへ戻る
「確定探索付き再帰」を用いて雑誌系定番パズルの「お絵かきロジック」を解きます。自力で何問か解いてみると基本的な解き方のテクニックが見えてくるので、それを「確定探索」に使用するために先ずそれを説明します。その後に全体の探索システムを組み上げてみます。
このパズルの基本的な解法は、縦列・横列それぞれの1列だけに着目したアプローチです。 縦列で確定した情報は横列の確定探索に影響を与えるという互いの相乗効果が連鎖的に働きます。(制約伝播) (1)重なりを調べる わざわざ説明するまでも無い基本技として、[■の塊]を矛盾なく出来るだけ左に寄せた場合と、出来るだけ右に寄せた場合との間で同一の■や×の塊が重なり合う部分は確定できます。 (2)背理法を用いる 「ある仮定によって矛盾した結果が導き出される時、最初の仮定は否定される。」という背理法を用いると、重なりを調べただけでは検出できない「実際は確定出来る場所」も確定することが出来ます。
さて、確定探索部は出来ました。後は「確定探索付き再帰」の型枠に組込むだけですが、ちょっと待って下さい。 確定探索が2つあります。また、マス目が多いので再帰によるスタックオーバーも心配です。
(a) 確定探索が複数あるときは、処理の軽い方を優先して実行されるように積み上げます。(この場合は重なり探索)
初めに、Visual Studio Community(無料) のインストールが必要です。 インストール中、最低でも次の2つのモジュールにチェックを入れて下さい。
ホームページへ戻る |