Это не официальный сайт wikipedia.org 01.01.2023

Расстояние Хэмминга — Википедия

Расстояние Хэмминга

(перенаправлено с «Расстояние Хемминга»)

Расстоя́ние Хэ́мминга (кодовое расстояние) — число позиций, в которых соответствующие символы двух слов одинаковой длины различны[1]. В более общем случае расстояние Хэмминга применяется для строк одинаковой длины любых q-ичных алфавитов и служит метрикой различия (функцией, определяющей расстояние в метрическом пространстве) объектов одинаковой размерности.

3-битовый двоичный куб; все вершины, соединённые ребром имеют расстояние 1
пример расстояний: расстояние 3 100 → 011, расстояние 2 010 → 111
4-битовый двоичный тессеракт (четырёхмерный куб)
примеры расстояний в двоичном тессеракте: расстояние 1 0110 → 1110, расстояние 3 0100 → 1001

Первоначально метрика была сформулирована Ричардом Хэммингом во время его работы в Bell Labs для определения меры различия между кодовыми комбинациями (двоичными векторами) в векторном пространстве кодовых последовательностей: в этом случае расстоянием Хэмминга d ( x , y ) между двумя двоичными последовательностями (векторами) x и y длины n называется число позиций, в которых они различны. В такой формулировке расстояние Хэмминга вошло в словарь алгоритмов и структур данных национального института стандартов и технологий США (англ. NIST Dictionary of Algorithms and Data Structures). Расстояние Хэмминга является частным случаем метрики Минковского (при соответствующем определении вычитания):

d i j = k = 1 p | x i k x j k | .

Два слова, расстояние Хэмминга между которыми равно 1, называют соседними.

В некоторых системах счисления, например, в коде Грея, целые кодированные числа, различающиеся на 1, имеют расстояние Хэмминга равное 1. Говорят, что такие числа являются «соседними».

Соседнее кодирование важно при проектировании логических устройств, где необходимо исключить логические гонки.

ПримерыПравить

  • d ( 10 1 1 1 01 , 10 0 1 0 01 ) = 2  
  • d ( 2 17 3 8 96 , 2 23 3 7 96 ) = 3  
  • d ( t o n e d , r o s e s ) = 3  

АлгоритмПравить

def hamming_distance(string1, string2):

   if (len(string1) != len(string2)):

       raise Exception('Strings must be of equal length.')

   dist_counter = 0

   for n in range(len(string1)):

       if string1[n] != string2[n]:

           dist_counter += 1

   return dist_counter

СвойстваПравить

Множество слов равной длины образуют метрическое пространство, где для каждой пары элементов пространства определено число — расстояние Хэмминга d ( x , y )   удовлетворяющее аксиомам метрики:

  1. d ( x , y ) = 0 x = y   (аксиома тождества).
  2. d ( x , y ) = d ( y , x )   (аксиома симметрии).
  3. d ( x , z ) d ( x , y ) + d ( y , z )   (аксиома треугольника или неравенство треугольника).
  • Из аксиом следует неотрицательность расстояния, поскольку
    0 = d ( x , x ) d ( x , y ) + d ( y , x ) = 2 d ( x , y )  .
  • Если неравенство треугольника представить в виде
    d ( x , y ) d ( x , z ) + d ( y , z )   для всех x , y   и z  ,
тогда из аксиомы тождества и неравенства треугольника следует аксиома симметрии.

Расстояние Хэмминга всегда:

d ( x , y ) n ,  
где n   — длина слов в символах.

ПримененияПравить

Расстояние Хэмминга в биоинформатике и геномикеПравить

Для нуклеиновых кислот (ДНК и РНК) возможность гибридизации двух полинуклеотидных цепей с образованием вторичной структуры — двойной спирали — зависит от степени комплементарности нуклеотидных последовательностей обеих цепей. При увеличении расстояния Хэмминга количество водородных связей, образованных комплементарными парами оснований уменьшается и, соответственно, уменьшается стабильность двойной цепи. Начиная с некоторого граничного расстояния Хэмминга гибридизация становится невозможной.

При эволюционном расхождении гомологичных ДНК-последовательностей расстояние Хэмминга является мерой, по которой можно судить о времени, прошедшем с момента расхождения гомологов, например, о длительности эволюционного отрезка, разделяющего гены-гомологи и ген-предшественник.

ТелекоммуникацииПравить

Алгоритм используется в телекоммуникациях для подсчета количества неправильных бит в слове фиксированной длины для оценки ошибки и поэтому иногда называется расстоянием сигналов (англ. signal distance).

См. такжеПравить

ПримечанияПравить

  1. Hamming distance: The number of digit positions in which the corresponding digits of two binary words of the same length are different (Federal Standard 1037C Архивная копия от 2 марта 2009 на Wayback Machine).

ЛитератураПравить

  • Блейхут Р. Теория и практика кодов, контролирующих ошибки = Theory and Practice of Error Control Codes. — М.: Мир, 1986. — 576 с.