数独パズルの難易度 判定

数独パズルの難易度判定
~解法ロジックを用いた数値化の提案~
大阪工業大学
情報科学部コンピュータ科学科
土出 智也
目的

近年日本では脳トレやパズルが人気

中でも数独はその手軽さから注目されている

難易度は「★」、「Hard」など大雑把なものが多い

そこで解法によって難易度を数値化する
→実際に解くことによって、より詳しく数値化できる
数独とは?

ルール
1.ヨコ列のどの列にも1~9の数字が1つずつ入る
2.タテ列のどの列にも1~9の数字が1つずつ入る
3.太線で囲まれた3×3のどのブロックにも1~9の数字が1つずつ入る
6
2
8
1
4
3
5 3
7
6
1
9
3
2
4
9
7
6 8
1
5
7
3
8
5
9
5
6
2
8
1
7
9
4
3
1
3
9
6
5
4
8
7
2
8
4
7
2
3
9
6
5
1
6
1
3
5
2
8
7
9
4
9
7
8
3
4
1
2
6
5
2
5
4
7
9
6
3
1
8
3
9
1
4
6
2
5
8
7
7
2
6
1
8
5
4
3
9
4
8
5
9
7
3
1
2
6
難易度判定の現状

解法ではなく既存の情報から難易度を判定

公称難易度と空きマス数の関係
→空きマスが多いほど難しい?

公称難易度と候補数の関係
→候補数が多いほど難しい?
空きマス数:数字を埋める場所(白マス)の合計値のこと
候補数:各マスに入る可能性のある数字(候補)の数のこと
公称難易度と空きマス数の関係
70
60
50
40
問題数
30
20
10
39 0
43
47
51
空きマス数
VeryHard
MediumHard
55
59
Easy
UltraEasy
公称難易度
難易度が高いほど、空きマス数のピークが右側にある
UltraEasy
VeryEasy
Easy
Medium
MediumHard
Hard
VeryHard
Spicy
公称難易度と候補数の関係
Zhe Chenの数独エントロピー H G  
1
1
log
 v
81 ij
ij
表1 Chen氏の論文記載の問題(10000問)
最小値
最大値
平均値
Easy
Intermediate
0.5362
1.2246
0.9046
1.3965
0.7439
1.3049
Hard
1.6946
1.8189
1.7526
表2 世界基準ナンプレでの数独エントロピー(600問)
最小値
最大値
平均値
UltraEasy VeryEasy
0.1983
0.3581
0.4324
0.6397
0.3509
0.5179
Easy
Medium MediumPlus
0.652
0.7199
0.8252
0.8363
0.9793
1.0466
0.7304
0.8379
0.9241
Hard
VeryHard
0.8165
0.8387
1.0244
1.0326
0.9175
0.9156
難易度の高いものほど、数独エントロピーは高くなっている
Spicy
0.8956
0.984
0.9398
問題点



以上の2つは、どちらも解く以前の盤面の
状態から難易度を示している
計算は簡単であるが、解いてみないとわ
からない部分の数値化には至っていない
本研究では実際に数独を解くことで、数字
の埋まりやすさや思考の難しさを難易度の
指標に取り込む
使用する解法


雑誌・書籍に記載されているものをベース
に、独自に7つに分類した
解法は使用順にCRBE法(column,row,block,elimination)、
単一候補法、単一マス法、双子法、共有候
補法、三つ子法、対角線法とした
CRBE法とは?
右上ブロックで8がどこに入るか
を考える
1行目と2行目には既に8がある
→一箇所に決定する
数値化の方法


数値化は、問題を解く際の時間を用いる
“時間”はそれぞれの解法の中でのループや探
索の回数を用いる
(例えば「1が埋まる場所を探す→6が埋まる場所を探す→
4が埋まる場所を探す」なら、時間は3)


このようにすることで、一度に埋まる数字が少な
いような難解な問題ほど数値が大きくなる
算出した数値を“スコア”と呼ぶ
結果:スコアと空きマス数
10000
スコア
1000
CRBE法
候補使用
双子法
共有候補法
三つ子法
対角線法
未完成
100
10
1
30
35
40
45
50
55
60
65
空きマス数
同じような空きマス数でも、スコアを用いると難易度に違いがでる
結果:スコアと数独エントロピー
10000
スコア
1000
CRBE法
候補使用
双子法
共有候補法
三つ子法
対角線法
未完成
100
10
1
0
0.2
0.4
0.6
0.8
1
1.2
数独エントロピー
数独エントロピーが同じような値でも、スコアを用いると難易度に違いがでる
まとめ



解法を元に難易度を数値化した
解法の実行時間を元に数値化したので、
空きマス数や候補数より詳細に難易度を
知ることができた
同じ解法の中でもばらつきがあるため、比
較ができるようになった
このスコア計算法を元に、ソフトウエアを制作:『SudokuAnalyzer』