Исследование приведенного компетентного алгоритма над множеством алгоритмов вычисления свертки
Автор: Баврина А.Ю., Мясников В.В.
Журнал: Компьютерная оптика @computer-optics
Рубрика: Обработка изображений: Восстановление изображений, выявление признаков, распознавание образов
Статья в выпуске: 1 т.32, 2008 года.
Бесплатный доступ
В работе исследуются операция приведения и операция построения приведенного компетентного алгоритма над множеством известных алгоритмов постоянной сложности. В качестве известных алгоритмов опорного множества используются алгоритм прямого вычисления свертки и наиболее известные алгоритмы на основе быстрых дискретных ортогональных преобразований (с декомпозицией Кули-Тьюки и Гуда-Томаса, алгоритм Рейдера для коротких длин). Показано, что совместное их использование, которое дает приведенный компетентный алгоритм, позволяет снизить вычислительную сложность формируемого алгоритма вычисления свертки даже по отношению к наилучшим алгоритмам опорного множества.
Короткий адрес: https://sciup.org/14058797
IDR: 14058797
Текст научной статьи Исследование приведенного компетентного алгоритма над множеством алгоритмов вычисления свертки
Рассмотрим задачу вычисления свертки:
^ ( M , N ) = par ( Z ) л
M -1
y ( n ) = h ( n ) * x ( n ) = ^ h ( m ) x ( n - m ) . (1)
m =0
А ( Z> А * ( Z ) if
u a * ( M , N ) =
и m^ л (м,N)
А : Ае^ А ?Л
A e Г
•
' А ( M ’ N )
Здесь { x ( n ) } - входной сигнал, { h ( m ) } M0 — конеч-
ная импульсная характеристика,
{ y(n )}
N - M +1
n =0
вы-
ходной сигнал. Обозначим задачу (1) через
\ N -1 \ г M -1 ,
50’{ x ( n )} n=0 ) , где 5 =({ h ( n )} n=0 , ( N, 0
априорная информация о задаче.
Компетентный алгоритм
Введем функцию:
Очевидно, компетентный алгоритм для решения конкретной задачи вычисления свертки использует тот алгоритм из опорного множества, сложность которого при решении данной задачи минимальна.
Предложение 1 [1] Компетентный алгоритм А ® над множеством алгоритмов постоянной сложности { А } является алгоритмом постоянной сложности.
par Z ( ^ 0 , { x ( n ) } n =0 )
30=([ h(n)!M 4 N ,5- jl 0 ^ ( )} n =0 A ’ ( x Ц/
= ( M , N ) .
Приведенный алгоритм
Определение 3 Функция сложности uA ( M , N ) алгоритма А постоянной сложности называется корректной , если выполняется неравенство:
Определение 1 Алгоритм A называется алгоритмом постоянной сложности , если для любой задачи Z выражение для его вычислительной сложности имеет вид аналитической функции, зависящей только от величины par ( Z ) , то есть:
V ( M ’ N ) еК A ( M , N )
U a ( M , N ) <
uA (m,N-(M -m))
_min
Л
U ( A ( Z )) = Ua ( par ( Z ) ) = Ua ( M , N ) .
Обозначим К A ( M N ) область определения алгоритма постоянной сложности .
Определение 2 Компетентным алгоритмом А ® г { А } над опорным множеством { А } алгоритмов постоянной сложности называется алгоритм вида:
< min
А ® ( M , N )
U К А ( M , N ) ’
А = { A }
V Z еК
А * ( M , N )
( m , N - ( M - m ) )еК A ( M ’ N ) , ( M - m , N - m )еК a ( м Л)
min m=0,1,2...
n =0,1,2,...
( M + m , N + m + n )еК a ( m ’ N )
min n =1,[ N/2]
( M • n )еК A ( м л) • M ,
( N - n + M -1 ) еК A ( MN )
u A ( M -^ add
m , N - m ) + ,
ua (M + m, N + m + n )•
’
uA (M, n)(n - M +1) +
uA (M,N-n + M-1)(N-n)
N - M +1
.
Определение 4 Алгоритм постоянной сложности с корректной функцией сложности называется приведенным .
Теорема 1 [1] Для любого алгоритма постоянной сложности А , заданного на К A ( M N ) , существует (может быть сконструирован) приведенный алгоритм A : ..
A ( M , N ) A ( M , N ) ’
V ( M , N ) GK a ( M , N ) U A ( M , N ) < U A ( M , N ) .
Теорема 2 [1] Пусть { А } - множество алгоритмов постоянной сложности, из которых построено множество { А } приведенных алгоритмов постоянной сложности. Пусть А ® - приведенный компетентный алгоритм над множеством { А } с областью определения К - ® , а А .® - приведенный A 1 1
компетентный алгоритм над множеством {А} с областью определения К соотношения:
,® . Тогда выполняются
^
A 2
К А® = К ■ I К А-) ,
V Z еК A - U ( А ® ( Z ) ) = U ( A ® ( Z ) ) .
Исследование приведенного компетентного алгоритма
Исследование проводилось для наиболее известных алгоритмов вычисления сверток, формирующих множество:
{ A dc , A , A _ s , А 3 , А 4 , A gt } . (2)
Здесь:
-
— A dc — алгоритм прямого вычисления свертки [2] согласно формуле (1);
-
- А 2 , А 3 , А 4 - вычисления свертки с использованием декомпозиции Кули-Тьюки по основаниям «2», «3» и «4» соответственно (используется дополнение входного сигнала нулями до степени соответствующего основания) [3];
-
- А 2 S - с декомпозицией Кули-Тьюки по основанию «2», дополнением нулями до степени «2» и секционированием [3, 4];
-
- A GT -с декомпозицией Гуда-Томаса и алгоритма Рейдера для вычисления малоточечных ДПФ (с использованием дополнения входного сигнала нулями до длины, раскладывающейся на взаимно простые сомножители) [3].
Исследование проводилось в двух направлениях.
Первое направление – это определение влияния операции приведения на вычислительную слож- ность алгоритмов быстрой свертки. В том числе на те, в которых используется секционирование входного сигнала. Результаты исследования представлены на рисунках 1 и 2 и таблице. Поскольку функция сложности и, (M, N) зависит от двух координат M и N , на рисунках представлены только «сечения» этой функции для значения M = 60 .
По результатам этого направления исследований можно сделать следующие выводы :
-
- функция сложности алгоритмов вычисления свертки на основе ДОП и с секционированием, и без секционирования не является корректной;
-
- использование операции приведения для алгоритмов вычисления свертки, основанных на ДОП с декомпозицией Кули-Тьюки по различным основаниям с секционированием сигнала и без него, позволяет уменьшить сложность решения большинства задач (50-56%) в области определения соответствующих алгоритмов (рис.1, 2);
-
- значительное снижение сложности для указанных алгоритмов происходит для задач с параметрами ( M , N ), у которых длина сигнала N чуть больше степени основания декомпозиции Кули-Тьюки (рис.1, 2). Для таких задач возможно снижение сложности более чем на порядок (показатель (2б) в таблице).

Рис. 2. Функция сложности после операции приведения для алгоритма с секционированием
Вторым направлением является исследование приведенного компетентного алгоритма. Для этого из указанного в (2) множества алгоритмов постоянной сложности выбиралось некоторое подмножество Α , называемое опорным. Сложность каждого алгоритма опорного множества определялась на области К(MN) =[1,512] х [1,512]. Над опорным подмножеством Α строился компетентный алгоритм А®. Для него выполнялась операция приведения, результатом которой являлся приведенный компетентный алгоритм А®. На рисунках 3-5 (по мере увеличения числа алгоритмов опорного множества) приведены функции сложности для алгоритмов опорного множества и построенного над ними приведенного компетентного алгоритма.
По представленным результатам можно сделать следующие выводы :
-
- независимо от числа алгоритмов опорного множества, можно рассчитывать на снижение сложности в относительно большом (более 30%) числе отсчетов области определения;
-
- для отсчетов области определения, в которых произошли изменения функции сложности в результате операции приведения, можно рассчитывать на снижение сложности в среднем на 1030% (от сложности компетентного алгоритма).
-
- как число отсчетов области определения, в которых операция приведения снижает сложность компетентного алгоритма, так и собственно величина этого снижения зависит не только (а с учетом представленных результатов, не столько) от числа алгоритмов опорного множества, а в значительной степени от вида функции сложности этих алгоритмов. То есть, в общем случае нет монотонного поведения ни одного показателя от числа алгоритмов опорного множества (таблица), кроме средней сложности итогового алгоритма A ® ;
- по мере наращивания мощности опорного множества алгоритмов, величина снижения средней сложности и компетентного, и приведенного компетентного алгоритма оказывается все меньше (см. поведение показателей (5) и (6) в таблице). В частности, при переходе от трех к пяти алгоритмам в опорном множестве показатель (6) снижается всего на 10% (с 113 до 102 операций) по сравнению с почти 30% снижения (со 165 до 117) при переходе от одного алгоритма к двум. Поэтому на практике представляется малоэффективным процесс бесконечного наращивания мощности опорного множества алгоритмов. Практически тех же результатов (по сложности решения задач свертки) можно добиться и при сравнительно малом количестве алгоритмов. По
той же причине, и процесс синтеза новых алгоритмов вычисления сверток, которые по показателю сложности не превосходят радикально существующие , с практической точки зрения является нецелесообразным.



Таблица 1. Сводные характеристики изменения сложности алгоритмов решения задачи Z при использовании операции приведения
Показатель |
Алгоритм |
||||
A 2_ S |
A 2 |
{ A DC , A Г |
Гл л 1@ DC , 2 , 1 A 4 J |
® 1 A DC , A 2 , A 3 , 1 1 A 4 , A GT J |
|
(1) относительное число отсчетов области определения, в которых произошло снижение сложности алгоритма |
0.499 |
0.563 |
0.348 |
0.394 |
0.423 |
(2а) максимальное абсолютное уменьшение сложности алгоритма |
17863 |
17863 |
77.717 |
88.478 |
91.944 |
(2б) максимальное относительное уменьшение сложности алгоритма |
12.102 |
12.603 |
1.929 |
2.132 |
1.323 |
(3а) среднее абсолютное уменьшение сложности алгоритма, нормированное на количество отсчетов, в которых произошло изменение сложности |
271.070 |
250.367 |
24.353 |
29.870 |
10.932 |
(3б) среднее относительное уменьшение сложности алгоритма, нормированное на количество отсчетов, в которых произошло изменение сложности |
1.405 |
1.650 |
1.220 |
1.274 |
1.104 |
(4а) среднее абсолютное уменьшение сложности алгоритма, нормированное на мощность области определения |
135.160 |
140.902 |
8.4693 |
11.754 |
4.620 |
(4б) среднее относительное уменьшение сложности алгоритма, нормированное на мощность области определения |
0.701 |
0.928 |
0.424 |
0.501 |
0.466 |
(5) средняя сложность компетентного алгоритма |
299.505 |
306.115 |
125.414 |
124.831 |
106.618 |
(6) средняя сложность приведенного алгоритма |
164.346 |
165.213 |
116.944 |
113.0767 |
101.998 |
а)

Рис. 6. Отсчеты области определения, в которых операция приведения снизила сложность соответствующего алгоритма решения задачи вычисления свертки: (серым - отсчеты, не входящие в область определения, белым - отсчеты области определения, в которых операция приведения снизила сложность соответствующего алгоритма, черным - отсчеты области определения, в которых операция приведения не изменила сложность соответствующего алгоритма) а) A 2 ; б) A 2_ s ; в) { A DC , A 2 } ' ; г) { A DC , A 2 , A 4 } ' ; д) { A DC , A 2 , A 3 , A 4 , A } '


Работа выполнена при поддержке:
-
• РФФИ (проекты № 06-01-00616-а, № 07-07-97610-р_офи);
-
• Фонда содействия отечественной науке;
-
• российско-американской программы «Фундаментальные исследования и высшее образование» (CRDF Project RUX0-014-SA-06).