نظرية المعلومات: حدود الممكن
هنا نعطي "الهواء" اسماً ومعادلة. بعد هذه العقدة لن ترى الضغط كحيلة برمجية، بل كسعيٍ نحو حدٍّ رياضي صارم. كل خوارزمية ضغط كُتبت أو ستُكتب تلعب داخل القفص الذي يبنيه شانون هنا.
ملفّان، كلٌّ ١٠٠٠٠ بايت: أ كلّها 0x00،
ب ضوضاء عشوائية نقية.
أيّهما يُضغط أكثر؟ (سهل.) الآن الصعب: عرّف "يمكن ضغطه" برقم
يُقاس. ما الكمية التي تختلف بين الملفّين وتحدّد بالضبط كم بايتاً
لا بد أن يبقى بعد أفضل ضغط في الكون؟ فكّر في "المفاجأة": قيمة
0x00 بعد ٩٩٩٩ صفراً — هل تفاجئك؟
اشتقاق "المفاجأة" من الصفر
شانون (1948) قلب السؤال: المعلومة هي إزالة عدم اليقين.
المتوقَّع لا يحمل معلومة؛ المفاجئ يحملها. إذن المعلومة دالّة على
الاحتمال. لنشتقّ مقياس المفاجأة I(p) بدل حفظه — ما الشروط
التي يجب أن يحقّقها بالضرورة؟
حين تصل للعقدة ٠٢ وترى Huffman يعطي الرموز النادرة أكواداً أطول، ستدرك أنه ليس حيلة — إنه محاولة عملية لمطابقة log(1/p). الاشتقاق أعلاه هو "ليش" خوارزميات الترميز كلها.
الإنتروبي: متوسّط المفاجأة = القفص
المفاجأة خاصّية حدث واحد. الصورة آلاف الأحداث. نريد متوسّط المفاجأة المتوقَّع = الإنتروبي:
entropyH = Σ pᵢ · log₂(1/pᵢ) bit / رمز
نظرية شانون لترميز المصدر: لا توجد طريقة لترميز رموز مصدرٍ بمتوسّط
أقلّ من H دون فقدان معلومة. تقترب منه بقدر ما تشاء، لكن لا
تنزل تحته أبداً.
| الملف | التوزيع | H | النتيجة |
|---|---|---|---|
| أ — كله أصفار | p(0x00)=1 | 0 | إنتروبي صفر → يُختزل لبضعة بايتات |
| ب — عشوائي | كلٌّ 1/256 | 8 | إنتروبي أقصى → لا يُضغط ولا بِتّاً |
"أي ملف يمكن ضغطه أكثر بخوارزمية أذكى" — خطأ. الجذر: الخلط بين تكرار سطحي وإنتروبي. لو صحّ لضغطنا أي ملف حتى بِتٍّ واحد (حجّة العدّ تُثبت الاستحالة: لا دالّة عكسية تطابق ٢ⁿ ملفاً بأقل من ٢ⁿ مخرَجاً). كل ضغط هو استغلال انحراف عن العشوائية.
النقطة التي تغيّر كل شيء: الإنتروبي يعتمد على النموذج
حسبنا الإنتروبي بافتراض أن البِكسلات مستقلّة. لكن البِكسل يشبه جاره (العقدة ٠٠)! فإذا غيّرنا النموذج — نمذجنا "الفرق عن الجار" بدل القيمة المطلقة — يتغيّر التوزيع، وقد ينهار الإنتروبي:
الإنتروبي ليس خاصّية للبيانات وحدها — بل خاصّية للبيانات بالنسبة إلى نموذج يتنبّأ بها. الضغط = إيجاد نموذج يجعل المفاجأة أقلّ. كل صيغة صور = نموذج تنبّؤ + مرمّز إنتروبي. هذا الانقسام (Model ↔ Coder) هو المحور الذي تدور حوله كل العقد القادمة.
- اقرأ ملفاً، احسب تكرار كل بايت، ثم احسب
Hبالمعادلة. الناتج bit/byte. - اضرب H × عدد البايتات ÷ 8 → الحجم النظري الأدنى. اطبع نسبة الضغط الممكنة.
- اللغز: أنشئ تيّاراً جديداً
(byte[i] − byte[i-1]) mod 256، واحسب إنتروبيه. على صورة متدرّجة يجب أن ينهار. ثم جرّبه على ضوضاء عشوائية — لماذا لا ينخفض هنا؟
الهدف: أن ترى بعينيك أن "تغيير النموذج" خفض الإنتروبي على البيانات الحقيقية ولم يخفضه على الضوضاء — فتشتقّ بنفسك لماذا توجد مرشّحات PNG أصلاً.
المعلومة = log(1/p). الإنتروبي H = Σ pᵢ log₂(1/pᵢ)
= الحدّ الأدنى المطلق. الضوضاء النقية غير قابلة للضغط. والأهم: الإنتروبي
يعتمد على النموذج → الضغط = نموذج + مرمّز. من هنا تنبت شجرتان: المرمّز
(العقدة ٠٢) والنموذج (العقدة ٠٣ و ٠٤–٠٥).