קוד האפמן – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
Badidipedia (שיחה | תרומות) ←תיאור הבעיה: הפיכה של "טקסט" ל"קבוצת תווים". ראו "תיאור האלגוריתם בשיחה:קוד האפמן |
Badidipedia (שיחה | תרומות) ←תיאור הבעיה: המשך השינוי הקודם שלי |
||
שורה 23:
הבעיה העיקרית שאותה פתר האפמן אינה תיאור הקוד עצמו, אלא מציאת [[אלגוריתם]] יעיל שמבטיח בנייה של קוד כזה בהינתן קבוצת תווים כלשהי. מרגע שקיים קוד כנדרש, קידוד ופענוח ניתנים לביצוע במעבר אחד על התווים, ולכן הבעיה הגדולה היא מציאת הקוד. מכיוון שאופטימליות הקוד מתבססת על מספר המופעים של כל תו בקבוצת התווים, לא קיים קוד אחד שנותן קידוד אופטימלי לכל קבוצת תווים, ולכן נדרשת הפעלה של האלגוריתם ובניית הקוד המתאים עבור הקבוצה.
מבחינה פורמלית, הקלט לבעיה הוא אוסף
הפלט הצפוי הוא '''קוד''', שהוא אוסף <math>\ h_1,h_2,\dots,h_n</math> של מילים בינאריות. נסמן <math>\ |h_k|</math> את אורכה של המילה ה-<math>\ k</math>.
היעד הוא שהקוד שיוחזר יהיה כזה כך ש- <math>\ \sum_{k=1}^n c_k\cdot|h_k|</math> יהיה מינימלי. הסכום הוא בדיוק מספר הביטים שנדרש לקידוד
===תיאור האלגוריתם===
|