Расстояние Хэмминга
Расстояние Хэмминга — это метрика, используемая в теории информации, комбинаторике и теории кодирования, которая определяет минимальное количество позиций, в которых различаются две последовательности (строки, векторы, кодовые слова) одинаковой длины. Иными словами, для двух строк равной длины расстояние Хэмминга равно числу символов, которые необходимо заменить, чтобы преобразовать одну строку в другую. Понятие введено американским математиком Ричардом Хэммингом в 1950 году.
Определение
Пусть даны две строки (или вектора) \(A\) и \(B\) одинаковой длины \(n\) над некоторым алфавитом \(\Sigma\). Расстояние Хэмминга \(d(A, B)\) определяется как количество позиций \(i\), для которых \(A_i \neq B_i\), где \(i\) принимает значения от 1 до \(n\). Формально:
\[ d(A, B) = |\{i : A_i \neq B_i, 1 \leq i \leq n\}| \]
Для двоичных векторов (алфавит \(\{0, 1\}\)) расстояние Хэмминга совпадает с весом Хэмминга (количеством единиц) результата их поразрядного сложения по модулю 2 (XOR). Например, для векторов \(A = 10110\) и \(B = 10011\) поразрядное XOR даёт \(00101\), вес которого равен 2, следовательно, \(d(A, B) = 2\).
Свойства
Расстояние Хэмминга является метрикой, то есть удовлетворяет аксиомам метрического пространства для любых строк \(A, B, C\) одинаковой длины:
- Неотрицательность: \(d(A, B) \geq 0\), причём \(d(A, B) = 0\) тогда и только тогда, когда \(A = B\).
- Симметричность: \(d(A, B) = d(B, A)\).
- Неравенство треугольника: \(d(A, C) \leq d(A, B) + d(B, C)\).
Кроме того, для двоичных векторов выполняется свойство аддитивности относительно операции XOR: \(d(A, B) = w(A \oplus B)\), где \(w(x)\) — вес Хэмминга вектора \(x\).
История
Понятие расстояния Хэмминга было впервые опубликовано Ричардом Хэммингом в 1950 году в статье «Error detecting and error correcting codes» (Обнаружение и исправление ошибок в кодах). Работая в Bell Telephone Laboratories, Хэмминг решал задачу повышения надёжности передачи данных по зашумлённым каналам. Он предложил использовать коды, в которых кодовые слова разделены минимальным расстоянием, что позволяет обнаруживать и исправлять ошибки, возникшие при передаче. До Хэмминга аналогичные идеи высказывались Клодом Шенноном, но именно Хэмминг ввёл формальную метрику и построил первые практические коды, исправляющие ошибки (коды Хэмминга).
Применение
Теория кодирования
Основное применение расстояния Хэмминга — в теории помехоустойчивого кодирования. Минимальное расстояние Хэмминга \(d_{\min}\) между любыми двумя различными кодовыми словами кода определяет его корректирующую способность:
- Если \(d_{\min} \geq 2t + 1\), код может исправить до \(t\) ошибок в одном кодовом слове.
- Если \(d_{\min} \geq t + 1\), код может обнаружить до \(t\) ошибок.
Например, код с \(d_{\min} = 3\) (как в коде Хэмминга) может исправить одну ошибку или обнаружить две ошибки.
Криптография и хеширование
В криптографии расстояние Хэмминга используется для оценки лавинного эффекта — свойства хеш-функций и шифров, при котором изменение одного бита входных данных приводит к изменению примерно половины битов выходных данных. Близость расстояния Хэмминга к \(n/2\) для случайных входных данных считается показателем криптостойкости.
Биоинформатика
В биоинформатике расстояние Хэмминга применяется для сравнения генетических последовательностей (ДНК, РНК) одинаковой длины. Оно позволяет подсчитать количество точечных мутаций (замен нуклеотидов) между двумя последовательностями. Например, последовательности ATGC и ATCC различаются в одной позиции (G → C), поэтому расстояние Хэмминга между ними равно 1.
Обработка сигналов и изображений
В задачах распознавания образов и компьютерного зрения расстояние Хэмминга используется для сравнения бинарных дескрипторов изображений (например, BRIEF, ORB). Быстрое вычисление расстояния через операцию XOR делает его эффективным для поиска похожих изображений в больших базах данных.
Информационный поиск
В системах нечёткого поиска (fuzzy search) расстояние Хэмминга применяется для нахождения строк, отличающихся на заданное число символов. Например, в текстовых редакторах функция проверки орфографии может предлагать исправления, для которых расстояние Хэмминга до ошибочного слова минимально.
Примеры
| Строка A | Строка B | Расстояние Хэмминга | Пояснение |
|---|---|---|---|
| 10101 | 10101 | 0 | Строки идентичны |
| 10101 | 10111 | 1 | Различие в 4-й позиции |
| 10101 | 01010 | 5 | Все позиции различны |
| KOT | КОТ | 1 | Различие в первой букве (регистр) |
| 1111 | 0000 | 4 | Полная противоположность |
Ограничения и критика
Расстояние Хэмминга имеет существенное ограничение: оно применимо только к строкам одинаковой длины. Для сравнения строк разной длины используются другие метрики, например, расстояние Левенштейна (редакционное расстояние), которое учитывает вставки, удаления и замены символов. Кроме того, расстояние Хэмминга не учитывает контекст или семантику символов — замена символа в начале слова и в конце оценивается одинаково, что может быть неоптимально для некоторых задач, например, для анализа текстов на естественном языке.
Связанные понятия
- Вес Хэмминга — количество ненулевых символов в строке (для двоичного случая — количество единиц).
- Кодовое расстояние — минимальное расстояние Хэмминга между любыми двумя различными кодовыми словами кода.
- Расстояние Левенштейна — обобщение расстояния Хэмминга, учитывающее вставки и удаления.
- Метрика Хэмминга — термин, синонимичный расстоянию Хэмминга, часто используемый в контексте метрических пространств.
Источники
- Hamming, R. W. (1950). Error detecting and error correcting codes. The Bell System Technical Journal, 29(2), 147–160.
- MacWilliams, F. J., & Sloane, N. J. A. (1977). The Theory of Error-Correcting Codes. North-Holland Publishing Company.
- Cover, T. M., & Thomas, J. A. (2006). Elements of Information Theory (2nd ed.). Wiley-Interscience.
- Шеннон, К. (1963). Работы по теории информации и кибернетике. Издательство иностранной литературы.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →