जब कोई बड़ी संभावना वाले पत्र न हों तो हफ़मैन कोड कितना अच्छा है?


21

एक प्रायिकता वितरण के लिए Huffman कोड p न्यूनतम भारित औसत codeword लंबाई के साथ उपसर्ग कोड है pii , जहां i की लंबाई है i वें codword। यह एक प्रसिद्ध प्रमेय है कि हफमैन कोड के प्रतीक की औसत लंबाई H(p) और H(p)+1 , जहाँ H(p)=ipilog2pi प्रायिकता वितरण की शैनन एंट्रोपी है।

विहित बुरा उदाहरण, जहां औसत लंबाई शैनन एन्ट्रापी से लगभग 1 से अधिक है, एक प्रायिकता है जैसे कि {.999,.001} , जहां एन्ट्रापी लगभग 0 है, और औसत कोडवर्ड लंबाई 1. है। लगभग के एन्ट्रापी और कोडवर्ड की लंबाई के बीच 1

लेकिन क्या होता है जब संभावना वितरण में सबसे बड़ी संभावना पर बाध्य होता है? उदाहरण के लिए मान लीजिए कि सभी संभावनाएँ 1 से कम हैं12 । इस मामले में मुझे जो सबसे बड़ा अंतर मिल सकता है, वह प्रायिकता वितरण जैसे{.499,.499,.002}, जहां एन्ट्रापी 1 से थोड़ी अधिक है और औसत कोडवर्ड की लंबाई 1.5 से थोड़ी कम है, जिससे गैप एप्रोच हो रहा है।0.5। क्या यह सबसे अच्छा आप कर सकते हैं? क्या आप उस खाई पर एक ऊपरी सीमा दे सकते हैं जो इस मामले के लिए सख्ती से 1 से कम है?

अब, चलो उस मामले पर विचार करें जहां सभी संभावनाएं बहुत छोटी हैं। मान लीजिए कि आप M अक्षरों पर प्रायिकता वितरण चुनते हैं , प्रत्येक में प्रायिकता 1/M । इस स्थिति में, सबसे बड़ा अंतर तब होता है जब आप चुनते हैं M2kln2। यहाँ, आपको लगभग

1+lnln2ln2ln20.08607.
क्या यह सबसे अच्छी स्थिति है जिसमें आप सभी संभावनाएँ छोटी हैं?

यह प्रश्न इस TCS स्टैकएक्सचेंज प्रश्न से प्रेरित था ।

जवाबों:


19

बहुत सारे पेपर हैं जो आपके द्वारा बताई गई समस्या का सटीक अध्ययन करते हैं। श्रृंखला में पहला गैलर द्वारा एक पेपर है, "हफमैन द्वारा एक थीम पर विविधता", आईईईई-आईटी, वॉल्यूम। 24, 1978, पीपी। 668-674। वह साबित करता है कि एक Huffman कोड की औसत codeword लंबाई और एन्ट्रापी (वह कहता है कि मात्रा "अतिरेक") के बीच का अंतर हमेशा सख्ती से भी कम है , (= प्रायिकता वितरण में सबसे बड़ा संभावना) मामले में पी 1 / 2 , और यह तुलना में कम है पी + 0.086 , अगर पी < 1 / 2 । बेहतर सीमाएं ज्ञात हैं, आप उन्हें कई पत्रों में पा सकते हैं जो गैलेगर के काम का उद्धरण देते हैं।pp1/2p+0.086p<1/2


2
हस्टमैन कोड्स के अतिरेक पर मैनस्टेट्टेन, टाइट बाउंड्स द्वारा इष्टतम बाध्य पाया गया है ।
युवल फिल्मस

2

द्वारा पहचानने बाध्य, मेरा मानना है कि आप एक अलग सवाल पूछने के लिए इरादा है ... या तुम सिर्फ निर्दिष्ट नहीं किया है आप कैसे "औसत" ले लो। तो मैं दोनों को जवाब दूंगा। जवाब दोनों सवालों का नहीं है।H(p)H(p)+1

सबसे पहले, यदि आप कोड शब्दों पर एक समान वितरण का उपयोग करके औसत कोड की लंबाई को परिभाषित करते हैं और को किसी एक तत्व की संभावना पर ऊपरी सीमा के रूप में लेते हैं , तो लंबाई के कोड पर विचार करें q + k जहां 2 q - 1 कोड शब्दों की लंबाई q है और शेष 2 q + k - 1 की लंबाई q + k है । इस कोड द्वारा पूरी तरह से एन्कोड किए गए वितरण के लिए, औसत लंबाई q + k तक पहुंचती है , जब तक कि आपके पास एक तत्व की संभावना के लिए कम बाध्य न हो, जबकि एन्ट्रापी2qq+k2q1q2q+k1q+kq+kq+k2

अब हम "औसत लंबाई" पर विचार करते हैं जिसका अर्थ है कोडन लंबाई जब हफ़मैन कोड को के लिए कोड करने के लिए उपयोग किया जाता है । इधर, बाध्य तंग है, और एक उदाहरण के वितरण की सीमा में यह प्राप्त करने से एक है, जिसमें प्रत्येक तत्व संभावना के साथ होता है 2 क्ष ± 1 / 2 के लिए क्ष जेड(अंतिम तत्व किसी भी बचे हुए संभावना को सौंपा गया है, लेकिन यह असमान रूप से कोई अंतर नहीं करेगा)।p2q±1/2qZ.

उदाहरण के लिए, पर विचार फिरq=7.

=52,बी=76522 - 6.5 762 - 7.5A+B=128,A2+B/2128,maxAZAA=52,B=765226.57627.5

तब , जबकि हफ़मैन कोड प्राप्त होता है नुकसान। (संयोग से, एन्ट्रापी नुकसान का एक नाम है, चाहे आप हफ़मैन कोडिंग करें या लिए मनमाने ढंग से कोडिंग करें : कुलबबैक-लाइब्लर डाइवर्जेंस । इसका उपयोग करते हुए, मैंने कुछ दिनों पहले पता लगाया, दो तरफा चेरनॉफ सीमा को तंग करता है, जैसा कि आप विकिपीडिया पर चेरनॉफ़ सीमा पर देख सकते हैं।)H(X)=(526.5+767.5)/128=7.09375(520.5760.5)/1280.99436QD(PQ)=pilogpiqi+(1pi)log1pi1qi


1
मैं इस दूसरे उदाहरण से कुछ चकित हूं। यदि आपके पास 128 कोडवर्ड हैं, तो औसत शब्द लंबाई 7 के साथ एक कोड है (वास्तव में, सभी शब्द लंबाई में 7 हैं), जो आपके कथन का खंडन करता है कि एन्ट्रापी 7.09375 है। इस वितरण की एन्ट्रापी (जो आपको और औसतन नहीं) का भारित औसत लेने पर मिलती है , 6.88 है, जबकि हफ़मैन कोड की औसत लंबाई 7. है। यह एक अंतर देता है (या कुल्लबैक-लाइबलर विचलन) लगभग 0.12, जो मेरे उदाहरण से काफी बेहतर लगता है, लेकिन 1 के करीब नहीं हैlog2pi
पीटर शोर

और वास्तव में, आप सही हैं। मैं संभावना वितरण तहत अपेक्षित कोडवर्ड लंबाई के बारे में पूछना चाहता था । p
पीटर शोर

ओह, मैंने बनाम बारे में गलत अनुमान लगाया है । हम अभी भी से थोड़ा कम चाहते हैं, लेकिन जैसे कुछ, कम पंक्ति में कम प्रविष्टियों को मजबूर करने के लिए। इससेABA2+B/22kA+2B=2kA=21/221B.
कार्ल

वास्तव में यह ... लेकिन समीकरणों की इस प्रणाली का कोई सकारात्मक समाधान नहीं है - ऐसा लगता है कि हम हर चीज को आधे-पूर्णांक होने के लिए बाध्य नहीं कर सकते । इसलिए और बजाय हम हफमैन कोड के आधे के लिए पर विचार कर सकते हैं और बाकी के लिए, प्रविष्टियाँ दे रहा है ...2A+B221/2(1+x)/2k(1x)/2k+132k
कार्ल

तो, इसे आज़माएं (इष्टतम नहीं - मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप नीचे या ऊपर कैसे गोल करते हैं)। प्रायिकता साथ प्रविष्टियाँ और प्रायिकता साथ प्रविष्टियाँ एन्ट्रापी । इसके बजाय कि प्रविष्टियों की संभावना और प्रविष्टियों की संभावना साथ । इस वितरण की एन्ट्रॉपी जो 6.4023 देता है, जबकि हफ़मैन कोड का एन्ट्रापी 7.5 समान है, औरइसलिए जब तक मैं गलत नहीं होता (और मैं अक्सर करता हूं), इस बारे में एक अंतर देता है641/1281281/2567.5641/12821281/256(21/2)1/(22)7.5+(11/(2(2)))5.802(121.5)7+21.58=7.3535.0.95
कार्ल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.