================================================== Burrows Wheeler Transform (BWT) ================================================== Michael Burrows と David J. Wheeler によって考えられた可逆変換の一種. 素朴な方法 ~~~~~~~~~~~~~~~~~~~~~~~~~ 入力文字列を循環させた文字列から成る表を考える. 例): :math:`S=banana` ======= == == == == == == i 0 1 2 3 4 5 ======= == == == == == == 0   b a n a n a ------- -- -- -- -- -- -- 1   a n a n a b ------- -- -- -- -- -- -- 2   n a n a b a ------- -- -- -- -- -- -- 3   a n a b a n ------- -- -- -- -- -- -- 4   n a b a n a ------- -- -- -- -- -- -- 5   a b a n a n ======= == == == == == == :math:`S` を巡回させた文字列から成る表を辞書順にソート ======= == == == == == == i 0 1 2 3 4 5 ======= == == == == == == 0   a b a n a n ------- -- -- -- -- -- -- 1   a n a b a n  ------- -- -- -- -- -- -- 2   a n a n a b ------- -- -- -- -- -- -- 3   b a n a n a ------- -- -- -- -- -- -- 4   n a b a n a ------- -- -- -- -- -- -- 5   n a n a b a ======= == == == == == == この表の :math:`i=n` 番目( :math:`n=|S|` )の文字をつなげたものが BWTを行った文字列":math:`nnbaaa`"となる. 接尾辞配列を用いる方法 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. literalinclude:: /Scripts/Python/BWT.py :pyobject: BWT 入力を変換 --------------------------------------- 元のテキストとBWTを行ったテキストの圧縮率の違いを比較 .. raw:: html
text =
・元テキスト = dummy
・圧縮テキスト = dummy
・圧縮率 = dummy

・BWTテキスト = dummy
・圧縮テキスト = dummy
・圧縮率 = dummy
参考文献 --------------------------------------- .. raw:: html M. Burrows, D.J. Wheeler, A block sorting data compression algorithm, Technical Report, DIGITAL System Research Center,1994 link .. M. Burrows, D.J. Wheeler, A block sorting data compression algorithm, Technical Report, DIGITAL System Research Center,1994 - `link `_