Hadoopを使ってSudokuを解決するには?

Hadoopを使用して数独を解決するには?

sudoku

Hadoopには、テスト用のjarファイルの例があります。 このjarファイルには、数独問題を解決する例があります。

1. 入力ファイル

この例を使用するには、数独問題の入力ファイルを作成する必要があります。 このファイルでは、各数独セルは数字または「?」のいずれかで、スペースを区切り文字として使用できます。このように:

ファイル:puzzle1.dta

8 5 ? 3 9 ? ? ? ?
? ? 2 ? ? ? ? ? ?
? ? 6 ? 1 ? ? ? 2
? ? 4 ? ? 3 ? 5 9
? ? 8 9 ? 1 4 ? ?
3 2 ? 4 ? ? 8 ? ?
9 ? ? ? 8 ? 5 ? ?
? ? ? ? ? ? 2 ? ?
? ? ? ? 4 5 ? 7 8

この「puzzle1.dta」ファイルは、Hadoopディレクトリにあります。

hadoop-0.20.2/src/examples/org/apache/hadoop/examples/dancing/puzzle1.dta

or

hadoop-2.0.0-alpha-/src/hadoop-mapreduce-project/hadoop-mapreduce-examples/
    src/main/java/org/apache/hadoop/examples/dancing/puzzle1.dta

2. Hadoopパート

次に、この入力ファイルをローカルディレクトリに保存する必要があります。 そして、この入力をhadoopのサンプルjarに渡します。 hadoopを起動して、次のコマンドを実行します。

$hadoop-directory/bin/hadoop jar hadoop-examples-version.jar sudoku puzzle1.dta

Solving puzzle1.dta
8 5 1 3 9 2 6 4 7
4 3 2 6 7 8 1 9 5
7 9 6 5 1 4 3 8 2
6 1 4 8 2 3 7 5 9
5 7 8 9 6 1 4 2 3
3 2 9 4 5 7 8 1 6
9 4 7 2 8 6 5 3 1
1 8 5 7 3 9 2 6 4
2 6 3 1 4 5 9 7 8

Found 1 solutions

Hadoopは、数秒でパズルのすべての可能な解決策を提供します(複数の回答がある場合、時間が長くなります)。

Note
hadoopへのローカルパスを指定する必要があります(この例では、同じディレクトリにあるjarファイルとパズル)

質問がある場合は、私にコメントを書くことができます…

Related