اگر به دنبال آموزشی هستید که علاوه بر یادگیری الگوریتم هافمن، سورس کد آن را نیز بیاموزید و بتوانید آن را اجرا و تحلیل کنید آموزش جدید ما قطعاً برای شما کاربرد خواهد داشت. در این قسمت تیم کدگیت ویدئو الگوریتم هافمن در پایتون (huffman) را برای شما تهیه کرده است. الگوریتم هافمن یکی از الگوریتم های فشرده سازی یا compression است امروزه از آن استفاده می شود. این الگوریتم به روشی ساده و با کمک درخت دودویی دیتاها را compression میکند و حجم آنها تقریباً نصف میشود. قبل از ادامه مقاله پیشنهاد میکنیم از دیگر سورسهای ما دیدن کنید:
ویدئو الگوریتم هافمن در پایتون
Compression یکی از تکنیکهایی است که امروزه در تمامی اطلاعات دیجیتال میتوان دید. انواع مختلف فرمت های compression تصاویر(png یا jpg و …) یا compression ویدئوها براحتی انجام میگیرد و ممکن ما با فرآیند آنها آشنا نباشیم. ویدئویی که امروز برای شما تهیه کردهایم الگوریتم هافمن است که یک نوع تکنیک compression محصوب میگردد. این تکنیک بسیار قدیمی میباشد و شما را با دنیای الگوریتم compression آشنا میکند.
این مجموعه آموزشی شامل پنج جلسه می باشد:
- جلسه اول: بررسی الگوریتم هافمن و نحوه کار آن
- جلسه دوم: آشنایی با دیکشنری و تابع کمکی محاسبه تعداد تکرار کاراکتر
- جلسه سوم: معرفی کلاس Node و تابع کمکی محاسبه فضای گرفته شده در الگوریتم هافمن
- جلسه چهارم: توضیح بخش اصلی سورس الگوریتم هافمن و بررسی قدم به قدم آن
- جلسه پنجم: توضیح آخرین تابع کمکی الگوریتم هافمن یعنی محاسبه کد بر اساس درخت دودویی
- جلسه ششم: اجرای سورس کد در محیط برنامه نویسی
روش کار الگوریتم
یک مجموعه از حروف یا کاراکتر به الگوریتم هافمن بدهید تا در خروجی این دیتاها برای شما هم compress شود و هم رمزنگاری، بله درسته، واژه رمزنگاری دقیقاً برای این الگوریتم بکار میرود. این الگوریتم ابتدا بر اساس تعداد تکرار کاراکترها، آنها را مرتب کرده و سپس یک درخت دودویی ایجاد میکند. با کمک درخت دودویی ایجاد گردیده، کاراکترها را رمز و compress میکند.
نحوه اجرای سورس الگوریتم هافمن در پایتون
بعد از تهیه ویدئو آموزشی، در کنار فایل ویدئویی، یک فایل پایتون با فرمت .py در اختیار شما قرار میگیرد. نام این فایل HuffmanCoding.py میباشد. این فایل اصلی برنامه بوده و با اجرای آن میتوانید الگوریتم هافمن را اجرا نمایید. پس از اجرای برنامه خروجی زیر را مشاهده خواهید کرد(ورودی برنامه AAAAAAABCCCCCCDDEEEEE بوده است):
AAAAAAABCCCCCCDDEEEEE
symbols: dict_keys([‘A’, ‘B’, ‘C’, ‘D’, ‘E’])
probabilities: dict_values([7, 1, 6, 2, 5])
symbols with codes {‘A’: ’00’, ‘C’: ’01’, ‘E’: ’10’, ‘D’: ‘110’, ‘B’: ‘111’}
Space usage before compression (in bits): 168
Space usage after compression (in bits): 45
Encoded output 000000000000001110101010101011101101010101010
Decoded Output AAAAAAABCCCCCCDDEEEEE
نقد و بررسیها
هنوز بررسیای ثبت نشده است.