Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

NEURAL NETWORK SALES CORRECTION ALGORITHM ERROR CODE MODULAR BASED ON THE COEFFICIENTS GENERALIZED SYSTEM POLYADIC

Dunin A.C. 1 Kalmykov M.I. 1 Rassvetaev V.V 2 Loboykin V.V.  2
1 North-caucasian federal university
2 Filial Moscow state University of instrument engineering and informatics
Among nonpositional codes occupy a special place codes polynomial system of residue classes. Due to the parallel data processing modular codes allow for calculations in real time. In addition, the introduction of excess base modular codes can detect and correct errors that occur due to equipment failure. The paper presents a neural network implementation of the algorithm for calculating the coefficients of the generalized polyadic system, which allows correct errors in modular code.
polynomial system of residue classes
the coefficients of the generalized poliadiche-tion system
the detection and correction of errors
the neural network

Построение специализированных вычислительных устройств, реализующих цифровую обработку сигналов (ЦОС) в реальном масштабе времени, возможно за счет применения параллельных модулярных кодов. Такие коды позволяют эффективно реализовать операции сложения, умножения и вычитания по модулю. Так как основными операциями алгоритмов ЦОС являются именно эти операции, то использование алгебраических систем, обладающих свойством кольца и поля, позволит обеспечить высокую скорость обработки сигналов [1–5]. Кроме того модулярные коды позволяют обнаруживать и корректировать ошибки, которые возникают из-за отказов или сбоев в процессе функционирования специализированных процессоров ЦОС.

В полиномиальной системе классов вычетов в качестве основания системы используется минимальные многочлены pi(z), i=1,2,…,n, определенные в расширенных полях Галуа GF(2ν). Тогда любой полином rass1.wmf, удовлетворяющий условию

rass2.wmf (1)

где rass3.wmf – степень полинома A(z); rass4.wmf – полный диапазон, можно представить в виде n-мерного вектора

rass5.wmf, (2)

где

rass6.wmf, rass7.wmf.

Так как сравнения по одному и тому же модулю можно почленно складывать, вычитать и умножать, то для суммы, разности и произведения двух полиномов rass8.wmf и rass9.wmf, имеющих соответственно модулярные коды rass10.wmf и rass11.wmf справедливы соотношения:

rass12.wmf, (3)

rass13.wmf, (4)

rass14.wmf. (5)

Таким образом, выполнение операций над операндами в ПСКВ производятся независимо по каждому из модулей rass15.wmf, что указывает на параллелизм данной алгебраической системы.

Кроме того, особенность ПСКВ состоит еще и в том, что независимость обработки информации по основаниям ПСКВ позволяет не только повысить скорость и точность обработки, но так же и обеспечить обнаружение и коррекцию ошибок в процессе функционирования вычислительного устройства класса вычетов. Если на диапазон возможного изменения кодируемого множества полиномов наложить ограничения, то есть выбрать rass16.wmf из rass17.wmf оснований ПСКВ (rass18.wmf), то это позволит осуществить разбиение полного диапазона

rass19.wmf

расширенного поля Галуа rass20.wmf на два непересекающихся подмножества. Первое подмножество называется рабочим диапазоном и определяется выражением

rass21.wmf, (6)

Многочлен rass22.wmf с коэффициентами из поля rass23.wmf будет считаться разрешенным в том и только том случае, если он является элементом нулевого интервала полного диапазона rass24.wmf, то есть принадлежит рабочему диапазону rass25.wmf.

Для определения местоположения и глубины ошибки в кодах ПСКВ используются позиционные характеристики (ПХ) [6-10]. Благодаря этим алгоритмам вычисления (ПХ) можно определить местоположение полинома rass26.wmf относительно рабочего диапазона. А это позволяет однозначно определить, является ли кодовая комбинация ПСКВ rass27.wmf разрешенной, или содержит ошибочные символы. Особое место среди позиционных характеристик модулярного кода занимают коэффициенты обобщенной полиадической системы (ОПС).

В [10] представлен алгоритм вычисления коэффициентов обобщенной полиадической системы. для организации перевода из модулярного кода ПСКВ в обобщенную полиадическую систему, в которой используется 5 неприводимых полиномов p1(z)=z+1, p2(z)=z2+z+1, p3(z)=z4+z3+z2+z+1, p4(z)=z4+z3+1, p5(z)=z4+z+1, достаточно использовать двухслойную нейронную сеть.

Произведем разработку нейросетевой реализации данного алгоритма. Если положить, что первые три основания являются информационными, т.е. k = 3, то рабочий диапазон будет определяться согласно (6) и равен

rass28.wmf.

Оставшиеся два основания p4(z)=z4+z3+1 и p5(z)=z4+z+1, будем считать контрольными модулями, с помощью которых будет производиться поиск и коррекция ошибок, возникающих в кодах ПСКВ.

В этом случае, любой полином, представленный в коде ПСКВ, чья степень будет меньше семи, т.е. rass29.wmf, является разрешенным, а его кодовая комбинация не содержит ошибки. В противном случае – кодовая комбинация содержит ошибки.

Коэффициенты обобщенной полиадической системы позволяют осуществить поиск и коррекцию ошибок в кодах ПСКВ. для данного примера полином A(z) можно представить в обобщенной полиадической системе как

rass30.wmf (8)

где

rass31.wmf; rass32.wmf;

rass33.wmf;

rass34.wmf.

Ортогональные базисы такой системы равны:

B1(z)=z14+zl3+zl2+zll+zl0+z9+z8+z7+z6+z5+z4+z3+z2+z+1;

B2(z)=z14+z13+z11+z10+z8+z7+z 5+z4+z2+z;

B3(z)=zl4+zl3+zl2+zll+z 9+z8+z7+z6+z4+zз+z2+z;

B4(z)=z14+z13+z12+z11+z9+z7+z6+z3;

B5(z)=zl2+z9+z8+z6 +z4+z3+z2+z.

Представим ортогональные базисы в виде коэффициентов ОПС

rass35.wmf;

rass36.wmf;

rass37.wmf;

rass38.wmf;

rass39.wmf.

Согласно Китайской теореме об остатках полином A(z) определяется

rass40.wmf, (9)

где rass41.wmf – полный диапазон ПСКВ.

Если в качестве ортогональных базисов Bi(z) взять их представления в ОПС, то при умножении остатков rass42.wmf на последние, можно получить коэффициенты ОПС

rass43.wmf, (10)

где rass44.wmf – коэффициенты ОПС i-го ортогонального базиса с учетом переполнения (i–1)-го основания.

При этом умножение вычетов на соответствующие коэффициенты rass45.wmf осуществляется помодульно и поразрядно, при этом учитывается превышение модуля рi(z) как перенос в старший коэффициент ОПС rass46.wmf.

Из выражения (8) наглядно видно, что если полином A(z), представленный в ПСКВ, не содержит ошибки, то его степень не превысит степень рабочего диапазона. Следовательно, значения старших коэффициентов ОПС должны равняться нулю, т.е. a4(z) = 0 и a5(z) = 0.

Если полином A*(z), представленный в ПСКВ, содержит ошибку, то справедливо

rass47.wmf, (11)

где Δαj(z) – глубина ошибки по j-му основанию ПСКВ.

В результате этого результат ошибочного кода A*(z) при переводе в позиционный код окажется за пределами рабочего диапазона Рраб(z). При этом по величине значений старших коэффициентов ОПС можно однозначно определить местоположение и глубину ошибки. В ходе проведенных исследований была определена связь старших коэффициентов ОПС с глубиной и местоположением ошибки в коде ПСКВ. В табл. 1 приведены эти соотношения.

Анализ таблицы показывает, что при использовании 2 контрольных оснований избыточный код ПСКВ может исправить все однократные ошибки.

Чтобы осуществлять коррекцию ошибок в комбинации кода ПСКВ, была разработана четырехслойная нейронная сеть, которая представлена на рисунке.

Таблица 1

Зависимость значений коэффициентов ОПС от местоположения и глубины ошибки для поля rass48.wmf

Величина ошибки

Коэффициенты ОПС

a4 (z)

a5 (z)

Δa1=1

z3

z3 + z2 + z

Δa2=1

z3 + z + 1

z3 + z2

Δa2=z

z3 + z2 +z

z3 + z

Δa3=1

z2 + 1

z3 + z2+ z

Δa3=z

z3 + z

z3 + z2 + z + 1

Δa3=z2

z3 + z2

z3 + z2

Δa3=z3

1

z3 + z

Δa4=1

z2 + z

z3 + z2 + z

Δa4=z

z3 + z2

z3 + z2 + z + 1

Δa4=z2

1

z3 + z2

Δa4=z3

z

z3 + z + 1

Δa5=1

0

z

Δa5=z

0

z2

Δa5=z2

0

z3

Δa5=z3

0

z+1

dunin.tiff

Нейронная сеть для коррекции кодов ПСКВ

Каждый слой содержит по 15 нейронов. Входной слой состоит из 15 нейронов, распределенных в соответствии с размерностью разрядных сеток модулей -1-2-4-4-4. Данные нейроны осуществляют разветвление входного вектора rass49.wmf, представленного в двоичной форме. Причем нейрон 1 предназначен для распределения нулевого разряда rass50.wmf первого основания. Нейроны 2, 3 предназначены для распределения нулевого rass51.wmf и первого rass52.wmf разрядов второго основания соответственно. Нейроны 4-7 используются для приема и распределения rass53.wmf разрядов третьего основания соответственно. для перераспределения разрядов rass54.wmf четвертого основания p4(z) используются нейроны 8, 9, 10, 11 соответственно. Нейроны 12, 13, 14, 15 применяются для приема разрядов rass55.wmf пятого основания p5(z) соответственно.

Второй слой нейронной сети содержит также 15 нейронов, распределенных в соответствии с размерностью разрядных сеток коэффициентов (аi(z), i=1,2,3,4,5) ОПС -1-2-4-4-4. Нейроны 16-30 второго слоя выполняют базовую операцию суммирования по модулю два значений разрядов, поступающих с выходов соответствующих нейронов первого слоя, и реализуют выражение (10). Синаптические веса связей равны единице.

Выход нейрона 16 соответствует нулевому разряду первого коэффициента ОПС а1(z). Нейроны 17, 18 осуществляют вычисление нулевого и первого rass56.wmfразрядов второго коэффициента ОПС соответственно. Нейроны 19, 20, 21, 22 осуществляют вычисление нулевого, первого, второго и третьего разрядов rass57.wmf третьего коэффициента ОПС а3(z) соответственно. Нейроны 23, 24, 25, 26 осуществляют вычисление нулевого, первого, второго и третьего разрядов rass58.wmf четвертого коэффициента ОПС а4(z) соответственно. Нейроны 27, 28, 29, 30 осуществляют вычисление нулевого, первого, второго и третьего разрядов rass59.wmf пятого коэффициента ОПС а5(z) соответственно.

Третий слой нейронной сети содержит также 15 нейронов. Нейроны 31–45 третьего слоя выполняют базовую операцию логического умножения (логическое «И») значений разрядов, поступающих с выходов соответствующих нейронов второго слоя. Синаптические веса связей равны единице.

Четвертый слой сети содержит также 15 нейронов. Нейроны 46–60 четвертого слоя выполняют базовую операцию суммирование по модулю два значений разрядов, поступающих с выходов соответствующих нейронов первого и третьего слоев сети, что позволяет откорректировать ошибку в кодовой комбинации ПСКВ. Синаптические веса связей равны единице. Так вход 46 нейрона четвертого слоя соединен с выходом 1 нейрона первого слоя и с выходом 31 нейрона третьего слоев нейронной сети. Выходы нейронов 46-60 второго слоя являются выходами нейронной сети.

Пусть на вход нейронной сети подается полином rass60.wmf, который принадлежит рабочему диапазону rass61.wmf. Тогда его код в ПСКВ имеет вид A(z)=(1, z+1, z3+z2+z+1, z3+z2+z, z3+z), и при этом он не содержит ошибки. Воспользуемся выражением (10) и произведем вычисление коэффициентов ОПС. В результате вычислений были получены следующие значения

a1(z)=1, a2(z)=z+1, a3(z)=z3+z2+z+1, а4(z)=0, a5(z)=0.

Это свидетельствует о том, что данная кодовая комбинация, представленная в ПСКВ, не содержит ошибки. Работу первого и второго слоев нейронной сети рассмотрим с использованием табл. 2. и произведем вычисление коэффициентов ОПС.

Таким образом, полином A(z)=(1, z+1, z3+z2+z+1, z3+z2+z, z3+z) представляется в ОПС в следующем виде a1(z)=1, a2(z)=z+1, a3(z)=z3+z2+z+1, а4(z)=0, a5(z)=0. Так как старшие коэффициенты ОПС равны нулю, то это свидетельствуют, что кодовая комбинация ПСКВ не содержит ошибку, и ее не надо корректировать. В этом случае с выходов нейронов 23–26 и 27–30, которые соответствуют двоичному представлению коэффициентов а4(z) и a5(z), снимается нулевой результат. В соответствии с этим на выходах нейронов 31–45 третьего слоя, выполняющих операцию логического умножения, будет также нуль. Это значение поступает на входы нейронов 46–60 четвертого, которые суммируют эти значения с остатками rass63.wmf, подаваемых с выходов нейронов 1–15 первого слоя. В этом случае кодовая комбинация ПСКВ не изменяется.

Таблица 2

Вычисление коэффициентов ОПС

Основания pi(z)

z+1

z2+z+1

p3=z4+z3+z2+z+1

p4=z4+z3+1

p5=z4+z+1

Разряды pi(z)

1

1

z

1

z

z2

z3

1

z

z2

z3

1

z

z2

z3

№ нейронов

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

p1(z)= z+1

1

1

1

1

1

1

1

1

1

p2(z)= z2+z+1

1

1

1

1

1

1

1

1

1

1

z

1

1

1

1

1

1

1

1

p3=z4+z3+z2+z+1

1

1

1

1

1

1

1

1

1

z

1

1

1

1

1

1

1

1

1

z2

1

1

1

1

1

1

z3

1

1

1

1

1

p4(z)=z4+z3+1

z

1

1

1

1

1

1

z2

1

1

1

z3

1

1

1

1

p5(z)=z4+z+1

z

1

z3

1

1

Коэффициенты

ОПС ai(z)

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

Пусть ошибка произошла в первом остатке, т.е. rass64.wmf. В результате этого на вход нейронной сети поступает код

rass65.wmf,

на выходах нейронов 16–30 второго слоя получатся значения коэффициентов ОПС.

rass66.wmf rass67.wmf rass68.wmf rass69.wmf rass70.wmf

Так как значения старших коэффициентов ОПС rass71.wmf, то это свидетельствует о том, что кодовая комбинация содержит ошибку.

В соответствии с полученными значениями rass72.wmf и rass73.wmf единичный сигнал будет на выходе 26, 28, 29 и 30 нейронов второго слоя. Этот сигнал с выхода нейронов 26, 28, 29, 30 поступает на входы 31 нейрона третьего слоя. В результате этого только на выходе 31 нейрона третьего слоя появляется единичный сигнал, который поступает на второй вход 46 нейрона. Этот корректирующий сигнал rass74.wmf складывается с выходным сигналом 1 нейрона первого слоя rass75.wmf

rass76.wmf.

В результате работы нейронной сети ошибка в кодовой комбинации ПСКВ исправлена

Aисправ(z) = (1, z+1, z3+z2+z+1, z3+z2+z, z3+z).

Выводы

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