תורת הקודים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
YurikBot (שיחה | תרומות)
מ רובוט מוסיף: de, fr, ja, nl, vi
Felagund-bot (שיחה | תרומות)
בוט - מחליף 'ליניארי' ב'לינארי', ' הכל ' ב' הכול '
שורה 15:
מכאן מתקבלת אפשרות להעריך קוד על פי מספר קריטריונים בסיסיים - מספר האותיות שבהן משתמשים בקוד, אורך כל מילה בקוד, מספר המילים בקוד (עושר השפה) ומרחק הקוד (היכולת לתקן שגיאות). למעט מספר האותיות בקוד, שזה יותר עניין של טכנולוגיה (האם מעבירים מסרים בשפה [[בינארי|בינארית]] או דווקא בשפה [[טרינרי|טרינרית]]), שאר המאפיינים ניתנים לשינוי ולשליטה מסוימת על ידי יוצרי הקוד. מאפיינים אלו עומדים אחד מול השני - הגדלת המרחק של הקוד מצמצמת את מספר המילים האפשריות, ואמנם על ידי הגדלת אורך המילים בקוד ניתן להגדיל הן את המרחק והן את מספר המילים אך בכך גם מגדילים את הסרבול של הקוד ואת מספר השגיאות הממוצע שהוא סופג בעת העברתו. כאשר קובעים את אורך הקוד ואת המרחק שלו, מספר המילים האפשריות בקוד הוא מוגבל. קודים שמספר המילים בהם הוא מקסימלי, עבור אורך מילה ומרחק קוד קבועים, נקראים קודים אופטימליים, ועיקר תורת הקודים הוא בחיפוש וחקירה של קודים כאלו.
 
===קודים ליניארייםלינאריים===
באופן מפתיע, חלק גדול מהקודים הטובים (מבחינת גודל הקוד ומרחקו), הם דווקא קודים שמוגבלים על ידי עוד דרישה- הדרישה שהקוד יהיה [[מרחב וקטורי]], קודים כאלו נקראים [[קוד לינארי|קודים לינאריים]].
 
כדי לומר שקוד מסוים הוא מרחב וקטורי, צריך לפני הכלהכול להגדיר בין מילות הקוד פעולות של חיבור וכפל בסקלר. לשם כך קובעים שאוסף האותיות שמהן מורכבות מילות הקוד יהיה [[שדה (מבנה אלגברי)|שדה]], ואפילו [[שדה סופי]]. אם נסמן את מספר האותיות של הקוד ב- q נקבל שתנאי הכרחי לכך שהקוד יהיה קוד לינארי הוא ש- q יהיה חזקה של [[מספר ראשוני]] (ראו בערך על [[שדה סופי|שדות סופיים]]). המקרה הנפוץ ביותר כיום הוא של קודים בינאריים - שמכילים רק את הספרות 0 ו-1, שבהם מספר האותיות הוא q=2, מספר ראשוני בעצמו.
 
אחרי שנזהה את אותיות הקוד עם איברי השדה בן q אברים נקבל זיהוי של הקוד עצמו עם תת קבוצה של המרחב הוקטורי <math>\mathbb{F}_q ^n</math>, כאשר <math>\mathbb{F}_q</math> הוא השדה שמזוהה עם אותיות הקוד, ו-n הוא אורך כל מילה בקוד. בצורה הזו מוגדרים חיבור וכפל בסקלר על איברי C, ולכן ניתן לשאול האם C הוא מרחב וקטורי מעל <math>\mathbb{F}_q</math> או לא. אם הוא מרחב וקטורי- אז הוא קוד לינארי. בקודים לינאריים נהוג לציין את [[ממד (אלגברה)|ממד]] הקוד כמרחב וקטורי, ולא את מספר המילים שבקוד (שהוא q בחזקה הממד).