Разстояние между кодовите думи. Описание на алгоритъма на HEngine за статична задача

Страница 1


Разстояние на Хеминг между две последователности еднаква дължинасъответства на броя на позициите, заети от несъвпадащи елементи. В случай на последователности с различни дължини, разстоянието на Хеминг се определя като минималния брой позиции, заети от несъвпадащи елементи при.  

Разстояние на Хеминг d(u,v) между две думи u и v същата дължинаравен на броя на несъответстващите цифри на тези думи. Използва се в теорията на блоковите кодове (V.  

Използвайки метричните свойства на разстоянието на Хеминг, директно се проверява, че /l е метрика на Xt, но не е метрика на набор от смесено-периодични последователности.  

Тази функция за близост е еквивалентна на разстоянието на Хеминг.  

Метриката p в алгоритъма KLOP се определя от разстоянието на Хеминг.  

Ако процедурата за търсене може да намери позиция, където разстоянието на Хеминг е нула, проблемът ще бъде решен.  


Сравнението на размитите подмножества B и B3, степените на размиване, както и разстоянието на Хеминг показва, че разглежданите размити подмножества са различни. Въпреки това, ако вземем като изчислена стойност елемента m2 G Uz, чиято степен на принадлежност към полученото размито подмножество е максимална, тогава използването на размитата връзка R, изчислена по този начин, може да бъде оправдана. Наред с факта, че с този подход е възможно да се опише нелинейността на връзката между максималната температура във втората зона на реактора и дебита на полиетиленовата стопилка, този метод не отчита нестационарния характер на процес на получаване на LDPE, който е свързан с промени в характеристиките на технологичния процес.  


Трансферната функция на този код показва, че има единственият начинс разстояние на Хеминг d - от пътя на всички нули, който се слива с пътя на всички нули в даден възел. От диаграмата на състоянието, показана на фиг. 8.2.6, или диаграмата на решетка, показана на фиг. 8.2.5, ясно е, че пътят от d6 е acbe. Отново от диаграмата на състоянието или решетката виждаме, че тези пътища са acdbe и acbcbe. Третият член в (8.1.2) показва, че има четири пътя с разстояние d 0 и така нататък. по този начин трансферна функцияни дава свойствата на разстоянието на конволюционен код.  

Този резултат е в съответствие с наблюдението, че пътека от всички нули (/0) има разстояние на Хеминг d3 от получената последователност, докато пътека от /1 има разстояние на Хеминг d5 от получената пътека. По този начин разстоянието на Хеминг е еквивалентна метрика за декодиране на твърди решения.  

Този резултат е в съответствие с наблюдението, че пътека от всички нули (/0) има разстояние на Хеминг d3 от получената последователност, докато пътека от /1 има разстояние на Хеминг d5 от получената пътека. По този начин разстоянието на Хеминг е еквивалентна метрика за декодиране на твърди решения.  

На набор от двоични думи с дължина m разстоянието d(a,b) между думите a и b е броят на несъвпадащите позиции на тези думи, например: разстоянието между думите a = 01101 и b = 00111 е 2.

Понятието, дефинирано по този начин, се нарича разстояние на Хеминг.

Той отговаря на следните аксиоми за разстояние:

1) d(a,b)  0 и d(a,b)=0 тогава и само ако a = b;

2) d(a,b) = d(b,a) ;

3) d(a,b) + d(b,c)  d(a,c) (неравенство на триъгълник).

Теглото w(a) на дума a е броят единици сред нейните координати. Тогава разстоянието между думите a и b е теглото на тяхната сума a b: d(a,b)=w(a b) , където символът  обозначава операцията на покоординатно събиране по модул 2. Интуитивно е ясно, че кодът е по-подходящ за откриване и коригиране на грешки, колкото по-различни са кодовите думи. Концепцията за разстоянието на Хеминг ни позволява да изясним това.

ТеоремаЗа да може един код да открие грешки в k (или по-малко) позиции, е необходимо и достатъчно най-малкото разстояние между кодовите думи да бъде  k + 1.

Доказателството на тази теорема е подобно на доказателството на следното твърдение.

Теорема.За да може кодът да коригира всички грешки в k (или по-малко) позиции, е необходимо и достатъчно най-малкото разстояние между кодовите думи да бъде  2k + 1.

32. Теорема за коригиращата способност на кодовете.

Кодовете, които могат автоматично да коригират грешки, се наричат ​​самокоригиращи се. За да се създаде самокоригиращ се код, предназначен да коригира единични грешки, една контролна цифра не е достатъчна. Както може да се види от това, което следва, броят на контролните битове k трябва да бъде избран така, че да е изпълнено неравенството 2k≥k+m+1 или k≥log2(k+m+1), където m е броят на основните двоични битове на кодовата дума. Понастоящем най-голям интерес представляват кодовете за коригиране на двоични блокове. Когато се използват такива кодове, информацията се предава под формата на блокове с еднаква дължина и всеки блок се кодира и декодира независимо един от друг. В почти всички блокови кодове знаците могат да бъдат разделени на информационни и верификационни.

Основните характеристики на самокоригиращите се кодове са:

1. Брой разрешени и забранени комбинации. Ако n е броят на символите в блока, r е броят на символите за проверка в блока, k е броят на информационните символи, тогава 2n е броят на възможните кодови комбинации, 2k е броят на разрешените кодови комбинации, 2n −2k е броят на забранените комбинации.

2. Излишък на кода. Стойността rn се нарича излишък на коригиращия код.

3. Минимално кодово разстояние. Минималното кодово разстояние d е минималният брой изкривени символи, необходими за преминаване от една разрешена комбинация към друга.

4. Брой открити и коригирани грешки. Ако g е броят на грешките, които кодът може да коригира, тогава е необходимо и достатъчно d≥2g+1

5. Коригиращи възможности на кодовете.

33. Матрично кодиране. Групови кодове.

При изрично указване на схемата за кодиране в ( m, n)-кодът трябва да указва 2 m кодови думи, което е много неефективно.

Един икономичен начин за описване на кодираща схема е техниката на матрично кодиране.

Преди това всяка схема на кодиране беше описана чрез таблици, определящи кодова дума с дължина п за всяка изходна дума с дължина м. За дълги блокове този метод изисква голямо количество памет и следователно е непрактичен. Например за ( 16, 33 ) кодът ще изисква 33 * 2 16 = 2 162 688 бита.

Изисква много по-малко памет матрично кодиране. Нека д размерна матрица m×n, състоящ се от елементи e ij , където аз е номерът на реда и й - номер на колона. Всеки от елементите на матрицата д ij може да бъде 0 или 1. Кодирането се изпълнява от операцията b = aE или където кодовите думи се разглеждат като вектори, т.е. като редови матрици с размер 1×n.

Кодирането не трябва да присвоява една и съща кодова дума на различни съобщения източник. Лесен начин да постигнете това е да м матрични колони формира единична матрица. Когато който и да е вектор се умножи по матрицата на идентичност, се получава един и същи вектор;

Матричните кодове също се наричат линейни кодове. За линеен (n − r, n)-кодове с минимално разстояние на Хеминг d съществува Долна граница на Плоткин (Плоткин) за минимално количествоконтролни битове rпри n³ 2d − 1,

двоичен (Код m, n) се нарича групов код, ако неговите кодови думи образуват група.

Обърнете внимание, че множеството от всички двоични думи с дължина m образува комутативна група с операцията на покоординатно събиране по модул 2, в която важи отношението a a. Следователно наборът от думи за съобщения a с дължина m е комутативна група.

Извиква се блоков код група, ако неговите кодови думи образуват група.

Ако кодът е групов код, тогава най-малкото разстояние между две кодови думи е най-малко теглоненулева дума.

Това следва от релацията d(b аз , б й ) = w(b аз + b й ).

Когато използвате код със заместващ знак, онези и само онези грешки, които съответстват на низове за грешки, точно равни на кодовите думи, остават неоткрити.

Такива редове за грешки превеждат една кодова дума в друга.

Следователно вероятността грешката да остане неоткрита е равна на сумата от вероятностите на всички низове за грешки, равни на кодови думи.

Набор от всички двоични думи а = а 1 ... а м дължина мобразува абелева (комутативна) група по отношение на побитово събиране.

Нека д - кодиране m×n-матрица, която има м × м-подматрица с ненулева детерминанта, например идентичност. След това картографирането a → a Eпревежда група от всички двоични думи с дължина м към група от кодови думи с дължина п.

Нека приемем, че Тогава за получаваме

т.е. Следователно, картографиране едно към едно на група от двоични думи с дължина м с помощта на дадена матрица д запазва свойствата на групова операция, което означава, че кодовите думи образуват група.

Свойство на груповия код: минималното кодово разстояние между кодовите вектори е равно на минималното тегло на ненулевите вектори. Теглото на кодовия вектор е равно на броя единици в кодовата комбинация.

Удобно е груповите кодове да се задават с помощта на матрици, чиято размерност се определя от параметрите k и n. Броят на редовете е k, а броят на колоните е n = k+m.

Кодовете, генерирани от тези матрици, се наричат ​​(n, k)-кодове, а съответните матрици се наричат ​​генератори (генератори).

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

Американският математик Хеминг изследва какво определя този коддали ще открие грешки и кога може да ги коригира. Интуитивно е ясно, че това зависи от това как кодовите думи са разделени една от друга и колко грешки могат да се появят в предадена дума. Сега ще формализираме следната идея. Когато кодирате, трябва да се съгласите с номера възможни грешкив предадената кодова дума, така че когато предадената кодова дума се промени, тя остава по-близо до оригиналната кодова дума, отколкото до всяка друга кодова дума.

Определение 13.1.Помислете за набора от всички двоични думи в азбуката IN= (0,1) дължина Тразстояние d(х, при), което е равно на броя на несъвпадащите позиции на тези думи. Например За думи X = 011101, при= 101010 разстоянието е d(х, г) = 5. Това разстояние се нарича Разстояние на Хеминг .

Може да се покаже, че разстоянието на Хеминг удовлетворява аксиомите на метричното пространство:

1) d(х, при) ≥ 0, d(х, при) = 0 ако и само ако X = y;

2) d(х, г) = d(г, х);

3) d(х, при) ≤ d(х, z) + d(z, при) - неравенство на триъгълник.

Теорема 13.1(относно кода за откриване). Кодът се открива в случай, че предаваната дума съдържа не повече от к

d(b 1, b 2) ≥ к+ 1.

Теорема 13.2(относно кода за корекция.). Кодът коригира всички грешки в случай, че предадената дума съдържа не повече от кгрешки, ако и само ако най-малкото разстояние между кодовите думи

d(b 1, b 2) ≥ 2к+ 1.

Доказателство. Доказателствата на тези теореми са подобни. Затова ще докажем само последната теорема.

Адекватност. Нека за всички кодови думи, които имаме d(b 1, b 2) ≥ 2к+ 1. Ако при предаване на кодова дума b 1 не се случи повече кгрешки, тогава за приетата дума с имаме d(b 1, c) ≤ к. Но от неравенството на триъгълника за всяка друга кодова дума b 2 имаме d(b 1, с) + d(c, b 2) ≥ d(b 1, b 2) ≥ 2 к+ 1. Следователно от получената дума до всяка друга кодова дума разстоянието е d(c, b 2) ≥ k + 1, т.е. повече от преди b 1. Следователно според приетото слово сопределено можете да намерите най-близката кодова дума b 1 и след това го декодирайте.

Необходимост. От обратното. Да приемем, че минималното разстояние между кодовите думи е по-малко от 2 к+ 1. След това има две кодови думи, разстоянието между тях ще бъде d(b 1, b 2) ≤ 2 к. Нека при предаване на думата b 1 приета дума ссе намира между думите b 1, b 2i има точно кгрешки. Тогава d(c, b 1) = к, d (c, b 2) = d(b 1, b 2) – d(c, b 1) ≤ к. По този начин от думата c е невъзможно недвусмислено да се реконструира кодовата дума, която е била предадена, b 1или b 2. Стигнахме до противоречие.

Пример 13.3 . Разгледайте следните петбитови кодове за думи с дължина 2 в азбуката IN = {0,1}:

b 1= К(00) = 00000, b 2= К(01) = 01011,

b 3= К(10) = 10101, b 4= к(11) =11110.

Минималното разстояние между различните кодови думи е d(би, bj) = 3. По силата на първата теорема за кода за откриване, този код е в състояние да открие не повече от две грешки в една дума. По силата на втората теорема кодът може да коригира най-много една грешка в дума.

Групови кодове

Нека разгледаме по-подробно кодовете на думите в азбуката IN= (0, 1). Ако за думи с дължина Тизползват се кодови думи с дължина п, тогава ще наричаме такива кодове ( Т , п)-кодове. Обща дължина на думите ме равно на 2 м. За да зададете ( Т , п)-код, можете да изброите кодови думи за всички възможни думидължина м, както в предишния пример. По-икономичен начин за определяне на кодови думи е матрична задача.

В този случай се посочва генериращата матрица Ж= ∣∣ гиж∣∣ поръчка Т × пот 0 и 1. Кодовите думи се определят всеки път по дума А = А 1а 2... причрез умножаване на тази дума отляво, като вектор, по генериращата матрица

Тук събирането е дефинирано по модул 2. За да различни думисъответстват различни кодови думи, достатъчно е да има в матрицата Жединична основа второстепенна от порядъка Т, например най-лявата.

Пример 13.4 . Помислете за генериращата матрица

Тази матрица дефинира кода (3, 4). В този случай първите три знака в кодовата дума са информационни, а четвъртият е контролен. Равно е на 0, ако четно числоединици в оригиналната дума и 1 ако нечетно числоединици. Например за думата А= 101 код ще бъде b= aG= 1010. Минималното разстояние на Хеминг между кодовите думи е d(би, bj) = 2. Следователно това е код, който открива еднократна грешка.

Определение 13.2.Кодът се нарича група , ако наборът от всички кодови думи образува група. Броят на единиците в думата а се нарича везнидуми и се обозначава Ако b- кодова дума и дума, получена в комуникационния канал с = b + e, след това думата днаречен вектор на грешките .

Теорема 13.3.Нека има група ( Т , п)-код. След това комутативната група ДОна всички кодови думи е подгрупа на комутативната група СЪСвсички думи с дължина п, които могат да бъдат получени в комуникационния канал. Най-малкото разстояние между кодовите думи е равно на най-малкото тегло на ненулева кодова дума и

Помислете за факторната група S/K. Косетите тук ще се определят от смяната e + b, bК.

Като представител на класа coset избираме елемента с най-малко тегло. Ние ще наричаме такива елементи ръководители на съседни класове .

Ако лидерите се интерпретират като вектори на грешка, тогава всеки съседен клас е набор от изкривени думи в комуникационен канал с фиксиран вектор на грешка, по-специално когато д= 0 имаме съседен клас думи без изкривявания, т.е. множеството от всички кодови думи. Процесът на коригиране и декодиране на думи ссе състои в търсене на съседния клас, към който принадлежи думата с = д + b. Вектор на грешката допределя броя и местоположението на грешките, кодова дума bопределя корекцията на получената дума.

За да се улесни търсенето на coset и по този начин на вектора на грешката, Хеминг предложи използването на групови кодове със специални генериращи матрици.

Кодове на Хеминг

Нека разгледаме конструкцията на Hamming ( Т , п)-код с най-малко тегло на кодовата дума, равно на 3, т.е. код, който коригира една грешка.

Да сложим п = 2 r– 1 и нека всяка кодова дума съдържа rконтролни знаци и Тгерои ( Т = пr= 2 r– 1– r) - информационен, r≥ 2, например (1, 3) код, (4, 7) код и т.н. Освен това във всяка кодова дума b= b 1b 2... b pсимволи с индекси, равни степени 2 ще бъдат контролни, а останалите ще бъдат информационни. Например за код (4, 7) в кодовата дума b= b 1b 2b 3b 4b 5b 6b 7 знака b 1b 2b 4 ще бъдат контролни, а символите b 3b 5b 6b 7- информационен. Да се ​​уточни генераторната матрица Жна Хеминг ( Т , п)-код, помислете спомагателна матрица Мред r× п, Къде п = 2 r– 1, така че във всяка йматрична колона Мще има двоични символи й, например, за (4, 7) кодирайте матрицата Мще бъде 3 × 7:



Дефинираме набора от всички кодови думи като набор от решения хомогенна системалинеен алгебрични уравнениявид

b MT= 0.

Например за (4, 7) код такава система би била:

Нека изберем естествен базисен минор на системата b MT= 0, стоящи в колони с числа, равни на степен 2. Така разделяме променливите на основни (код) и безплатни (информация). Сега, след дефиниране на свободни променливи, е лесно да се получат основни. Нека намерим фундаменталната система м= пrрешения на тази хомогенна система. Тогава всяко решение на системата е линейна комбинация от тях мрешения. Следователно, изписване ред по ред мрешения на фундаменталната система под формата на матрица Жразмер м× п, получаваме генериращата матрица на групата на Хеминг ( Т , п)-код, например за (4, 7)-код фундаментална системарешения ще има 4 = 7 – 3 следните решения на хомогенна система:

ж 1= 1110000, ж 2= 1001100, ж 3= 0101010, ж 4= 1101001.

Всяка линейна комбинация от тези решения ще бъде решение, т.е. кодова дума. Нека съставим генерираща матрица от тези фундаментални решения

Сега според всяка дума Адължина Т= 4 лесни за изчисляване кодови думи bдължина п= 7 с помощта на генераторната матрица b= aG. В същото време символите b 3, b 5, b 6, b 7 ще има информативен характер. Те съвпадат с А 1, А 1, А 3, А 4.Символи b 1, b 2, b 4 ще бъде контролен.

Заключение. Кодовете на Хеминг са удобни, тъй като косетите се определят лесно по време на декодиране. Нека думата, получена по комуникационния канал, бъде с = д + b, Къде д- грешка, b- кодова дума. След това го умножете по спомагателната матрица cMT= (д + b)MT= eM T. Ако eM T= 0, след това думата с- код и считаме: няма грешка. Ако eM T≠ 0, след това думата допределя грешка.

Припомнете си, че конструираният Hammings ( Т , п)-код идентифицира една грешка. Следователно векторът на грешката дсъдържа една единица в азпозиции. Освен това броят азпозиция се получава в двоично представяне като резултат eM T, съвпадаща с азматрична колона М. Остава да сменим символа азв думата c, получена по канала, зачеркнете контролните знаци и запишете декодираната дума.

Например, нека приетата дума да бъде с= 1100011 за (4, 7) кода на Хеминг. Нека умножим тази дума по матрицата М Т. получаваме

(1100011) М Т=(010).

Следователно има грешка във втория знак. Следователно кодовата дума ще бъде b= 1000011. Задраскайте контролните знаци b 1, b 2, b 4. Декодираната дума ще бъде А = 0011.

Разбира се, ако грешката е направена в повече от един знак, този код няма да я коригира.

) В векторно пространствокодови последователности, в този случай разстоянието на Хеминг между две двоични последователности (вектори) и дължина е броят на позициите, в които те са различни - в тази формулировка разстоянието на Хеминг е включено в Речника на алгоритмите и структурите на данни Национален институтСтандарти на САЩ ( английски Речник на NIST за алгоритми и структури от данни ).

Така разстоянието на Хеминг между векторите 0 011 1 и 1 010 1 е равно на 2 (разликите са маркирани в червено битове). Впоследствие метриката беше обобщена до q-ични последователности: за двойка низове „избори“ и „ограда“ разстоянието на Хеминг е равно на три.

IN общ изгледРазстоянието на Хеминг за обекти и размери се дава от функцията:

Разстоянието на Хеминг има свойствата на метрика, отговаряща на следните условия:

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

Литература

  • Ричард У. Хеминг. Кодове за откриване и коригиране на грешки, Bell System Technical Journal 29(2):147-160, 1950 г.
  • Ричард Блейхут. Теория и практика на кодовете за контрол на грешки. М., "Мир", 1986 г

Връзки

  • Ричард Хеминг и началото на теорията на кодирането // Виртуален компютърен музей

Фондация Уикимедия.

2010 г.

    Разстояние на ХемингВижте какво е „разстояние на Хеминг“ в други речници: - Разстояние на Хеминг Разстояние d (u,v) между две кодови последователности u и v с еднаква дължина,равно на числото

    знаци, по които се различават. Блок код с минимално разстояние на Хеминг d позволява да се открие (d 1) и... ...кодово разстояние - Минимално разстояние на Хеминг, поето за всички лари от различни кодови думи в единен код. [Сборник с препоръчителни термини. Брой 94. ​​Теория на предаването на информация. Академия на науките на СССР. Комитет по техническа терминология. 1979] Теория на темите... ...

    Ръководство за технически преводач В областта на математиката и теорията на информацията линеен код еважен тип

    блоков код, използван във вериги за откриване и коригиране на грешки. Линейните кодове, в сравнение с други кодове, позволяват прилагането на по-ефективни алгоритми... ... Wikipedia

    Откриването на грешки в комуникационната технология е действие, насочено към наблюдение на целостта на данните при запис/възпроизвеждане на информация или при предаването й по комуникационни линии. Процедура за възстановяване на корекция на грешка (корекция на грешка)... ... Wikipedia

    Откриването на грешки в комуникационната технология е действие, насочено към наблюдение на целостта на данните при запис/възпроизвеждане на информация или при предаването й по комуникационни линии. Процедура за коригиране на грешки (коригиране на грешки) за възстановяване на информация след... ... Wikipedia

    Откриването на грешки в комуникационната технология е действие, насочено към наблюдение на целостта на данните при запис/възпроизвеждане на информация или при предаването й по комуникационни линии. Процедура за коригиране на грешки (коригиране на грешки) за възстановяване на информация след... ... Wikipedia

    Откриването на грешки в комуникационната технология е действие, насочено към наблюдение на целостта на данните при запис/възпроизвеждане на информация или при предаването й по комуникационни линии. Процедура за коригиране на грешки (коригиране на грешки) за възстановяване на информация след... ... Wikipedia