懲りもせず圧縮について

l(s)を文字列sの長さとするとき,圧縮アルゴリズムfに対し,n文字以下全ての文字列 {s1, s2, ... s_N} に対する「平均圧縮率」
\frac{1}{N} \sum_k \frac{l(f(s_k))}{l(s_k)}
はnの関数だが,極限を持つとき,その極限はどのような値か? 可逆圧縮アルゴリズムは全ての文字列を並べた無限列に対する順列(permutation)だと思い,やはり椅子取りゲーム的に考えれば,極限は1以上にならざるを得ないような気がする.はて
(出現確率の情報を付加する分も損に寄与するというご指摘もあった: id:flappphys:20080127#c1202062645)
ただし現実の圧縮アルゴリズムの適用対象のデータは「全ての文字列」を尽くしているとは考えがたい(つまり大抵はデータに偏りがある.連続する0を多く含んでいたり,任意のバイトでなくASCII文字で構成されていたり...).よってこれは実用性の低い問である.逆に言えば優れた圧縮アルゴリズムとは「よく扱われるデータがどれだけ偏っているか」という統計的な知識をアルゴリズムの形にうまく焼き直したものと言える訳だ.アルゴリズムそのものの内容,複雑性はデータの圧縮率にはカウントされないから,得をするように見える.
うーんなんか自明な議論になってしまったぞ.こんなはずじゃなかった.やはり面白いのは,現実に扱われるデータの特徴を見事に捉えて設計された優れたアルゴリズムの「裏をかく」ことだな.それはつまり,l(f(s))/l(s)が大きくなってしまうsを見つけることだ.それも,できれば「裏をかく」という言葉に恥じないような,アルゴリズムの中にある仮定を最大限に裏切るようなやつ.