УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ КОЭФФИЦИЕНТОВ ОБОБЩЕННОЙ ПОЛИАДИЧЕСКОЙ СИСТЕМЫ С КОРРЕКЦИЕЙ ОШИБОК
DEVICE FOR CALCULATING FACTOR OF GENERALISED POLYADIC ERROR CORRECTION

ν
Изобретение относится к вычислительной технике, в частности к модулярным нейрокомпьютерным средствам, и предназначено для вычисления коэффициентов обобщенной полиадической системы (ОПС), представленных в полях Галуа GF(2).
ν
Известна нейронная сеть для вычисления коэффициентов обобщенной полиадической системы (ОПС), представленных в расширенных полях Галуа GF(2) ([1] Калмыков И.А., Лободин М.В., Алексишин Е.В., Щелкунова Ю.О. Нейронная сеть для вычисления коэффициентов обобщенной полиадической системы, представленной в расширенных полях Галуа // Патент РФ №2258956, G06N 3/04), содержащая два слоя по 15 нейронов в каждом, при этом первый слой 15 нейронов подключен к соответствующим входам 15 нейронов второго слоя.
Недостатком устройства является невозможность выполнения процедуры исправления ошибок, возникающих в процессе работы вычислительного устройства.
Основной задачей является расширение функциональных возможностей, которые позволят нейронной сети корректировать ошибки.
Техническим результатом, достигнутым при осуществлении заявленного изобретения, является расширение функциональных возможностей, позволяющих исправлять ошибки в коэффициентах ОПС, которые были получены из кодовой комбинации, представленной в полиномиальной системе классов вычетов (ПСКВ).
Указанный технический результат достигается за счет введения блока памяти и 7 корректирующих сумматоров по модулю два, с помощью которых происходит исправление ошибки.
i
ν
В полиномиальной системе классов вычетов в качестве основания системы используются минимальные многочлены p(z), i=1, 2, …, n, определенные в расширенных полях Галуа GF(2). Тогда любой полином A(z), удовлетворяющий условию
где degA(z) - степень полинома A(z);  - полный диапазон, можно представить в виде n-мерного вектора
где  i=1, 2, …, n.
i
i
i
Используя коды ПСКВ, можно операцию сложения, вычитания и умножения двух операндов, представленных в полиномиальной форме A(z) и B(z), свести к выполнению этих операций над соответствующими остатками α(z) и β(z). При этом в ПСКВ эти операции производятся независимо по каждому из модулей p(z), что указывает на параллелизм данной алгебраической системы. При этом, благодаря параллелизму алгебраической системы вычисления могут быть реализованы с помощью нейронных сетей ([2] - Калмыков И.А., Воронкин Р.А., Резеньков Д.Н, Емарлукова Я.В., Фалько А.А. Генетические алгоритмы в системах цифровой обработки сигналов // Нейрокомпьютеры: разработка и применение. - 2011. - №5. - С. 20-27).
v
Кроме того, особенность ПСКВ состоит еще и в том, что независимость обработки информации по основаниям ПСКВ позволяет не только повысить скорость и точность обработки, но также и обеспечить обнаружение и коррекцию ошибок в процессе функционирования вычислительного устройства класса вычетов. Если на диапазон возможного изменения кодируемого множества полиномов наложить ограничения, то есть выбрать k из n оснований ПСКВ (k<n), то это позволит осуществить разбиение полного диапазона  расширенного поля Галуа GF(p) на два непересекающихся подмножества.
Первое подмножество называется рабочим диапазоном и определяется выражением
полн
раб
Многочлен A(z) с коэффициентами из поля GF(p) будет считаться разрешенным в том и только том случае, если он является элементом нулевого интервала полного диапазона P(z), то есть принадлежит рабочему диапазону degA(z)<degP(z).
v
Второе подмножество GF(p), определяемое произведением r=n-k контрольных оснований
1
2
k+r
задает совокупность запрещенных комбинаций. Если A(z) является элементом второго подмножества, то считается, что данная комбинация содержит ошибку. Таким образом, местоположение полинома A(z) относительно двух данных подмножеств позволяет однозначно определить, является ли кодовая комбинация A(z)=(α(z), α(z), …, α(z)) разрешенной или содержит ошибочные символы ([3] Калмыков И.А., Саркисов А.Б., Яковлева Е.М., Калмыков М.И. Модулярный систолический процессор цифровой обработки сигналов с реконфигурируемой структурой // Вестник Северо-Кавказского федерального университета. - 2013. - №2 (35). - С. 30-35.)
1
2
3
4
5
2
4
3
2
4
3
4
В [1] приведена нейронная сеть для перевода из модулярного кода ПСКВ в обобщенную полиадическую систему, в которой используются 5 неприводимых полиномов p(z)=z+1, p(z)=z+z+1, p(z)=z+z+z+z+1, p(z)=z+z+1, p(z)=z+z+1. Если положить, что первые три основания являются информационными, т.е. k=3, то рабочий диапазон будет определяться согласно (6) и равен
4
5
4
3
4
Оставшиеся два основания p(z)=z+z+1 и p(z)=z+z+1 будем считать контрольными модулями, с помощью которых будут производиться поиск и коррекция ошибок, возникающих в кодах ПСКВ.
В этом случае любой полином, представленный в коде ПСКВ, чья степень будет меньше семи, т.е. degA(z)<7, является разрешенным, а его кодовая комбинация не содержит ошибки. В противном случае кодовая комбинация содержит ошибки.
Коэффициенты обобщенной полиадической системы позволяют осуществить поиск и коррекцию ошибок в кодах ПСКВ. Для данного примера полином A(z) можно представить в обобщенной полиадической системе как
где
Ортогональные базисы такой системы равны:
1
14
13
12
11
10
9
8
7
6
5
4
3
2
B(z)=z+z+z+z+z+z+z+z+z+z+z+z+z+z+1;
2
14
13
11
10
8
7
5
4
2
B(z)=z+z+z+z+z+z+z+z+z+z;
3
14
13
12
11
9
8
7
6
4
3
2
B(z)=z+z+z+z+z+z+z+z+z+z+z+z;
4
14
13
12
11
9
7
6
3
B(z)=z+z+z+z+z+z+z+z;
5
12
9
8
6
4
3
2
B(z)=z+z+z+z+z+z+z+z.
Представим ортогональные базисы в виде коэффициентов ОПС
Согласно Китайской теореме об остатках полином A(z) определяется как
где  - полный диапазон ПСКВ.
i
i
Если в качестве ортогональных базисов B(z) взять их представления в ОПС, то при умножении остатков α(z) на последние можно получить коэффициенты ОПС
<mrow><msubsup><mi>γ</mi><mrow><mi>п</mi><mi>е</mi><mi>р</mi></mrow><mi>i</mi></msubsup></mrow>
где
- коэффициенты ОПС i-го ортогонального базиса с учетом переполнения (i-l)-го основания.
<mrow><msubsup><mi>γ</mi><mrow><mi>п</mi><mi>е</mi><mi>р</mi></mrow><mi>i</mi></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
i
i+1
При этом умножение вычетов на соответствующие коэффициенты
осуществляется помодульно и поразрядно, при этом учитывается превышение модуля p(z) как перенос в старший коэффициент ОПС a(z).
4
5
Из выражения (8) наглядно видно, что если полином A(z), представленный в ПСКВ, не содержит ошибки, то его степень не превысит степень рабочего диапазона. Следовательно, значения старших коэффициентов ОПС должны равняться нулю, т.е. a(z)=0 и a(z)=0.
*
Если полином A(z), представленный в ПСКВ, содержит ошибку, то его значение будет определяться как
<mrow><msubsup><mi>α</mi><mi>j</mi><mo>*</mo></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
где
- глубина ошибки по j-му основанию ПСКВ.
*
paб
В результате этого результат ошибочного кода A(z) при переводе в позиционный код окажется за пределами рабочего диапазона P(z). Следовательно, значения старших коэффициентов ОПС не будут равняться нулю. При этом по величине значений старших коэффициентов ОПС можно однозначно определить местоположение и глубину ошибки.
Чтобы осуществлять коррекцию ошибок в комбинации кода ПСКВ были введены два дополнительных слоя нейронов. Структура устройства представлена на фигуре 1. Устройство состоит из двухслойной нейронной сети (нейроны 1-15 образуют первый слой, нейроны 16-30 создают второй слой), блока памяти 31, имеющего восемь входов 32-39 и семь выходов 40-46, семи двухвходовых корректирующих сумматоров 47-53.
1
2
3
4
5
4
5
<mrow><msubsup><mi>α</mi><mn>1</mn><mn>0</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>2</mn><mn>0</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>2</mn><mn>1</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>3</mn><mn>0</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>3</mn><mn>1</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>3</mn><mn>2</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>3</mn><mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>4</mn><mn>0</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>4</mn><mn>1</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>4</mn><mn>2</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>4</mn><mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>5</mn><mn>0</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>5</mn><mn>1</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>5</mn><mn>2</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
<mrow><msubsup><mi>α</mi><mn>5</mn><mn>3</mn></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo></mrow>
Рассмотрим двухслойную нейронную сеть, структура которой совпадает с прототипом [1]. Каждый слой содержит по 15 нейронов. Входной слой состоит из 15 нейронов, распределенных в соответствии с размерностью разрядных сеток модулей -1-2-4-4-4. Данные нейроны осуществляют разветвление входного вектора (α(z), α(z), α(z), α(z), α(z)), представленного в двоичной форме. Причем нейрон 1 предназначен для распределения нулевого разряда
первого основания. Нейроны 2, 3 предназначены для распределения нулевого
и первого
разрядов второго основания соответственно. Нейроны 4-7 используются для приема и распределения
,
,
,
разрядов третьего основания соответственно. Для перераспределения разрядов
,
,
,
четвертого основания p(z) используются нейроны 8, 9, 10, 11 соответственно. Нейроны 12, 13, 14, 15 применяются для приема разрядов
,
,
,
пятого основания p(z) соответственно.
i
Второй слой нейронной сети содержит также 15 нейронов, распределенных в соответствии с размерностью разрядных сеток коэффициентов (a(z), i=1, 2, 3, 4, 5) ОПС -1-2-4-4-4. Нейроны 16-30 второго слоя выполняют базовую операцию суммирования по модулю два значений разрядов, поступающих с выходов соответствующих нейронов первого слоя. Синаптические веса связей равны единице.
1
Нейрон 16 предназначен для приема данных, поступающих с выхода нейрона 1 входного слоя. Выход нейрона 16 соответствует нулевому разряду первого коэффициента ОПС a(z).
Нейроны 17, 18 осуществляют вычисление нулевого и первого
,
разрядов второго коэффициента ОПС соответственно. Причем вход нейрона 17 подключен к выходу нейрона 3. Вход нейрона 18 подключен к выходу нейронов 1, 2, 3.
3
Нейроны 19, 20, 21, 22 осуществляют вычисление нулевого, первого, второго и третьего разрядов
,
,
,
третьего коэффициента ОПС a(z) соответственно. Причем нейрон 19 подключен к выходам нейронов 2, 4 и 6 первого слоя. Нейрон 20 - к выходам нейронов 1, 4, 5, 6 и 7. Вход нейрона 21 - к выходам нейронов 2, 3, 4, 5 и 7. Вход нейрона 22 - к выходам нейронов 1, 2, 5.
4
Нейроны 23, 24, 25, 26 осуществляют вычисление нулевого, первого, второго и третьего разрядов
,
,
,
четвертого коэффициента ОПС a(z) соответственно. Причем входы нейрона 23 подключены к выходам нейронов 2, 4, 7, 10 первого слоя. Вход нейрона 24 - к выходам нейронов 2, 3, 5, 8, 11. Вход нейрона 25 - к выходам нейронов 3, 4, 6, 8, 9. Вход нейрона 26 - к выходам нейронов 1, 2, 3, 4, 5, 6, 9.
5
Нейроны 27, 28, 29, 30 осуществляют вычисление нулевого, первого, второго и третьего разрядов
,
,
,
пятого коэффициента ОПС a(z) соответственно. Причем вход нейрона 27 подключен к выходам нейронов 5, 9, 11 и 15 первого слоя. Вход нейрона 28 - к выходам нейронов 1, 3, 5, 7, 8, 9, 11, 12, 15. Вход нейрона 29 - к выходам нейронов 1, 2, 4, 5, 6, 8, 9, 10, 13.Вход нейрона 30 - к выходам нейронов 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14 первого слоя.
4
4
4
4
5
Блок памяти 31 имеет 8 входов. Первый вход 32 подключен к выходу нейрона 23. Второй вход 33 подсоединен к выходу нейрона 24. Третий вход 34 подключен к выходу нейрона 25. Четвертый вход 35 блока памяти 31 подключен к выходу нейрона 26. Пятый вход 36 блока памяти 31 подключен к выходу нейрона 27. Шестой вход 37 блока памяти 31 подключен к выходу нейрона 28. Седьмой вход 38 блока памяти 31 подключен к выходу нейрона 29. Восьмой вход 39 блока памяти 31 подключен к выходу нейрона 30. Таким образом, на первый вход 32 блока памяти 31 поступает значение нулевого разряда
четвертого коэффициента a(z), на второй вход 33 - первый разряд
коэффициента ОПС a(z), на третий вход 34 - второй разряд
коэффициента ОПС a(z), на четвертый вход 35 - третий разряд
коэффициента ОПС a(z). Значения нулевого, первого, второго и третьего разрядов
,
,
,
пятого коэффициента ОПС a(z) поступают соответственно на пятый 36, шестой 37, седьмой 38 и восьмой 39 входы блока памяти 31.
1
1
Первый вход корректирующего сумматора 47 подключен к выходу нейрона 16, а второй вход подсоединен к первому выходу 40 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 47 поступает нулевой разряд
первого коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки по нулевому разряду первого коэффициента а(z).
2
Первый вход корректирующего сумматора 48 подключен к выходу нейрона 17, а второй вход подсоединен ко второму выходу 41 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 48 поступает разряд
второго коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
2
Первый вход корректирующего сумматора 49 подключен к выходу нейрона 18, а второй вход подсоединен ко второму выходу 42 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 49 поступает разряд
второго коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
3
Первый вход корректирующего сумматора 50 подключен к выходу нейрона 19, а второй вход подсоединен ко второму выходу 43 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 50 поступает разряд
третьего коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
3
Первый вход корректирующего сумматора 51 подключен к выходу нейрона 20, а второй вход подсоединен ко второму выходу 44 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 51 поступает разряд
третьего коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
3
Первый вход корректирующего сумматора 52 подключен к выходу нейрона 21, а второй вход подсоединен ко второму выходу 45 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 52 поступает разряд
третьего коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
3
Первый вход корректирующего сумматора 53 подключен к выходу нейрона 22, а второй вход подсоединен ко второму выходу 46 блока памяти 31. Таким образом, на первый вход корректирующего сумматора 53 поступает разряд
третьего коэффициента ОПС a(z), а на второй вход - корректирующее значение
. В результате этого происходит исправление ошибки в данном разряде.
1
2
3
С выходов корректирующих сумматоров 47-53, которые являются выходами устройства, снимаются исправленные значения коэффициентов ОПС a(z), a(z), a(z).
4
5
Блок памяти 31 предназначен для хранения констант коррекции, значение которых зависит от вычисленных величин старших коэффициентов ОПС. Зависимость значений старших коэффициентов ОПС a(z) и a(z) от местоположения и глубины ошибки в коде ПСКП приведены в таблице 1.
4
5
1
2
3
Зависимость между значениями старших коэффициентов a(z), a(z) и корректирующими значениями коэффициентов ОПС a(z), a(z), a(z) приведена в таблице 2.
Рассмотрим работу устройства.
6
5
4
3
2
3
2
3
paб
4
5
Пусть задан полином A(z)=z+z+z+z+1, который принадлежит рабочему диапазону P(z). Тогда его код в ПСКВ имеет вид A(z)=(1, z+1, z+z+z+1, z+z+z, z+z) и при этом этот код не содержит ошибки. Воспользуемся выражением (10) и произведем вычисление коэффициентов ОПС. Так как полином A(z) принадлежит рабочему диапазону, то при переводе из ПСКВ в обобщенную полиадическую систему, согласно равенству (8), должны быть значения старших коэффициентов ОПС a(z)=0 и a(z)=0. В результате вычислений были получены следующие значения:
1
2
3
4
5
3
2
a(z)=1, a(z)=z+1, a(z)=z+z+z+1, a(z)=0, a(z)=0.
Это свидетельствует о том, что данная кодовая комбинация, представленная в ПСКВ, не содержит ошибки.
В прототипе [1] было показано, как можно провести расчет коэффициентов ОПС с использованием двухслойной нейронной сети прямого распространения. Воспользуемся таблицей 3, с помощью которой покажем работу первого и второго слоев нейронной сети. Рассмотрим получение сигнала на выходе нейрона 18, который соответствует первому разряду второго коэффициента ОПС
. Так как на его вход подается 3 единицы, то результат суммирования по модулю два (суммируем по столбцам) равен единице. Аналогичным образом вычисляются значения на выходах остальных нейронов второго слоя. Коэффициенты ОПС, полученные с помощью таблицы 3, совпали с вычисленными ранее.
4
5
1
2
3
3
2
Так как старшие коэффициенты ОПС равны нулю, то это свидетельствуют, что кодовая комбинация ПСКВ не содержит ошибку, и ее не надо корректировать. В этом случае на входы блока памяти 31 поступают нулевые сигналы с выходов нейронов 23-26 и 27-30, которые соответствуют двоичному представлению коэффициентов a(z) и a(z), В результате этого с выходов 40-46 также снимается нулевой результат, который подается на корректирующие сумматоры 47-53. В соответствии с этим на выходах этих корректирующих сумматоров, выполняющих операцию суммирования по модулю, значения коэффициентов ОПС a(z)=1, a(z)=z+1, a(z)=z+z+z+1, которые были получены с выходов нейронов 16-23 второго слоя, останутся без коррекции.
<mrow><msubsup><mi>α</mi><mn>1</mn><mo>*</mo></msubsup><mo stretchy="false">(</mo><mi>z</mi><mo stretchy="false">)</mo><mo>=</mo><mn>1</mn></mrow>
*
3
2
3
2
3
2
Пусть произошла ошибка в первом остатке кода ПСКВ и ее глубина равна
. В результате этого на вход нейронной сети поступает код ПСКВ A(z)=(0, z+1, z+z+z+1, z+z+z, z+z). На выходах нейронов 16-30 второго слоя получатся значения коэффициентов ОПС.
а
1
(z)=0;
a
2
(z)=1;
a
3
2
(z)=z+1;
a
4
3
(z)=z;
a
5
3
2
(z)=z+z+z.
Работу на нейронной сети прямого распределения можно представить в виде таблицы 4.
a
a
4
5
Так как значения старших коэффициентов ОПС (z)≠0 и (z)≠0, то это свидетельствует о том, что кодовая комбинация содержит ошибку.
a
a
4
5
3
3
2
В соответствии с полученными значениями (z)=z и (z)=z+z+z единичный сигнал будет на выходе нейронов 26, 28, 29 и 30 второго слоя. Этот сигнал с выходов нейронов 26, 28, 29, 30 подается на четвертый 35, шестой 37, седьмой 38 и восьмой 39 входы блока памяти 31 соответственно.
1
2
3
3
В результате с выходов блока памяти 31, согласно данным, приведенным в таблице 2, будут сниматься корректирующие значения Δа(z)=1, Δа(z)=z, Δa(z)=z+z. Это значит, что сигналы появятся соответственно на первом 40, третьем 42, пятом 44 и седьмом 46 выходах блока памяти 31. Следовательно, эти сигналы поступят на вторые входы первого 47, третьего 49, пятого 51 и седьмого 53 корректирующих сумматоров.
В результате на выходе первого 47 корректирующего сумматора получаем
1
Ошибку исправили. Теперь откорректированное значение первого коэффициента ОПС a(z)=1.
На выходе второго 48 корректирующего сумматора получаем сигнал
На выходе третьего 49 корректирующего сумматора получаем сигнал
2
Произошло исправление ошибки. Теперь откорректированное значение первого коэффициента ОПС а(z)=z+1.
На выходе четвертого 50 корректирующего сумматора получаем сигнал
Ошибка в разряде исправлена.
На выходе пятого 51 корректирующего сумматора получаем сигнал
Ошибка в разряде исправлена.
На выходе шестого 52 корректирующего сумматора получаем сигнал
Ошибка в разряде исправлена.
На выходе седьмого 53 корректирующего сумматора получаем сигнал
3
3
2
Ошибка исправлена. Теперь откорректированное значение третьего коэффициента ОПС равно a(z)=z+z+z+1.