Научная статья на тему 'Быстродействующие алгоритмы деления полиномов в арифметике по модулю два'

Быстродействующие алгоритмы деления полиномов в арифметике по модулю два Текст научной статьи по специальности «Математика»

CC BY
1033
135
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Буркатовская Ю. Б., Мальчуков А. Н., Осокин А. Н.

Предложены быстродействующие алгоритмы деления полиномов в арифметике по модулю два, позволяющие работать с данными в параллельном виде: модификация алгоритма одновременного определения старших и младших разрядов частного, а также разработанный авторами матричный алгоритм деления полиномов. Приведён пример реализации на ПЛИС фирмы Altera кодека двоичного циклического помехоустойчивого кода, использующего матричный алгоритм ускоренного деления полиномов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Буркатовская Ю. Б., Мальчуков А. Н., Осокин А. Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Fast algorithms of polynomials division in arithmetic modulo 2

The paper suggests the fast algorithms of polynomials division in arithmetic modulo 2 which enable to process data in the parallel form, namely: modification of the algorithm of simultaneous determination of the top and the least significant quotient digits. It also proposes the matrix algorithm of polynomials division. The example of implementing the endec encoder-decoder of the scale-of-two cyclic noise combating code which uses the matrix algorithm of accelerated polynomials division is given. The implementation is demonstrated on FPLD of the Altera Company.

Текст научной работы на тему «Быстродействующие алгоритмы деления полиномов в арифметике по модулю два»

}ф( У)

ï + 0(t>X)ï+ 2 +2(b(t, X) + R(t, x )) dp

dy = 0,

и, следовательно,

dp + a(t, x) dP + 2 (b(t, x) + R(t, x)) ^XP = 0, - dp = a(t, x) dp +1 (b(t, x) + R(t, x)) dxp-

Уравнение (4) представляет собой аналог уравнения Фоккера-Планка-Колмогорова с измененным коэффициентом диффузии для определения плотности вероятностей случайного процесса с коррелированными приращениями, а именно процесса изменения стоимости акций.

Таким образом, рассмотрен пример применения введенных выше стохастических интегралов и дифференциалов для описания процессов рынка капитала, (4) обладающих коррелированными приращениями, и определения плотности вероятностей этих процессов.

СПИСОК ЛИТЕРАТУРЫ

1. Розанов Ю.А. Случайные процессы. Краткий курс. - М.: Наука, 1971. - 286 с.

2. Вентцель А.Д. Курс теории случайных процессов. - М.: Наука, 1975. - 319 с.

3. Петерс Э. Хаос и порядок на рынках капитала. - М.: Мир, 2000. - 333 с.

4. Peters E.E. Fractal market analysis. - N.Y.: Wiley, 1994. - 321 р.

5. Fama E.F. Efficient Capital Markets: A Review of Theory and Empirical Work // Journal of Finance. - 1970. - № 25. - P. 18-22.

6. Жабин Д.Н., Холопова Е.С. Коэффициент асимметрии и анализ функции полезности инвестора // Журнал Физического общества республики Адыгея. - 2003. - № 10. - С. 25-27.

7. Рогов М.А. Риск-менеджмент. - М.: Финансы и статистика, 2001. - 276 с.

8. Сошникова Л.А., Тамашевич В.Н., Уебе Г., Шефер М. Многомерный статистический анализ в экономике. - М.: Юнити, 1999. - 598 с.

УДК 681.3.06

БЫСТРОДЕЙСТВУЮЩИЕ АЛГОРИТМЫ ДЕЛЕНИЯ ПОЛИНОМОВ В АРИФМЕТИКЕ ПО МОДУЛЮ ДВА

Ю.Б. Буркатовская, А.Н. Мальчуков, А.Н. Осокин

Томский политехнический университет E-mail: jgs@tpu.ru, osikin@ce.cctpu.edu.ru

Предложены быстродействующие алгоритмы деления полиномов в арифметике по модулю два, позволяющие работать с данными в параллельном виде: модификация алгоритма одновременного определения старших и младших разрядов частного, а также разработанный авторами матричный алгоритм деления полиномов. Приведён пример реализации на ПЛИС фирмы Altera кодека двоичного циклического помехоустойчивого кода, использующего матричный алгоритм ускоренного деления полиномов.

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

Основной операцией при кодировании и декодировании двоичным циклическим помехоустойчивым кодом является операция деления полиномов в арифметике по модулю два, поэтому необходимы быстродействующие алгоритмы деления. Обычно полиномы представляются следующим образом:

п-1 от-1

А(х) = (X «и-1-,*и-1-''); В(х) = (XЪт-), (1)

1=0 ]=0

где а, ¿;е{0,1}; /=0,п-1;]=0,т-1; п>т; п - количество разрядов делимого, т - делителя.

В [1] предложен алгоритм деления полиномов в арифметике по модулю два и доказана теорема для математического обоснования основной идеи алгоритма (одновременное определение старших и младших разрядов частного), формулировка которой представлена ниже.

Теорема 1. Если полиномы вида (1) делятся без остатка, то полиномы, полученные из исходных путем изменения порядка следования коэффициентов на обратный (А(х)=ХпЛ(хг1); Е(х)=ХпБ(хг1)), также делятся без остатка. Полученное таким образом частное будет иметь обратный порядок следования коэффициентов по сравнению с частным от деления исходных полиномов (С(х)=ХС(хт')).

В данном алгоритме автором было наложено ограничение: младшие разряды делимого и делителя должны равняться 1. Для устранения ограниче-

ний алгоритма нами было сформулировано и доказано следствие из Теоремы 1 [2].

Следствие из Теоремы 1. Полиномы вида (1) делятся с остатком, если п-р<т, где р - количество младших незначащих нулей делимого. Доказательство (от противного). Обозначим через р количество младших незначащих нулей полинома А. Тогда,

А( х) = (ап-1хп-1 +... + архр) = = (Ът_ххт-1 +... + Ь0х0)(Сп_тХ~т +... + СрХ ) = = В( х)С (х); хр (аи_!_ рх-1-р +... + а0 х0) = = (Ът_,хт-1 +... + Ъох°)(Си_тх-т +... + Ср^); (аи-1-Рх"р +... + ао х0) =

= (Ът-1 хт-1 +... + Ъо х 0)(СИ _

п хпррт +... + Сох0),

если т>п-р, то степень п-р-т<0.

Что и требовалось доказать.

Примечание: предполагается, что младший разряд делителя ненулевой, иначе степень делителя вычисляется без младших незначащих нулей.

На основании Теоремы 1 и Следствия из Теоремы 1 разработан «Двусторонний алгоритм ускоренного деления полиномов в арифметике по модулю два», при котором одновременно определяются старшие и младшие разряды частного [2]. В отличие от алгоритма [1], данный алгоритм является универсальным (в нём не накладывается никаких ограничений на делимое и делитель) и всегда обеспечивает корректное вычисление частного.

Пусть п - разрядность делимого, а т - разрядность делителя, тогда разрядность частного равна г=т-п+1; А - делимое, В - делитель, С - частное, а Б - остаток.

Двусторонний алгоритм ускоренного деления полиномов в арифметике по модулю два.

Начало: даны полиномы вида (1).

Шаг 1: Подсчитываем количество младших незначащих нулей делителя, обозначаем его через р. Запоминаем р последних разрядов делимого и отбрасываем их. Получаем новое делимое А1=ап-1...ар=а1п1-1...а0.

Частное С1=С....С0, где я=п-т, С.=0, /=0,3. Полагаем номер шага /=1, г.=0, /;=8.

Шаг 2: Если Д^0, подсчитываем количество старших незначащих нулей Ц и количество младших незначащих нулей Д в делимом А1=а1щ-1...а10. Полагаем /==/-Ц; г=г+Д.. Отбрасывая в А1 старшие и младшие незначащие нули, получаем новое делимое А1 разрядности п. Иначе идём на шаг 5.

Шаг 3: Если число разрядов п>2(т-р), формируем двоичное число (новый делитель):

В = Ъ , ...Ъ 0...0 Ъ , ...Ъ ,

1 т-1 р II т -1 р >

где $ - число нулей, которые определяются из условия: т-р+1+д+т-р+1=п; (число нулей таково, чтобы

разрядности А. и В 1 совпадали). Получаем двоичное число Д+1=Д©В;. Заносим в разряды г' и /' частного единицы (полагаем С„=С/.=1, /+1=/;-1; г++1=г+1; /=/+1). Идём на шаг 2. Иначе идём на шаг 4.

Шаг 4: Формируем новое делимое А следующим образом: приписываем в конец А;(г1+1) нулей и р разрядов, запомненных на шаге 1:

4 = а'п,-1 ••■ ар 0.° ар ••■ ао-1+1

Делим А на В обычным способом. Обозначим через 2частное от деления, Б - остаток А =В'2+Б.

Частное от деления А на В формируем следующим образом: С=С©2

Остаток от деления равен Б. Идём на шаг 6.

Шаг 5: Частное от деления А на В равно С. Остаток от деления Б=ар...а0. Если остаток Б=0, то полиномы делятся нацело.

Шаг 6: Конец.

Исследовав особенности построения двоичных циклических помехоустойчивых кодов, заметив полезные свойства при построении кода с помощью образующей матрицы в систематической форме, мы разработали «Матричный алгоритм ускоренного деления полиномов в арифметике по модулю два» [3].

Введём обозначения

п-т

А(х) = А'(х) © А(х); А'(х) = £ап_1-хп-1-',

А(х) = £ ап-1-хп-1-1 и В(х) = £ g¡X

1=п-т+1 J= 0

Определим матрицу 2:

2 =

где 11х)=ЯВ(х)(Х-1-') (остаток от деления

X 1 'на делитель В(х)), /е(0,п-т).

Матрицу У определим следующим образом:

У =

У°

Уп-

где у (х) =

В( х)

(частное от деления

X 1 ' на делитель В(х)).

Матричный алгоритм ускоренного деления полиномов в арифметике по модулю два.

Начало: Даны полиномы вида (1), где А - делимое, а В - делитель.

Шаг 1: Вычислить матрицу 2для полинома В(х):

2 =

Шаг 2: вычислить матрицу У для делимых разрядности п:

20,т-2 20,0

21, т-2 . . 21,0

п-т ,т-2 ' ' ^п -т ,0

1=0

х

<3

У 0,n-m ,0 0, У

У1, n-m У1,о

Уn-m ,n-m Уп -m ,0

Шаг 3: Вычислить остаток Л'*2®Л. Шаг 4: Вычислить частное Л• У. Шаг 5: Конец.

Для математического обоснования верности алгоритма сформулируем и докажем ниже представленную теорему [3].

Теорема 2. Если Л''2® Л =0, то Л(х) делиться на В(х) без остатка, иначе остатком будет являться результат.

Доказательство.

Рассмотрим разложение X"-1-' на В(х):

х-1-' = В(х) • у, © 21 (х), (2)

где 1=0,"-т; - 1-ая строка матрицы 2. Выражение (2) подставим в Л'(х):

п-т

Л'(х) = Х ■ хп-1-' = ,=0

п-т п -т

= [X «п-1-, • у<] • В(х) © X«-- • щ (х);

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

,= 0 ,= 0 4-V-/ 4-V-/

частное остаток

п-т

Л(х) = Л(х) © Л(х) = [ X 0,-1-, • у, ] х /=0

4-V-'

частное

п-т п -1

хВ(х)© [X«п-1-, (х)© X ап-1-, • хп-1-]. (3)

Из (3) видно, что остаток равен

п-т п -1

X Оп-1-, Щ, (х) © X «-1-, • хп-1-,

,= 0 ,=п-т+1

что соответствует

п-т п-1

Л' • 2 © Л = X «п-1-, • Щ © X «п-l-,■xn-1-'.

,=0 ,=п-т + 1

Что и требовалось доказать. Следствие из теоремы:

п-т

Л'• У = Xап-1-,У,, Л'У= частное.

,= 0

Для быстрого формирования матриц 2 и У, предложим и докажем следующие выражения:

1. (х) = Щ+1(х)•х©Щ+1т-2-ДОР. где г1+1,т-2 -старший разряд £;+1; 1="-т-1,0;

2. У,(х) = у,+1(х) • х © щ+1т-2, где /="-°-1,0.

Доказательство методом математической ин-

дукции:

Базис. 1="-т. Тогда

1"-т(х)=Яв(х)(Хп-1)=В(х) и У"-т=1, что очевидно. Индукция. 0« Тогда

xj+ = B( x) • yj+l( x) © Zj+1( x); xJ = B( x) • yj+1 (x) • x © Zj+1 (x) • x = = B(x) • y+1 (x) • x© Zj+1 (x) • x© Vj • B(x)© Vj • B(x) =

= B(x)[y+1(x) • x© Vj] © [Zj+1(x) • x© Vj • B(x)]. Vj=l если

Отсюдаа следует, что y;(x>=yi+i(x).x©zy+i,m_2 и Zi(x)=Zj+i(x) .x©z+i,ffl_2.B(x>.

Что и требовалось доказать. Для определения быстродействия алгоритмов деления полиномов в арифметике по модулю два поставлен компьютерный эксперимент, в котором использовались:

• персональный компьютер: Intel Celeron 1 ГГц, Intel 815EPB chipset, SDRAM 512 Мб, HDD 60 Гб;

• операционная система Microsoft Windows XP SP2;

• разработанный программный экспериментальный комплекс [4].

Эксперимент проводился над 30-разрядными кодовыми словами. Использовался образующий полином вида: X6+x4+x3+x2+x1+1.

Результаты компьютерного эксперимента сведены в таблицу.

Таблица. Результаты компьютерного эксперимента

Количество кодовых слов, тыс. Время работы алгоритма, с

Стандартный Двусторонний Матричный

1 0,110 0,110 0,080

5 0,410 0,371 0,220

10 0,791 0,761 0,471

15 1,121 1,062 0,651

20 1,422 1,372 0,822

25 1,763 1,752 1,082

30 2,113 2,003 1,222

35 2,413 2,363 1,523

40 2,774 2,704 1,773

45 3,064 2,944 1,923

50 3,425 3,235 2,053

Из таблицы видно, что двусторонний алгоритм в среднем на 4 % быстрее, чем стандартный алгоритм [1], а матричный алгоритм быстрее стандартного в среднем на 40 %.

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

В качестве примера нами реализован кодек двоичного циклического помехоустойчивого кода с использованием матричного алгоритма деления на ПЛИС фирмы Altera семейства Acex1. Для исполнения на ПЛИС выбрана структура кодека [5], рис. 1.

На рис. 1 обозначены:

• cw[ n-1..0] - входные данные (кодовое слово для декодирования или информационные символы для кодирования);

• cb[r-1..0] - контрольный блок;

• 5[r-1..0] - синдром ошибки;

• /b[£-1..0] - информационный блок;

• codec - входной сигнал, который переключает кодек в режимы кодирования и декодирования;

• pet - позиция /-ой ошибки;

• f - исправляющая комбинация для /-ой ошибки, /e(1,ce);

• cwo[n-1..0] - выходные данные кодека, т.е. кодовое слово, если codec=1 и информационный блок с сигналом ошибки, если codec=0, где n -

разрядность кодового слова, г - разрядность контрольного блока, к - разрядность информационного блока.

Логические блоки:

• КС 1 - формирования контрольных разрядов с использованием быстродействующего матричного алгоритма деления полиномов в арифметике по модулю два;

• ПЗУ 2* - вычисления позиций ошибок;

• КС 2* - формирования исправляющей комбинации.

В качестве двоичного циклического помехоустойчивого кода был выбран код БЧХ (31,21), который используется в стандарте формата радиовызова POCSAG. Образующий полином данного кода равен g(x)=x10+x9+xs+X5+x5+x3+1.

Рис. 1. Структура кодека двоичного циклического помехоустойчивого кода

Кодек двоичного циклического помехоустойчивого кода спроектирован с помощью языка описания аппаратуры Verilog. Структура программы кодека представлена на рис. 2.

codec_pocsagsb -©->case_pocsags :my_case2

Рис. 2. Структура программы кодека

Работа кодека промоделирована в пакете Max+plusII фирмы Altera. Результаты моделирования для ПЛИС EPF10K30ETC144-1 представлены на диаграммах в шестнадцатеричной системе исчисления, рис. 3, 4.

На диаграмме представлены следующие сигналы:

• data - входные данные кодека (кодовое слово или информационный блок);

• fixdata - исправленное кодовое слово;

• ready - сигнал готовности кодека;

• clock - синхронизация;

• div\dividendH - информационный блок в кодовом слове;

• div\dividendL - контрольный блок в кодовом слове;

• codec - сигнал, переключающий кодек между режимами кодирования и декодирования;

• y_div\reminder - контрольные разряды или синдром ошибки (зависит от сигнала codec);

• _case1fx_err - исправляющая комбинация для первой ошибки;

• _case2fx_err - исправляющая комбинация для второй ошибки;

• error - сигнал об обнаружении неисправимой ошибки.

Диаграмма моделирования работы кодека в режиме исправления ошибок в кодовом слове представлена на рис. 4. Ошибки находились в двух старших разрядах кодового слова.

В заключение необходимо отметить, что разработанный быстродействующий алгоритм матричного деления полиномов в арифметике по модулю два позволил создать быстродействующий кодек двоичного циклического помехоустойчивого кода. Время работы кодека для ПЛИС EPF10K30ETC144-1 в режимах:

• кодирования 10 нс;

• декодирования 15 нс.

Рис. 3. Диаграмма моделирования работы кодека в режиме кодирования

Рис. 4. Диаграмма моделирования работы кодека в режиме декодирования

СПИСОК ЛИТЕРАТУРЫ

1. Башин А.Ю. Реализация некоторых алгоритмов для ускорения вычислений на ЭВМ // Автоматика и телемеханика. - 2001. -№ 2. - С. 182-189.

2. Bourkatovskaya Y.B., Malchukov A.N., Osokin A.N. Algorithms of accelerated division on modulo 2 // Proc. 7th Korea-Russia Intern. Symp. on Science and Technology "KORUS 2003". - Republic of Korea: University of Ulsan, 2003. - V. 2. - P. 189-193.

3. Буркатовская Ю.Б., Мальчуков А.Н., Осокин А.Н. Алгоритм ускоренного деления полиномов в арифметике по модулю два с использованием матричной арифметики // Современные

техника и технологии: Сб. трудов Х юбилейной Междунар. на-учно-практ. конф. студентов, аспирантов и молодых учёных. -Томск, 2004. - Т. 2. - С. 171-173.

4. Мальчуков А.Н. Программная реализация алгоритмов деления полиномов в арифметике по модулю два // Молодежь и современные информационные технологии: Сб. трудов регион. на-учно-практ. конф. - Томск, 2004. - С. 32-33.

5. Буркатовская Ю.Б., Мальчуков А.Н., Осокин А.Н. Реализация кодека помехоустойчивого двоичного циклического кода в потоке параллельных данных на ПЛИС // Средства и системы автоматизации: Матер. V юбилейной Всерос. научно-практ. конф. - Томск: Изд-во ТУСУР, 2004. - С. 102-105.

УДК 553.411.071.242.4+550.4

МИНЕРАЛОГО-ПЕТРОХИМИЧЕСКИЕ И ГЕОХИМИЧЕСКИЕ ЧЕРТЫ ОКОЛОРУДНОГО МЕТАСОМАТИЗМА В КИСЛЫХ ПОРОДАХ ЗОЛОТОПРОДУЦИРУЮЩИХ ФЛЮИДНО-МАГМАТИЧЕСКИХ КОМПЛЕКСОВ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

И.В. Кучеренко

Томский политехнический университет E-mail: lev@tpu.ru

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

Введение

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

В некоторых мезотермальных золотых месторождениях, например, в Ирокиндинском, крупные тела кислых изверженных пород близкого к рудам геологического возраста не обнаружены, но известны дайки так называемых фельзит-порфиров, в том числе сопровождаемые золото-кварцевыми жилами с промышленными параметрами. В упомянутом и в ряде других рудных полей они, в отличие от даек основных пород, насколько известно автору, не изучались. Вместе с тем, исследование их представляет интерес в нескольких аспектах, - на

предмет петрологической идентификации, включая фациальные условия образования, выяснения возрастных соотношений и возможных петрохи-мических и геохимических связей с ними руд и околорудно измененных пород. При этом, может быть получена информация, конкретизирующая и уточняющая представления о формах участия обсуждаемых магматических пород в рудообразую-щих флюидно-магматических процессах, о сущности минералого-химических преобразований пород в сравнении с таковыми в ином рудовмещаю-щем субстрате и во внутрирудных дайках-флюидо-проводниках долеритов и умеренно-щелочных до-леритов, о распределении благородных металлов в аподайковых околорудных метасоматических ореолах и условиях образования в них аномалий рудогенных элементов также в сравнительном аспекте с условиями накопления аномальных концентраций металлов при метасоматических изменениях других рудовмещающих пород, включая углеродистые терригенные сланцы, о донорской функции которых при рудообразовании, как известно, существуют взаимоисключающие версии [1-6 и др.]. В итоге все это призвано способствовать накоплению нового знания о процессах гидротермального рудообразования применительно к золотым рудам.

i Надоели баннеры? Вы всегда можете отключить рекламу.