Нейронна мережа для перетворення залишкового коду в двійковий позиційний код - патент рф 2318238

Винахід відноситься до нейронних мереж для перетворення залишкового коду в двійковий позиційний код є базовою схемою відновлення позиційного числа по його рештках. Технічним результатом є скорочення обладнання. Для цього нейронна мережа для перетворення залишкового коду в двійковий позиційний код містить вхідний шар нейронів, n-нейронних мереж кінцевого кільця для перетворення залишкового коду в код узагальненої позиційної системи числення, n-постійних запам'ятовуючих пристроїв для зберігання двійкових еквівалентів коефіцієнтів узагальненої позиційної системи числення і паралельний суматор. 1 мул.

Малюнки до патенту РФ 2318238

Винахід належить до обчислювальної техніки і може бути використано в модулярних нейрокомп'ютер для реалізації операції виведення даних.

Відомо пристрій для перетворення числа з системи залишкових класів в позиційний код (а.с. 1005028, G06F 5/02), що містить зсувний регістр, блок синхронізації, блок пам'яті констант і позиційний накопичує суматор. Однак такий пристрій характеризується високою складністю.

Найбільш близьким за технічною сутністю до заявленого пристрою є перетворювач кодів з системи залишкових класів в двійковий позиційний код (а.с. 813 408, G06F 5/02), що містить вхідний регістр, дешифратори, перетворювач кодів з системи залишкових класів в поліадіческіх код, групу елементів АБО, елементи затримки і суматор. Недоліком цього пристрою є складність групи елементів АБО при використанні великих модулів системи залишкових класів і складність перетворювача залишкового коду в поліадіческіх, який реалізує послідовний алгоритм Гарнера.

Метою даного винаходу є скорочення обладнання перетворювача залишкового коду в двійковий позиційний код. Поставлена ​​мета досягається тим, що в перетворювач введені нейронні мережі кінцевого кільця і ​​постійні запам'ятовуючі пристрої. Таким чином, нейронна мережа для перетворення залишкового коду в двійковий позиційний код буде складатися з вхідного шару нейронних мереж, що виконують роль регістрів, паралельного перетворювача залишкового коду в поліадіческіх код, постійних запам'ятовуючих пристроїв і паралельного зваженого суматора.

Зворотне перетворення числа з модулярного уявлення в двійкову форму базується на класичній теоремі з теорії чисел, яка називається Китайської теоремою про залишки (КТО). На підставі відомого уявлення чисел в СОК (1. 2. n) ХТО робить можливим визначення числа в ПСС. якщо найбільший спільний дільник будь-якої пари модулів дорівнює 1.

де. для (pi, pj) = 1 для i j

i - залишок числа x по модулю p i. для i = 1, 2. n.

Використовуються різні форми китайської теореми про залишки (КТО). З (1) видно, що з ХТО отримуємо. а не саме X. Якщо відомо, що x знаходиться між 0 і P-1, то можна записати

У деяких випадках бажано мати вигляд ХТО, де сума з'являється без оператора по модулю Р. Це можна зробити шляхом визначення допоміжної функції R (x), так щоб

R (x) - це функція x, обумовлена ​​для будь-якого цілого числа x.

З ХТО видно, що вираз

відрізняється від x кратним значенням P, ця різниця дорівнює - P · R (x).

Функція R (x) називається рангом числа і широко використовується при обчисленнях в модулярной арифметиці.

Ранг числа R (x) показує скільки разів потрібно відняти величину діапазону P з отриманого числа, щоб повернути його в діапазон. Таким чином, якщо знайдені Pi. і ранг числа R (x), то для перекладу числа досить обчислити і ввести цю суму в діапазон [0, P] відніманням величини, кратної P. Недолік розглянутого методу полягає в тому, що доводиться мати справу з великими числами P i і, крім того, дії додавання і множення треба виконувати в позиційній системі числення, а отриманий результат необхідно вводити в діапазон віднімається величини, кратної P.

Необхідно відзначити, що Pi і є константами обраної системи і визначаються заздалегідь, а ранг числа R (x) - змінна величина і складність її обчислення лінійно залежить від числа підстав СОК, що призводить до ще більш складною процедурою відновлення числа.

Крім того, застосування ХТО для відновлення числа вимагає складних обчислень в модулярних нейрокомп'ютер, так як елементарні процесори виконують операції по модулю pi. де i = 1, 2. n, а не по модулю P = p1 p2. pn. як це вимагається за ХТО.

З виразу (2) видно, що для його відображення необхідні суматори за модулем P. Цю небажану особливість можна обійти за допомогою відображення СОК на асоційоване уявлення зі змішаним підставою, а потім і на двійкове подання. Коефіцієнти ai можуть бути представлені за допомогою n цифр зі змішаними підставами. Відображення з СОК в узагальнену позиційну систему числення (ОПСС) може бути визначено рекурсивно за допомогою операцій по малим модулів p i.

Для переходу від обчислень по модулю P до обчислення по модулях pi пропонується метод відновлення чисел на основі спільного використання ХТО і ОПСС.

Нехай задана система підстав p1. p 2. pn. з діапазоном P = p 1 p2. pn. і ортогональними базисами B1. B 2. Bn. які визначаються як

де mi - ваги ортогональних базисів.

Тоді ХТО можна представити у вигляді

де i - залишки (відрахування) числа X по mod pi;

Уявімо ортогональні базиси Bi в ОПСС, тоді

де bij - коефіцієнти ОПСС, i, j = 1, 2. n.

На підставі (7) запишемо X ОПСС. вираз (6) у вигляді

Так як Bi mod p i = 0, j> i, то перед першим значущим розрядом буде i-1 нулів.

Для зручності обчислень базиси можна представити у вигляді матриці

Тоді XОПСС. запишеться як

де: ai - коефіцієнти ОПСС числа x;

i - відрахування числа x по mod p i;

bij - ортогональні базиси, представлені в ОПСС; i, j = 1, 2. n.

Якщо обчислювальна база представлена ​​в нейромережевому базисі, тоді як вагових коефіцієнтів нейронної мережі виступатимуть b ij. а в якості вхідних сигналів - залишки i.

Послідовність обчислень для першого варіанту має вигляд

Для визначення всіх цифр ОПСС потрібно дві операції: одна операція для вибірки з пам'яті і одна операція для підсумовування. У порівнянні з відомим послідовним методом Гарнера виграш визначається виразом. Для реалізації цього методу в нейропроцесори необхідно мати засоби для виконання модулярних операцій, наприклад нейронні мережі кінцевого кільця по pi підставах, де i = 1, 2. n.

Приклад. Нехай підстави системи p 1 = 3, p2 = 5, p3 = 7, p4 = 2. Дано число x = (2,3,0,1), представлене в СОК за обраними модулями. Знайти уявлення цього числа в ОПСС, тобто x = [a1, a2, a3, a4]. На підставі виразу (5) визначимо ортогональні базиси СОК: B 1 = 70, B2 = 126, B3 = 120, B4 = 105. Уявімо базиси B i в ОПСС, тоді bij:

У зв'язку з тим, що константи bij визначаються вибором системи модулів СОК, то їх з урахуванням перенесення в i-розрядах можна помістити в пам'ять, тоді процес перетворення можна представити у вигляді

Для визначення всіх цифр ОПСС потрібно дві операції: одна операція для вибірки з пам'яті і одна операція для підсумовування. У порівнянні з послідовним ітераційним процесом виграш дорівнює n-1, де n - число модулів СОК.

Отримані значення коефіцієнтів ОПСС числа x використовуємо для освіти двійкового коду.

Нейронна мережа для перетворення залишкового коду в двійковий позиційний код представлена ​​на кресленні.

Нейронна мережа містить вхідний шар нейронів 2, n-нейронних мереж кінцевого кільця (НСКК) 3, n-постійних запам'ятовуючих пристроїв (ПЗУ) 4, суматор 5, вхід нейронної мережі 1, вихід нейронної мережі 6 і вагові коефіцієнти і w = bij 7.

Вхідний шар 2 призначений для тимчасового зберігання вхідної залишкового коду, тобто він виконує роль регістра.

Нейронна мережа для перетворення залишкового коду в двійковий позиційний код працює наступним чином.

ФОРМУЛА ВИНАХОДУ

де i - розряди системи залишкових класів (СОК), a - коефіцієнти узагальненої позиційної системи числення (ОПСС); bij - ортогональні базиси, представлені в ОПСС; i, j = 1, 2. n, pi - модуль СОК, входами яких є виходи нейронів вхідного шару, а виходами нейронної мережі є виходи суматора, входами якого є виходи n-постійних запам'ятовуючих пристроїв, за якими надходять виконавчі еквіваленти значень ai p1 p2 . p i-1.