हफमैन कोड: उदाहरण, अनुप्रयोग
फिलहाल, कुछ लोग इस तथ्य के बारे में सोचते हैं,संपीड़न कैसे काम करता है। अतीत की तुलना में, एक निजी कंप्यूटर का उपयोग करना बहुत आसान हो गया है। और व्यावहारिक रूप से फ़ाइल सिस्टम के साथ काम करने वाले प्रत्येक व्यक्ति अभिलेखागार का उपयोग करता है। लेकिन कुछ लोग सोचते हैं कि वे कैसे काम करते हैं और फाइलों का संपीड़न किस सिद्धांत पर है। इस प्रक्रिया का पहला संस्करण हफमैन कोड था, और वे अभी भी विभिन्न लोकप्रिय संग्रहकर्ताओं में उपयोग किए जाते हैं। कई उपयोगकर्ता यह भी नहीं सोचते कि फ़ाइल को संपीड़ित करना कितना आसान है और यह किस योजना के अनुसार काम करता है। इस आलेख में, हम देखेंगे कि संपीड़न कैसे किया जाता है, एन्कोडिंग प्रक्रिया को तेज़ करने और सरल बनाने में कौन सी बारीकियां मदद करती हैं, और हम यह पता लगाएंगे कि कोडिंग पेड़ बनाने का सिद्धांत क्या है।
एल्गोरिदम का इतिहास
एक प्रभावी के लिए पहला एल्गोरिदमइलेक्ट्रॉनिक जानकारी का कोडिंग बीसवीं शताब्दी के मध्य में हफमैन द्वारा प्रस्तावित कोड था, अर्थात् 1 9 52 में। यह वर्तमान में सूचना को संपीड़ित करने के लिए बनाए गए अधिकांश कार्यक्रमों का मुख्य मूल तत्व है। फिलहाल, इस कोड का उपयोग करने वाले सबसे लोकप्रिय स्रोतों में से एक ज़िप, एआरजे, आरएआर अभिलेखागार और कई अन्य हैं।
कुशल कोडिंग का सिद्धांत
हफमैन एल्गोरिदम के लिए आधार एक योजना है,यह बाइनरी सिस्टम के कोड के साथ सबसे संभावित, सबसे अधिक बार सामना करने वाले प्रतीकों को प्रतिस्थापित करने की अनुमति देता है। और जो कम आम हैं उन्हें लंबे कोड के साथ प्रतिस्थापित किया जाता है। लंबे हफमैन कोड में संक्रमण केवल सिस्टम के सभी न्यूनतम मानों का उपयोग करने के बाद होता है। यह तकनीक आपको मूल संदेश के प्रत्येक चरित्र के लिए कोड की लंबाई को कम करने की अनुमति देती है।
हफमैन का कोड, उदाहरण
एल्गोरिदम को चित्रित करने के लिए, चलिए लेते हैंएक कोड पेड़ के निर्माण का एक ग्राफिक संस्करण। इस विधि का उपयोग करने के लिए प्रभावी था, इस विधि की अवधारणा के लिए आवश्यक कुछ मूल्यों की परिभाषा को स्पष्ट करना उचित है। नोड से नोड तक निर्देशित आर्क और नोड्स का सेट आमतौर पर ग्राफ कहा जाता है। पेड़ स्वयं कुछ गुणों के एक सेट के साथ एक ग्राफ है:
- प्रत्येक नोड में आर्क में से एक से अधिक दर्ज नहीं कर सकते हैं;
- नोड्स में से एक पेड़ की जड़ होना चाहिए, यानी, कोई चाप इसे बिल्कुल दर्ज नहीं करना चाहिए;
- अगर रूट से arcs के साथ चलना शुरू करने के लिए, इस प्रक्रिया को किसी भी नोड्स में पूरी तरह से प्राप्त करने की अनुमति देनी चाहिए।
हफमैन के अनुसार एक पेड़ बनाने के लिए एल्गोरिदम
हफमैन कोड का निर्माण पत्रों से बना हैइनपुट वर्णमाला का। भविष्य के कोड पेड़ में मुक्त नोड्स की एक सूची बनाई गई है। इस सूची में प्रत्येक नोड का वजन इस नोड से संबंधित संदेश के पत्र की घटना की संभावना के समान होना चाहिए। इस मामले में, भविष्य के पेड़ के कुछ मुक्त नोड्स में से, जो वजन कम करता है वह चुना जाता है। साथ ही, यदि कई नोड्स में न्यूनतम संकेतक मनाए जाते हैं, तो किसी भी जोड़े को स्वतंत्र रूप से चुनना संभव है।
संपीड़न दक्षता में सुधार
संपीड़न दक्षता बढ़ाने के लिए, यह आवश्यक हैपेड़ से जुड़ी किसी विशेष फ़ाइल में दिखाई देने वाले अक्षरों की संभावना के संबंध में सभी डेटा का उपयोग करने के लिए कोड पेड़ बनाने का समय, और उन्हें बड़ी संख्या में टेक्स्ट दस्तावेज़ों पर बिखरे जाने की अनुमति नहीं देना है। यदि आप पहली बार इस फ़ाइल के माध्यम से चलते हैं, तो आप तुरंत आंकड़ों की गणना कर सकते हैं कि ऑब्जेक्ट से कितनी बार संकुचित किया जाना चाहिए।
संपीड़न प्रक्रिया का त्वरण
एल्गोरिदम को गति देने के लिए, अक्षरों की परिभाषाइस या उस पत्र की घटना की संभावनाओं के संकेतकों और इसकी घटना की आवृत्ति पर नहीं होना आवश्यक है। इसके लिए धन्यवाद, एल्गोरिदम सरल हो जाता है, और इसके साथ काम बहुत तेज़ हो जाता है। यह फ़्लोटिंग कॉमा और डिवीजन से जुड़े संचालन से भी बचाता है।
निष्कर्ष
हफमैन के कोड - सरल और लंबे समय से स्थापितएल्गोरिदम, जिसे अभी भी कई प्रसिद्ध कार्यक्रमों और कंपनियों द्वारा उपयोग किया जाता है। इसकी सादगी और स्पष्टता किसी भी आकार की फ़ाइलों के लिए प्रभावी संपीड़न परिणाम प्राप्त करना संभव बनाता है और स्टोरेज डिस्क पर मौजूद स्थान को काफी कम करता है। दूसरे शब्दों में, हफमैन एल्गोरिदम एक लंबी अध्ययन और अच्छी तरह से डिज़ाइन की गई योजना है, जिसकी प्रासंगिकता इस दिन कम नहीं होती है।