فاصله همینگ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
3-bit binary مکعب for finding Hamming distance
Two example distances: 100->011 has distance 3 (red path); 010->111 has distance 2 (blue path)
4-bit binary تسرکت for finding Hamming distance
Two example distances: 0100->1001 has distance 3 (red path); 0110->1110 has distance 1 (blue path)

در تئوری اطلاعات فاصله‌ی همینگ برای دو رشته با طول مساوی، برابر تعداد مکانهایی است که سمبولهای متناظر متفاوت هستند. به عبارت دیگر، کمترین تعداد جایگزینی هایی است که یک رشته به یک رشته دیگر تغییرپیدا کند، یا تعداد خطاهایی که یک رشته به رشته دیگر تبدیل گردد.

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

فاصله همینگ بین:

  • «toned»و«roses»سه هست.
  • ۱۰۱۱۱۰۱ و ۱۰۰۱۰۰۱ دو هست.
  • ۲۱۷۳۸۹۶ و ۲۲۳۳۷۹۶ سه هست.

مشخصات[ویرایش]

برای یک طول ثابت n، فاصله همینگ یک معیاراندازه روی فضای برداری از کلماتی با آن طول می‌باشد، بطوریکه دارای شرایط غیر منفی، هویت متقارن و غیر قابل تشخیص تحقق می‌یابد، و آن می‌تواند بخوبی مساله ارضاء نابرابری مثلث رابوسیله استقراءکامل نشان دهد. فاصله همینگ بین دوکلمه a و b می‌تواند همچنین بوسیله وزن هامینگ a-b برای یک انتخاب مناسب از عملگر - مشاهده گردد. برای رشته دودویی a و b فاصله همینگ برابر با تعداد یک‌های a یای مانعةالجمع b می‌باشد. فضای برداری رشته‌های دودویی با طول n، با فاصله همینگ، بعنوان Hamming cube شناخته می‌شود;که آن معادل با فضای برداری مجموعه فواصل بین برداری در یک گراف ابر مکعب می‌باشد. می توان یک رشته دودویی با طول n رادر R^n نشان داد بطوریکه هر سمبل در رشته بعنوان یک مولفه حقیقی رفتار نماید. با این تعبیه، رشته هاراس‌های یک ابرمکعب n بعدی را شکل می‌دهند، و فاصله همینگ رشته‌ها برابر با فاصله مانهاتان (Manhattan distance)بین راس‌ها می‌باشد.

تاریخچه و کاربردها[ویرایش]

فاصله هامینگ از نام ریچارد همینگ گرفته شده‌است. که در مقاله بنیادی اش درمورد کد همینگ معرفی شد. که در ارتباطات برای شمارش تعدادبیت‌های معکوس دریک کلمه دودویی با طول ثابت جهت تخمین خطارا می‌شمارد وبنابراین اکثر مواقع به آن signal distanceگفته می‌شود. آنالیز وزن همینگ در چندین جا شامل نظریه اطلاعات، نظریه کدگذاری و رمزنگاری مورد استفاده قرارگرفته‌است. بهر حال برای مقایسه رشته‌های باطول متفاوت و یا رشته‌های که شامل حذف یا درج می‌باشند اما شامل جابجایی نمی‌باشند اندازه گیری‌های پیچیده تری مانند فاصله لون‌اشتاین مورد نیاز می‌باشد. برای رشته‌های q تایی روی الفبای q ≥ ۲ فاصله همینگ در حالت ماژولایون متعامد انجام می‌گیرد. درحالی که Lee distance برای ماژولاسیون فازی صورت می‌گیرد. در حالت q=2,q=۳ دو حالت فاصله فراهم گردیده‌است. فاصله همینگ همچنین درکلاس بندی فاصله ژنتیکی مورد استفاده قرار گرفته‌است. در Lee distance نقاط یک von Neumann neighborhood آن نقطه را تشکیل می‌دهند.

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

تابع پایتون فاصله همینگ بین دورشته با طول مساوی رامحاسبه می‌کند. با ایجاد یک دنباله از صفر و یک‌ها برابری یا عدم برابری دو رشته را نشان می‌دهیم و سپس دنباله را جمع می‌کنیم.

def hamming_distance(s1, s2):
    assert len(s1) == len(s2)
    return sum(ch1!= ch2 for ch1, ch2 in zip(s1, s2))

تابع C زیر فاصله همینگ دو عدد صحیح را محاسبه می‌کند(شامل مقادیر دودویی بصورت دنباله‌ای از بیت‌ها). زمان اجرای زیر برنامه بر اساس تعدادبیت‌های اعداد ورودی مشخص می‌گردد. آن bitwise را برای دو وروی محاسبه می‌کند. و سپس وزن همینگ نتیجه را (تعداد بیت‌های غیر صفر)با استفاده از الگوریتم harvtxt۱۹۶۰ پیدا می‌کند.

unsigned hamdist(unsigned x, unsigned y)
{
  unsigned dist = 0, val = x ^ y;
 
  // Count the number of set bits
  while(val)
  {
    ++dist;
    val &= val - 1;
 }
 
  return dist;
}

جستارهای وابسته[ویرایش]

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

 This article incorporates public domain material from the General Services Administration document "Federal Standard 1037C".

پیوند به بیرون[ویرایش]