タグ付けされた質問 「information-theory」

さまざまなソースの情報理論、エントロピー、情報コンテンツに関する質問

8
スペースのないモールス信号は一意に解読可能ですか?
すべてのモールス符号文字列は一意に解読可能ですか?スペースなしで、 ......-...-..---.-----.-..-..-.. 可能性はありますHello Worldが、おそらく最初の文字はaです5-実際には、ドットとダッシュの任意のシーケンスが一意の翻訳を持つべきではないようです。 人は多分Kraft不等式を使用するかもしれませんが、それはプレフィックスコードにのみ適用されます。 モールス信号スペースではある接頭コードメッセージは常に一意に復号することができます。スペースを削除すると、これは事実ではなくなります。 私が正しい場合、すべてのモールス信号メッセージを一意にデコードすることはできませんが、考えられるすべてのメッセージをリストする方法はありますか?codegolf.SEで見つけたいくつかの関連する演習を次に示します。 https://codegolf.stackexchange.com/questions/36735/morse-decode-golf https://codegolf.stackexchange.com/questions/131/morse-code-translator

7
PRNGを使用して魔法のように圧縮できますか?
この考えは、プログラミングを学び、最初にPRNGに出会った子供として私に思いつきました。どれほど現実的かはまだわかりませんが、今ではスタック交換があります。 これは驚くべき圧縮アルゴリズムのための14歳のスキームです: PRNG sを取得し、シードでシードして、疑似ランダムバイトの長いシーケンスを取得します。そのシーケンスを別のパーティに送信するには、PRNGの説明、適切なシード、およびメッセージの長さを伝えるだけです。十分に長いシーケンスの場合、その説明はシーケンス自体よりもはるかに短くなります。 ここで、プロセスを逆にできると仮定します。十分な時間と計算リソースがあれば、ブルートフォース検索を実行して、目的のシーケンスを生成するシード(およびPRNG、つまりプログラム)を見つけることができました(猫のいたずらの面白い写真を見てみましょう)。 PRNGは十分な数のビットが生成された後に繰り返されますが、「典型的な」サイクルと比較すると、私のメッセージは非常に短いので、これは問題のようには見えません。 Voila、データを圧縮する効果的な(ルーベゴールドバーグ式の場合)方法。 したがって、仮定: 圧縮したいシーケンスは有限であり、事前にわかっています。 現金も時間も不足していません(両方の有限量が必要である限り) 知りたい: スキームの背後にある推論に根本的な欠陥はありますか? この種の思考実験を分析する標準的な方法は何ですか? 概要 良い答えが答えを明らかにするだけでなく、私が本当に求めていたのは何であるかを明らかにすることはしばしばあります。皆の忍耐と詳細な回答に感謝します。 答えの要約に対する私のn回目の試みは次のとおりです。 PRNG /シード角度は何も寄与せず、目的のシーケンスを出力として生成するプログラムにすぎません。 ピジョンホールの原則:長さ<= kの(メッセージを生成する)プログラムよりも、長さ> kのメッセージが多くあります。そのため、一部のシーケンスは、メッセージよりも短いプログラムの出力にはなり得ません。 プログラム(メッセージ)のインタープリターが必ず事前に修正されていることに言及する価値があります。そして、その設計は、長さkのメッセージが受信されたときに生成できるメッセージの(小さな)サブセットを決定します。 この時点で、元のPRNGのアイデアはすでに消滅していますが、解決すべき最後の質問が少なくとも1つあります。 Q:幸運にも、長い(しかし有限の)メッセージがたまたま<kビットの長さのプログラムの出力であることがわかりますか? 厳密に言えば、可能性のあるすべてのメッセージ(プログラム)の意味を事前に知っておく必要があるため、偶然ではありません。それは <kビットのメッセージの意味であるかそうでないかです。 > = kビットのランダムメッセージをランダムに選択した場合(なぜですか?)、いずれの場合でも、kビット未満で送信できる確率はゼロになり、送信できないことはほぼ確実になります。使用するビット数はkビット未満です。 OTOH、kビット未満のプログラムの出力であるメッセージからkビット以上の特定のメッセージを選択すると(そのようなメッセージがあると仮定して)、実際にはすでに送信されたビットを利用していますレシーバー(インタープリターの設計)。転送されたメッセージの一部としてカウントされます。 最後に: Q:このエントロピー / コルモゴロフ複雑性ビジネスとは何ですか? 最終的に、両方とも、(より単純な)鳩の巣の原理が圧縮できる量について教えているのと同じことを教えてくれます:おそらくまったくない、おそらくいくつかですが、確かに私たちが空想するほどではありません(チートしない限り)。

6
ロスレス圧縮アルゴリズムはエントロピーを削減しますか?
ウィキペディアによると: シャノンのエントロピーは、決定された(または予測可能な)メッセージの部分とは対照的に、メッセージに含まれる情報を測定します。後者の例には、言語構造の冗長性や、文字や単語のペア、トリプレットなどの出現頻度に関する統計的特性が含まれます。 エントロピーは、メッセージに含まれる情報の量の尺度です。エントロピーコーダーは、そのようなメッセージを表現するために必要な最小ビット数(エントロピー)に可逆圧縮するために使用されます。私にとって、これは、メッセージを可能な限り損失なく圧縮するために必要なのは完全なエントロピーエンコーダーだけであるように見えます。 ただし、多くの圧縮アルゴリズムは、エントロピーコーディングの前にステップを使用して、メッセージのエントロピーを減らすと考えられています。 ドイツのウィキペディアによると Entropiekodierer werdenhäufigmit anderen Kodierern kombiniert。Dabei dienen vorgeschaltete Verfahren dazu、die Entropie der Daten zu verringern。 英語で: エントロピーコーダーは他のエンコーダーと頻繁に組み合わされます。前の手順は、データのエントロピーを減らすのに役立ちます。 つまり、bzip2はエントロピーコーディング(この場合はハフマンコーディング)を適用する前に、Burrows-Wheeler-Transformに続いてMove-To-Front-Transformを使用します。 これらの手順は、メッセージのエントロピーを実際に減らしますか?これは、メッセージに含まれる情報の量を減らすことを意味しますか?圧縮中に情報が失われ、無損失の圧縮解除が妨げられることになるため、これは私には矛盾しているようです。または、メッセージを変換してエントロピーコーディングアルゴリズムの効率を向上させるだけですか?または、エントロピーはメッセージ内の情報量に直接対応していませんか?

2
N未満のランダムビットで2 ^ Nの1の確率をシミュレートする
次の離散分布をシミュレートする必要があるとします。 P(X=k)={12N,1−12N,if k=1if k=0P(X=k)={12N,if k=11−12N,if k=0 P(X = k) = \begin{cases} \frac{1}{2^N}, & \text{if $k = 1$} \\ 1 - \frac{1}{2^N}, & \text{if $k = 0$} \end{cases} 最も明白な方法は、NNNランダムビットを描画し、それらすべてが000(または111)に等しいかどうかをチェックすることです。しかし、情報理論は言う S=−∑iPilogPi=−12Nlog12N−(1−12N)log(1−12N)=12Nlog2N+(1−12N)log2N2N−1→0S=−∑iPilog⁡Pi=−12Nlog⁡12N−(1−12N)log⁡(1−12N)=12Nlog⁡2N+(1−12N)log⁡2N2N−1→0 \begin{align} S & = - \sum_{i} P_i \log{P_i} \\ & = - \frac{1}{2^N} \log{\frac{1}{2^N}} - \left(1 - \frac{1}{2^N}\right) \log{\left(1 - \frac{1}{2^N}\right)} …

6
単純なバイナリデータの効率的な圧縮
から2 n − 1の順序付けられた2進数を含むファイルがあります。0002n− 12n−12^n - 1 0000000000 0000000001 0000000010 0000000011 0000000100 ... 1111111111 7zはこのファイルを非常に効率的に圧縮しませんでした(n = 20の場合、22 MBは300 kBに圧縮されました)。 データの非常に単純な構造を認識し、ファイルを数バイトに圧縮できるアルゴリズムはありますか?また、CSや情報理論のどの分野がこのようなスマートアルゴリズムを研究しているかを知りたいです。「AI」は広すぎるため、より具体的なキーワードを提案してください。 対称性の概念はデータ圧縮で基本的な役割を果たすはずですが、検索クエリ「データ圧縮の対称性」と「データ圧縮の群論」は、驚くべきことにほとんど何も関連性を返しません。

4
モールス符号は、バイナリ、3進、または5進です​​か?
私は本を​​読んでいます:「コード:コンピュータのハードウェアとソフトウェアの隠された言語」と第2章で著者は言います: モールス符号は、コードのコンポーネントがドットとダッシュの2つだけで構成されているため、バイナリ(文字通り2つずつ)コードと呼ばれます。 一方、ウィキペディアはこう言います: 厳密には、5つの基本要素があるため、バイナリではありません(5進を参照)。ただし、これはモールス信号をバイナリコードとして表現できないことを意味するものではありません。抽象的には、これは電信オペレータがメッセージを送信するときに実行する機能です(5項参照)。 しかし、もう一度、ウィキペディアの別のページの「バイナリコードのリスト」にモールス信号が含まれています。 モールス符号は実際には三元系だと思うので、私は非常に混乱しています。沈黙、短いビープ音、長いビープ音の3種類の「可能性」があります。 モールス符号を「stirct binary」で表現することは不可能ではありませんか? 「厳密なバイナリ」とは、バイナリストリームを考えます。1010111101010..沈黙、短いビープ音、および/または長いビープ音をどのように表すのですか? 私が考えることができる唯一の方法は、コンピューターが実装する「ワードサイズ」です。私(およびCPU /コードのインタープリター)が毎回8ビットを読み取ることを知っている場合、モールス符号を表すことができます。単純に1の短いビープ音または0の長いビープ音を表すことができ、無音は暗黙的に単語の長さで表されます(たとえば、8ビット)。したがって、この3番目の変数/私の手:ワードサイズ。 私の考えは次のようになります。最初の3ビットを読み取るビット数に予約し、最後の5ビットを8ビットワードのモールス符号に予約できます。00110000などは「A」を意味します。そして、私はまだ「バイナリ」ですが、それを3進数にする単語サイズが必要ではありませんか?最初の3ビットは、次の5ビットから1ビットのみを読み取ります。 3進数を使用する場合、2進数の代わりに、101021110102110222などのモールス信号を表示できます。ここで、1はdit 0はdah、2は無音です。222を使用すると、長い無音をコーディングできます。したがって、*-* --- *-のような信号がある場合は、102100022210のように表示できますが、1と0だけを使用して直接使用することはできません。私が言ったように「固定」ワードサイズのようなものですが、これは解釈されており、モールス符号をバイナリのまま保存するのではありません。ピアノのようなものを想像してください。ピアノのボタンしかありません。誰かにモールス信号でメッセージを残し、ボタンを黒にペイントすることができます。明確なメッセージを残す方法はありませんか?沈黙(文字と単語の間にある沈黙)を配置できるように、少なくとも1つ以上の色が必要です。これが私が意味するものです。 私は、あなたがモールス法を57-aryまたは他の何かで表現できるかどうかを尋ねていません。 このことについて著者(Charles Petzold)にメールしました。「コード」の第9章でモールス符号をバイナリコードとして解釈できることを実証していると彼は言います。 私の考えのどこが間違っていますか?私が本で読んでいるのは、モールス符号がバイナリであることは事実かどうか?それはどういうわけか議論の余地がありますか?モールス信号が1つのウィキペディアページで5進法であると言われ、バイナリコードのリストページにもリストされているのはなぜですか? 編集:著者にメールを送信し、返信がありました: - - -オリジナルメッセージ - - - From:Koray Tugay [mailto:koray@tugay.biz] 送信日:2015年3月3日火曜日午後3時16分 宛先:cp@charlespetzold.com 件名:モールス符号は本当にバイナリですか? サー、ここで私の質問を見ていただけますか:モールス符号は2進数、3進数、5進数のどちらですか?キナリー? よろしく、Koray Tugay From: "チャールズペツォルド" 宛先:「 'Koray Tugay'」 件名:RE:モールス信号は本当にバイナリですか?日付:3 2015年3月23:04:35 EET 「コード」の第9章の終わりに向かって、モールス符号をバイナリコードとして解釈できることを示します。 - - -オリジナルメッセージ - - …

5
素数を使用したデータ圧縮
私は最近、データのタイプや形式に関係なく、ランダムデータセットを常に50%以上効率的に圧縮すると主張する次の興味深い記事に出会いました。 基本的に、素数を使用して4バイトのデータチャンクの表現を一意に構築します。これは、すべての数が素数の一意の積であるため、簡単に解凍できます。これらのシーケンスを素数に関連付けるために、辞書を使用します。 私の質問は: 著者が示唆しているように、これは本当に実現可能ですか?論文によると、その結果は非常に効率的で、常にデータをより小さなサイズに圧縮します。辞書のサイズは膨大ではないでしょうか? これを使用して、同じアルゴリズムを使用して圧縮データを繰り返し再圧縮することはできませんか?このような技術(圧縮データをできるだけ多く再圧縮し、ファイルサイズを劇的に削減する)は不可能であることは明らかであり、実証されています。実際、すべてのランダムデータのセットと圧縮データの間に全単射はありません。なぜこれが可能だと感じるのでしょうか? 技術がまだ完全ではない場合でも、明らかに最適化および強力な改善が可能です。なぜこれは広く知られていません/研究されていないのですか?確かにこれらの主張と実験結果が真実であれば、これはコンピューティングに革命をもたらすことができなかったでしょうか?

4
順序を無視して2つの整数を圧縮する
順序付けられたペア(x、y)を順序付けられていないペア{x、y}(セット)と比較すると、理論的にはxは最初に来るかyが表現するために正確に1ビットを必要とするかの違いは1ビットだけです。 したがって、x、yが2つの異なる32ビット整数であるセット{x、y}が与えられた場合、それらを63ビット(64ではなく)にパックできますか?63ビットの結果から元の32ビット整数を復元できますが、順序を復元することはできません。

5
同じワンタイムパッドでの暗号化がうまくいかないのはなぜですか?
ワンタイムキーメッセージを暗号化するには、 ます。 K E N C (M 1、K )= M 1 ⊕ Km1m1m_1kkkEn c (m1、k )= m1⊕ KEnc(m1,k)=m1⊕kEnc(m_1,k) = m_1 \oplus k あなたは同じ使用している場合は異なるメッセージを暗号化するためにあなたが得る 、あなたが2つの暗号文の排他的論理和を実行する場合は、あなたが得る M 2 E N C (M 2、K )= M 2 ⊕ K (M 1 ⊕ K )⊕ (M 2 ⊕ K )= M 1 ⊕ M …

2
難しいこと:並べ替えられたデッキをシャッフルするか、シャッフルされたデッキを並べ替えるのですか?
異なる要素の配列があります。あなたは(ブラックボックス関数は、2つの要素取るコンパレータへのアクセス権を持つとし、trueを返す)とビット真にランダムソース(ブラックボックス関数は、引数を取ることなく、独立して、均一にランダムビットを返します)。次の2つのタスクを検討してください。nnnaaabbba&lt;ba&lt;ba < b 配列は現在ソートされています。一様に(またはほぼ一様に)ランダムに選択された順列を生成します。 配列は、本質的にランダムに均一に選択されたいくつかの順列で構成されています。ソートされた配列を作成します。 私の質問は どのタスクが漸近的により多くのエネルギーを必要としますか? 情報理論、熱力学、またはこの質問に答えるために必要な他のものとの関係について十分に知らないため、質問をより正確に定義することはできません。しかし、質問は明確に定義できると思います(そして、誰かがこれで私を助けてくれることを願っています!)。 今、アルゴリズム的に、私の直感は、それらが等しいということです。すべての並べ替えは逆のシャッフルであり、逆もまた同様です。ソートにはが必要からランダムな順列を選択するため、シャッフル中の比較選択、が必要ランダムビット。シャッフルとソートの両方に、約スワップが必要です。logn!≈nlognlog⁡n!≈nlog⁡n\log n! \approx n \log nn!n!n!logn!≈nlognlog⁡n!≈nlog⁡n\log n! \approx n \log nnnn しかし、ランダウアーの原理を応用した答えが必要だと感じています。それは、少し「消す」ためにエネルギーが必要だと言っています。直感的に、これは配列のソートがより困難であることを意味すると思います。なぜなら、低エネルギー、高エントロピーの基底状態の乱れから高度に秩序化された状態への情報の「消去」ビットが必要だからです しかし一方で、任意の計算では、並べ替えは1つの順列を別の順列に変換するだけです。私はここでは完全な非専門家なので、物理学とのつながりを知っている人がこれを「分類」するのを手伝ってくれることを望んでいました!nlognnlog⁡nn \log n (質問はmath.seで回答を得られなかったので、ここに再投稿しています。それでいいのです。)

4
シャノンのデータ圧縮制限よりも小さいサイズにデータを圧縮できますか?
私はデータ圧縮アルゴリズムとデータ圧縮の理論的限界について読んでいました。最近、私は「コンビナトリアルエントロピーエンコーディング」と呼ばれる圧縮方法に出会いました。この方法の主なアイデアは、ファイルで表現される文字、その頻度、およびこれらの文字順列のインデックスとしてファイルをエンコードすることです。 これらのドキュメントは、この方法の説明に役立つ場合があります。 https://arxiv.org/pdf/1703.08127 http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019 ただし、最初のドキュメントでは、この方法を使用して、シャノンの制限未満にテキストを圧縮できることを読みました(文字の頻度を保存するために必要なスペースとメタを保存するために必要なスペースを考慮しませんでした)ファイルのデータ)。私はそれについて考えましたが、この方法は非常に小さなファイルにはあま​​り効率的ではないことがわかりましたが、一方で、大きなファイルではうまく機能する可能性があります。実際、私はこのアルゴリズムやシャノンの限界を十分に理解していません。各文字の確率の合計に確率の逆数のを掛けたものだと知っています。L O G2log2log_2 だから私はいくつか質問があります: この圧縮方法は、実際にファイルをシャノンの制限よりも小さく圧縮しますか? ファイルをシャノンの制限未満に圧縮する圧縮アルゴリズムはありますか(私が知る限り、この質問に対する答えはノーです)。 ファイルをシャノンの制限よりも小さく圧縮する圧縮方法はありますか? コンビナトリアルエンコーディングが実際にシャノンの制限を超えてファイルを圧縮する場合、目的のファイルサイズに達するまで何度もファイルを圧縮することはできませんか?

3
アルゴリズム情報理論における「情報」と「有用な情報」の違い
ウィキペディアによると: 非公式には、アルゴリズム情報理論の観点から、文字列の情報内容は、その文字列の最短の自己完結型表現の長さに相当します。 「有用な情報」の類似した非公式の厳密な定義は何ですか?「有用な情報」がより自然な、またはより基本的な概念として扱われないのはなぜですか。単純に、純粋にランダムな文字列には定義上ゼロの情報が含まれている必要があるため、標準の定義では最大の情報があると考えられるという事実を回避しようとしています。

1
数独パズルの効率的なエンコード
任意の9x9グリッドを指定するには、各正方形の位置と値を指定する必要があります。この単純なエンコーディングでは、81(x、y、value)トリプレットが得られ、x、y、および値ごとに4ビット(1-9 = 9値= 4ビット)が必要で、合計81x4x3 = 972ビットです。各正方形に番号を付けることにより、位置情報を7ビットに減らし、各正方形のビットと合計891ビットをドロップできます。所定の順序を指定することにより、合計324ビットの各値に対して、これを大幅に4ビットに減らすことができます。ただし、数独には数字が欠けている場合があります。これにより、指定する必要のある数字の数を減らすことができますが、位置を示すために追加のビットが必要になる場合があります。(位置、値)の11ビットエンコードを使用して、手がかりを持つパズルを指定できます。nnn11n11n11nビット、例えば最小(17)パズルには187ビットが必要です。私がこれまで考えた中で最良のエンコードは、各スペースに1ビットを使用して、それが満たされているかどうかを示し、そうであれば、次の4ビットが数値をエンコードすることです。これにはビットが必要で、最小パズルの場合は149()です。できれば有効な各数独セットアップのデータベースなしで、より効率的なエンコードがありますか?(パズルから一般的なに対処するためのボーナスポイント)81+4n81+4n81+4nn=17n=17n=17nnnN×NN×NN \times N 多くのパズルは別のパズルを回転させたり、数字の単純な並べ替えをしたりするということを思いつきました。おそらくそれは必要なビットを減らすのに役立つ可能性があります。 ウィキペディアによると、 古典的な9×9数独ソリューショングリッドの数は6,670,903,752,021,072,936,960(OEISのシーケンスA107739)、または約です。6.67×10216.67×10216.67×10^{21} 計算を正しく行った場合()、ルックアップテーブルの情報は73(72.498)ビットになります。ln(6,670,903,752,021,072,936,960)ln(2)ln(6,670,903,752,021,072,936,960)ln(2)\frac{ln{(6,670,903,752,021,072,936,960)}}{ln{(2)}} だが: 回転、反射、順列、再ラベル付けなどの対称性を考慮すると、本質的に異なるソリューションの数は、5,472,730,538 [15](OEISのシーケンスA109741)であることが示されました。 これにより33(32.35)ビットが得られるため、使用する順列を示す巧妙な方法で73ビット全体を下回る可能性があります。

3
0.922のシャノンエントロピー、3つの異なる値
値の文字列を考えるログベースで、シャノンエントロピーを になる。私が理解していることから、基数 切り上げられたシャノンエントロピーは、値の1つを表すためのバイナリの最小ビット数です。AAAAAAAABCAAAAAAAABCAAAAAAAABC2220.9220.9220.922222 このウィキペディアのページの紹介から引用: https://en.wikipedia.org/wiki/Entropy_%28information_theory%29 それでは、どのようにして3つの値を1ビットで表現できますか? は 、 は です。しかし、どのようにを表現できます か?AAA111BBB000CCC 前もって感謝します。

4
n個の設定ビットを持つ数値を正確に生成するためのPRNG
現在、バイナリデータを生成するコードを書いています。具体的には、指定されたビット数で64ビットの数値を生成する必要があります。より正確には、プロシージャはを取り、正確にビットがに設定され、残りが0に設定された擬似ランダム64ビット数を返す必要があります。0&lt;n&lt;640&lt;n&lt;640 < n < 64nnn111 私の現在のアプローチには、次のようなものが含まれます。 擬似乱数64ビット数を生成します。kkk のビットをカウントし、結果を保存します。kkkbbb 場合、出力します。それ以外の場合は1に進みます。b=nb=nb = nkkk これは機能しますが、洗練されていないようです。これよりもエレガントにセットビットの数を生成できるPRNGアルゴリズムの種類はありますか?nnn

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