BETTER LIST DECODING
FOR REED SOLOMON CODES
Multiplicity
ריבוי
ריבוי בנקודה 0בפונקציות עם משתנה אחד
• הגדרה ראשונה:
סימון𝑚𝑢𝑙𝑡 𝑓,0 :
ריבוי של 𝑓 בנקודה , 0הוא מספר הפעמים ש𝑥 מחלק את 𝑓 .
כלומר ,ה𝑘 המקסימלי כך ש 𝑓 | 𝑘 𝑥
דוגמאות:
• 𝑥= 𝑥 𝑓
𝑚𝑢𝑙𝑡 𝑓, 𝑜 = 1
• 𝑓 𝑥 = 𝑥 10
→ 𝑚𝑢𝑙𝑡 𝑓,0 =10
10
𝑓 𝑥 = 𝑥−0 𝑥−0 … 𝑥−0 = 𝑥−0
• 𝑓 𝑥 = 𝑥 10 + 𝑥 4
𝑓 𝑥 = 𝑥 4 (𝑥 6 + 1) → 𝑚𝑢𝑙𝑡 𝑓,0 =4
• הגדרה שנייה:
𝑓 𝑘 0 = 0עבור 0 ≤ 𝑘 ≤ 𝑚𝑢𝑙𝑡 𝑓,0 − 1
וגם 0 ≠ 0
𝑓,0
𝑡𝑙𝑢𝑚 𝑓
דוגמא:
𝑓 𝑥 = 𝑥 4כפי שראינו מההגדרה הראשונה 𝑚𝑢𝑙𝑡 𝑓,𝑜 = 4
נסתכל על הנגזרות הראשונות של 𝑓:
𝟎= 𝟎 𝒇
𝟒𝒙 = 𝒙 𝒇
𝒇𝟏 0 = 0
𝟑𝒙𝟒 = 𝒙 𝟏𝒇
𝒇𝟐 0 = 0
𝟐𝒙)𝟑 ∗ 𝟒( = 𝒙 𝟐𝒇
𝒇𝟑 0 = 0
𝒙)𝟐 ∗ 𝟑 ∗ 𝟒( = 𝒙 𝒇3
𝒇𝟒 0 = 4! ≠ 0
)𝟏 ∗ 𝟐 ∗ 𝟑 ∗ 𝟒( = 𝒙 𝒇4
• הגדרה שלישית:
נסתכל על ייצוג normal formשל הפולינום 𝑓 𝑥 = 𝑎𝑖 𝑥 𝑖 :
כמות המקדמים 𝑖𝑎 החסרים עד למקדם הראשון עבורו 𝑎𝑖 ≠ 0
שווה לריבוי 𝑓 בנקודה .0
דוגמאות:
𝑓 𝑥 = 𝑥4
) 𝑥 𝑓(0 ≤ 𝑖 ≤ deg
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 + 𝟎 ∗ 𝑥 3 + 𝟏 ∗ 𝑥 4
𝑓 𝑥 = 𝑥4 + 𝑥2
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟏 ∗ 𝑥 2 + 0 ∗ 𝑥 3 + 1 ∗ 𝑥 4
= 𝑥 2 − 4𝑥 + 4
2
𝑓 𝑥 = 𝑥−2
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟒 ∗ 𝑥 0 − 4 ∗ 𝑥 1 + 1 ∗ 𝑥 2
ריבוי בנקודה aבפונקציות עם משתנה אחד
• הגדרה ראשונה:
סימון𝑚𝑢𝑙𝑡 𝑓,𝑎 :
ריבוי של 𝑓 בנקודה 𝑎 ,הוא מספר הפעמים ש 𝑎 𝑥 −מחלק את 𝑓 .
כלומר ,ה𝑘 המקסימלי כך ש 𝑓 | 𝑘 𝑎 𝑥 −
הערה :קל לראות את המחלקים של 𝑓 כאשר הפולינום מופיע בצורת .Factored Form
דוגמא:
𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4 = 𝑥 + 4 𝑥 − 1 2
𝑚𝑢𝑙𝑡 𝑓, 1 = 2
𝑚𝑢𝑙𝑡 𝑓, −4 = 1
• הגדרה שנייה:
𝑓 𝑘 𝑎 = 0עבור 0 ≤ 𝑘 ≤ 𝑚𝑢𝑙𝑡 𝑓,𝑎 − 1
וגם 𝑎 ≠ 0
𝑎𝑓,
𝑡𝑙𝑢𝑚 𝑓
דוגמא:
𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4 = 𝑥 + 4 𝑥 − 1 2
נסתכל על הנגזרות הראשונות של 𝑓:
𝑓 1 =0
𝑓 −4 = 0
𝑓1 1 = 0
𝑓 1 −4 = 6 ≠ 0
𝑓 2 1 = 10 ≠ 0
𝑓 𝑥 = 𝑥 3 + 2𝑥 2 − 7𝑥 + 4
𝑓 1 𝑥 = 3x 2 + 4x − 7
𝑓 2 𝑥 = 6x + 4
𝑓3 𝑥 = 6
• הגדרה שלישית:
נסתכל על ייצוג normal formשל הפולינום בנקודה 𝑎 𝑏𝑖 (𝑥)𝑖 : 𝑥 +
כמות המקדמים 𝑖𝑏 החסרים עד למקדם הראשון עבורו 𝑏𝑖 ≠ 0
שווה לריבוי 𝑓 בנקודה 𝑎.
דוגמאות:
𝑓 𝑥 = 𝑥 − 3 𝑥 + 2 3 = 𝑥 4 + 3𝑥 3 − 6𝑥 2 − 28𝑥 − 24
נרצה לבדוק את הריבוי בנקודה : 𝑎 = −2
= 𝑥 − 5 𝑥 3 = 𝑥 4 − 5𝑥 3
3
= 𝑎𝑓 𝑥+
) 𝑥 𝑓(0 ≤ 𝑖 ≤ deg
𝑓 𝑥 − 2 = (𝑥 − 2) − 3 (𝑥 − 2) + 2
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑥 − 2) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 − 𝟓 ∗ 𝑥 3 + 1 ∗ 𝑥 4
נרצה לבדוק את הריבוי בנקודה : 𝑎 = 3
𝑥= 𝑥 4 + 15𝑥 3 + 75𝑥 2 + 125
3
=𝑥 𝑥+5
3
𝑓 𝑥 + 3 = (𝑥 + 3) − 3 (𝑥 + 3) + 2
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑥 − 2) = 𝟎 ∗ 𝑥 0 + 𝟏𝟐𝟓 ∗ 𝑥 1 + 75 ∗ 𝑥 2 + 15 ∗ 𝑥 3 + 1 ∗ 𝑥 4
עד עכשיו דיברנו על פונקציות עם משתנה אחד מעל שדה אינסופי!
מה קורה מעל שדה סופי? האם ההגדרות שלנו עדיין תקפות?
נבדוק למשל על:
} 𝔽5 = {0,1,2,3,4ו𝑓 𝑥 = 𝑥 5 -
בנקודה 0
• בדיקת הגדרה ראשונה מעל שדה סופי:
→ 𝑥 5 |𝑓 → 5
5
𝑓 𝑥 = 𝑥−0 𝑥−0 … 𝑥−0 = 𝑥−0
• בדיקת הגדרה שנייה מעל שדה סופי:
שדה אינסופי
שדה סופי 𝐹5
היינו מצפים בנגזרת
החמישית לקבל
מספר שונה מאפס
מההגדרה.
𝟎= 𝟎 𝒇
𝟓𝒙 = 𝒙 𝒇
𝒇𝟏 0 = 0
𝒇𝟏 𝒙 = 5𝒙4
𝒇𝟐 0 = 0
𝒇𝟐 𝒙 = (5 ∗ 4)𝒙3
𝒇𝟑 0 = 0
𝒇3 𝒙 = 5 ∗ 4 ∗ 3 𝒙2
𝒇𝟒 0 = 0
𝑥 𝟐 ∗ 𝟑 ∗ 𝟒 ∗ 𝒇4 𝒙 = 5
𝒇5 𝒙 = 5! ≠ 0
!𝒇5 𝒙 = 5
𝟎= 𝟎 𝒇
𝟓𝒙 = 𝒙 𝒇
𝒇𝟏 0 = 0
𝒇𝟏 𝒙 = 5𝒙4 =0
𝒇𝟐 0 = 0
𝒇𝟐 𝒙 = 0
𝒇𝟑 0 = 0
𝒇3 𝒙 = 0
𝟒𝒇
𝒇4
0 =0
𝒇5 𝒙 = 0
𝒙 =0
𝒇5 𝒙 = 0
אז איך נתקן ? נתקנן !
נגזרת רגילה (שדה אינסופי)
נגזרת מתוקננת (שדה סופי 𝑪𝑭(
) 𝑘 𝑥( 𝑓 0
𝑘𝑥
𝑘𝑥
) 𝑘 𝑥( 𝑓 1
𝑘 ∗ 𝑥 𝑘−1
𝑘 ∗ 𝑥 𝑘−1
) 𝑘 𝑥( 𝑓 2
𝑘 𝑘 − 1 ∗ 𝑥 𝑘−2
1
𝑘 𝑘 − 1 ∗ 𝑥 𝑘−2
2
) 𝑘 𝑥( 𝑓 3
𝑘 𝑘 − 1 (𝑘 − 2) ∗ 𝑥 𝑘−3
1
𝑘 𝑘 − 1 (𝑘 − 2) ∗ 𝑥 𝑘−3
6
= 𝑘𝑥 𝑙𝑓
!𝑘
𝑙∗ 𝑥 𝑘−
! 𝑙𝑘−
𝑘
!𝑘
𝑙𝑘−
𝑥∗
=
𝑙∗ 𝑥 𝑘−
𝑙
! 𝑙 𝑙! 𝑘 −
• בדיקת הגדרה שנייה מעל שדה סופי עם נגזרת מתוקננת :
שדה אינסופי
𝟎= 𝟎 𝒇
𝟓𝒙 = 𝒙 𝒇
𝒇𝟏 0 = 0
𝒇𝟏 𝒙 = 5𝒙4
𝒇𝟐 0 = 0
𝒇𝟐 𝒙 = (5 ∗ 4)𝒙3
𝒇𝟑 0 = 0
𝒇3 𝒙 = 5 ∗ 4 ∗ 3 𝒙2
𝒇𝟒 0 = 0
𝑥 𝟐 ∗ 𝟑 ∗ 𝟒 ∗ 𝒇4 𝒙 = 5
𝟎 = 𝟎 𝒇 𝒇5 0 = 5! ≠ 0
H 𝟏 𝑓(0) = 0
שדה סופי 𝐹5
אכן ע"י תקנון
הנגזרת קיבלנו
שהנגזרת החמישית
שונה מאפס כנדרש.
= 𝒙 𝑙H
𝟓𝒙 = 𝒙!𝒇5 𝒙 =𝒇5
H 𝟏 𝑓(𝑥) = 5𝒙4 =0
H 𝟐 𝑓(0) = 0
5 5−2
= )𝑥(𝑓
𝑥
= 10x 3
2
𝟐H
H 𝟑 𝑓(0) = 0
5 5−3
= )𝑥(𝑓
𝑥
= 10𝑥 2
3
H3
H 𝟒 𝑓(0) = 0
5 5−4
𝑥
=5x
4
5 5−5
= )𝑥(𝑓 𝐻5
𝑥
=1
5
𝐻5 𝑓(0) = 1 ≠ 0
= )𝑥(𝑓 H4
• בדיקת הגדרה שלישית מעל שדה סופי:
𝑓 𝑥 = 𝑥5
𝑛𝑜𝑟𝑚𝑎𝑙_𝑓𝑜𝑟𝑚_𝑓(𝑋) = 𝟎 ∗ 𝑥 0 + 𝟎 ∗ 𝑥 1 + 𝟎 ∗ 𝑥 2 + 𝟎 ∗ 𝑥 3 + 𝟎 ∗ 𝑥 4 + 𝟏 ∗ 𝑥 5
תכונות הנגזרת המתוקננת-
• סימון∗ 𝑥 𝑘−𝑙 :
!𝑘
! 𝑙𝑙! 𝑘−
=
𝑙𝑥 𝑘−
∗
𝑘
𝑙
= 𝑥
𝑓 )𝑙( 𝐻
• תהי פונקציה במשתנה אחד )𝑥(𝑓 ,נסתכל על )𝒛 𝒇(𝒙 +
מתקיים:
𝒊𝒛
𝒙 𝒇𝒊𝑯
= 𝒛𝒇 𝒙+
במילים אחרות ,יהיו 𝑘𝑧 … 𝑧0 ,𝑧1המקדמים של 𝑧 בהתאמה ב )𝑧 𝑓(𝑥 +
כלומר 𝑖𝑧 הינו המקדם של 𝑖 𝑧 .אזי מתקיים כי:
𝑖∀
𝑥 𝑓 )𝑖(𝐻 = 𝑖𝑧
דוגמא:
• נסתכל על הפונקציה 𝑓 𝑥 = 𝑥 3
• = 𝑓 𝑥 + 𝑧 = 𝑥 + 𝑧 3 = x 3 + 3x 2 z + 3xz 2 + z 3
• x 3 ∗ z 0 + 3x 2 ∗ z + 3x ∗ z 2 + 1 ∗ z 3
3
0
Zומקדמיו
𝑥3
𝑧0
𝟎 = 𝟎 𝑓 )𝐻 (1
3
)(1
= 𝑥 𝑓 𝐻
∗ 𝑥 3−1 = 3𝑥 2
1
3𝑥 2
𝑧1
𝟎 = 𝟎 𝑓 )𝐻 (2
3
)(2
= 𝑥 𝑓 𝐻
𝑥∗ 𝑥 3−2 = 3
2
3x
𝑧2
𝟎 ≠ 𝟏 = 𝟎 𝑓 )𝐻 (3
3
)(3
= 𝑥 𝑓 𝐻
∗ 𝑥 3−3 = 1
3
1
𝑧3
𝟎 = 𝟎 𝑓 )𝐻 (0
∗ 𝑥 3−0 = 𝑥 3
= 𝑥 𝑓 )𝐻 (0
נעבור לדבר על פונקציות עם 2משתנים
ריבוי בנקודה )𝟎 (𝟎,בפונקציות עם 2משתנים
• הגדרה 𝑓 𝑥,𝑦 = 𝑎𝑖𝑗 𝑥 𝑖 𝑦 𝑗 :
𝑓 𝑖𝑗 0,0 = 0
עבור 0 ≤ 𝑖 + 𝑗 ≤ 𝑚𝑢𝑙𝑡 𝑓,(0,0) − 1
וגם קיימים 𝑗 𝑖,כך ש 𝑖 + 𝑗 = 𝑟-וגם 𝑓 𝑖𝑗 0,0 ≠ 0
דוגמא𝑓 𝑥,𝑦 = 𝑥 2 𝑦 :
𝑓 00 0,0 =0
𝑦𝑥 2
𝑦 𝑓 00 𝑥,
𝑓 10 0,0 =0
𝑦𝑥2
𝑦 𝑓 10 𝑥,
𝑓 01 0,0 =0
𝑥2
𝑦 𝑓 01 𝑥,
𝑓 11 0,0 = 0
𝑥2
𝑦 𝑓 11 𝑥,
𝑓 20 0,0 =0
𝑦2
𝑦 𝑓 20 𝑥,
𝑓 02 0,0 =0
0
𝑦 𝑓 02 𝑥,
𝑓 03 0,0 =2≠ 0
2
𝑦 𝑓 21 𝑥,
נגזרת רגילה ונגזרת מתוקננת בפולינומים עם שני משתנים:
• נגזרת רגילה :
! 𝑘1
! 𝑘2
𝑘1 −𝑙1
𝑥
𝑦 𝑘2−𝑙2
! 𝑘1 −𝑙1
! 𝑘2 −𝑙2
=
𝑥 𝑘 1 𝑦 𝑘2
𝑙1 ,𝑙2
𝑓
• דוגמא𝑓 2,5 𝑥 7 𝑦 8 = (7 ∗ 6) 𝑥 5 ∗ (8 ∗ 7 ∗ 6 ∗ 5 ∗ 4) 𝑦 3 :
• נגזרת מתוקננת:
! 𝑘1
! 𝑘2
𝑘
𝑙−
1
1
𝑥
𝑦 𝑘2−𝑙2
! 𝑙1 𝑘1 −𝑙1
! 𝑙2 𝑘2 −𝑙2
• דוגמא𝑦 8−5 :
8
5
x 7−2
7
2
=
𝑦 𝑘2 −𝑙2
= 𝑓 2,5 𝑥 7 𝑦 8
𝑘2
𝑙2
𝑥 𝑘1−𝑙1
𝑘1
𝑙1
=
𝑥 𝑘1 𝑦 𝑘2
𝐻𝑙1,𝑙2
תכונות הנגזרת המתוקנת-
• סימון𝑦 𝑘2 −𝑙2 :
𝑘2
𝑙2
𝑥 𝑘1−𝑙1
𝑘1
𝑙1
= 𝐻 (𝑙1,𝑙2) 𝑥 𝑘1 𝑦 𝑘2
• תהי פונקציה ב 2משתנים ) ,𝑓(𝑥,yנסתכל על ) 𝑓(𝑥 + 𝑧1 ,y + z2
מתקיים:
𝑙1 𝑙2
𝑙(
𝑙,
)
1
2
𝐻(
𝑓(𝑥,𝑦))𝑧1 𝑧2
= 𝑓 𝑥 + 𝑧1 ,𝑦 + 𝑧2
𝑙
𝑙
במילים אחרות ,יהיו 𝑘 𝑧0,0 ,𝑧0,1 , 𝑧1,0 , … ,𝑧𝑘,המקדמים של 𝑧11 𝑧22בהתאמה,
כלומר 𝑧𝑖,jהינו המקדם
𝑗 𝑖
של 𝑧1 𝑧2
= 𝐻(𝑖,j) 𝑓 𝑥,y
∀𝑖,j
• ) 𝑓(𝑥,yמריבוי 𝑟 בנקודה
,אזי מתקיים כי:
𝑗 𝑖
𝑧1 𝑧2
, 0,0
אם כל הנגזרות הראשונות עד 𝑟 מתאפסות ב 0,0
𝑙𝑘1 𝑘 −𝑙 𝑘2 𝑘 −
𝑥 1 1
𝑦 2 2
𝑙1
𝑙2
דוגמא:
𝒚 𝟐𝒙 = 𝒚 𝒇 𝒙,
= = 𝑥 + 𝑧1 2 𝑦 + 𝑧2 = (𝑥 2 + 2𝑧1 𝑥 + 𝑧12 ) 𝑦 + 𝑧2
𝑓 𝑥 + 𝑧1 ,𝑦 + 𝑧2
𝟐𝒛 𝟏𝟐𝒛 𝒙𝟐 𝒚 + 𝒙𝟐 𝒛𝟐 + 𝟐𝒚𝒙𝒛𝟏 + 𝟐𝒙𝒛𝟏 𝒛𝟐 + 𝒚𝒛𝟐𝟏 +
𝑦 𝑥 2הינו המקדם של 𝟐𝟎𝒛 𝟏𝟎𝒛
𝑥 2הינו המקדם של 𝟐𝒛𝟎𝟏 𝒛1
𝑦𝑥 2הינו המקדם של 𝟐𝒛1𝟏 𝒛0
𝟎𝟐 𝟐−𝟎 𝟏 𝟏−
= 𝑓 𝑥, y
𝑥
𝒚
𝑦= 𝑥2
𝟎
𝟎
𝑥2
=
𝟏𝟏−
𝑦𝑥= 2
𝒚
𝟎𝟏−
𝒚
1
𝟏
1
𝟎
𝟎𝟐−
𝑥
𝟏𝟐−
𝑥
𝟐
𝟎
𝟐
𝟏
= 𝑥, y
= 𝑥, y
)𝟎(𝟎,
𝐻
𝑓 )𝟏𝐻 (𝟎,
𝑓 )𝟎𝐻 (𝟏,
𝑥 2הינו המקדם של 𝟐𝒛1𝟏 𝒛1
𝟏𝟐 𝟐−𝟏 1 𝟏−
= 𝐻 (𝟏,1) 𝑓 𝑥, y
𝑥
𝒚
𝑥= 2
𝟏
𝟏
𝑦 הינו המקדם של 𝟐𝒛2𝟏 𝒛0
𝟎𝟐 𝟐−𝟐 1 𝟏−
= 𝐻 (𝟐,𝟎) 𝑓 𝑥, y
𝑥
𝒚
𝑦=
𝟐
𝟎
𝑥 2הינו המקדם של 𝟐𝒛𝟎𝟏 𝒛1
𝟏𝟐 𝟐−𝟎 1 𝟏−
= 𝑥, y
𝑥
𝒚
= x2
𝟎
𝟏
𝑓 )𝐻 (𝟎,1
= 𝐻𝑙1,𝑙2 𝑥 𝑘1 𝑦 𝑘2
• 𝑥 𝑄 𝑥,𝑦 = 𝑦 −
• Qעובר דרך ראשית הצירים פעם אחת ואין לו משתנים מדרגה קטנה מ.1-
• כלומר= 1 :
𝑚𝑢𝑙𝑡 𝑄, 0,0
• )𝑥 𝑄 𝑥,𝑦 = (𝑦 − 𝑥)(𝑦 +
• Qעובר דרך ראשית הצירים פעמיים ואין לו משתנים מדרגה קטנה מ.2-
• כלומר= 2 :
𝑚𝑢𝑙𝑡 𝑄, 0,0
• )𝑥𝑄 𝑥,𝑦 = (𝑦 − 𝑥)(𝑦 + 𝑥)(𝑦 − 2
• Qעובר דרך ראשית הצירים שלוש פעמים ואין לו משתנים מדרגה קטנה מ.3-
• כלומר= 3 :
𝑚𝑢𝑙𝑡 𝑄, 0,0
באופן כללי:
אם 𝑟 קווים עוברים בראשית הצירים ,אז ל )𝑦 𝑄(𝑥,אין משתנים מדרגה נמוכה מ𝑟.
הגדרה :
ל)𝑦 𝑄(𝑥,יש 𝑟 שורשים בנקודה ) ,(0,0אם ל)𝑦 𝑄(𝑥,אין אף מונום מדרגה נמוכה מ𝑟.
•
הגדרה שלישית
פולינום עם שני משתנים 𝑦 𝑓 𝑥,הוא מריבוי 𝑟 בנקודה ) ,(0,0אם:
כל הגורמים מדרגה נמוכה מ𝑟 ב 𝑗 𝑦 𝑖 𝑥 𝑗𝑎𝑖,
= 𝑦 𝑓 𝑥,לא מופיעים.
וקיים גורם מדרגה 𝑟 שמופיע (כלומר ,המקדם שלו שונה מ.)0-
כלומר :
• אם 𝑦 𝑓 𝑥,מריבוי 1בנקודה )𝑎0,0 = 0 :(0,0
• אם 𝑦 𝑓 𝑥,מריבוי 2בנקודה )𝑎0,0 = 𝑎1,0 = 𝑎0,1 = 0 :(0,0
• אם 𝑦 𝑓 𝑥,מריבוי 3בנקודה )𝑎0,0 = 𝑎1,0 = 𝑎0,1 = 𝑎1,1 = 𝑎0,2 = 𝑎2,0 = 0 :(0,0
• וכך הלאה...
:לדוגמא
𝑓 𝑥, 𝑦 = 𝑦 − 4𝑥 2 = 𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟏 ∗ 𝐱 𝟎 𝐲 𝟏 + 0 ∗ x1 y 0 + 0 ∗ x1 y1 − 4 ∗ x 2 y 0
𝑓 𝑥, 𝑦 has a zero of multiplicity 1 at (0,0)
𝑓 𝑥, 𝑦 = 𝑦 + 6𝑥 2 = 𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟏 ∗ 𝒙𝟎 𝒚𝟏 + 0 ∗ x1 y 0 + 0 ∗ x1 y1 + 6 ∗ x 2 y 0
𝑓 𝑥, 𝑦 has a zero of multiplicity 1 at (0,0)
𝑓 𝑥, 𝑦 = 𝑦 − 4𝑥 2 𝑦 + 6𝑥 2 = 𝑦 2 + 2𝑥 2 𝑦 − 24𝑥 4 =
𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟎 ∗ 𝒙𝟎 𝒚𝟏 + 𝟎 ∗ 𝒙𝟏 𝒚𝟎 + 0 ∗ x1 y1 + 𝟏 ∗ 𝒙𝟎 𝒚𝟐 + 2 ∗ x 2 y1 − 24 ∗ x1 y1
𝑓 𝑥, 𝑦 has a zero of multiplicity 2 at (0,0)
ריבוי בנקודה )𝛽 (𝛼,בפונקציות עם 2משתנים
• ל 𝑦 𝑓 𝑥,יש 𝑟 שורשים בנקודה )𝛽 ,(𝛼,אם ב 𝛽 𝑓 𝑥 + 𝛼,𝑦 +יש יש 𝑟 שורשים בנקודה ).(0,0
• פולינום עם שני משתנים 𝑦 𝑓 𝑥,הוא מריבוי 𝑟 בנקודה )𝛽 ,(𝛼,אם:
כל הגורמים מדרגה נמוכה מ𝑟 ב 𝛽 𝑓 𝑥 + 𝛼,𝑦 +לא מופיעים.
וקיים גורם מדרגה 𝑟 שמופיע (כלומר ,המקדם שלו שונה מ.)0-
דוגמא:
→
2
𝛼𝑦−𝛽 +6 𝑥−
נרצה לבדוק את הנקודה )𝛽: (𝛼,
= = 𝑦 2 + 2𝑥 2 𝑦 − 24𝑥 4
2
𝛼𝑦−𝛽 −4 𝑥−
= 𝑦 𝑓 𝑥,
𝑓 𝑥 + 𝛼, 𝑦 + 𝛽 = 𝑦 − 4𝑥 2 𝑦 + 6𝑥 2
𝟎 ∗ 𝐱 𝟎 𝒚𝟎 + 𝟎 ∗ 𝒙𝟎 𝒚𝟏 + 𝟎 ∗ 𝒙𝟏 𝒚𝟎 + 0 ∗ x1 y1 + 𝟏 ∗ 𝒙𝟎 𝒚𝟐 + 2 ∗ x 2 y1 − 24 ∗ x1 y1
𝛽 𝑓 𝑥, 𝑦 has a zero of multiplicity 2 at 𝛼,
Better list decoding for Reed Solomon codes-Spoiler!
• We will present the list decoding algorithm for Reed-Solomon codes,
which can correct 𝟏 − 𝑹 fraction of errors.
• 𝑅 = 𝑅𝑎𝑡𝑒 =
𝑘
𝑛
• The main idea is to add more restrictions on 𝑄 𝑥, 𝑦 .
(in addition to its (1,k −1)-degree being at most D).
the constraint: For some integer parameter 𝑟 ≥ 1 , we will insist on
𝑄 𝑥, 𝑦 having 𝑟 roots at 𝛼𝑖 , 𝑦𝑖 𝑓𝑜𝑟 1 ≤ 𝑖 ≤ 𝑛.
Means , q has multiplicity of 𝒓 at 𝛼𝑖 , 𝑦𝑖 𝑓𝑜𝑟 1 ≤ 𝑖 ≤ 𝑛.
This change will have the following implications:
• The number of constraints will increase
but the number of coefficients will remain the same.
This seems to be bad as this results in an increase in D (=deg(Q))
→ increase in t (e=n-t)
• However, this change will also increases the number of roots of
R(X):=Q(x,p(x)) . and this gain in the number of roots more than
compensates for the increase in D.
Before we state the precise algorithm, we will present
the algorithm with an example…..
• n=10, k=2 , finite field 𝐹𝑞 , evaluation points: {−9,..., 11}.
• Here we have considered e = 6 errors .
• we are looking for lines that pass through at least 4 points.
• Now we want to interpolate a bivariate polynomial Q(X,Y )
with (1, 1) degree 5 that “passes twice" through all points
corresponding to the received word.
deg 𝑝 𝑥 ≤ 1 = 𝑤
→ 𝑄 𝑥,𝑦 be a polynomial of
1,w degree D
Finally, we want to factorize all the linear factors Y −P(X) of the Q(X,Y )
REMINDER
REMINDER:
List Decoding – Algorithm 2
Input : 𝑛 ≥ 𝑘 ≥ 1 , 𝑫 ≥ 𝟏, 𝑒 = 𝑛 − 𝑡 and 𝑛 pairs {(𝑎𝑖 , 𝑦𝑖 )}
Output: list of polynomials P(x) of degree at most k-1
1: Find a non-zero 𝑄 𝑥, 𝑦 with (1, k − 1) degree at most D, such that 𝑄 𝑎𝑖 , 𝑦𝑖 = 0 for 1
≤𝑖≤𝑛.
2: 𝐿 ← ∅
3: For every factor 𝑦 − 𝑃(𝑥) of 𝑄 𝑥, 𝑦 DO
𝑛
4:
If ∆(y,)P )αi ((𝑖=1
) ≤ e and deg 𝑃 ≤ 𝑘 − 1 then
5:
Add 𝑃(𝑥) to 𝐿
6: Return 𝐿
חזרה קצרה על האלגוריתם משבוע שעבר:
Definition:
Given 0 ≤ 𝑝 ≤ 1 , 𝐿 ≥ 1 a code C is (p,L) – List decodable if for every received word y∈
𝑛
|{c∈C|∆(y,c) ≤pn}| ≤ L
Johnson Bound
A [n,k,d]q code is a (𝑝, 𝑞 ⋅ 𝑑 ⋅ 𝑛) list decodable code provided that
1
𝑞
𝑝 ≤ (1 − )(1 − 1 −
𝑞𝛿
)
𝑞−1
𝑑
𝑛
(reminder: 𝛿= )
By the Johnson bound we get that a Reed-Solomon code of rate R is (𝟏 − 𝑹, 𝑂(𝑛2 )) list-decodable.
The challenge is to find a list-decoding algorithm that runs in polynomial time which outputs all
these words into a list.
THE ALGORITHM!!!
The Third List Decoding Algorithm for Reed-Solomon Codes
INPUT:
1≤𝑘 ≤𝑛 , 𝐷 ≥1 , 𝑟 ≥1 , 𝑒 =𝑛−𝑡
and 𝑛 pairs
𝛼𝑖 , 𝑦𝑖
1≤𝑖≤𝑛
OUTPUT: list of polynomials 𝑃(𝑋) of degree at most 𝑘 −1 (Possibly empty) .
1: Find a non-zero 𝑄(𝑋, 𝑌) with (1, 𝑘 − 1) degree at most D, such that
Q 𝛼𝑖 , 𝑦𝑖 = 0 , with multiplicity 𝒓 for every 1 ≤ 𝑖 ≤ 𝑛.
2: Ł ←∅
3: FOR every factor Y − 𝑃(𝑋) of 𝑄(𝑋, 𝑌) DO
4: IF ∆(𝑦, 𝑃 𝛼𝑖
1≤𝑖≤𝑛
5: Add P(X) to Ł.
6: RETURN Ł
) ≤ 𝑒 and deg(𝑃) ≤ 𝑘 − 1 THEN
CORRECTNESS OF
ALGORITHM
• Lemma 1:
𝑟+1
2
constraints on the coefficients of 𝑄(𝑋, 𝑌 ) for each 𝑖.
• Lemma 2:
𝑅(𝑋) = 𝑄(𝑋, 𝑃(𝑋)) has 𝑟 roots for every 𝑖 such that 𝑃(𝛼𝑖 ) = 𝑦𝑖 .
In other words, 𝑋 − 𝛼𝑖 𝑟 divides 𝑅(𝑋).
Last Week -Number of coefficients of Q(X,Y )𝑁=|
𝑖, 𝑗
Note that 𝑗 ≤
𝐷
𝑖+ 𝑘−1 𝑗 ≤𝐷 ,
𝐷
𝑘−1
, define 𝑙 =
𝐷
𝐷
𝑘−1
𝑖, 𝑗 ∈ 𝑍 + } |
.
So 𝑙 ≥ 𝑘−1 − 1 and 𝑙 ≤ 𝑘−1 .
𝑙 𝑙+1
𝑙
= (𝑙 + 1)( 𝐷 + 1 − 𝑘 − 1 )
2
2
𝑙+1
𝑙+1
=
2 𝐷+1 − 𝑘−1 𝑙 =
2𝐷 + 2 − 𝑘 − 1 𝑙
2
2
𝑙+1
𝐷
𝑙+1
𝑙+1
≥
2𝐷 + 2 − 𝑘 − 1
=
2𝐷 + 2 − 𝐷 =
𝐷+2
2
𝑘−1
2
2
𝐷
𝐷
−1+1
𝐷 𝐷+2
𝑘
−
1
𝑘
−
1
≥
𝐷+2 =
𝐷+2 =
2
2
2(𝑘 − 1)
𝑁 = 𝐷+1 𝑙+1 − 𝑘−1
We got that 𝑵
≥
𝑫 𝑫+𝟐
𝟐(𝒌−𝟏)
to argue the correctness of the interpolations step we will need:
𝐷 𝐷 +2
𝑟+1
> 𝑛
2 𝑘 −1
2
upper bound on the number of
coefficients of Q(X,Y )- as we saw
last week.
We got that 𝑁 ≥
The choice 𝐷 =
N≥
𝐷 𝐷+2
2(𝑘−1)
>
𝐷 𝐷+2
2(𝑘−1)
from Lemma 1:
Number of constraints
so if
𝐷 𝐷+2
2(𝑘−1)
>𝑛
𝑘 − 1 𝑛𝑟 𝑟 + 1
𝐷2
2(𝑘−1)
=
𝑘−1 𝑛𝑟 𝑟+1
2(𝑘−1)
𝑟+1
2
then the interpolation step succeed.
satisfies the following requirement since:
=
𝑛𝑟 𝑟+1
2
=𝑛
𝑟+1
2
correctness of the root finding step
For the correctness of the root finding step, we need to show that the number of roots of
𝑹(𝑿) (which by Lemma 2 is at least 𝑟𝑡) is strictly bigger than the degree of R(X), which is
D as we saw last week.
𝑟
(that's in order to ensure 𝑅 𝑥 ≡ 0 by the degree mantra. Meaning, 𝑦 − 𝑃 x
devides 𝑄 𝑥, 𝑦 and
therefore the algorithm outputs every polynomial P(x) of maximum k − 1 degree , which agrees with y in at
least t positions with multiplicity r.)
So, we would be fine if we have:
𝑟𝑜𝑜𝑡𝑠𝑅 𝑋 = 𝒕 𝒓 > 𝑫 = 𝑑𝑒𝑔𝑟𝑒𝑒𝑅 𝑋
→
𝑫
𝒕>
𝒓
which in turn will follow if we pick:
𝑡=
1
𝑘 − 1 𝑛(1 − )
𝑟
If we pick 𝑟 = 2(𝑘 − 1)𝑛, then we will need:
𝑡>
𝑘 − 1 𝑛 − 0.5 >
𝑘−1 𝑛
where the last inequality follows because of the fact that t is an integer.
That implies the following result:
𝑒 =𝑛−𝑡
• We got that
→
𝑒
𝑛
𝑒<𝑛−
𝑘−1 𝑛
→
𝑒
𝑛
<1−
𝑘−1
𝑛
< 1 − 𝑅 meaning that the algorithm can list decode
Reed-Solomon codes of rate R from 𝟏 −
𝑹 fraction of errors !
THE ALGORITHM RUNS IN POLYNOMIAL TIME
The claim on the run time follows from the same argument that was used to argue the
polynomial running time of Algorithm 2.
• The algorithm runs in polynomial time since step 1 can be implemented by Gaussian
elimination.
• and there are polynomial time algorithms factoring bivariate polynomials.
• Reed-Solomon codes can be efficiently decoded up to the Johnson bound.
• to run within this time using standard bivariate polynomial factorization techniques.
We are going to use the bivariate polynomial 𝑄 𝑥, 𝑦 so we need the following definition.
Definition
𝑑𝑒𝑔𝑥 (𝑄) is the maximum degree of 𝑥 in 𝑄 𝑥, 𝑦 .
𝑑𝑒𝑔𝑦 (𝑄) is the maximum degree of 𝑦 in 𝑄 𝑥, 𝑦 .
Example: for 𝑄 𝑥, 𝑦 = 𝑥 2 𝑦 5 + 𝑥 9 𝑦1 ,
𝑑𝑒𝑔𝑥 𝑄 = 9 and 𝑑𝑒𝑔𝑦 𝑄 = 5
Given 𝑑𝑒𝑔𝑥 𝑄 = 𝑎 and 𝑑𝑒𝑔𝑦 𝑄 = 𝑏 we can write 𝑄 𝑥, 𝑦 as follows:
𝑄 𝑥, 𝑦 =
0≤𝑖≤𝑎 𝑐𝑖𝑗 𝑥
0≤𝑗≤𝑏
𝑖 𝑗
𝑦 where 𝑐𝑖𝑗 ∈ Fp
Note that the number of Q’s coefficients is equal to 𝑎 + 1 𝑏 + 1
𝑄 𝑥, 𝑦 = 0≤𝑖≤𝑙 𝑐𝑖𝑗 𝑥 𝑖 𝑦 𝑗 thus, the number of coefficients is equal to
0≤𝑗≤
𝑙+1 ∙
𝑛
𝑙
+1
𝑙2
𝑘
𝑛
𝑙
=
𝑛
𝑙
𝑛
𝑙
𝑛
𝑙
𝑙∙ +𝑙+ +1 =
𝑛+𝑙+ +1 >𝑛
𝑙
𝑘
at most 𝑂( ) unknowns (since deg 𝑌 𝑄 ≤ , 𝑑𝑒𝑔𝑋 𝑄 ≤ 𝑙).
Hence using standard methods, Step 1 can be implemented using𝑂(
𝑙2
𝑘
3
)=
𝑙6
𝑂( 3 ) operations.
𝑘
PROOF OF KEY
LEMMAS
Proof of Lemma 1𝒓+𝟏
𝟐
constraints for each 𝒊 on the coefficients of 𝑸(𝑿, 𝒀 ).
• 𝑄 𝑋, 𝑌 =
𝑖,𝑗
𝑖+ 𝑘−1 𝑗≤𝐷
𝑐𝑖𝑗 𝑋 𝑖 𝑌𝑗
• 𝑄𝛼𝛽 𝑋, 𝑌 = 𝑄 𝑋 + 𝛼, 𝑌 + 𝛽 =
(𝑑𝑒𝑔𝑟𝑒𝑒(𝑄) ≤ 𝐷)
𝛼𝛽 𝑖 𝑗
𝑖,𝑗 𝑐𝑖𝑗 𝑋 𝑌
To prove (i), note that by the definition:
1
2
1
2
To prove (ii), recall that by definition 𝑄𝛼𝛽 𝑋, 𝑌 has no monomial of degree < 𝑟 :
Proof of Lemma 2𝑹(𝑿) = 𝑸(𝑿, 𝑷(𝑿)) has 𝒓 roots for every 𝒊 such that 𝑷(𝜶𝒊 ) = 𝒚𝒊 .
In other words, 𝑿 − 𝜶𝒊 𝒓 divides 𝑹(𝑿).
• We will proof other lemma:
Lemma 2’: Let 𝑄(𝑋, 𝑌) be computed by Step 1 in Algorithm 3.
Let 𝑃(𝑋) be a polynomial of degree ≤ 𝑘 − 1, such that 𝑃 𝛼𝑖 = 𝑦𝑖
𝐷
for at least 𝑡 > values of 𝑖, then 𝑌 − 𝑃(𝑋) divides 𝑄(𝑋, 𝑌).
𝑟
Proof:
𝑅 𝑋 : = 𝑄(𝑋, 𝑃(𝑋)).
As usual, to prove the lemma, we will show that 𝑅(𝑋) ≡ 0.
To do this, we will use the following claim:
If 𝑃 𝛼𝑖 = 𝑦𝑖 , then 𝑋 − 𝛼𝑖 𝑟 divides 𝑅(𝑋), that 𝛼𝑖 is a root of 𝑅(𝑋) with
multiplicity 𝑟 .
remainder
• Claim: 𝑦 − 𝑃(x) devides 𝑄 𝑥, 𝑦 if and only if 𝑅 𝑥 ≡ 0.
• 1. Let 𝑦 − 𝑃(x) devides 𝑄 𝑥, 𝑦 then 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦) and therefore
• 𝑅 𝑥 = 𝑄 𝑥, 𝑃(𝑥) = (𝑃(𝑥) − 𝑃 x ) ∙ 𝐺(𝑥, 𝑃(𝑥)) ≡ 0
• 2. Let 𝑅 𝑥 ≡ 0 then 𝑄 𝑥, 𝑃(𝑥) ≡ 0 → 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦)
• And we got that 𝑦 − 𝑃 x devided 𝑄 𝑥, 𝑦
To do this, we will use the following claim:
If 𝑷 𝜶𝒊 = 𝒚𝒊 , then 𝑿 − 𝜶𝒊 𝒓 divides 𝑹(𝑿), that 𝜶𝒊 is a root of 𝑹(𝑿)
with multiplicity 𝒓 .
• Note that by definition of 𝑄(𝑋, 𝑌 ) and 𝑃(𝑋), 𝑅(𝑋) has degree ≤ 𝐷.
Assuming the above claim is correct, 𝑅(𝑋) has at least 𝑡 · 𝑟 roots.
Therefore, by the degree mantra, 𝑅(𝑋) is a zero polynomial as 𝑡 · 𝑟 > 𝐷.
• We will now prove Claim:
• Claim: 𝑦 − 𝑃 x
• 1. Let 𝑦 − 𝑃 x
𝑟
𝑟
𝑄 𝑥, 𝑦 = 𝑦 − 𝑃 x
devides 𝑄 𝑥, 𝑦 if and only if 𝑅 𝑥 ≡ 0.
devides 𝑄 𝑥, 𝑦 then
𝑟
∙ 𝐺(𝑥, 𝑦) and therefore
𝑅 𝑥 = 𝑄 𝑥, 𝑃(𝑥) = 𝑃 𝑥 − 𝑃 x
𝑟
∙ 𝐺(𝑥, 𝑃(𝑥)) ≡ 0
• 2. Let 𝑅 𝑥 ≡ 0 then 𝑄 𝑥, 𝑃(𝑥) ≡ 0 → 𝑄 𝑥, 𝑦 = (𝑦 − 𝑃 x )
∙ 𝐺(𝑥, 𝑦)
• And we got that 𝑦 − 𝑃 x devided
© Copyright 2026 Paperzz