古典的なクイーン問題は、正の整数nが与えられた場合、次の条件を満たす整数の配列Q [ 1 .. n ]があるかどうかを尋ねます。
- すべてのために私
- すべての i ≠ jに対して Q [ i ] ≠ Q [ j ]
- すべての i ≠ j
- すべての i ≠ jに対して
各整数は、n × nチェス盤のi番目の行のクイーンの位置を表します。制約は、クイーンが他のクイーンを攻撃しないという要件をエンコードします。n = 2またはn = 3の場合、解が存在しないことを証明するのは簡単です。nの他のすべての値については、閉形式の解が知られています。したがって、決定問題として、nクイーンズ問題は完全に些細な問題です。
nクイーンソリューションを構築するための標準のバックトラッキングアルゴリズムは、行のプレフィックスにクイーンを推測的に配置し、残りの行にクイーンの正当な配置があるかどうかを再帰的に決定します。再帰的なサブ問題は、次のように形式化できます。
- 整数と整数の配列P [ 1 .. k ]が与えられた場合、Pはn -queens問題の解決策を記述する配列Q [ 1 .. n ]のプレフィックスですか?
これはより一般的な決定問題NP困難ですか?
ラテン方格の完成[ Colbourn 1984 ]、数独の完成[ Yato and Seta 2002 ]、および女王の異なる一般化[ Martin 2007 ] を含む、いくつかの近くの質問はNP困難であることが知られています。深刻な注意。
関連するcstheory.seの質問: