既存の棋譜ベースのDBではなく,局面ベースとしてグラフデータベース等で将棋を扱うDB(局面DB)を作るにあたり,局面を一意なバイト列で表すことを考えてみました.
候補は次の通り.
コンピュータ将棋の探索の時によく使われる. http://yowaken.dip.jp/tdiary/20081001.html が詳しい.この他に,持ち駒の枚数ごとのハッシュも用意しておく必要がある.
ハッシュをURLに埋め込むため,ハッシュから盤面への復号ができると便利ということで,今回は見送り.
JSON棋譜計画で,盤面ハッシュとして搭載が有力視されているが,冗長なために今回は見送り.
基本は 将棋盤面データ圧縮に関する考察 の通り.
ハフマン符号は与えられた情報を最も短く符号化する(コンパクトな)瞬時符号であるが,そのサイトではアマチュア棋譜1000件を元にしている.この度,2chでまとめられたプロ棋譜5万件をJSON棋譜に変換し,簡単に利用できるようにしたので,ここからあらためてカウントを行う事とした.また,玉の位置81(<2^7)通りを7bitの通し番号を用いて表すとされているが,玉の位置にも偏りがあるため,これについてもハフマン符号化する事とした.
次の投稿で,プロ棋譜5万件を数え上げ,実際にハフマン符号を構成する.