我正在研究使用壓縮作爲衡量文檔與文檔語料庫關係的一種方法。在使用bzip2時,我發現了一個奇怪的結果; len(compress(corpus))> len(compress(corpus + new_document))。實際的壓縮算法應該是這種情況嗎?當考察Kolmogorov數據的複雜性時,這在理論上是可行的嗎? (其思想是使用壓縮算法來近似數據的複雜度)實際壓縮和柯爾莫哥洛夫複雜度的界限
回答
是的,實際的壓縮算法應該是這種情況,理論上可以使用Kolmogorov complexity。解釋原因的最簡單方法就是舉一個例子。
假設如下:
- 你的文件分隔符爲
,
- 語料庫文件ABC,DEF,ABC,DEF,ABC,DEF,ABC,
- 新的文件是高清
- 您的壓縮算法(或kolmogorov描述語言)只允許重複前綴重複計數,後跟
|
(這是run-length encoding的變體)
然後:
- 壓縮(語料庫)= 「3 | ABC,DEF,1個| ABC」
- 壓縮(語料庫+ new_document)= 「4 | ABC,DEF,」
因此compress(corpus)
比compress(corpus+new_document)
長。這是有點人爲的,但希望解釋如何結果理論上可以用簡單的方案出現。我並不是說bzip2會發生這種情況,只是展示它在理論上是可行的。
編輯 它已運行長度編碼不是圖靈完整的,因此不能用於柯爾莫哥洛夫複雜另一個答案被提及。雖然這是真的,但使用圖靈語言,您可以使用實現以您選擇使用的任何描述語言編碼遊程長度,結果相同,因此該示例仍然有效。
真實的壓縮算法有這樣的怪癖,但它們只是提供了一個非常粗略的近似值。
至於在理論上是否可能發生,但差別不大。
我們假設你有兩個字符串,x和y,其中x是y的前綴。比方說,例如該
X = 「asdfasdfasdfasdfasdfasdfasdfasdfasdf」
Y = 「asdfasdfasdfasdfasdfasdfasdfasdfasdf23452345234523452344523452452345234524345234」
讓我們進一步假設,d爲y的最短描述。 (即在這種情況下,x可以被描述爲|「由D描述的數字減46個字符」|,其比D更長,但是僅僅通過小的常數和對數因子(基本上其餘指令中的字符數)。
甚至有可能是x的一個短的描述,但我們知道,在最壞情況下,K(X)< = K(Y)+日誌(| Y | - | X |)
但是,你必須請記住,理論Kolmogorov複雜性是難以置信的,恆定的差異在這個領域沒有任何意義。
(注:上面的RLE例子也不是一個有效RLE不是圖靈完整的語言,因此它不能被用來作爲Kolmogorov複雜的描述語言。)
- 1. 柯爾莫哥洛夫 - 斯米爾諾夫檢驗與
- 2. 生成柯爾莫哥洛夫 - 查普曼方程馬爾可夫過程
- 3. 一個樣本柯爾莫哥洛夫 - 斯米爾諾夫測試GOF的理論distribtion(makedist錯誤)MATLAB
- 4. 科爾莫戈羅夫 - 斯米爾諾夫測試R
- 5. 吉夫LZW壓縮
- 6. Kolmogorov複雜性的最優已知上界是什麼?
- 7. H.264實時流如何實際壓縮和傳輸?
- 8. 離子傳遞複雜對象的莫代爾通過NavParams
- 9. LCID的標準摩洛哥Tamazight
- 10. .NET的TimeZoneInfo錯摩洛哥夏令
- 11. Maven的組裝插件 - 複雜的壓縮和解腳本
- 12. 時間複雜度混淆的下界
- 13. Python,如何壓縮和重構複雜的數據集
- 14. 霍夫曼編碼壓縮
- 15. 霍夫曼編碼 - 壓縮
- 16. 窮人哈夫曼壓縮
- 17. 壓縮文件下載到實際的壓縮文件中的文件結構
- 18. 解壓壓縮串霍夫曼算法
- 19. 時間複雜度界輸入
- 20. 時間複雜度和空間複雜度,如何計算空間複雜度
- 21. 德爾福壓縮和加密
- 22. 計算函數的空間複雜度和時間複雜度
- 23. 壓縮實例
- 24. 通過雜種羣與八哥和雜種的多個實例工作
- 25. 壓縮的實施?
- 26. 霍夫曼壓縮文件大小是否有最大限制?
- 27. 測量霍夫曼算法的壓縮
- 28. 洛夫JSliderNews URL問題
- 29. 馬爾可夫鏈測試和實現
- 30. 時間複雜度無限遞歸
我喜歡這個答案是什麼它是如何直觀地表明爲什麼鏈規則除了一個常數因子之外還有一個對數因子(來自減去的字符數量的來源;來自減法的常數)。 – 2011-11-16 23:34:48