76 ИССЛЕДОВАНИЕ ПРИВЕДЕННОГО КОМПЕТЕНТНОГО АЛГОРИТМА НАД МНОЖЕСТВОМ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ СВЕРТКИ 1 А.Ю. Баврина, В.В. Мясников 2 2 Институт систем обработки изображений РАН 443001, ул. Молодогвардейская, 151, Самара, Россия; +7 (846) 3378084, vmyas@smr.ru В работе исследуются операция приведения и операция построения приведенного компетентного алгоритма над множеством известных алгоритмов постоянной сложности. В качестве известных алгоритмов опорного множества используются алгоритм прямого вычисления свертки и наиболее известные алгоритмы на основе быстрых дискретных ортогональных преобразований (с декомпозицией КулиТьюки и Гуда-Томаса, алгоритм Рейдера для коротких длин). Показано, что совместное их использование, которое дает приведенный компетентный алгоритм, позволяет снизить вычислительную сложность формируемого алгоритма вычисления свертки по отношению к алгоритмам опорного множества. Введение Рассмотрим задачу вычисления свертки: yn hn * xn M 1 hmxn m . (1) m 0 Здесь xnnN01 – входной сигнал, hm mM01 – конечная импульсная характеристика, N M 1 ynn0 - выходной сигнал. Обозначим задачу (1) через Z Z 0 , xn n 0 , где N 1 0 hn nM01, N , – априорная информация о задаче. Приведенный алгоритм Введем функцию: par Z 0 , xn nN01 M , N . Определение 1 Алгоритм A называется алгоритмом постоянной сложности, если для любой задачи Z выражение для его вычислительной сложности имеет вид аналитической функции, зависящей только от величины par Z , то есть: U AZ u A par (Z ) u A M , N . 0 h n nM01 , N , x Обозначим AM , N область определения алгоритма постоянной сложности. Определение 2 Функция сложности u A M , N алгоритма A постоянной сложности называется корректной, если выполняется неравенство: M , N AM , 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 AAM 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 1N 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 AM , N , M , N AM , N u A M , N u AM , N . Компетентный алгоритм Определение 4 Компетентным алгоритмом A A над опорным множеством A алгоритмов постоянной сложности называется алгоритм вида: A M , N A M , N , AA Z A* M , N AZ A* Z M , N par Z u M , N * A . if min u A M , N A A: AA 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 A2 M , N Рис.2. Функция сложности после операции приведения для алгоритма с секционированием: « » – u A2 M , N , « » – u A2 M , N , « » – u A2 _ S M , N , « » – u A2 _ 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