周波数が類似している場合、最適なプレフィックスフリーコードを計算する複雑さは何ですか?


13

時間ハフマン符号を計算する最悪の場合の最適なアルゴリズムがあることはよく知られています。これは、2つの直交する方法で改善されています。θ(nlg⁡n)

  1. 異なる周波数のセットが小さい場合(サイズ)、最適なプレフィックスフリーコードをより高速に計算できます。[Munro and Spira、1976]を使用して周波数を並べ替え、σの小さい値を利用してハフマンを計算しますソートされた周波数からの線形時間のツリー。これは、溶液が得られるO (N LG σを)σσO(nlg⁡σ)

  2. 存在する同等のコードを計算するアルゴリズムkがある異なる符号語長の数 [BelalとElmasryは]。O(n16k)k

現在の最良の複雑さを改善するためには、これらの技術を組み合わせる方法がある?O(nmin{16k,lg⁡σ})


STACS 2006からの結果間違っているように見えるO(nk)、Elmasryは(http://arxiv.org/abs/cs/0509015)2010年arXivの上で発表バージョン公表- ソートされていない入力の操作をおよび-O (9 k log 2 k − 1 n )ソートされた入力に対する操作O(16kn)O(9klog2k−1⁡n)


  1. (ソートに基づいて、ハフマンのコードのO (n lg n )アルゴリズムとして)およびO (n h )(ギフト包装)のアルゴリズムで、平面凸包の計算の複雑さと類似しています)はO (n lg h )のKirkpatrickとSeidelのアルゴリズムに取って代わられました(後にO (n H (n 1、… 、n kの形式の複雑さでインスタンス最適であることが証明されました)O(nlg⁡n)O(nlg⁡n)O(nh)O(nlg⁡h))。Prefix Freeコードの場合、 O (n lg n )対ここで、 n iは長さ iのコードワードの数で、 n iをカバーする凸包のエッジの類似性を使用しますO(nH(n1,…,nk)O(nlg⁡n)は、複雑度 O (n lg k )または O (n H (n 1、… 、n k)のアルゴリズムの可能性を示唆します。O(nk)O(nlg⁡k)O(nH(n1,…,nk)niini個のシンボルをカバーするコード長を指します。ni

  2. 単純な例では、周波数の(丸められた)対数値(ワードRAMモデルの線形時間)を並べ替えても、線形時間で最適なプレフィックスのないコードが得られないことが示されています。 θ(lg⁡n)

    • 以下のための、F 1 = 1 / 2 - ε及びF 2 = Fn=3f1=1/2−εf2=f3=1/4+ε
    • ので、順序を変更しないソートログイン⌈lg⁡fi⌉=2
    • しかし、3つのうち2つのコードのコストはビットが最適です。n/4
  3. 別の興味深い質問は、が大きい場合の複雑さを減らすことです。つまり、すべてのコードの長さが異なります。k

    • たとえば、、周波数はすべて個別の対数値です。この場合、θ (lg n )ワードRAMの線形時間で周波数をソートし、線形時間でハフマンコードを計算できます(ログ値をソートするだけで値をソートできるため)。BelalとElmasryのアルゴリズムのn 2よりも優れています。k=nθ(lg⁡n)n2

回答:


1

数年(5!)かかりましたが、質問に対する部分的な回答は次のとおりです。

http://arxiv.org/abs/1602.00023

部分的な並べ替えを行う最適なプレフィックスのないコードJérémyBarbay(2016年1月29日に提出)

O(n(1 +lgα))⊆O(nlgn)内の時間内のn個の未分類の正の重みに対する最適なプレフィックスなしのコードを計算するアルゴリズムについて説明します。ここで、交替α∈[1..n-1]は計算に必要なソート。この無症状の複雑さは、代数的決定木計算モデルの最適な定数因子内にあり、最悪の場合、サイズnおよび交替αのすべてのインスタンスで発生します。このような結果は、最適なプレフィックスを計算するvan Leeuwenのアルゴリズムの単なる組み合わせにより、同じ計算モデルのサイズnのインスタンス、1952年以降の圧縮と符号化のランドスケープで最悪の場合のΘ(nlgn)の最先端の複雑さを改善しますソートされた重み(1976年以来知られている)からのフリーコード、およびそれに対するクエリに応じてマルチセットを部分的にソートするための遅延データ構造(1988年以来知られている)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.