Jump to content

Алгоритм Верховева

Алгоритм Верховева [1] контрольная сумма для обнаружения ошибок, впервые опубликованная голландским математиком Якобусом Верхуффом в 1969 году. [2] [3] Это был первый алгоритм десятичных контрольных цифр , который обнаруживает все однозначные ошибки и все ошибки транспонирования, связанные с двумя соседними цифрами. [4] что в то время считалось невозможным при наличии такого кода.

Метод был независимо открыт Х. Питером Гаммом в 1985 году, на этот раз включая формальное доказательство и расширение на любую базу. [5]

Целью Верхуффа было найти десятичный код — такой, в котором контрольная цифра представляет собой одну десятичную цифру, — который обнаруживал бы все однозначные ошибки и все перестановки соседних цифр. В то время предполагаемые доказательства несуществования [6] из этих кодов сделали популярными коды с основанием 11, например, в контрольной цифре ISBN .

Его цели также были практическими: он основывал оценку различных кодов на реальных данных голландской почтовой системы, используя систему взвешенных баллов для различных видов ошибок. Анализ разбил ошибки на несколько категорий: во-первых, по количеству ошибочных цифр; для тех, у кого есть ошибка в две цифры, есть транспозиции ( ab ba ), близнецы ( aa → 'bb'), скачкообразные транспозиции ( abc cba ), фонетические ( 1a a0 ) и скачкообразные близнецы ( aba cbc ). Кроме того, есть пропущенные и добавленные цифры. Хотя частота некоторых из этих ошибок может быть небольшой, некоторые коды могут быть невосприимчивы к ним в дополнение к основной цели обнаружения всех одиночных ошибок и транспозиций.

Фонетические ошибки, в частности, проявили лингвистический эффект, поскольку в голландском языке числа обычно читаются парами; а также, хотя на голландском языке 50 звучит похоже на 15, 80 не звучит как 18.

На примере шестизначных чисел Верховев предложил следующую классификацию ошибок:

Цифры с ошибкой Классификация Считать Частота
1 Транскрипция 9,574 79.05%
2 Транспозиции 1,237 10.21%
Двойняшки 67 0.55%
Фонетический 59 0.49%
Прочие смежные 232 1.92%
Прыжковые транспозиции 99 0.82%
Прыжок близнецов 35 0.29%
Другие ошибки прыжка 43 0.36%
Другой 98 0.81%
3 169 1.40%
4 118 0.97%
5 219 1.81%
6 162 1.34%
Общий 12,112

Описание

[ редактировать ]

Общая идея алгоритма состоит в том, чтобы представить каждую из цифр (от 0 до 9) как элементы группы диэдра. . То есть сопоставить цифры с , манипулируйте ими, а затем преобразуйте обратно в цифры. Пусть это отображение будет

Пусть n-я цифра будет и пусть количество цифр будет .

Например, учитывая код 248, тогда это 3 и .

Теперь определим перестановку

Например . Другой пример: с

Используя мультипликативную запись для групповой операции , контрольная цифра тогда является просто значением такой, что

явно задается обратной перестановкой

Например, контрольная цифра для 248 равна 5. Чтобы убедиться в этом, используйте сопоставление с и вставляем в левую часть предыдущего уравнения

Чтобы быстро оценить эту перестановку, используйте это

чтобы получить это

Это то же отражение, которое итеративно умножается. Используйте тот факт, что отражения являются их собственными обратными сторонами. [7]

На практике алгоритм реализуется с использованием простых справочных таблиц без необходимости понимать, как генерировать эти таблицы на основе базовой группы и теории перестановок. Правильнее считать это семейством алгоритмов, поскольку работают и другие варианты. Верховев отмечает, что конкретная перестановка, приведенная выше, является особенной, поскольку она обладает свойством обнаруживать 95,3% фонетических ошибок. [8]

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

Основной слабостью алгоритма Верхуффа является его сложность. Требуемые расчеты не могут быть легко выражены в виде формулы, скажем, . Справочные таблицы необходимы для облегчения вычислений. Аналогичным кодом является алгоритм Дамма , обладающий схожими качествами.

Табличный алгоритм

[ редактировать ]

Алгоритм Верхуффа можно реализовать с помощью трех таблиц:таблица умножения d , обратная таблица inv и таблица перестановок p .

Первая таблица d основана на умножении в группе диэдра D 5 . [7] и представляет собой просто таблицу Кэли группы. Обратите внимание, что эта группа не является коммутативной то есть для некоторых значений j и k , d ( j , k ) ≠ d ( k , j ).

Обратная таблица inv представляет собой мультипликативную обратную цифру, то есть значение, которое удовлетворяет условию d ( j , inv ( j )) = 0.

Таблица перестановок p применяет перестановку к каждой цифре в зависимости от ее положения в числе. На самом деле это одна перестановка (1 5 8 9 4 2 7 0)(3 6), применяемая итеративно; т.е. п ( я + j , п ) = п ( я , п ( j , п )).

Расчет контрольной суммы Верхуффа выполняется следующим образом:

  1. Создайте массив n из отдельных цифр числа, взятых справа налево (самая правая цифра — n 0 и т. д.).
  2. Инициализируйте контрольную сумму c равным нулю.
  3. Для каждого индекса i массива n, начиная с нуля, замените c на .

Исходное число действительно тогда и только тогда, когда .

Чтобы сгенерировать контрольную цифру, добавьте 0 и выполните расчет: правильная контрольная цифра — ⁠. .

См. также

[ редактировать ]
  1. ^ Верховев, Дж. (1969). Обнаружение ошибок десятичных кодов (тракт 29) . Математический центр, Амстердам. Бибкод : 1971ЗаММ...51..240Н . дои : 10.1002/замм.19710510323 .
  2. ^ Киртланд, Джозеф (2001). «5. Теория групп и схема контрольных цифр Верхуффа» . Идентификационные номера и схемы контрольных цифр . Математическая ассоциация Америки. п. 153. ИСБН  0-88385-720-0 .
  3. ^ Саломон, Дэвид (2005). «§2.11 Метод контрольной цифры Верхуффа» . Кодирование данных и компьютерных коммуникаций . Спрингер. стр. 56–58. ISBN  0-387-21245-0 .
  4. ^ Хаунспергер, Дина; Кеннеди, Стивен, ред. (2006). Край Вселенной: празднование десяти лет математических горизонтов . Математическая ассоциация Америки. п. 38. ISBN  978-0-88385-555-3 . LCCN   2005937266 .
  5. ^ Гамм, Х. (январь 1985 г.). «Новый класс методов контрольных цифр для произвольных систем счисления (Корресп.)» . Транзакции IEEE по теории информации . 31 (1): 102–105. дои : 10.1109/TIT.1985.1056991 .
  6. ^ Сиссон, Роджер Л. (май 1958 г.). «Улучшенная проверка десятичной избыточности» . Коммуникации АКМ . 1 (5): 10–12. дои : 10.1145/368819.368854 .
  7. Перейти обратно: Перейти обратно: а б Галлиан, Джозеф А. (2010). Современная абстрактная алгебра (7-е изд.). Брукс/Коул. п. 111 . ISBN  978-0-547-16509-7 . LCCN   2008940386 . Проверено 26 августа 2011 г. Контрольная цифра Верховева.
  8. ^ Верховев 1969 , с. 95
  9. ^ Верховев 1969 , с. 83
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d8735bbf8232a520ca7b814d3b759e8d__1713857460
URL1:https://arc.ask3.ru/arc/aa/d8/8d/d8735bbf8232a520ca7b814d3b759e8d.html
Заголовок, (Title) документа по адресу, URL1:
Verhoeff algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)