רמז – עזרה ופתרונות

קוד שאנון-פאנו

כל מה שרצית לדעת על קוד שאנון-פאנו:
קוד שאנון-פאנו אשר שייך לתחום דחיסת נתונים וקרוי על שם קלוד שאנון ורוברט פאנו, הוא טכניקה לבניית קוד תחיליות (כלומר כל מחרוזת ביטים שמייצגת סמל אינה תחילית של מחרוזת המייצגת סמל אחר) המבוססת על קבוצה של סמלים והתדירות שהם מופיעים.
הרעיון הכללי הוצע במאמר של שאנון "A Mathematical Theory of Communication" משנת 1948 שהציג את תחום תורת האינפורמציה.
השיטה מיוחסת לפאנו שמאוחר יותר פרסם אותה כדו"ח מדעי.
יש לשים לב ולא להתבלבל עם קוד שאנון או עם קוד שאנון-פאנו-אליאס (נקרא גם "קוד אליאס") אשר מתייחסים לדברים שונים.
בקוד שאנון-פאנו, הסמלים מסודרים לפי ההסתברויות שהם נמצאים, מהגדול לקטן ואז הם מחולקים לשתי קבוצות כך שסכום ההסתברויות בכל קבוצה שווה כמה שאפשר לקבוצה השנייה.
כל סמל מקבל את הספרה הראשונה של קוד התחיליות שלו, הסמלים בקבוצה הראשונה מקבלים "0" והסמלים בקבוצה השנייה מקבלים "1".
עבור כל קבוצה שנשאר בה יותר מסמל אחד, התהליך חוזר על עצמו וכל סמל יקבל ספרה נוספת.
כאשר בקבוצה נשאר רק סמל אחד – הקוד עבור אותו סמל הושלם ואותו קוד לא יופיע בתחילת קוד של סמל אחר.
האלגוריתם מייצר קוד יעיל מאוד של מילות קוד בעלות אורך שונה.
אולם קוד שאנון-פאנו לא תמיד יוצר קוד תחיליות אופטימלי.
לדוגמה, עבור הקבוצה של ההסתברויות {0.
35, 0.
17, 0.
17, 0.
16, 0.
15} קוד שאנון-פאנו יוצר קוד לא אופטימלי.
קוד האפמן ליצירת קוד תחיליות, כמעט תמיד קל יותר לחישוב ומייצר תמיד קוד תחיליות אופטימלי.
כיוון שכך, קוד שאנון-פאנו כמעט שלא בשימוש.
קוד שאנון-פאנו משמש בשיטת הדחיסה IMPLODE, שהיא חלק מפורמט ZIP.

נלקח מויקיפדיה

הגדרות נוספות הקשורות לקוד שאנון-פאנו:
דחיסת נתונים
אלגוריתמים
קידוד נתונים
עצים (גרפים)

Exit mobile version