问题标签 [information-theory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1341 浏览

c - 选择要实现的压缩算法

我已经获得了一些课程来实现我选择的压缩算法。它可以是任何语言,但我最了解的语言是 Java,其次是 C。它将基于 -

  1. 解压后的输出必须和原始输入匹配,所以只能看lossless的算法。

  2. 运行时间必须与消息的长度成比例。

  3. 内存要求必须与消息的长度无关。

我们的实现将按如下方式进行测试 -

  1. 标准文本文件

  2. 字节值范围为 0-255 的二进制文件

  3. 一个约 10mb 的未指定内容的大文件。

我最初的想法是使用动态算术编码,但我想知道是否有更适合上述约束的算法?其次,用 C 语言而不是 Java 语言是更好的主意吗?我问这个是因为我认为 C 的内存占用会更小,但我不确定是否真的如此。

我花了一些时间在谷歌上搜索这个问题,一些网站提到 LZW 编码与动态霍夫曼编码相结合。这会是一个明智的追求途径吗?我们的讲师确实警告我们,多年来尝试动态霍夫曼编码的提交中有 90% 没有正确实施。

也就是说,我不害怕尝试一下,但在开始之前我会重视一些意见。

任何反馈将不胜感激。

0 投票
2 回答
3765 浏览

hex - 如何快速压缩一个短的十六进制字符串并在c#中解压它

我有一些像这样的 16 个字符的十六进制字符串:

我想缩短它们并使缩短的字符串仅包含大写字母。

DeflateStream 和 GZipStream 只是增加了长度。

任何人都可以帮我将这 16 个字符的十六进制字符串缩短到 6 个字符或更少吗?

或者,可以将 32 个字符的十六进制字符串缩短为 12 个字符或更少。

0 投票
1 回答
4532 浏览

matlab - 需要帮助在 Matlab 中实现基本的二进制对称通道

我正在研究托马斯的封面,“信息理论元素”,并想尝试实现一个二进制对称通道的简单示例。也就是说,我可以指定一个消息“1001”,一个编码“11000011”(基本上每个bit重复两次),一个通道定律:p(y|x),我想在接收端看到我的后验更新。

现在老实说,我什至不知道从哪里开始,而且我似乎在网上找不到太多帮助。我发现的大部分内容是使用 Matlab 的 simulink 来抽象出这个过程。我实际上想将分布指定为向量等。任何指针都会很棒!

编辑:我不知道这个问题是否更适合 DSP.SE 但如果是这样,我可以把它移过来。

0 投票
1 回答
69 浏览

networking - 双向通信渠道中的信息能否更快地发送?

假设情况:

主机 A 可以以每秒一位的速率向主机 B 发送信息。

主机 B 可以以每秒 1 TB 的速率向主机 A 发送信息。

您想从 A 向 B 发送 1 GB 的随机信息。

你会怎么做?

有没有办法利用 B -> A 来加速 A -> B?

0 投票
1 回答
48 浏览

java - Java:在代码中管理信息。没有数据库

我需要帮助我在学校得到的工作......我正在尝试制作一个或多个枚举,它将在内存中包含一个月中的天数、月份名称和数字的信息本月的。

另外,我的老师说所有信息都必须在我的代码中......没有数据库或其他类似的东西。-_-

经验:

另一个经验:

注意:我真的不想使用数组,因为它不符合人体工程学 X_X 但如果您认为它是最好的解决方案,我会选择它。

0 投票
1 回答
87 浏览

algorithm - 是否有一种算法可以寻找 3 个变量之间的数学联系?

是否有可能构造一个算法来寻找链接三个变量的最简约的公式(在这种情况下,什么是简约的问题似乎有点武断!)?

例如,给定:

这三个变量之间最简洁的联系是(希望这是最简洁的):

因为:

我的问题是:

  • 有可能构建这样的算法吗?
  • 你知道这种已经存在的算法吗?
    • 如果是的话,在我的例子中,它是否适用于相对简单的关系(快速)?

更新:

这是一个创建 3 个变量的 R 代码a.lb.lc.l作为示例。

0 投票
1 回答
49060 浏览

python - 使用 numpy 计算成对互信息的最佳方法

对于mxn矩阵,计算所有列对( nxn )的互信息的最佳(最快)方法是什么?

通过互信息,我的意思是:

I(X, Y) = H(X) + H(Y) - H(X,Y)

其中H(X)是指 X 的香农

目前我正在使用np.histogram2dandnp.histogram来计算联合(X,Y)和个人(X 或 Y)计数。对于给定的矩阵A(例如 250000 X 1000 的浮点矩阵),我正在做一个嵌套for循环,

当然必须有更好/更快的方法来做到这一点?

顺便说一句,我还在数组上的列(按列或按行操作)上寻找映射函数,但还没有找到一个好的通用答案。

这是我的完整实现,遵循Wiki 页面中的约定:

尽管我的带有嵌套for循环的工作版本以合理的速度运行,但我想知道是否有更优化的方法应用于calc_MI所有列A(以计算它们的成对互信息)?

我也想知道:

  1. 是否有有效的方法来映射函数以对np.arrays(可能像np.vectorize,它看起来更像一个装饰器)的列(或行)进行操作?

  2. 对于这个特定的计算(互信息)是否还有其他优化的实现方式?

0 投票
2 回答
5623 浏览

artificial-intelligence - 决策树是否试图最大化信息增益或熵?

我知道决策树试图将具有高熵的分类器放在决策树上。然而,信息增益是如何发挥作用的呢?

信息增益定义为:

决策树是否尝试将信息增益低的分类器放在树的顶部?那么熵总是最大化而信息增益总是最小化?

对不起,我只是有点困惑。谢谢!

0 投票
2 回答
2240 浏览

compression - 是否有“完美”压缩算法?

让我澄清一下,我不是在谈论能够压缩任何给定源材料的算法意义上的完美压缩,我意识到这是不可能的。我想要得到的是一种算法,它能够将任何源比特串编码为其绝对最大压缩状态,由它的香农熵确定。

我相信我听说过一些关于霍夫曼编码在某种意义上是最优的,所以我相信这个加密方案可能基于此,但这是我的问题:

考虑位串:a =“101010101010”,b =“110100011010”。

使用普通的香农熵,当我们将位串视为简单的 0 和 1 的符号时,这些位串应该具有完全相同的熵,但是这种方法是有缺陷的,因为我们可以直观地看到位串 a 的熵小于位串 b,因为它只是重复 10 的模式。考虑到这一点,我们可以通过计算复合符号 00、10、01 和 11 的香农熵来更好地了解源的实际熵。

这只是我的理解,我可能完全偏离基础,但据我了解,对于一个真正随机的遍历源,对于一个长度为 n 的遍历源。所有 n 长度符号组的统计概率必须是等可能的。

我想比标题中的问题更具体,我有三个主要问题:

使用单个位作为符号的霍夫曼编码是否会像优化的那样压缩位串,即使我们在 2 位符号级别分析字符串时会出现明显的模式?如果没有,是否可以通过循环遍历霍夫曼编码的不同“级别”(对不起,如果我在这里扼杀术语)来最佳地压缩源,直到找到最佳压缩率?在某些情况下,通过不同的“轮次”霍夫曼编码可以进一步提高压缩率吗?(首先对 5 位长的符号进行霍夫曼编码,然后对 4 位长的符号进行霍夫曼编码?huff_4bits(huff_5bits(bitstring))

0 投票
0 回答
124 浏览

information-theory - 如何测量信息内容或量化查询向量中的信息?

我有一个包含许多属性的查询。我想测量该查询中的信息量。然后测量如果我删除某个属性,该信息内容是如何减少或不受影响的。

信息论中是否有解决此问题的度量或度量?谢谢