n女王問題(n-queens problem)


n女王問題

n-queen問題と呼ばれる。n × n に拡張したチェスの ボード上で、n個のチェスの女王駒が互いに当たりの関係にならないような 配置を求める。(女王は将棋の飛車と角を合わせた方向に移動できる)
以下の図で Q の位置に女王駒を置いた場合, 空白のマス目の部分は当たりではないが, |, -, /, \ の記号でしめしたマス目は 縦,横,斜め(左下方向, 右下方向)について当たりになっていて, 他の女王駒を置くことが許されない.
+---+---+---+---+---+---+
| \ |   | | |   | / |   |
+---+---+---+---+---+---+
|   | \ | | | / |   |   |
+---+---+---+---+---+---+
| - | - | Q | - | - | - |
+---+---+---+---+---+---+
|   | / | | | \ |   |   |
+---+---+---+---+---+---+
| / |   | | |   | \ |   |
+---+---+---+---+---+---+
|   |   | | |   |   | \ |
+---+---+---+---+---+---+
例えば n = 4 の場合,解は以下の2つである.
+---+---+---+---+   +---+---+---+---+
|   | Q |   |   |   |   |   | Q |   |
+---+---+---+---+   +---+---+---+---+
|   |   |   | Q |   | Q |   |   |   |
+---+---+---+---+   +---+---+---+---+
| Q |   |   |   |   |   |   |   | Q |
+---+---+---+---+   +---+---+---+---+
|   |   | Q |   |   |   | Q |   |   |
+---+---+---+---+   +---+---+---+---+

全解探索

すべての解(の個数がいくつか)を求める。
例えば,n=4 については解の個数は2である.
n解の個数
11
20
30
42
510
64
740

対称解の除去

解の個数をカウントする際に、 対称性から本質的に同等な解は二重にカウントしないようにする。
n解の個数対称解を除いた個数
111
200
300
421
5102
641
7406

バックトラック探索木


深さ優先探索


並列プログラミング, 先頭ページへ
Masahiro Yasugi