Баврина А., Мясников В.

advertisement
76
ИССЛЕДОВАНИЕ ПРИВЕДЕННОГО КОМПЕТЕНТНОГО АЛГОРИТМА
НАД МНОЖЕСТВОМ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ СВЕРТКИ 1
А.Ю. Баврина, В.В. Мясников 2
2 Институт
систем обработки изображений РАН
443001, ул. Молодогвардейская, 151, Самара, Россия; +7 (846) 3378084, vmyas@smr.ru
В работе исследуются операция приведения и операция построения приведенного
компетентного алгоритма над множеством известных алгоритмов постоянной
сложности. В качестве известных алгоритмов опорного множества используются
алгоритм прямого вычисления свертки и наиболее известные алгоритмы на основе быстрых дискретных ортогональных преобразований (с декомпозицией КулиТьюки и Гуда-Томаса, алгоритм Рейдера для коротких длин). Показано, что совместное их использование, которое дает приведенный компетентный алгоритм,
позволяет снизить вычислительную сложность формируемого алгоритма вычисления свертки по отношению к алгоритмам опорного множества.
Введение
Рассмотрим задачу вычисления свертки:
yn   hn  * xn  
M 1
 hmxn  m .
(1)
m 0
Здесь xnnN01 – входной сигнал, hm mM01 –
конечная
импульсная
характеристика,
N  M 1
ynn0 - выходной сигнал. Обозначим


задачу (1) через Z  Z 0 , xn n 0 , где


N 1
0  hn nM01, N ,  – априорная информация о задаче.
Приведенный алгоритм
Введем функцию:


par  Z  0 , xn nN01



  M , N  .
 
Определение 1 Алгоритм A называется
алгоритмом постоянной сложности, если
для любой задачи Z выражение для его
вычислительной сложности имеет вид аналитической функции, зависящей только от
величины par Z  , то есть:
U  AZ   u A  par (Z )  u A M , N  .


0  h n nM01 , N ,  x 
Обозначим  AM , N  область определения
алгоритма постоянной сложности.
Определение 2
Функция
сложности
u A M , N  алгоритма A постоянной сложности называется корректной, если выполняется неравенство:
M , N   AM , N 
u A M , N  






 u A m, N  M  m   






min
 u A M  m, N  m   ,
 mm,1N, M (M2  m ) 



,

 M  m, N  m  AAM M, N,N    add



 u A M  m, N  m  n   



.

N  M  n  1 ,
min 
min


 m  0,1, 2...

N  M  1

 nM 0,1m, 2, N,... m  n  A  M , N  




 u A M , n n  M  1 




u A M , N  n  M  1N  n  


min
 n 1,N / 2 

N  M 1
 M , n  A M , N  ,

,

  M




A
M
,
N
  N  n  M 1

Определение 3
Алгоритм
постоянной
сложности с корректной функцией сложности называется приведенным.
Теорема 1 [1] Для любого алгоритма постоянной сложности A , заданного на
───────────────────────────────────────────────────────────────────────────────────────────────────────
Работа выполнена при поддержке:
 РФФИ (проекты № 06-01-00616-а, № 07-07-97610-р_офи);
 фонда содействия отечественной науке;
 в рамках российско-американской программы "Фундаментальные исследования и высшее
образование" (CRDF Project RUX0-014-SA-06).
1
77
 A M , N  , существует (может быть скон
струирован) приведенный алгоритм A :
 A M , N    AM , N  ,
M , N   AM , N 
u A M , N   u AM , N  .
Компетентный алгоритм
Определение 4 Компетентным алгоритмом A   A над опорным множеством
A алгоритмов постоянной сложности
называется алгоритм вида:
 A  M , N  
  A M , N  ,
AA
 Z   A* M , N 
AZ   A* Z 
 M , N   par Z  

 u M , N  

*
A
.
if 

min
u A M , N 
 A A: AA 

 M , N  A  M , N  


Предложение 1 [1] Компетентный алгоритм A  над множеством алгоритмов постоянной сложности A является алгоритмом постоянной сложности.
Теорема 2 [1] Пусть A – множество алгоритмов постоянной сложности, из которых

построено множество A приведенных алгоритмов постоянной сложности. Пусть

A1 – приведенный компетентный алгоритм над множеством A с областью

определения  A  , а A1 – приведенный
1
компетентный алгоритм над множеством
A с областью определения  A  . Тогда
2
выполняются соотношения:
 A    A    A  ,
1
2


Z  A  U A1 ( Z )  U A2 ( Z ) .



 

Тьюки по основаниям «2», «3» и «4» соответственно (используется дополнение
входного сигнала нулями до степени соответствующего основания) [3];
 A2 _ S – с декомпозицией Кули-Тьюки по
основанию «2», дополнением нулями до
степени «2» и секционированием [2, 3];
 AGT –с декомпозицией Гуда-Томаса и
алгоритма Рейдера для вычисления малоточечных ДПФ (с использованием дополнения входного сигнала нулями до
длины, раскладывающейся на взаимно
простые сомножители) [3].
Исследование велось в двух направлениях.
Первое - определение влияния операции
приведения на вычислительную сложность
алгоритмов быстрой свертки. В том числе
на те, в которых используется секционирование входного сигнала. Результаты исследования представлены на рисунках 1 и 2.
Вторым направлением является исследование приведенного компетентного алгоритма. Для этого из указанного в (2) множества алгоритмов постоянной сложности
выбиралось некоторое подмножество Α ,
называемое опорным. Сложность каждого
алгоритма опорного множества определялась на области M , N   1, 512  1, 512 . Над
опорным подмножеством Α строился компетентный алгоритм Α . Для него выполнялась операция приведения, результатом
которой являлся приведенный компетент
ный алгоритм Α . На рисунках 3-5 приведены функции сложности для алгоритмов
опорного множества и построенного над
ними приведенного компетентного алгоритма. Т.к. функция сложности u M , N 
зависит от двух координат M и N , на рисунках 1-5 представлены только «сечения»
этой функции для значения M  60 .
Исследование приведенного
компетентного алгоритма
Рассмотрим множество алгоритмов вычисления свертки:
A0 , A2 , A2 _ S , A3 , A4 , AGT .
(2)
В этом множестве следующие алгоритмы:
 A0 – алгоритм прямого вычисления
свертки [4] согласно формуле (1);
 A2 , A3 , A4 – вычисления свертки с использованием
декомпозиции
Кули-
Выводы


Использование операции приведения для
алгоритмов вычисления свертки, основанных на ДОП с декомпозицией КулиТьюки по различным основаниям, позволяет уменьшить сложность решения
для большинства задач (1) в области
определения алгоритмов (рисунок 1);
значительное снижение сложности
происходит для длин, не являющихся
78


степенями оснований декомпозиций Кули-Тьюки (рисунок 1);
использование операции приведения для
алгоритмов, основанных на ДОП и использующих оптимальное секционирование входного сигнала, позволяет в целом добиться снижения сложности решения некоторых задач из области
определения этих алгоритмов. Однако
это снижение оказывается не столь значительным и охватывает существенно
меньшее количество задач из области
определения по сравнению со случаем
без секционирования (рисунки 2 и 1);
чем больше алгоритмов в опорном множестве Α , тем меньшее значение сложности оказывается у приведенного компетентного алгоритма. Однако, по мере
наращивания множества, величина сни-
Рис.1. Функция сложности после операции приведения: «
жения сложности итогового приведенного компетентного алгоритма становится все меньше (рисунки 3 и 4).
Список литературы
1. Мясников В.В. О синтезе эффективного алгоритма над множеством алгоритмов вычисления
свертки // Компьютерная оптика, Выпуск 29,
2006, стр. 78-117.
2. Blahut R.E. Fast Algorithms for Digital Signal Processing // Reading, MA: Addison-Wesley, Inc.,
1984.
3. Nussbaumer H.J. Fast Fourier Transform and Convolution Algorithms // Springer, Heidelberg, Germany, 1990.- 276 p.
4. Rabiner L.R., Gold B. Theory and applications of
digital signal processing // Prentice-Hall, Inc. Englewood Cliffs, New Jersey, 1975.
» – u A2 M , N  , «
»– u A2 M , N 
Рис.2. Функция сложности после операции приведения для алгоритма с секционированием:
«
» – u A2 M , N  , «
» – u A2 M , N  ,
«
» – u A2 _ S M , N  , «
» – u A2 _ S M , N 
79
Рис.3. Функция сложности для приведенного компетентного алгоритма, A  A0 , A2 :
» – u A0 M , N  , «
«
» – u A2 M , N  , «
» – u A  M , N 
Рис.4. Функция сложности для приведенного компетентного алгоритма, A  A0 , A2 , A4  :
«
» – u Α0 M , N  , «
«
» – u A2 M , N  , «
» – u A  M , N 
» – u A4 M , N  ,
Рис.5. Функция сложности для приведенного компетентного алгоритма, A  A0 , A2 , A3 , A4 , AGT  :
«
«
» – u A0 M , N  , «
» – u A3 M , N  , «
» – u A2 M , N  , «
» – u AGT M , N  , «
» – u A4 M , N  ,
» – u   M , N 
A
Download