Kompyuterlar, Axborot texnologiyalari
Huffman kodlari: misollar, dastur
Hozirgi vaqtda kamdan-kam odam siqishni ishlashi haqida o'ylaydi. O'tmish bilan taqqoslaganda, shaxsiy kompyuterdan foydalanish ancha osonlashdi. Va fayl tizimi bilan ishlaydigan deyarli har bir kishi arxivdan foydalanadi. Biroq, ularning ko'pchiligi qanday ishlashlari haqida o'ylashadi va fayllarni siqishni qaysi printsipga bog'liq. Ushbu jarayonning birinchi versiyasi Huffman kodlari bo'lib, ular hali ham turli xil mashhur arxivlarda qo'llaniladi. Ko'p foydalanuvchilar faylni siqishni qanchalik oson va u qaysi sxema bo'yicha ishlayotganligini ham o'ylamaydilar. Ushbu maqolada biz siqishni qanday ishlashini ko'rib chiqamiz, kodlash jarayonini tezlashtirish va soddalashtirishga yordam beradigan nuanslar, shuningdek, kodlash daraxtini yaratish printsipi nima ekanini tushunamiz.
Algoritm tarixi
Elektron axborotlarni samarali kodlash bo'yicha dastlabki algoritm Xafman XX asr o'rtalarida, ya'ni 1952 yilda taklif qilingan koddir. Ma'lumotni qisqartirish uchun yaratilgan ko'pgina dasturlarning asosiy asosiy elementi hisoblanadi. Hozirgi vaqtda bu kodni ishlatadigan eng ommabop manbalardan biri ZIP, ARJ, RAR arxivlari va boshqalar.
Samarali kodlash tamoyili
Huffman algoritmining asoslari eng ehtimoliy, eng tez-tez uchraydigan belgilarni o'zaro tizim kodlari bilan almashtirish imkonini beruvchi sxema. Va kamroq tarqalganlar o'rniga ko'proq kodlar almashtiriladi. Uzoq Huffman kodlariga o'tish tizimda barcha minimal qiymatlardan foydalanilgandan so'ng sodir bo'ladi. Ushbu usul, asl xabarning har bir belgi uchun kod uzunligini kamaytirish imkonini beradi.
Huffmanning kodi, misol
Algoritmni ko'rsatish uchun, keling, kod daraxtini yaratishning grafik variantini ko'rib chiqamiz. Ushbu usulni qo'llash samarali bo'lganligi sababli, ushbu usulning kontseptsiyasi uchun zarur bo'lgan ayrim qadriyatlar ta'rifini aniqlab olish maqsadga muvofiqdir. Nodlardan tugunga yo'naltirilgan yoy va tugunlar to'plami odatda grafik deb ataladi. Daraxtning o'ziga xos xususiyatlari quyidagilardir:
- Har bir tugunda yoylarning birortasidan ko'pi o'tishi mumkin emas;
- Nodulardan biri daraxtning ildizi bo'lishi kerak, ya'ni unda hech qanday yoy bo'lmasligi kerak;
- Agar ildizdan yoylar bo'ylab harakatlanishni boshlasangiz, bu jarayon tugunlarning har qanday qismiga to'liq o'tishga imkon beradi.
Huffmanga ko'ra, daraxt qurish algoritmi
Huffman kodini qurish alfavitning harflaridan olingan. Kelajakda kod daraxti uchun bepul bo'lgan ushbu tugunlar ro'yxati yaratiladi. Ushbu ro'yxatdagi har bir tugunning vazni ushbu tugunga mos keladigan xabar xatining paydo bo'lishi ehtimoli bilan bir xil bo'lishi kerak. Bunday holda, kelajak daraxtning bir nechta bepul tugunlari orasida eng kam og'irligi tanlanadi. Shu bilan birga, agar minimal ko'rsatkichlar bir nechta tugunlarda kuzatilsa, unda har qanday juftni erkin tanlash mumkin.
Siquv samaradorligini oshirish
Siqilish samaradorligini oshirish uchun kod daraxti qurilayotganda, daraxtga biriktirilgan ma'lum faylda paydo bo'lgan harflar ehtimoli haqidagi barcha ma'lumotlarni ishlatish va ularning ko'plab matnli hujjatlarga tarqalishiga yo'l qo'ymaslik kerak. Agar siz ushbu fayl orqali birinchi marta yurish qilsangiz, siz darhol siqilgan obyektdan kelgan harflarning qanchalik tez-tez bo'lishiga oid statistikani hisoblashingiz mumkin.
Siquv jarayonining tezlashishi
Algoritm ishini jadallashtirish uchun harflar ma'lum bir harfning paydo bo'lish ehtimoli indekslari emas, balki uning paydo bo'lish chastotasi bilan belgilanishi kerak. Buning natijasida algoritm osonlashadi va u bilan ishlash juda tezlashadi. Bu shuningdek, suzuvchi vergul va bo'linishlar bilan bog'liq operatsiyalarni ham to'xtatadi.
Xulosa
Huffman kodlari ko'pgina mashhur dastur va kompaniyalar tomonidan qo'llaniladigan oddiy va uzoq muddatli algoritmdir. Uning soddaligi va ravshanligi har qanday hajmdagi fayllarni siqib chiqarishning samarali natijalariga erishishga va diskda saqlangan maydonni sezilarli darajada kamaytirishga imkon beradi. Boshqacha aytganda, Huffman algoritmi uzoq vaqt o'rganilgan va yaxshi ishlab chiqilgan sxema bo'lib, uning dolzarbligi hozirgi kunga qadar pasaymaydi.
Similar articles
Trending Now