الگوریتم چندجمله‌ای

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از الگوریتم چند جمله‌ای)

الگوریتم چندجمله‌ای (به انگلیسی: polynomial algorithm)، در نظریه کدگذاری، کد چندجمله‌ای نوعی از کدهای خطی است که مجموعهٔ کد واژه‌های قابل قبول آن شامل آن دسته از چندجمله‌ای ها(معمولاً با طول ثابت)است که با یک چندجمله‌ای داده شده و ثابت (با طول ثابت به نام چندجمله‌ای مولد) قابل قسمت هستند.[نیازمند منبع]

تعریف[ویرایش]

عبارت چند جمله(GF(x ای را در نظر بگیرید که عناصر آن را ضرایب آن می‌گیریم. برای ساخت کدهای چندجمله‌ای، یک رشته از n ضریب an-1,an-2,... ,a۰ را با چندجمله‌ای زیر مشخص می‌کنیم:

an-1xn-1+an-2xn-2+... +a۰

اعداد صحیح و ثابت را در نظر بگیرید و فرض کنید که (g(x چندجمله‌ای ثابت از درجه‌ای m (به نام چندجمله‌ای مولد) باشد. کد چندجمله‌ای ای که با (g(x تولید می‌شود، کدی خواهد بود که کد واژه‌های آن قطعاً چندجمله‌ای‌هایی با درجهٔ کمتر از n بوده و بر (g(x بخش پذیر هستند(بدون باقی‌مانده).

الگوریتم‌های چندجمله‌ای[ویرایش]

در نظریه کدگذاری، کد چندجمله‌ای نوعی از کدهای خطی است که مجموعهٔ کد واژه‌های قابل قبول آن شامل آن دسته از چندجمله‌ای ها(معمولاً با طول ثابت)است که با یک چندجمله‌ای داده شده و ثابت (با طول ثابت به نام چندجمله‌ای مولد) قابل قسمت هستند.

تعریف[ویرایش]

عبارت چند جمله(GF(x ای را در نظر بگیرید که عناصر آن را ضرایب آن می‌گیریم. برای ساخت کدهای چندجمله‌ای، یک رشته از n ضریب an-1,an-2,... ,a۰ را با چندجمله‌ای زیر مشخص می‌کنیم:

an-1xn-1+an-2xn-2+... +a۰

اعداد صحیح و ثابت را در نظر بگیرید، و فرض کنید که(g(x چندجمله‌ای ثابت از درجه‌ای m (به نام چندجمله‌ای مولد) باشد. کد چندجمله‌ای ای که با (g(x تولید می‌شود، کدی خواهد بود که کد واژه‌های آن قطعاً چندجمله‌ای‌های با درجهٔ کمتر از n بوده و بر (g(x بخش پذیر هستند(بدون باقی‌مانده).

مثال[ویرایش]

کد چندجمله‌ای روی {GF(2) = {0,1، باm=2,n=5 و چندجمله‌ای مولد g(x) = x2 + x + 1 را در نظر بگیرید.in کد شامل کد واژه‌های زیر است:

x۲+x+1, x۳+x۲+x, x۳+۱ ,۰,

x۴+x۳+x۲ , x۴+x۳+x+1 , ,x۴+x,x۴+x۲

به‌طور مشابه می‌توان کد واژه‌ها را به صورت رشته‌هایی از ارقام دودویی نمایش داد:

۰۰۰۰۰٬۰۰۱۱۱٬۰۱۱۱۰٬۰۱۰۰۱ ۱۱۱۰۰٬۱۱۰۱۱٬۱۰۰۱۰٬۱۰۱۰۱

توجه کنید که هر کد چندجمله‌ای خود یک کد خطی نیز هست. پس هر ترکیب خطی از کد واژه‌های ان نیز کد واژه خواهدبود.

کد گذاری[ویرایش]

در یک کد چندجمله‌ای روی(GF(q، با طول کد n و چندجمله‌ای مولد(q(x، دقیقاً کد واژه وجود خواهد داشت. البته طبق تعریف(p(x یک کد واژه‌است اگر و فقط اگر ، که در آن(q(x(خارج قسمت) از درجهٔ کمتر از است. پس چون به تعداد از این خارج قسمت‌ها وجود خواهد داشت، به همین تعداد نیز کد واژه‌های قابل قبول وجود دارد.

بازی از مولفان مانند(Lidl & Pilz, 1999) فقط تابدیلاتی را به عنوان نسبت دادن داده واژه‌ها به کد واژه‌ها بر رسی می‌کنند. به هر حال بدی این روش این است که داده واژه به عنوان قسمتی از کد واژه ظاهر نمی‌شود.

مثال[ویرایش]

برای مثال بالا با, و چندجمله‌ای مولد، انتصاب زیر را از داده واژه‌ها به کد واژه‌ها به دست می‌آوریم:

  • ۰۰۰ ← ۰۰۰۰۰
  • ۰۰۱ ← ۰۰۱۱۱
  • ۰۱۰ ← ۰۱۰۰۱
  • ۰۱۱ ← ۰۱۱۱۰
  • ۱۰۰ ← ۱۰۰۱۰
  • ۱۰۱ ← ۱۰۱۰۱
  • ۱۱۰ ← ۱۱۰۱۱
  • ۱۱۱ ← ۱۱۱۰۰

رمز گشایی[ویرایش]

یک پیغام حاوی خطا می‌تواند با یک کار بسیار سر راست شناسایی شود، به طوری که تقسیم چندجمله‌ای بر چندجمله‌ای مولد باقی‌ماندهٔ غیر صفر می‌دهد.

بااین فرض که کد واژه فاقد خطاست، یک کد اصولی را می‌توان به سادگی با برداشتن m رقم(مجموع مقابله‌ای) آن، رمز گشایی کرد.

اگر خطایی وجود داشته باشد، ابتدا قبل از رمز گشایی کار تصحیح خطا باید انجام شود. برای کدهای چندجمله‌ای خاص، مثل کدهای BCH، الگوریتم‌های مفیدی برای رمز گشایی وجود دارد.

ویژگی‌های کدهای چندجمله‌ای[ویرایش]

مثل همهٔ کدهای دیجیتال، توانایی کدهای چندجمله‌ای در تشخیص و تصحیح خطا با حداقل فاصلهٔ همینگ آن کدتعیین می‌شود. از آنجایی که کدهای چندجمله‌ای نوعی کد خطی هستند، حد اقل فاصلهٔ همینگ آن‌ها برابر است باحداقل وزن(weight) کد واژه‌های غیر صفر آن.

خانواده‌های ویژه‌ای از کدهای چندجمله‌ای[ویرایش]

کدهای چرخشی:هر کد چرخشی خود نیز یک کد چندجمله‌ای به شمار می‌رود, کد افزونگی چرخشی مثال معروفی از این دسته کدهااست.

کدهای BCH:خانواده‌ای از کدهای چرخشی با مقدار فاصلهٔ همینگ زیاد و الگوریتم‌های جبری تصحیح خطای بسیار مفید.

تصحیح خطای رید-سالامون:زیر مجموعهٔ بسیار مهمی از کدهای BHCبا ساختارهای بسیار ویژه و مفید.

کاربرد[ویرایش]

تشخیص خطا در انتقال.

تصحیح خطا در انتقال.

منابع[ویرایش]

  • W.J. Gilbert and W.K. Nicholson: Modern Algebra with Applications, 2nd edition, Wiley, 2004.
  • R. Lidl and G. Pilz. Applied Abstract Algebra, 2nd edition. Wiley, 1999.