УДК 004.41
В.Р. СКОРОБОГАТ, Р.А. НЕЙДОРФ
МАТЕМАТИКО-АЛГОРИТМИЧЕСКАЯ МОДЕЛЬ ЛОИДРЮ-САККУРА ДЛЯ КОДОВ РИДА-МАЛЛЕРА ВТОРОГО ПОРЯДКА
В данной работе построена математико-алгоритмическая модель метода декодирования Лоидрю-Саккура для кодов Рида-Маллера второго порядка. Проведено исследование данной модели, которое выявило ряд полезных свойств алгоритма, не отмеченных предыдущими авторами. На основании полученных результатов предложены варианты повышения эффективности декодирования исследуемого алгоритма.
Ключевые слова: кодирование, декодирование, информационное слово, модели ошибок, восстановление информации, помехоустойчивость, коды Рида-Маллера, вероятностный декодер, математическая модель, декодер Лоидрю-Саккура, списочные декодеры.
Введение. Коды Рида-Маллера были открыты в 1954 году и являются на данный момент одними из наиболее старых и хорошо изученных семейств кодов [1]. Несмотря на свое давнее происхождение, коды Рида-Маллера активно исследуются в настоящее время, и для этих кодов появляются новые и все более эффективные декодеры [2-4].
Авторами работ [3, 4] предложена модификация алгоритма (далее будем называть алгоритмом Лоидрю-Саккура, или АЛС), описанного в работе В.М. Сидельникова и А.С. Першакова [2], которая, по мнению авторов, улучшит корректирующие способности исходного алгоритма. Проведенные эксперименты показали высокую эффективность декодирования АЛС [5].
Авторами алгоритма АЛС приведено крайне скудное словесное описание алгоритма, местами имеющее неоднозначное понимание. Интересным представляется задача построения математико-алгоритмической модели АЛС и исследования его свойств, не отмеченных авторами.
Постановка задачи. Задача данной работы состоит в разработке математико-алгоритмической модели АЛС, описании шагов алгоритма с использованием математического аппарата и указанием мест, допускающих неоднозначное понимание. Помимо этого, в настоящей работе будет проведен анализ построенной модели и указаны свойства АЛС, не отмеченные авторами, способные повысить вероятность правильного декодирования кодового слова.
Математико-алгоритмическая модель АЛС. На выходе алгоритма кодирования кода Рида-Маллера 2-го порядка кМ(2,т) получаем двоичный кодовый вектор V0 = (у0,...,у0), п = 2т, у° £ [0; 1], который преобразуется к виду V1 = (у1,...,уП), п = 2т, у) £ [- 1;1], заменой в исходном векторе V0 всех единиц на значение -1, а всех нулей - на единицы. Такая замена приводит к аналогичности операции сложения на множестве {0,1} операции умножения на множестве {— 1,1}.
Во время прохождения этого вектора по каналу связи с ошибками он может исказиться, и на выходе получаем порождённый им и помехой
Y
(Xai,...,Yan ) ,
вектор с действительными координатами: V1 ®
«г є F2m .
Шаг 1. Задачей 1-го шага является построение матрицы D(a ) по пришедшему по каналу кодовому слову. Для каждого вектора a t є F2m построим векторы
D (Y) = (Y Y Y Y )
a i \ s V-iai + a j ai ? • • • ? a n + a / a n-l ' i
где
YY, -
произведение двух действительных чисел; a i + a j - сложе-
ние в поле F2m. Объединим эти векторы в массив
Dai(Y )'
D(a) =
Da2(J ) Da'(Y )
D(a1sa1;) D(a 2,a1;)
D(al5a 2.) X
D(ai,a n; ) D(a 2,a n; )
D(a n ,ai; )
D(a n ,a n; )
a.
an
a.
a.
a„
a7
a8
Замечание к шагу 1. Так, например, для т=3 получаем:
0 = 000; ОЮ = 7 • Y1, Y2 • Y2, Y3 • Yз,74 • Y4,75 • Y5, 76 • Y6, Y7 • Y7, 78 • Y8);
= 1 = 001; D(«1) = (Y2 • Yl • Y2,74 • Yз, 7з • Y4, 76 • 75, Y5 • Y6, 78 • Y7,77 • Y8);
2 = 010; 0(а2) = (Уз • 7, 74 • 72, ¥1 • 7з, 72 • 74, 77 • 75, 78 • 76, 75 • 77, 76 • 78);
3 = 011;0(«з) = (74 • 71, 7з • 72, 72 • 7з, 71 • 74, 78 • 75, 77 • 76, 76 • 77, 75 • 78);
4 = 100; ЯЮ = (75 • 71,76 • 72,77 • 7з,78 • 74,71 • 75^2 • 76, 7з • 77,74 • 78);
5 = 101; 0(0.5) = (76 • 71,75 • 72,78 • 7з ,77 • 74, 72 • 75,71 • 76,74 • 77, 7з • 78);
6 = 110;0(«6) = (7у • 71,78 • 72,75 • 7з ,76 • 74, 7з • 75 ,74 • 76,71 • 7/ ,72 • 78);
7 = 111;0(«7) = (78 • 71,7П • 72,76 • 7з ,75 • 74,74 • 75, 7з • 76,72 • 7/ ,71 • 78)-
Далее в примерах для упрощения записи будем использовать представление двоичных векторов в виде десятичных чисел, например: вектор 000«0, 001«1, 010«2 и т.д.
Шаг 2. Задачей 2-го шага является построение функционального массива с(а) и массива, содержащего значения функционала А(а) . Для каждого а г- е F2m рассматривается набор линейных функций
т
С(х) = ^ к^,х,, где к'].1 е ^ и к’у1,...,к\т - биты двоичной записи
/=1
числа
j-1, т.е.
kn •• klm
Cj (x) = Km'X = СЧ сч . . - k 2m
knl сч •• k nm
X,
Например, при m=3 получим:
с (*) = K3 =
0
0
1
1
0
0
1
1
/ \ * *2 *3
с1( *) С 2( *)
С8( *)
где С1 (х) = 0; С2 (х) = х3; С3 (х) = х2; С4 (х) = х2 + х3; С5 (х) = х1; С6 (х) = х1 + х3; С7 (х) = х1 + х2;
С8 (х) = х1 + х2 + х3; где х1 ,...,х3 - биты вектора х.
Основной задачей второго шага является вычисление следующего функционала:
п
Q(D(al), С (•))=£ D{aг ,а,)(- 1)С'(“1)
(1)
l = 1
и нахождение экстремумов - максимумов его модуля
M, Q()] = ma x| Q(D(at), Cj ())| j 1 1 для каждого i = 1, n , а также экстремалей, доставляющих максимум функций,
С, (*) : M [q(D(a i), С (■))]= max|Q)| .
Отметим, что часто для конкретного a i имеется несколько одинаковых максимумов функционалов, доставляемых различными функциями С, (■), т.е. возможна ситуация, когда e = p,^...е [1,n]. Авторы алгоритма не указывают способ выбора одного значения из нескольких максимальных для этого случая. Простейшим способом решения возникающей проблемы многовариантности является случайный выбор конкретного i , но вряд ли эта стратегия является оптимальной. Скорее всего, проблема подлежит исследованию с выработкой алгоритма принятия обоснованного решения.
На основании полученного результата формируется массив
С (a i):
a( О (11 k,1
с (a и) V У kn К e1 V
kl
kn
состоящий из элементов ^ функции-экстремали С1 (х), соответствующей экстремумам функционала, содержащий 2т строк, элементы которых -векторы длины т над полем F2 .
Например, пусть
X
Y = (-1,1,-1 - 14,1,1,-1) ; а = 1 = 001; ^О(а) = (-1,-1,1,1,1,1,-1,-1) .
Тогда, на этом шаге будут вычислены следующие функционалы:
для С1 (х) = 0 для С2 (х) = х1 для С3( х)
хп
Q(В(а ), С1(х)) = 0 ;
Q(D(a ), С2(х)) = 0 Q(D(a ), Сз(х)) = 0 Q(D(a ), С4(х)) = 0 Q(D(a ),С5(х)) = 0 Q(D(a ), Сб(х)) = 0 Q(D(a ), С7(х)) = 8 Q(D(a ), С8(х)) = 0 Таким образом, максимум М71^-)] = 8 модулю функционала (1) доставляет функция-экстремаль С7(х) = х1 + х2.
Шаг 3. Задачей 3-го шага является построение уточняющего массива Е(a). Формируется уточняющий массив Е(a) по формуле
Е(| )
для С4(х) = х2 + х3 для С5 (х) = х1 + х3 для С б (х) = х1 для С 7( х) = х1 + х2 для С8( х)
х1 + х2 + х3
' Е! 0 ' Е1(| 0 • • Ет ! 1)'
Е! п) V ) Е\(1 п) ■ V • Ет (l п ) )
иЯI %И(СI,||)I(II!
где
, а С(a ^ + I ), С(I ) - элементы массива
II;
С (a ), значения которых представляются в виде двоичных векторов из ?2: , а суммирование и a i + I , и С! { + |) + С(|) производится покоординатно по модулю 2; Maj(■) - функция, воз-
вращающая вектор, встречающийся на множестве С“1 =
С! i + I) + С(I) большее число раз.
Алгоритм решения задачи шага для случая, когда таких элементов на множестве с1 будет несколько, в [3, 4] не обсуждается. На первый взгляд, простейшим способом решения возникающей проблемы многовариантности является случайный выбор конкретного i , но здесь эта стратегия вряд ли является оптимальной. Скорее всего, проблема также подлежит исследованию с выработкой алгоритма принятия обоснованного решения.
В результате применения алгоритма шага 3 мажоритарным голосованием формируется состоящий из п строк массив Е! i) , содержащий строки массива С(!,) с наибольшим числом голосов для каждого a .
Например, для т = 3, a = з = 011,
Y = (—1,1,— 1 — 1,1,1,1,—1) массив двоичных векторов, записанный десятичными цифрами, следующий:
С! ) = [0,2,5,7,2,0,7,5] .
Рассмотрим пример для одного а = 011 и согласно алгоритму шага 3 будем осуществлять перебор по всем b j є F2m, b j ф 0, b j Фа . Мы получаем набор векторов, являющихся результатом суммы C (а + b j) + C (b j)
, и из них выбираем наиболее часто встречаемый.
bi = 001 :а + b і = 010, C(а ) + C(а + b О = 7;
Ь 2 = 010 :а + b 2 = 001, C(а ) + C(а + b 2) = 7;
b 4 = 100 :а + b 4 = 111, C(а ) + C(а + b 4) = 7;
b 5 = 101 :а + b 5 = 110, C(а ) + C(а + b 5) = 7;
b 6 = 110 :а + b 6 = 101,C(а ) + Cfa + b 6) = 7;
b 7 = 111:а + b 7 = 100,C(а ) + Cfa + b 7) = 7.
Таким образом, наиболее часто встречающимся будет являться вектор 7, или в двоичном виде 111. В результате получен элемент E(011) = 7 . Остальные элементы массива E получаются перебором оставшихся значений а .
Уточняющий массив будет иметь вид E(а t) = [о,о,0,7,о,о,о,о], где символом « о » обозначены еще не вычисленные значения массива.
Шаг 4. Задачей 4-го шага является нахождение коэффициентов gjel,•••,gjem . Дальнейшие преобразования требуют построения функциональной матрицы G , элементы которой формируются по закону
гп
"j = 1 m, k = 1 n/2 : gjk (x) = X gJkix, , (2)
l=1
где ,!|[ ^: ёукп---?ёуы - биты двоичной записи числа к и
" = 1 ® ёуы = 0 .
Для решения задач шага 4 используется функционал с новыми аргументами (массивом и функцией)
Q(Me[ ],gJk(x) + ej(x)) = X Me[ ](-1)gj(а'■)+Ej(а''),
(3)
где j = і, т; k = і, ^ /2 а, є Г™ , Еу(а і ) - >я координата вектора
Е(а і ), а [ ] — максимум функционала для элемента а і є Г2т , полученный на 2-м шаге.
Далее находятся экстремали функционала (3)
" j = їтт $ gjв( ) + ЕУ () : Q(Me [■],gjв (X) + Е} (*))= QeJ
= max £(•)
доставляющие ему экстремум Q)
i=1
Коэффициенты ё je 1 ё jem функций ёje(х) используются на
следующем шаге алгоритма.
Пример. Пусть
т = 3, Е(а) = [0,2,5,7,2,0,7,5],Ме [• ] = [8,8,8,8,8,8,8,8] ; §11(х) = 0, тогда:
Q(Me[ ],§п(х) + Е1(х)) = 8 + 8- 8- 8 + 8 + 8- 8- 8 = 0;
§ 12 (х) = Х3
Q(Me [],§12(х) + Е1(х)) = 8 - 8 - 8 + 8 + 8 - 8 - 8 + 8 = 0;
§13 (х) = Х2
Q(Me [],§13(х) + Е1(х)) = 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 = 64;
§14 (Х) = Х2 + Х3
Q(Me[],§14(х) + Е1(х)) = 8- 8 + 8- 8 + 8- 8 + 8- 8 = 0.
Экстремальная функция §13( х) будет иметь, согласно (2), коэффициенты §\вт = §131. § 132 , §133 = 0,1,0
Шаг5. Задачей 5-го шага является построение квадратичной функции р (х), содержащей элементы информационного слова, стоящие в его квадратичной части. Для этого строится матрица ва = {а0.}, г, у = 1, т в следующем виде:
_ §,гес«1$! Ч;
У = 1 т ® й -~
У Л' п‘
§,¡•»4 4 •
Далее строится функция р (х) по следующей формуле:
где х = (х1 ,..,хт ).
Пример. Для т = 3 = [64,64,64], §, = [010,101,010]
Ва =
0 1 0
1 0 1 0 1 0
р (х) = х1 х2 + х2х3.
Шаг 6. Задачей 6-го шага является нахождение экстремальной аффинной функции 1е ( х ) . Для этого "У = 1,2« рассмотрим все возможные аффинные функции 1 у( х ) вида
т
1у(х) I 1уА+^0> 1]Ъ У1 ^2,
н
р(х) = с а х>х]
где 1уо >1 п 1 т являются битами двоичной записи числа і
и найдем из них такую функцию 1е ( * ) , которая максимизирует функционал
Qз(Y,п(х) + / (х)) = £ YaJ (- 1)"(а)+1 а) . (4)
]=1
Необходимо отметить, что возможна ситуация, когда функционал (4) будет достигать своего максимума на нескольких различных функциях /е (х) . Как и на шаге 2, авторы работ [3, 4] не предлагают способа выбора нужного значения, а эксперименты показывают, что результаты декодирования зависят от выбранного значения.
Пример.
Для т = 3, Y = (- 1,1,- 1,- 1,1,- 1,- 1,- 1), л (х) = х1х2 + х2х3 1\ (х) = 0: Qз(Y ,л (х) + /1(х)) = 0 ;
/2 (х) = 1-^3 (У, л (х) + /2 (х)) = 0;
/з(х) = хз :0з^,л (х) + /з(х)) = 0;
/4(х) = х3 + 1^3^,л (х) + /4(х)) = 0;
/11 (х) = х1 + х3 :Qз(Y,л (х) + /и(х)) = -8;
/12 (х) = х1 + х3 + 1 :Q3 (Y ,л (х) + /12 (х)) = 8;
/16 (х) = х1 + х2 + х3 + 1 : Q3 (Y,л (х) + /16 (х)) = 0.
Экстремальная функция запишется /12( х) = х1 + х3 + 1.
Шаг7. На 7-м шаге вычисляется функция у(х) по формуле У(х) = л (х) + /е (х) е КМ(2, т) .
Эта функция соответствует некоторому информационному слову, которое с некоторой вероятностью, зависящей от количества внесенных каналом связи в кодовое слово ошибок, совпадет с изначально закодированным информационным словом.
Анализ свойств алгоритма Лоидрю-Саккура и заключение. Построенные математические модели преобразований, совершаемых в АЛС, и их анализ позволили обнаружить интересные особенности алгоритма. Экстремали Се (х), определяемые на 2-м шаге алгоритма, являются булевыми функциями, порождающими векторы, которые оказываются наиболее близкими к векторам ^) по расстоянию Хемминга. При этом полная совокупность функций Сге (х) дает вектор-функцию, которая порождает матрицу, наиболее близкую к D(a ) .
Кроме того, исследование показало, что на всем множестве а функций-экстремалей может оказаться несколько, и в работах [3, 4] не предлагается способ разрешения возникающей коллизии, связанной с многовариантностью решения. Однако обнаруженные математические феномены позволяют предложить два полезных алгоритма решения, поддерживаемые выявленными свойствами:
1. Можно дополнить АЛС процедурой нахождения всех значений Cek (a i), дающих максимум функционала (1), и использовать для последующего декодирования все наборы полученных экстремалей Cek (a,). Результатом такого решения будет так называемый списочный декодер, который приводит к списку информационных слов на выходе декодера, из которых нужно выбрать одно. Длина списка будет определяться числом сочетаний количества полученных экстремалей для каждого a .
2. Очевидно, что повышение эффективности декодирования может быть достигнуто путем выявления верных экстремальных значений функций среди всего множества экстремалей. Для этого необходим механизм, позволяющий производить отсев функций, дающих заведомо неверные результаты.
Сделанные заключения можно рассматривать как постановку задачи для продолжения исследования АЛС.
Библиографический список
1. Мак-Вильямс Ф.Д. Теория кодов, исправляющих ошибки. / Ф.Д.Мак-Вильямс, Н.Дж.Слоэн. - М.: Связь, 1979.
2. Сидельников В.М. Декодирование кодов Рида-Маллера при большом числе ошибок. / В.М.Сидельников, А.С.Першаков // Проблемы передачи информ. - 1992. - Т.28. - №3. - С.80-94.
3. Loidreau P., Sakkour B. Modified version of Sidel'nikov-Pershakov decoding algorithm for binary second order Reed-Muller codes. Ninth International Workshop on Algebraic and Combinatorial Coding theory, ACCT-9, pages 266-271, Kranevo, 2004.
4. Sakkour B. Decoding of second order Reed-Muller codes with a large number of errors. ITW2005 - IEEE ITSOC Information Theory Workshop 2005 on Coding and Complexity, Rotoua, New Zealand, 2005.
5. Могилевская Н.С. Экспериментальное исследование декодеров кодов Рида-Маллера второго порядка. / Н.С.Могилевская, В.Р.Скоробогат, В.С.Чудаков // Вестник ДГТУ. - 2008.- Т.8. - №3(38). - С.231-237.
Материал поступил в редакцию 17.05.09.
V.R. SKOROBOGAT, R.A. NEYDORF
THE MATHEMATICAL ALGORITHMIC LOIDREAU-SAKKOUR MODEL FOR SECOND ORDER REED-MULLER CODES
In this paper the mathematical algorithmic model of a method Loidreau-Sakkour decoding for second order Reed-Muller codes is constructed. Research of the given model which has revealed a number of useful properties of the algorithm which has been not noted by authors is conducted. On the basis of the received results of investigated algorithm variants of increase of decoding efficiency are offered.
СКОРОБОГАТ Владимир Романович (р. 1982), аспирант кафедры «Программное обеспечение вычислительной техники и автоматизированных систем» ДГТУ по научной специальности 05.13.01 «Системный анализ, управление и обработка информации». Окончил ДГТУ (2004) по специальности «Компьютерная безопасность». В 2006 г. окончил магистратуру ДГТУ по направлению «Информатика и вычислительная техника».
Научные интересы: криптографические методы защиты информации; изучение криптоаналитических алгоритмов атак на шифросистемы; применение теории помехоустойчивого кодирования к криптографии.
Автор 13 научных работ.
НЕЙДОРФ Рудольф Анатольевич (р.1944), заведующий кафедрой «Программное обеспечение вычислительной техники и автоматизированных систем» ДГТУ, доктор технических наук (1988), профессор (1994). Окончил Новочеркасский политехнический институт (1967) по специальности «Автоматизация и комплексная механизация химико-технологических процессов».
Основные направления научной деятельности: синтез и структурно-параметрическая оптимизация законов управления, процессы обработки информации и управления в технических системах.
Автор более 200 научных работ, издано 11 учебных пособий общим объемом более 80 п.л. Имеет 34 авторских свидетельства на изобретения и 9 свидетельств о регистрации программ.
vladskor@gmail. com