ダイナミックフォーシングチェーン
ダイナミックフォーシングチェーンは、1つの明示的な仮定から始まり、強制されるすべての帰結を一時的な候補状態に適用します。その状態で生成された新しいシングルや他の推論がチェーンを拡張することがあります。証明が矛盾または網羅的な結論に達して解消するまで、すべての中間結果は開始仮定に条件付けられたままです。
ダイナミックフォーシングチェーンとは?
ダイナミックフォーシングチェーンは、フォーシングチェーンと同じ2分岐の強制推論ネットを使用しますが、各パスは以前に導かれた帰結を後の強ノードとして再利用できます。この再利用により、パスは開始仮定だけでなく、以前に証明された帰結によっても強制される位置を探すことができます。
解説付きの実例
動的強制チェーンの実例:強制された帰結を一時的な候補状態に適用し、新たに生じるシングルによって分岐を伸ばして結論を導きます。
ステップ 1
これらのセルを確認してください。
ステップ 2
A1 は値 7 を含まなければならないと仮定します。矛盾によりその仮定は否定されます。下のチェーンがその理由を示します。 このダイナミック強制チェーンは動的グリッド変異(チェーン探索中に候補が削除される)を使って、A1 は値 7 を含むことができないことを証明します。 チェーン1 (仮定 ON): 1. もし A1 は値 7 を含む、ならば A9 は値 7 を含むことができない (値は列内で1回しか出現できません) 2. もし A9 は値 7 を含まない、ならば A9 は値 5 を含まなければならない (セル内の唯一残っている可能な値) 3. もし A9 は値 5 を含む、ならば A7 は値 5 を含むことができない (値はブロック内で1回しか出現できません) 4. もし A7 は値 5 を含まない、ならば A7 は値 9 を含まなければならない (セル内の唯一残っている可能な値). チェーン2 (仮定 OFF): 1. もし A1 は値 7 を含む、ならば C3 は値 7 を含むことができない (値はブロック内で1回しか出現できません) 2. もし C3 は値 7 を含まない、ならば C4 は値 7 を含まなければならない (列内の唯一残っている可能な位置) 3. もし C4 は値 7 を含む、ならば C4 は値 9 を含むことができない (セルには1つの値しか入りません) 4. もし C4 は値 9 を含まない、ならば A4 は値 9 を含まなければならない (ブロック内の唯一残っている可能な位置) 5. もし A4 は値 9 を含む、ならば A7 は値 9 を含むことができない (値は列内で1回しか出現できません).
ステップ 3
したがって、A1 7 を削除できます: ダイナミックフォースチェーンが A1 は値 7 を含むことができない を証明します。
この実例は定義された推論の有効な一例を示しています。別の盤面で同じ推論を使う前に、起点集合または仮定、すべての分岐が検証されていること、そして適用される結論が全分岐で共有されていることを確認してください。現在の候補状態を表示したまま練習するには、数独を無料でプレイすることができます。
見つけ方
各パスで、導かれた帰結を記録し、それらを後の強ノードとして再利用します。両方のパスが結論を強制する場合、その結論は開始仮定とは独立して成り立ちます。
論理
再利用により、パスは開始仮定だけでなく、以前に証明された帰結によっても強制される位置を探せるため、パスはより深い帰結を生成できます。両方のパスが結論を強制する場合、それは開始仮定とは独立して成り立ちます。