论文笔记 Reordering Rows for Better Compression: Beyond the Lexicographic Order

基础概念

1. 游程长度编码 run-length encoding (RLE)

  一个比较简单的压缩算法,基本思想是将重复且连续出现多次的字符使用统计信息描述。例如有一个字符串:“AAAAABBBBCCC”,使用游程编码可以描述为:"5A4B3C"。

2. 前缀编码 prefix coding 

  如果在一个编码方案中,任何一个编码都不是其他任何编码的前缀(最左子串),则称该编码是前缀编码,前缀编码可以保证对压缩文件进行解码时不产生二义性,确保正确解码。

3. 汉明距离 Hamming distance

  在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。举个例子$1011101$和$1001001$之间的汉明距离是2。

4. 位图索引 bitmap

  位图索引创建了之后,生成是位图数据可以这么理解,比如,男女两种,然后一共八条数据,那么就生产两个字符串,一个代表男,一个代表女,字符串长度为数据的总数量,字符串的值:第一位(如果第一条数据是男那么就是1,如果不是就0),第二位,第三位,往后都是这样。由此就生成了长度为总数量,只包含01的字符串,通过这个字符串就能知道第几条数据是男,第几条不是男,同理,另外一条代表女的字符串也一样,是女的就1,不是女的就0。(类似于状态压缩)

 

5. 格雷反射编码

  相邻的格雷码之间的汉明距离为1。对于基数为$N_{1},N_{2}$的两列(基数为列中不同值的个数),我们分别将两列的值标记为$1,2...,N_{1}$以及$1,2,...,N_{2}$。从元组$(1,1)$开始,我们按照以下两个规则生成Reflected GC序列:

  step 1. 如果tuple里面的第一个数为奇数,那么tuple里面的第二个数从$1$递增至$N_{2}$;

  step 2. 如果tuple里面的第一个数为偶数,那么tuple里面的第二个数字从$N_{2}$递减至$1$。

  举个简单的例子:(1, 1), (1, 2), . . . , (1,N2), (2,N2), (2,N2 − 1), . . . , (2, 1), (3, 1), . . .

6. TSP为RunCount最小化问题建模

  如何建模

  TSP的一些启发式算法的介绍(基于曲线填充、 基于路径构造)

 

论文中的runs应该是游程长度编码中的一个单位,例如5A3C有两个runs,论文中一个核心的问题在于如何让runs的总数最小。

 

(对tsp问题的一个启发式解决方案)

 

(一遍过去之后别忘记找老师反馈一下目的 ,看这边论文具体是要掌握哪些东西之类的。  先看一遍 然后提出自己的疑问)

上一篇:数据类型


下一篇:百度飞桨 【零基础学python】第一讲