ОБРАБОТКА ИЗОБРАЖЕНИЙ
О СИНТЕЗЕ ЭФФЕКТИВНОГО АЛГОРИТМА НАД МНОЖЕСТВОМ АЛГОРИТМОВ ВЫЧИСЛЕНИЯ СВЕРТКИ
В.В. Мясников Институт систем обработки изображений РАН, Самарский государственный аэрокосмический университет
Аннотация
В работе рассматривается проблема синтеза эффективного алгоритма, предназначенного для решения задачи вычисления линейной свертки. Для построения искомого алгоритма вводится замыкание заранее заданного множества алгоритмов по модели (преобразования), которое представляет собой новое множество алгоритмов. Алгоритм с наилучшими вычислительными характеристиками из замыкания называется индуцированным алгоритмом. Индуцированный алгоритм, по построению, использует для решения задачи вычисления свертки не только наиболее подходящее подмножество алгоритмов исходного множества, но и характеристики обрабатываемого сигнала с импульсной характеристикой. В работе доказывается ряд теорем, которые устанавливают необходимые и достаточные условия эффективности и строгой эффективности индуцированного алгоритма. Аналогичные теоремы доказываются для практически важного случая, когда в качестве исходного множества выбираются алгоритмы основных классов: алгоритма прямого вычисления свертки; алгоритмов, построенных на основе дискретных ортогональных преобразований (типа БПФ); и рекурсивных алгоритмов вычисления свертки (рекурсивных фильтров). Приводится общее описание метода синтеза эффективного алгоритма, который разработан на основе полученных теоретических результатов. Представлено детальное алгоритмизированное описание процедур, которые реализуют отдельные этапы предлагаемого метода. Приводятся несколько известных алгоритмов вычисления свертки, которые являются частными решениями рассматриваемой проблемы синтеза эффективного алгоритма.
Введение
Вычисление свертки является базовой и наиболее часто используемой операцией в цифровой обработке сигналов и изображений. По этой причине существует огромное количество различных алгоритмов расчета свертки. Условно их можно разделить на три группы.
В первую группу входит единственный алгоритм, который выполняет вычисления непосредственно в соответствие с выражением свертки.
Во вторую, наиболее многочисленную, группу входят быстрые алгоритмы вычисления свертки (типа БПФ), основанные на дискретных ортогональных преобразованиях (ДОП). Существует большое число работ, посвященных вопросам построения и использования быстрых алгоритмов типа БПФ для вычисления свертки. Среди крупных работ, посвященных этому направлению в ЦОС, можно выделить следующие: С.С. Агаяна [1], Н. Ахмеда и К.Р. Рао [3], Р. Блейхута [5], В .Г. Лабунца [7, 18, 19], Г. Нуссбаумера [28], Т. С. Хуанга [6], В.М. Чернова [37], Л.П. Ярославского [9, 39-41]. Теория синтеза алгоритмов этой группы характеризуется серьезной экспансией алгебраических методов и структур, которая привела к развитию целого ряда направлений в построении алгоритмов. Однако среди этих направлений существуют и общие черты. Например, как отмечено в работе В.М. Чернова [37, стр. 10], «структура БА представляет, как правило, некоторую рекурсивную процедуру, последовательно реализующую редукцию вычисления ДОП заданного
объема к ДОП меньшего объема или более простых преобразуемых массивов. Типичными схемами таких редукций являются: редукция Кули-Тьюки, редукция Гуда-Томаса, редукция Рейдера, методы «совмещенного» вычисления ДОП».
В третью группу входят алгоритмы рекурсивного вычисления свертки. Алгоритмы этой группы заменяют прямое выражение свертки на рекурсивное, в котором текущие отсчеты выходного сигнала выражаются через предыдущие. Подобный способ вычислений в ЦОС именуется термином «рекурсивный фильтр» [8, 12, 29, 30, 35, 38-41]. Поскольку аналитический вид рекурсивного фильтра хорошо известен, синтез алгоритмов этой группы сводится, фактически, к выбору его числовых параметров. Ряд работ по рекурсивным алгоритмам, включая некоторые работы автора, связан с трансформацией рекурсивной вычислительной конструкции в параллельно-рекурсивную, в которой несколько рекурсивных вычислений производятся в параллельном режиме [24-26, 32, 40, 43-47, 52-63].
К сожалению, изобилие алгоритмов вычисления сверток и методов их синтеза не решает основную практическую проблему: как для конкретной задачи свертки указать наилучший алгоритм ее решения. Здесь следует отметить работы В.Г. Лабунца [19] и В.М. Чернова [37], в которых авторы обозначили эту проблему и предложили конструктивные авторские подходы к синтезу быстрых алгоритмов. Однако, следование этим подходам, с одной стороны, требует высочайшей математической квалификации, что не
приемлемо для конечного пользователя, которому надо просто быстро решить задачу вычисления свертки. С другой стороны (что более важно), указанные подходы не могут гарантировать, что полученный с их помощью алгоритм будут обладать наилучшими вычислительными характеристиками среди всех известных алгоритмов вычисления свертки.
Дополнительным аспектом в проблеме синтеза быстрого алгоритма, который обычно не затрагивается в работах по быстрым алгоритмам и ДОП, является использование аналитических свойств обрабатываемых сигналов и учет специфики самой задачи вычисления свертки. Применительно к этому аспекту следует отметить совместные работы Л.П. Ярославского, И.А. Овсиевичаи, В.И. Кобера [17, 39, 53, 54, 62]. Указанные авторы рассматривали возможность снижения сложности обработки за счет устранения «информационной избыточности» входного сигнала. В основном, авторы ограничивались использованием операциями дифференцирования и/или простейшего предсказания входного сигнала. К сожалению, эти работы не получили своего логического развития. Например, задача синтеза быстрых алгоритмов ДОП, учитывающих «информационную избыточность», фактически осталась не рассмотренной. Автору настоящей работы известно лишь два простейших решения этой задачи. Одно из них рассматривалось в монографии Л.П. Ярославского [39]. Другое решение приводилось в работе П.В. Раудина [31], выполненной под руководством В.М. Чернова.
Существует еще один аспект обозначенной проблемы, который не затрагивается в работах по синтезу быстрых алгоритмов. Обилие различных алгоритмов вычисления свертки уже стало фактом. Поэтому естественным представляется стремление воспользоваться существующими алгоритмами для синтеза лучшего алгоритма вычисления свертки. Здесь следует отметить то, что похожая ситуация уже возникала в кибернетике. А именно, почти 30 лет назад применительно к алгоритмам распознавания она была обозначена академиком Ю.И. Журавлевым следующим образом [16]: «... Существование ... алгоритмов уже давно стало фактом. По-видимому, появление каждого из таких алгоритмов можно рассматривать как эксперимент, а со множеством таких экспериментов и результатов - работать как с новым для математики множеством объектов» (1978 год). В распознавании образов такая точка зрения привела к созданию одного из ключевых направлений в алгебраической теории распознавания образов - алгебре над множествами некорректных (эвристических) алгоритмов [14-16].
Настоящая работа посвящена решению указанной проблемы синтеза эффективного алгоритма, предназначенного для решения конкретной задачи вычисления свертки. Все три обозначенных выше аспекта этой проблемы приняты во внимание. В частности, предлагаемое в настоящей работе решение: • учитывает специфику и ограничения задачи вычисления свертки,
• использует аналитические свойства сигнала и фактический вид импульсной характеристики, участвующей в операции свертки,
• использует любое предоставляемое множество алгоритмов при синтезе искомого алгоритма,
• гарантирует, что синтезированный алгоритм будет эффективным над (обозначенным ранее) множеством алгоритмов.
Последнее свойство подразумевает то, что синтезированный алгоритм в вычислительном плане:
• для любой задачи вычисления свертки окажется не хуже чем наилучший алгоритм из предоставленного множества алгоритмов,
• для некоторых задач окажется лучше наилучшего алгоритма из этого множества.
Настоящая работа организована следующим образом.
В первом разделе дается постановка задачи вычисления свертки, и приводятся основные определения. В частности, формализуются понятия задачи и алгоритма вычисления свертки, приводятся ограничения задачи. Далее вводится понятие сложности алгоритма, понятия эффективного и строго эффективного алгоритма, производится разделение всех алгоритмов вычисления свертки на два множества: алгоритмы постоянной и вариантной сложности. В этом же разделе рассматриваются основные классы алгоритмов вычисления свертки.
Во втором разделе рассматривается множество алгоритмов постоянной сложности, анализируются свойства этих алгоритмов. В частности, вводится понятие, и указываются методы распространения алгоритма постоянной сложности. Формулируются ограничения, накладываемые на функцию сложности алгоритма постоянной сложности задачей вычисления свертки. Вводится понятие «приведенные алгоритмы постоянной сложности», которое характеризует множество алгоритмов, которые удовлетворяют этим ограничениям. Наконец, вводится «компетентный» алгоритм, который решает конкретную задачу вычисления свертки, используя наилучший алгоритм из предоставленного множества. В этом же разделе доказывается ряд лемм и теорем, связанных со свойствами обозначенных алгоритмов.
Третий раздел является центральным в работе. В нем вводится модель (алгоритма), которая позволяет учитывать и специфику обрабатываемого сигнала с КИХ, и предоставляемое множество алгоритмов. Все множество алгоритмов, которое может быть получено в рамках этой модели (ее аргументами выступают и числовые параметры, и алгоритмы из предоставляемого множества), определено как замыкание предоставляемого множества алгоритмов. Вводится понятие «индуцированного алгоритма», как наилучшего алгоритма из замыкания для конкретной задачи. Приводится ряд лемм и теорем, которые выделяют необходимые и достаточные условия (строгой) эффективности индуцированного алгоритма.
В четвертом разделе производится адаптация общей теории, изложенной в третьем разделе, к основным (трем) классам алгоритмов вычисления свертки. Выделяется достаточное множество алгоритмов, для которых строится индуцированный алгоритм, при котором гарантируется его эффективность над всеми алгоритмами из основных (трех) классов.
Пятый раздел содержит общее описание метода синтеза эффективного алгоритма над множеством алгоритмов вычисления сверток.
Шестой раздел содержат алгоритмическую детализацию первого этапа синтеза эффективного алгоритма.
Седьмой раздел содержит теоретические основы и алгоритмическую детализацию для второго этапа синтеза эффективного алгоритма.
В восьмом разделе приводятся несколько известных алгоритмов вычисления свертки, которые оказываются частными решениями рассматриваемой общей проблемы синтеза эффективного алгоритма.
В заключение работы приводятся благодарности фондам, поддерживающим данную научную работу, а также список литературы.
1. Постановка задачи и основные определения
1.1. Постановка задачи 2 вычисления свертки.
Априорная информация о задаче 2
Рассмотрим задачу вычисления одномерной (линейной) свертки конечного входного сигнала
{(п)}^1 длины N и конечной импульсной характеристики (КИХ) {(да)}^1 длины М:
y(n) = h(n) * x(n) = ^h(m)x(n -m),
(1)
n = M -1, N -1,
Результатом ее решения является получение сигнала {y(n)}}=-0м+1 длины N -M +1, называемого выходным сигналом.
Эта задаче в подавляющем большинстве практических приложений имеет ряд ограничений следующего характера.
Ограничения задачи Z
(a) Длина ИХ существенно меньше длины обрабатываемого входного сигнала M << N . Для определенности в дальнейшем будем считать, что различие в длинах ИХ и сигнала не может быть менее порядка: 10 • M < N .
(b) Ограничение на КИХ:
h(o)* 0, h(M -1)* 0.
(2)
(с) Отсчеты КИХ {(да)}^1 известны задолго до
момента решения задачи. (ф Отсчеты входного сигнала оказываются известными только на момент решения задачи, однако до момента решения задачи о входном сиг-
нале может быть известна некоторая априорная информация, обозначаемая в дальнейшем 3x и называемая априорной информацией о входном сигнале. Примерами такой априорной информации могут служить данные о длине входного сигнала N, информация о его непрерывности, существовании производных, о его статистических свойствах, о функциональной связи между отсчетами и т.п. (e) Значения ИХ и входного сигнала вещественны: V п x(n )е R, h(n) £ R . Как следует из указанных ограничений, данные о КИХ, а также некоторые (возможно пустые) данные 3 x об обрабатываемом сигнале известны задолго до наступления момента решения задачи. В связи с этим введем понятие априорной информации.
Определение 1. Априорной информацией задачи Z вычисления свертки (1) называется пара
3о = ({h(n )Го\ 3 ).
Обозначим в дальнейшем задачу вычисления свертки (1) с учетом ограничений (a)-(d) как
z (3o,{x(n Ö
В изложении аргументы задачи в обозначении могут быть опущены, если это не влияет на ясность изложения.
1.2. Представление априорной информации о входном сигнале 3х в задаче 2
Формальный способ описания свойств сигнала фиксируется следующими определениями.
Определение 2. Априорной информацией о свойствах сигнала {х(п)} называется множество, обо-
значаемое ) =
каждый элемент которого,
обозначаемый 9 х, называются элементарной информацией о свойствах сигнала и представляет собой числовой вектор вида
0х =1 K
, fc jL Рх, Dx
где:
K - натуральное число, {¡х t - некоторые вещественные величины,
Рх = P
x(n) = ^ x(n - k)
Dx = E
k=1 / K-1
e(n)= x(n)- ^x(n - k)
k=1
(среднее).
Определение 3. Априорной информацией о сиг-
нале \x\n
{x(n )}}
N-1
n=o
называется пара
= ^, 3(х)) ,
где N е Z + и А - число отсчетов сигнала х (Д - символ неопределенности значения), 3(х)-априорная информация о свойствах сигнала.
m=0
1.3. Алгоритм решения задачи 2. Сложность алгоритма. Понятие эффективного и строго эффективного алгоритма
Будем использовать следующее определение (численного) алгоритма [20, 21].
Определение 4. Алгоритм - предписание, однозначно определяющее ход некоторых конструктивных процессов.
Поскольку основной интерес в настоящей работе представляют алгоритмы решения вполне конкретных численных задач вычисления свертки примем следующее
Определение 5. Алгоритм решения задачи (вычисления свертки) 2 = 2(з0,{х(п)}^=01) с априорной информацией 30 = ({(и)}-)1,3х) - алгоритм, обозначаемый А (2), которой по входному
сигналу {(и)}}-1 и КИХ {(да)}^1 производит
вычисление отсчетов сигнала
{(и )}
-М+1
=0
свя-
занных с отсчетами входного сигнала и КИХ соотношением (1).
Везде в дальнейшем по умолчанию под (просто) алгоритмами подразумеваются именно алгоритмы решения различных задач вычисления свертки. При использовании понятия «алгоритм» в другом контексте, смысл этого понятия и/или его конкретизация будет производиться отдельно и явно.
Поскольку различные алгоритмы могут решать различные задачи вычисления сверток, поэтому вводится следующее определение, являющееся аналогом соответствующего определения в теории алгоритмов [20].
Определение 6. Алгоритм А применим к задаче 2, если он является алгоритмом решения задачи 2. Факт применимости обозначаем !А (2). Алгоритм, не являющийся применимым к задаче 2, называется неприменимым к задаче 2.
Факт получения результата при решении задачи в дальнейшем обозначается:
А : 2 ()}=01)
130 =
;{"(»))М=-01,3 х
Мп )}=М -1 =
при фиксированной задаче Ъ запись может быть сокращена: А : 2 ^ {у(п)}.
Прежде чем перейти к следующим определениям, следует отметить один важный факт, связанный с формализацией понятия алгоритма. На данный факт, в частности, указано в книге А. А. Маркова и Н.М. Нагорного [20, стр. 135-136]: «Слово «однозначно» в определении алгорифма не должно пониматься слишком буквально. Для состояния системы может быть установлено то или иное отношение одинаковости. Процесс, определяемый алгорифмом при задании начального состояния системы,
должен определяться однозначно лишь «с точностью до одинаковости» получаемых в его ходе состояний. Потребовать, чтобы этот процесс был единственным, мы можем, лишь условившись единственным образом применять абстракцию отождествления к состояниям нашей системы и процессам, протекающим в ней». Поскольку для работы с алгоритмами вычисления сверток нам потребуется введение отношений, характеризующих их «похожесть», в работе принят изложенный ниже взгляд на понятие (численного) алгоритма. Этот взгляд в значительной степени отражает установившийся взгляд на процесс проектирования и описания программных изделий и систем, изложенный, например, в книге [4].
Условимся считать, что представление алгоритма может быть произведено на различных уровнях детализации. На самом верхнем, грубом, уровне детализации предписание содержит ссылку на метод и/или вычислительную конструкцию, которую реализует алгоритм. Например, ссылка на метод Ньютона является достаточно точным для описания некоторого алгоритма поиска экстремума функции.
Следующим уровнем представления является формула(ы), которая задает вычислительный процесс данного алгоритма. Например, формулу (1) можно считать достаточно точным предписанием для прямого алгоритма вычисления свертки.
Оба указанных выше метода составляют аналитическую часть представления численного алгоритма вычисления свертки. Связано это с тем, что ни метод, ни описание с использованием формул не является адаптированным к конкретной программной и/или аппаратной реализации алгоритма.
Последующие три уровня можно отнести к реализационной части представления численного алгоритма вычисления свертки. Эти части представления в различной степени учитывают особенности реализации алгоритма на конкретном средстве разработки и языке программирования, аппаратной платформе с учетом ее технических характеристик.
К уровням реализационной части представления относятся:
• блок-схема работы программы/устройства,
• описание алгоритма на конкретном языке программирования и/или псевдокоде,
• бинарный исполняемый код.
Следует также отметить, что научные работы, посвященные вопросам разработки быстрых алгоритмов вычисления свертки, как правило, ограничиваются описанием только аналитической части представления алгоритма, Это означает, в частности, что реализации алгоритма двумя различными людьми могут приводить к различным представлениям реализационной части. В ряде случаев, например, при реализации одного алгоритма на различных языках программирования и/или различных операционных системах, бинарный код представления алгоритма будет абсолютно разным.
С учетом изложенного взгляда на представление алгоритмов вычисления свертки, ниже принято следующее решение вопроса задания отношений, характеризующих «похожесть» алгоритмов.
Определение 7. Алгоритмов тождественность - это бинарное отношение, связывающее алгоритмы фиксированного типа и выражающее тот факт, что представления алгоритмов, задающие (вычислительный) процесс, абсолютно совпадают (совпадают и аналитическая и реализационная части представления). Алгоритмы, не являющиеся тождественными, называются различными.
Факт того, что два алгоритма А1 и А2 тождественны, будем обозначать А1 = А2 . Факт того, что два алгоритма А 1 и А 2 различны, будем обозначать А1 ф А2 . Различные алгоритмы, в принципе, могут решать одну и ту же задачу, то есть выдавать один и тот же результат. Для отражения этого факта введем еще одно определение [20, 21].
Определение 8. Алгоритмов эквивалентность -бинарное отношение, связывающее алгоритмы фиксированного типа и выражающее тот факт, что у всяких двух связанных этим отношениям алгоритмов при совпадении определенного вида исходных данных совпадают результаты работы.
В рамках настоящего раздела рассматриваются только эквивалентные алгоритмы. Факт того, что два алгоритма А 1 и А2 эквивалентны, будем обозначать А1 и А2 .
Определение 9. Алгоритмов подобность -бинарное отношение, связывающее алгоритмы фиксированного типа и выражающее тот факт, что аналитические части представления алгоритмов, задающие (вычислительный) процесс, совпадают с точностью до обозначений и эквивалентных преобразований
Как видно из определений, понятие «тождественные» алгоритмы (( = А2) предполагают абсолютное совпадение как аналитической (формулы и вычислительной конструкции - метода), так и реализационной (блок-схемы, псевдокода и бинарного кода реализации) частей представления двух алгоритмов.
Понятие «подобные алгоритмы» (( — А2) предполагают менее строгое «совпадение» двух алгоритмов. Для «подобных» алгоритмов достаточно совпадения лишь аналитических частей в представлении алгоритмов, то есть формул, вычислительных конструкций и методов. При этом совпадение реализационной части представления (блок-схемы, псевдокода, кода реализации) не требуется.
Наконец, словосочетание «эквивалентные алгоритмы» (( и А2) определяет наименее строгое понятие «похожести» алгоритмов. Для «эквивалентности» двух алгоритмов достаточно того,
чтобы алгоритмы одинаково реагировали на входные данные. Ни аналитические, ни реализационные представления этих алгоритмов не влияют на отношение «эквивалентности».
На основании сделанных определений и комментариев к ним получаем
Следствие 1.
А} ~~ А2 А^ = А2, А-1 — -А 2 —^ А-\ и -А 2.
Введем теперь в рассмотрение конечное множество (эквивалентных, но различных) алгоритмов {А}
решения задачи 2, |{А} < ж . Поскольку различные
алгоритмы могут быть определены на различных подмножествах значений параметров задач, примем следующее определение.
Определение 10. Полной областью определения, обозначаемой К, называется множество
2 (30, {х(п )}ПГ=-01)} ления сверток.
всех возможных задач вычис-
Определение 11. Область определения КА алгоритма А - множество задач, для которых алгоритм А применим:
ХА ={2 :2 еКЛ !А(2)} .
Определение 12. Пусть фиксирована некоторая
задача Ъ. Множеством алгоритмов решения задачи 2, задаваемым по отношению к множеству {А} различных алгоритмов вычисления сверток, называется множество вида: {4(2)}={А : А е{4}л!А(2)}.
Введем также следующее понятие, которое является аналогом соответствующего понятия в теории алгоритмов [20].
Определение 13. Пусть задан алгоритм А с областью определения КА . Алгоритм А с областью определения К а называется распространением алгоритма А, если
КА сК4 л У2 еКАА(2) — А(2).
Все алгоритмы из множества {а(2)} алгоритмов решения задачи 2 могут быть использованы для решения задачи 2 и это решение - выходной сигнал -будет одинаковым для всех алгоритмов. Однако сложность/время решения задачи для разных алгоритмов оказывается различной и зависящей от сложности алгоритма [21]:
Определение 14 Алгоритма сложность вычислений - функция, дающая числовую оценку трудности (громоздкости) процессов применения алгоритма к исходным данным.
Известно, что сложность конкретного алгоритма может быть охарактеризована целым рядом показа-
телей [21], которые могут зависеть или не зависеть от конкретной реализации этого алгоритма на конкретной ПЭВМ (особенностей программной/аппаратной реализации, используемой элементной базы и архитектуры ПЭВМ). В частности, к зависящим от реализации показателям можно отнести: объем требуемой оперативной памяти, число обращений к оперативной памяти, число тактов процессора, временя работы алгоритма на ПЭВМ и т.д. К показателям, значения которых в значительной степени не зависят от конкретной реализации алгоритма решения задачи 2, можно отнести число требуемых для расчета выходного сигнала арифметических операций. Поэтому в дальнейшем в качестве составляющих сложности алгоритма решения задачи 2 используются количества арифметических операций сложения и умножения, требуемых для получения одного отсчета выходного сигнала (удельное количество операций). Определим далее:
• (а(2)) - удельное количество сложений, требуемых в алгоритме А для решения задачи 2,
• ити1 (а(2 )) - удельное количество умножений, требуемых в алгоритме А для решения задачи 2.
Для фиксированной задачи 2 аргумент для алгоритма в приведенных обозначениях будем опускать и писать следующим образом: иш (а) и ити1 (а) . Эту пару величин и их линейные комбинации в дальнейшем будем именовать вычислительной сложностью алгоритма или просто сложностью.
Поскольку для различных ПЭВМ реальное время выполнения операций сложения и умножения различаются, введем величину (удельной) сложности алгоритма А следующим образом:
и (А)=^асЫиасШ (А)+1тиити1 (А), (3)
где ^асШ, ^ти[ - вещественные неотрицательные величины, которые характеризуют относительное соотношение между сложностью выполнения операций, соответственно, вещественного сложения и вещественного умножения на конкретной ПЭВМ. В дальнейшем величины , ^ти1 считаем заданными и фиксированными. Для удобства считаем, что они удовлетворяют уравнению: ^ +^ти! = 1.
Справедливо следующее
Предложение 1. Вычислительные сложности
подобных и тождественных алгоритмов равны:
А = а2 ^ и (а ) = и А), А = а2 ^ и (а ) = и (а ).
Используя понятие сложности алгоритма, введем на множестве алгоритмов, применимых к задаче 2, отношение порядка.
Определение 15. Для задачи 2 алгоритм А'(2) • лучше алгоритма А"(2), если
и (А' (2 ))< и (А'' (2 ));
• не хуже алгоритма А" (2), если и (А ' (2 ))< и (А '' (2));
• хуже алгоритма А"(2), если и (А ' (2 ))> и (А '' (2));
• не лучше алгоритма А"(2), если
и (А ' (2 ))> и (А '' (2 )).
Аналогичные отношения порядка можно ввести и просто для алгоритмов. В этом случае соответствующие неравенства должны выполняться для всех задач (вычисления сверток) из соответствующей области определения алгоритмов.
Определение 16. Алгоритм А ' с областью определения КА-
• лучше алгоритма А''(2) с областью определе-(обозначаем и (А ' )< и (А " )),
ния
если
У 2 е с и (А ' (2 )) < и (А " (2 ));
не хуже алгоритма А" (2) с областью определения (обозначаем и (А' )< и (А " )), если У 2 е с и (А ' (2 )) < и (А" (2 )); хуже алгоритма А'' (2) с областью определения КА» (обозначаем и (А' )> и (А " )),
если
У 2 е с и (( ' (2 )) > и (А " (2 ));
• не лучше алгоритма А"(2) с областью определения (обозначаем и (А ' )> и (А " )), если У 2 е с и (А ' (2 )) > и (А" (2 )). В приводимых ниже определениях 17-19 и далее предполагается, что решается задача 2. Для ее решения дано некоторое множество алгоритмов {а}, причем оно может состоять не только из алгоритмов, решающих задачу 2. Таким образом, наряду с множеством {а} существует его подмножество
{А(2)}с{л}, задаваемое определением 12. Также предполагается, что {а(2 )}^0 . То есть если в множестве {а} есть хотя бы один алгоритм, применимый к задаче 2.
Определение 17. Наилучшим алгоритмом из множества алгоритмов {а} для задачи 2 называется такой алгоритм А*(2)е{А(2)}с {л}, который не хуже любого другого алгоритма этого множества для этой задаче, то есть:
У А(2 )е{А(2 )}с{А} и (л* (2 ))< и (а(2 )).
Для возможности сравнения сложности конкретного алгоритма и всех алгоритмов некоторого заданного множества введем еще два определения.
Определение 18. Эффективным алгоритмом над множеством алгоритмов {А} для задачи 2 называется такой алгоритм Лед- (2)г{А}, который не хуже наилучшего алгоритма
А*(2)е{А(2)}с{а} этого множества для этой задачи, то есть: и ((2 ))< и (а* (2)).
Определение 19. Строго эффективным алгоритмом над множеством алгоритмов {а} для задачи Ъ называется такой алгоритм А(2)г {а}, который лучше наилучшего алгоритма А*(2)е{А(2)}с{а} этого множества для этой задачи, то есть: и (( (2 ))< и (л* (2)).
Очевидно, что строго эффективный алгоритм является и эффективным.
Введение эффективного алгоритма (по отношению к строго эффективному) обусловлено одним важным фактом. А именно, для некоторых задач 2 е К и возможных множеств {а(2 )} алгоритмов их решения существуют пары (, {а(2)}), для которых построить алгоритм лучше наилучшего алгоритма этого множества оказывается не возможным.
Задаче построения эффективного и/или строго эффективного алгоритма над множествами алгоритмов вычисления свертки и посвящена настоящая работа.
1.4. Категории сложности алгоритмов вычисления свертки
Сложность (3) конкретного алгоритма, применимого к задаче 2, задаваемая величиной
и (4(2 ))= и (А(30, {х(и )}ПГ=-1)),
в общем случае является сложной функцией собственно алгоритма, выбранного для решения задачи
Ъ, и данных о задаче 2 = 2(з0,{х(п)}^=01). Степень
использования заранее известных данных о задаче, то есть априорной информации
30 = ({h(n)}M=-)1, ((,3(х))), в каждом конкретном алгоритме может быть различной, поэтому и влияние их на значение сложности и(а(2)) алгоритма оказывается разным. Для удобства разобьем все множество алгоритмов на категории, которые соответствуют различным аналитическим выражениям зависимостей величины сложности алгоритмов от частных параметров задачи - длины обрабатываемого сигнала N и размера ИХ М. В частности примем следующие определения.
Определение 20. Алгоритм А(2)е{А(2)} решения задачи 2 = 2(з0,{х(и)}^-01) с априорной информацией 30 = ({//(и)}-1, (N, 3(х))) называется
алгоритмом постоянной сложности, если выражение (3) для вычислительной сложности этого алгоритма на всей области определения КА алгоритма имеет вид аналитической функции и(М, N ), зависящей только от размеров входного сигнала N и длины ИХ М.
Определение 21. Алгоритм А(2)е{А(2)} решения задачи 2 = 2(30,{х(и)}^=-01) с априорной информацией 30 = ({//(и^о1, ((,3(х))) называется
алгоритмом вариантной сложности, если он не является алгоритмом постоянной сложности.
Два приведенных определения позволяют разделить множество алгоритмов на два подмножества. В первом подмножестве сложность решения задачи Ъ зависит только от размеров сигнала N и импульсной характеристики Ми не зависит от какой-либо другой части информации 30 = ({(и((, 3(х))). Это
означает, что сложность решения не изменится при изменении информации о свойствах входного сигнала 3(х) и/или значений ИХ {(и)}=- , то есть останется постоянной. Алгоритмы из подмножества алгоритмов вариантной сложности ведут себя по иному. А именно, при замене значений ИХ
{/Ж и/или свойств входного сигнала 3(х)
сложность этих алгоритмов может измениться.
Далее, поскольку изменения отсчетов ИХ
{//(и))М=о1
и свойств обрабатываемого сигнала 3(х)
не влияют на сложность решения соответствующих этим данным задач, это означает также и то, что такие изменения не влияют и на саму способность алгоритма решать соответствующие (измененные) задачи. Получается, что если в область определения алгоритма постоянной сложности попадает задача 2 с априорной информацией вида:
: ({//(и)М-\ N,3(х))),
то в эту же область определения входит также бесконечное множество других задач с теми же параметрами М и N, но с другими значениями ИХ
{//(и)}!-1, свойствами входного сигнала 3(х) (удовлетворяющими ограничениям (а)-(е) задачи 2) и отсчетами входного сигнала {(и)}-1. Более того, для всех этих задач сложность алгоритма постоянной сложности будет идентичной. Данный факт позволяет ввести классы эквивалентности на области определения алгоритмов постоянной сложности.
Определение 22. Задачи 2' = 2(30,{х'(и)}}=-1) и 2" = 2 (3 0,{х '' (и)и=' 0 I с априорными информа-циями, соответственно 3 0 = ({//' (и)} -1, ((', 3 (х)))
и 3 0 =
0=(/ ж;-1, N', 3(х))),
являются эквива-
лентными относительно алгоритмов постоянной сложности (далее - просто эквивалентными), если М' = М'', N' = N".
Определение 23. Классом эквивалентности задач к(а~,N)сК является подмножество попар-
но эквивалентных задач из полной области определения с фиксированными значениями параметров (М, N )=М~, N) и произвольными значениями других параметров:
[2 : 2 еКл 2 = 2 ({(п Я}-1)
(, 3(х)))
К(М, N ) =
лз0 = I
N = N л М = М
Справедливо следующее
Предложение 2. Полная область определения К представима в виде объединения классов эквивалентности задач:
К = и к(м, N), (4)
(М,N){М,Ы): МеZ +, NеZ+}
Определение 24. Множеством индексов, порождающим область определения КЛ конкретного алгоритма Л называется множество:
К Л(М, м)=[(М, N): К(М, N )ск л }. Также справедливы следующие предложения. Предложение 3. Область определения КЛ конкретного алгоритма А представима в виде объединения классов эквивалентности задач, соответствующих индексам множества КЛ(М N):
К л = ик(М, N ).
(М, N )еКл(М, N)
Предложение 4. Следующие утверждения эквивалентны
(М,N)еКл(МЛ)«К(М,N)сКл .
Предложение 5. С учетом указанной взаимной однозначной зависимости классов эквивалентности задач К(М,N) и пар индексов (М, N) в дальнейшем будем считать синонимами область определения КЛ алгоритма и множество пар индексов КЛ(М м), порождающих Кл . Наименование «область определения» ниже будет применяться к множеству КЛ(М м) так же, как и к
множеству Кл . Следующие (части) высказывания далее считаются эквивалентными: У2 еКЛ и(Л(2))... »
У(М, N) е Кл(м,N) ил (, N)... Также верно и следующее
Предложение 6. Для любых алгоритмов постоянной сложности А1, А2 с областями определения КЛ1 = КЛ2 = Кл, порождаемыми множества-
ми индексов (М,N) = КЛ2 (М,N) = КА(М,,
дующие утверждения эквивалентны:
сле-
У2 еКл и А (2 ))< и ( (2 )) » У(М, N)еКл(МД) ил, (М, N)< ил2 (М, N).
Справедливость последнего предложения не меняется при замене обоих знаков " <" на любые другие знаки отношения пар числовых величин.
1.5. Основные классы алгоритмов решения задачи 2 вычисления свертки
В настоящее время существует большое число алгоритмов решения задачи 2 вычисления одномерной свертки. В соответствии с принципами построения, это множество алгоритмов может быть подразделено на три классы (подмножества) алгоритмов. К ним относятся:
• класс алгоритмов прямого вычисления свертки
{¿ос },
• класс алгоритмов вычисления свертки на основе дискретных ортогональных преобразований (ДОП) {Лрс },
• класс алгоритмов рекурсивного вычисления свертки {Лнр }.
Для этих классов алгоритмов справедливы следующие три предложения.
Предложение 7. Алгоритм прямого вычисления свертки является алгоритмом постоянной сложности.
Предложение 8. Алгоритмы вычисления свертки на основе ДОП являются алгоритмами постоянной сложности.
Предложение 9. Алгоритмы рекурсивного вычисления свертки являются алгоритмами вариантной сложности.
2. Алгоритмы постоянной сложности и их свойства
Выделение в отдельное подмножество алгоритмов постоянной сложности позволяет указать некоторые их особенности и выделить ряд полезных свойств таких алгоритмов и/или их подмножеств.
2.1. Распространение алгоритма постоянной сложности
Действие любого алгоритма постоянной сложности определено на области определения К А , порождаемой множеством индексов КЛ(М ^). При этом, как правило КЛ(Мм) ф {(М, N): М > 1, N > 1}, то
есть множество индексов, связанное с конкретным алгоритмом, не покрывает все возможное множество индексов. Следовательно, ограничена и сама область определения КЛ . Данный факт приводит к необходимости распространения алгоритма. То есть построения на его основе другого алгоритма, область определения которого была бы заданной, при-
чем на ее подобласти алгоритмы были бы подобными (см. определение 13).
Следует отметить, что способы построения распространения алгоритма могут быть различными. В частности, они могут учитывать специфику архитектуры конкретного алгоритма, специфику данных и т.д. В то же время, следуя принципам теории алгоритмов [21] и понятию «нормальный алгоритм», целесообразен такой способ построения распространения, который мог бы быть применен к любому алгоритму постоянной сложности. Несколько подобных способов следуют непосредственно из выражения (1) вычисления свертки. К ним относятся следующие способы.
Распространение алгоритма путем решения «суперзадачи» задачи Z
Произведем замену задачи
z(3q,{x(«^) Зо = ({(nзх) на «суперзадачу» вида:
z'=z (30,{x«=rm-1) зо={'(«r=+m-1, з,),
где m > 0, n > 0.
Для «суперзадачи» входной сигнал и ИХ задаются следующим образом:
Определим дополнительно величины
,/ ч I x(n), n = 0, N -1,
x (n) = J w
10, n = N, N + n + m -1.
,,/ \ \И(т), т = 0,М -1,
п (т )= < 4 7 -
\0, т = М, М + т -1.
Замена задачи на «суперзадачу» правомерна, поскольку количество отсчетов в полезной части выходного сигнала суперзадачи оказывается не меньше, чем для исходной задачи 2:
(( + и + т - 1)-(М + т -1)+1 = N -М +1 + и > > N - М +1.
Очевидно, что сложность решения исходной задачи 2 для построенного распространения алгоритма А составляет величину:
' иА (М + т, N + т + и ) иА (М, N )= (М - М + и +1) . (5)
I' М - М +1) ,
Распространение алгоритма путем разбиения задачи Ъ на подзадачи с сегментацией ИХ Представим соотношение (1), задающее выражение для свертки, в эквивалентном виде:
М-1
у(и)= X/(т)х(и - т) =
m=0
M1-1
= ^h(m)x(n -m)+ ^h(m)x(n - m)
m=0 m=M\
c,(n ) =
= | x(n - M1), n = 0, N - M1 -1, = |0,
иначе.
, / \ |h(m), m = 0,M1 -1, h1 (m)=1A 1 10, иначе.
h2 (m) =
= lh(m),
m = 0, M - M1 -1,
| 0, иначе. Тогда выражение для свертки перепишется:
M1 -1 M -M1 -1
>"(n) = ^ h1(m)x(n - m)+ ^ h2 (m)x(n -/
m=0 m=0
n = M -1, N -1,
и решение одной задачи 2 производится путем решения двух «подзадач», каждая из которых имеет тот же (возможно сдвинутый) входной сигнал, что и исходная задачи, и ИХ, которая является частью исходной ИХ.
Очевидно, что сложность решения исходной задачи 2 для построенного распространения алгоритма А составляет величину:
и-А (М, N ) = иА М N-(М - М,))+ (6)
иА (М - М„ N - Мх ) + ^.
Следует отметить, что для конкретного набора индексов (М, N), которые характеризуют требуемую для решения задачу Ъ, в области определения исходного алгоритма может не оказаться ни одной пары (Мь N-(м - Мх)), (М - Мъ N - Мх). В этом
случае для построения распространения можно использовать «гибридный» способ, который включает в себя и первый, и второй способ одновременно. А именно, на основании существующих в области определения алгоритма А пар (М, N)еКА построить с помощью рассматриваемого способа решение некоторой задачи, которая для искомой задачи является «суперзадачей». А затем воспользоваться первым способом. Одновременное использование сразу нескольких способов для построения распространения алгоритма постоянной сложности может применяться и совместно с третьим способом, рассматриваемым ниже.
Распространение алгоритма путем разбиения задачи Ъ на подзадачи с сегментацией входного сигнала
Из входного сигнала {хМи)}^1 синтезируем два
сигнала образом:
{x1(nи {x2 (п)Д=->Д1 +M-2 следующим
1 (n )=■
c(n ^
0,
n = 0, N1 -1, иначе.
n = M -1, N -1.
()=| x(n + N1 - M), n = 0, N - N1 +M - 2, x2 (n )=
10, иначе.
x
Тогда значения отсчетов искомой свертки могут быть получены:
y(n) = ^h(m)x1 (n - m), п = M -1,N1 -1,
m=0
M-1
y(n + Nj - M +1) = ^h(m)x2 (n - m),
m=0
n = M -1, N - N1 + M - 2.
Тогда решение одной задачи 2 производится путем решения двух «подзадач», каждая из которых имеет ту же ИХ, что и исходная задачи, и более короткий входной сигнал, который является частью исходного сигнала. Подобная замена правомерна, поскольку количество получаемых в этих двух подзадачах отсчетов полезной части выходного сигнала оказывается таким же, как и у исходной задачи 2:
(( - М +1) + ((^ - ^ + М - 2)-(М -1) +1) = = N - М +1.
Сложность решения исходной задачи 2 для построенного распространения алгоритма А составляет величину:
(, N ) =
uA (m , N1)(N - M +1)+
+ uA (M, N - N1 + M -1)(( - N1) N - M +1
. (7)
Приведенные способы построения распространения алгоритма постоянной сложности, вероятно, могут быть дополнены. Однако, их рассмотрение и анализ не является предметом детального исследования данной работы.
Поэтому далее предполагается, что распространение любого алгоритма постоянной сложности производится некоторым образом, одним или несколькими из рассмотренных способов.
2.2. Приведенные алгоритмы постоянной сложности
Возможность распространения алгоритма постоянной сложности на задачи, которые не входят изначально в его область определение, имеет очевидное следствие. Действительно, если возможно определить работу алгоритма для задач, которые соответствуют парам (М, N)гКА(М,N), то аналогичным
образом можно рассчитать сложность и для пар (М, N )еКА(МЯ), если таких пар более одной. И в
случае, если для конкретной пары (М, N)еКЛ(МЯ) реальная сложность алгоритма и А (М, N ) оказывается выше сложности у алгоритма распространения, то целесообразным является «замена» действия алгоритма для задач с параметрами (М, N). Такое неформальное суждение приводит к следующим двум понятиям: корректной сложности и приведенным алгоритмам постоянной сложности.
Определение 25. Сложность иА (М, N) алгоритма А постоянной сложности называется корректной, если для любой пары (М, N) е КА(М ы)
выполняется неравенство:
иЛ (М, N )<
_min
m=1M-2
(m,N-(M-m)A(M ,N) (m-m,N-m')KA(M ,N )
min
m=0,1,2... n=0,1,2,...
(M+m,N+m+n)^A(M ,N
min
n=1,[N /2]
(m ,n )Ka(M ,N ).
( M- n+M-1 J£^A(M ,n)
(uA (m, N - (M - m)) uA (( - m, N - m) +
^add
uA (( + m, N + m + n (( - M + n +1) (( - M +1)
)
uA(M,n)(n -M +1)+ )
uA ((, N - n + M - 1)(( - n))
N-M+1
(8)
Очевидно, что неравенство (8) на самом деле состоит из трех соотношений, которые взяты из выражений для построения распространения алгоритма (5)-(7):
,(M, N )<
min
m=1,M-2
(m,N-(M-м))Ка(м ,N) ((-m,N-m)EKA(M ,N)
(m , N )-(n - M +1)<
min
m=0,1,2... n=0,1,2,...
((+m,N+m+n ) )eka(m ,N
j(m, N -(M - m)) + i(( - m, N - m) + ^ add,
,(( + m, N + m + n) (( - M + n +1)
(9)
u
(M, N )(N - M +1)<
uA (M, n)(n - M +1) +
(9')
min
1,[N/2]
(M ,n )eka(m ,N) M- n+M-1,)£Na(m ,n;
,((, N - n + M - 1)(( - n))'
Определение 26 Алгоритм A постоянной сложности называется приведенным, если его сложность uA (M, N ) корректна.
В силу выражения (8), справедливо следующее интуитивно понятное соотношение для любого приведенного алгоритма постоянной сложности:
u(M, N )< min u(M + m, N + m).(10)
m=1,2,...
((+m,N + m)У)а(м,N)
Замечание Определения 25 и 26 не дают никакой информации относительно соотношения вычислительной сложности приведенного алгоритма постоянной сложности для случаев: u(M, N)
и u(M + m, N).
u
u
u
u
Определения 25,26 позволяют выделить среди алгоритмов постоянной сложности подмножество, вычислительная сложность которых не может быть снижена тривиальным способом, подобным одному из способов построения распространения алгоритма. Поскольку подмножество приведенных алгоритмов в общем случае не совпадает с множеством алгоритмов постоянной сложности, покажем, что для остальных алгоритмов, не являющихся приведенными, можно произвести такую тривиальную модификацию. То есть синтезировать на основе существующего «не приведенного» алгоритма новый, который будет по сложности не хуже исходного.
Теорема 1 Для любого алгоритма постоянной сложности А с областью определения КА(М ы) существует (может быть сконструирован) приведенный алгоритм постоянной сложности А с той же областью определения КА(М ы), для которого
справедливо неравенство и (Л )< и (л).
Доказательство: проведем путем построения искомого приведенного алгоритма. Если алгоритм А является приведенным (его сложность является корректной), тогда определим алгоритм А = А. Область определения алгоритма А, очевидно, совпадает с областью определения алгоритма А.
Пусть А не является приведенным алгоритмом. То есть это алгоритм постоянной сложности иА (М, N) с областью определения КА(М ы), у которого для некоторых пар (М, N) нарушается соотношение (8). Пусть на основании этого алгоритма А формируется новый приведенный алгоритм А с областью определения КА(М,ы) и со сложностью
ил (М, N), которая будет определена в процессе доказательства.
Обозначим алгоритм А как А0 , то есть:
Л0 = Л , ил0 (М, N)= иА (М, N),
КА0 (М,N) = КЛ(М,N) .
Построим алгоритм А1 с такой же областью определения КА1(М,ы ) = КА0 (М,ы) и со сложностью иА1 (М, N). Для этого по функции сложности
и, (М,N) определим любую пару (М,N),
в кото-
рых происходит нарушение условия корректности сложности (8). Обозначим эту пару (М0, N0). Тогда для всех пар, для которых справедливо условие
(М,N)е Ка(м,м) л (М,N) * (М0,N0), определим действие алгоритма А1 как выполнения алгоритма А0. Для пары (М, N)=(М0, N0) устано-
вим, какое именно из неравенств соотношения (9) нарушено.
Если нарушено первое неравенство соотношения (9) вида:
и
л0 (М 0, N 0 )<
шт
Сил0 (т, N0 -(0 - т)) +
т=1,М-2
, N-(М0-т) )кА(М м) (0-m,N0-т)кА(М ,N)
V иА0
следовательно, такое что
существует
(М0 - т,N0 - т) + ^
М (0 < М < М0)
и,, (М, N0 -(М0 - М))+ (0 - М, N 0 - М =
¿0
^ил0 (т,N0 -(М0 - т)) +
т=1,М-2
(m,N-(М-т))Кл(М ,N) (М -m,N-т )ка(м ,N)
V иЛ0
((0 - т, Ы0 - т) + ^
add
для которого выполняется строгое неравенство
'V
(М0, N0 ) > и,, (М, N0 - (М0 - М))+ + и
( 0
- М, N 0 -
М)+^аdd.
Тогда в алгоритме А1 при решении класса задач с параметрами
(М 0, N0 ) производится разбиение ИХ длины М0 на два сегмента размерами М и М0 - М . И решение исходной задач 2 с параметрами (М0, N13) заменяется решением двух подзадач:
• подзадачи 21 с параметрами (, N) и
• подзадачи 22 с параметрами ((0 - М, N0). для которых поведение алгоритма А1 определено и совпадает с поведением алгоритма А0. Разделение на подзадачи 21 и 22 правомерно, поскольку длина «полезной» части выходных сигналов в обеих задачах совпадает с длиной «полезной» части выходного сигнала исходной задачи 2: М0 = (0 - М)+М .
Входной сигнал длины N13 для задач 21 и 22 также следует преобразовать, взяв первые N0 - М0 + М отсчетов входного сигнала при решении задачи 21 и, соответственно, последние N0 + М отсчетов входного сигнала при решении задачи 22. Выходные сигналы (результаты решения) задач 21 и 22 суммируются поэлементно с нулевого отсчета до последнего. Полученный в результате поэлементного сложения сигнал - результат свертки для алгоритма А1.
Учитывая, что длины «полезной» части выходных сигналов для задач 2, 21 и 22 совпадают, величины удельной сложности можно просто складывать. Следовательно, сложность алгоритма А 1 для задачи с параметрами (М 0, ^) составляет величину
иА1 (М0, N0 ) = иА1 (М, N0 -(М0 - М))+
+ и^ (0 - М, N0 - М ,
где последнее слагаемое отвечает за одну операцию поэлементного сложения отсчетов двух сигналов - результатов сверток задач Ъ1 и Ъ2. Следовательно, после такого преобразования выражение для
сложности u
Al
(M, N )
в точке
(м0, N0) будет
удов-
летворять условию корректности сложности.
Если нарушено второе неравенство соотношения (9) вида:
Ч)
(M0,N0)•((0 -M0 +1)<
min
m=0,1,2... n=0,1,2,...
((M 0 +m, N 0 +m+n ))a(m, N
uA0 (м0 + m,N0 + m + n)• • ( 0 - M0 + n +1)
следовательно, также существует пара
{fi, n)6Ka(m,N)
(=м0 + m, n = n0 + n + mm, m > 0, ~ > 0),
такая, что
u(M~, N )-(N - M+1)=
min
m=0,1,2... n=0,1,2,...
((M 0 + m, N 0 + m+n) )a(M ,N]
( 0 + m, N0 + m + n) •((0 - M 0 + n +1)
для которой справедливо строгое неравенство
и(М0,N0)'((0 -М0 +1)> и(А/,N)'(Л~ -М +1). (11)
Тогда в алгоритме А1 при решении класса задач Ъ с параметрами (М0, N0) производится дополнение ИХ и входного сигнала (нулями) до длин М > М0, N > N0 и производится решение задачи с параметрами (М N). Такая замена справедлива, поскольку «полезная» область обработки в обоих случаях составляет
• для исходной задачи с параметрами (М0, N0): N0 - М0 +1, для преобразованной задачи с параметрами
(M 0, N 0):
N - M +1 =
= (0 + n + m)-(M0 + m)+1 = = N0 - M0 +1 + ~
То есть область выходных отсчетов преобразованной задачи с параметрами (М0, N0) в качестве подобласти содержит требуемые выходные отсчеты исходной задачи с параметрами (М0, N0).
Сложность алгоритма A1 для пары (M 0, N 0 ) 6 ^a(m , n ) удовлетворяет соотношению
A1
(м0,N0) = UA1 N)•( ^ + 1)) < UA0 (м0,N0)
' ((0 -М0 + 1)^
в силу справедливости неравенства (11).
Если нарушено третье неравенство соотношения (9), поступаем аналогично первым двум случаям.
Если нарушены все неравенства в соотношении ((9), тогда действие А1 определяется исходя из того, какая из коррекций даст наименьшее значение сложности в точке (М 0, N 0).
Сложность полученного на 1-ом шаге алгоритма А1 (, = 1,2,...) проверяется на удовлетворение условию корректности сложности (8). Если условие выполняется, тогда текущий алгоритм А1 - искомый, и полагается А = А1. Осталось доказать, что существует некоторый шаг I, когда это условие выполниться, то есть когда итерационный процесс завершиться.
Доказательство того, что итерационный процесс перехода от алгоритма А1-1 к алгоритму А1 завершится (, = 1,2,...) .
Построение алгоритма А, на основе алгоритма А1-1 приводит к тому, что сложности полученного на 1-ом шаге алгоритма справедливо неравенство: (М ЛГ)= иА,-1 (М, N ), (М, N )ф(М, -„ N-!), (12) (М'N)< иА1 -! (М,N), (М,N) = (М,-„N. х) (12)
"Ai
или
V(M, N )eKa^M ,N)
uAl (M,N)< uAl-1 (M,N)< ... (13)
< uA0 (M, N) = ua (M, N).
Введем в рассмотрение числовую последовательность {i }l=01 , каждый элемент которой определяется следующим образом:
si = X uAl (M, N).
(M, N )eXA(M, N)
В силу неотрицательности значений функции сложности u Al (M, N ), элементы последовательности {sl}=01 является также неотрицательными
числами (ограничены снизу). Кроме того, с учетом справедливости неравенства (12), имеем:
s0 > s1 > s2 > s3 > ... , (14)
то есть последовательность {sl}=01 - строго убывающая.
По теореме Вейерштрасса [27], любая убывающая ограниченная снизу последовательность имеет предел, то есть
3 к > 0 Vt > 0 : sk+t = sk .
Последнее соотношение означает, в частности, что модификации сложности полученного алгоритма Лк (то есть модификации величин иАк (М, N)
при построении алгоритма Лк) больше не производятся. Такое может произойти, только если функция сложности иЛк (М, N ) удовлетворяет ограничениям
(8), потому что в противном случае значения сложности иАк (М, N ) были бы уменьшены и, следовательно, была бы уменьшена величина . Обозначим полученный алгоритм А = Ак .
Таким образом доказано, что алгоритм Л удовлетворяет условию (8), а это означает, что полученный алгоритм постоянной сложности - приведенный. Кроме того, в силу (13) справедливо:
V(M, N )£К
а(м N)
и А (М, N ) = иАк (М, N) < иА (М, N),
что для алгоритма постоянной сложности, в силу определения 16 и предложения 5, эквивалентно выполнению искомого неравенства и (Л )< и (л), что и требовалось доказать.
■
В случае если А - исходный алгоритм постоянной сложности , а А - соответствующий ему приведенный алгоритм, тогда будем говорить, что А построен на основе (построен из) А и обозначать Л ^ Л . Факт «наследования» области определе-
и(М, N)
ния приведенным алгоритмом, обозначенный в теореме, обозначаем далее:
A ^ A ^ К:
u (м ,N)
а(м ,n ) = ка(м ,n ).
Следствие 2. (Теоремы 1) Пусть Л ^ Л . То-
и(М, N)
гда справедливо соотношение (15) или ему эквивалентное (15'):
У (М,N)е К,(М,N) и,(м,и,(М,(15)
У 2 еКА и (А (2 ))< и (л(2)). (15')
Очевидными также являются следующее предложение и его следствие.
Предложение 10. Пусть Л - приведенный алгоритм постоянной сложности и Л ^ Л.
и(М, N)
Тогда А = А .
Следствие 3. (Предложения 10) Пусть А - приведенный алгоритм постоянной сложности и
Л ^ Л . Тогда и (Л )= и (л)
и(М, N) У ' Х '
Лемма 1 (о неподвижной точке). Пусть
Ли(М^ )Л КА(М, N) = КА (М,Ы) " КА(М,Ы). Тогда:
з(М, N)е Ка(м,N): и, (М, N) = и, (М, N).
Доказательство в целях сокращения изложения не приводится.
Для двух приведенных алгоритмов, построенных из разных алгоритмов постоянной сложности, справедлива
Лемма 2. Пусть
Л1 ^ Л1, Л2 ^ Л2, КА1 сК,2
1 и(М,Ы) 1 2 и(М,N) 2 А1 - А2
и У (М, N)е Ка(мN) и,1 (М, N)< и,2 (М, N). Тогда
У (М, N) е Кл(м,N) и,1 (М, N) < и,2 (М, N).
Доказательство в целях сокращения изложения не приводится.
2.3. Компетентный алгоритм над множеством алгоритмов постоянной сложности
Определение 27. Компетентным алгоритмом над множеством {А} алгоритмов постоянной
сложности называется алгоритм Л® г {А} с об-
ластью определения К
A®(M, N )= UK а(м, N) v ' ае{а}
котором V (м , N) £ К ^. . решение любой задачи Z £ К ф с параметрами (M, N ) осуществляется наилучшим алгоритмом А* (Z) £ {а} :
(M, N) £ К *, u * (M, N )= min uA (M, N).
v ' а (м,n) а a£{a} av '
Как следует из определения, компетентный алгоритм строится таким образом, что для любой задачи (1) с параметрами (M, N) он использует для решения наилучший алгоритм из доступного множества {а}. При такой стратегии формирования компетентного алгоритма, очевидно, справедливы следующие два предложения.
Предложение 11. Компетентный алгоритм Аф над множеством алгоритмов постоянной сложности {А} является алгоритмом постоянной сложности.
Доказательство: непосредственно следует из определения компетентного алгоритма.
■
Предложение 12. Пусть {а} - множество алгоЛ®
ритмов постоянной сложности, и A - компетентный алгоритм над этим множеством с областью определения К ®. .. Тогда для
А (M, N)
V (М,N)еК
A®(M, N)
компетентный алгоритм
л®
А является наилучшим алгоритмом множества алгоритмов {4}и {4®}, при этом справедливы следующие соотношения (16)-(17) и им эквивалентные (16')-(17'):
V 2 е УКа V А(2)е{(2)}и {4®}
Ае{А} (16)
и (а® (2 ))< и (А(2 )),
У(М, N) е К а®
Л®(М, N)
V A : A е{А}л(м,N)еКл(м^) u e(M, N )< uA (M, N),
(16')
V Z е U^A и(a®(z)) = niin ¡ (a(z )), (17)
Ae{A¡
V (м,N)eN ®
Ae{(Z)}
A
A®(M, N)
® (М, N ) =
min u (М, N).
A: Ае{л}л(М , N )еКл(м ,N)}
(17')
Доказательство: непосредственно следует из определения компетентного алгоритма.
■
По аналогии с последним предложением может быть доказано, что компетентный алгоритм для любой задачи является эффективным алгоритмом над множеством {л} алгоритмов постоянной сложности, но не является строго эффективным.
Непосредственным и очевидным следствием Предложения 11 и Теоремы 1 является тот факт, что на основе компетентного алгоритма может быть построен приведенный компетентный алгоритм. При этом, исходный компетентный алгоритм может быть построен как над множеством «не приведенных» алгоритмов постоянной сложности, так и над соответствующим множеством приведенных алгоритмов. Следующая лемма устанавливает связь между приведенными компетентными алгоритмами над этими двумя множествами.
Лемма 3. Пусть }eI - множество из |/| алгоритмов постоянной сложности, из которых построено множество — }eI приведенных алгоритмов постоянной сложности: A ^ Л (iе I). Пусть A® - приведенный
u(M ,N)
компетентный алгоритм над множеством }eI
с областью определения К-е , а A® - приве-
Л1
денный компетентный алгоритм над множеством {Л- }ei с областью определения К - 9 . Тогда вы-
Кл® = Кл9 Ил9), (18)
vz екл9 u(a9(z))= u(a®(z)). (19)
Доказательство:
Часть 1. Доказываем соотношение (18). Для доказательства достаточно показать, что при выполнении условий леммы справедливо соотношение, эквивалентное (18):
КЛ®(М, N) КЛ®(М, N).
(18')
Пусть алгоритмы постоянной сложности исходного множества {Д }ге/ имеют следующее множество областей определения )}Ае{А}. Тогда, в соответствие с Теоремой 1:
У ' е 1 ^М^)А — К4 (М,N) = КАг (М,N)
В соответствие с определением 27 компетентного алгоритма, его область определения задается как объединение областей определений частных алгоритмов. Тогда для компетентного алгоритма А® над множеством {Д }е1 получаем:
К
Л® (М,N
= U КЛ- (м
N)
iel
л®
а для компетентного алгоритма A2 над множеством
приведенных алгоритмов
{A }eI
имеем:
К
= UKA,- (М, N) = UK A- (М:
A® (М, N) Ai (М
2 v ' ' iel iel
N)
Из последних двух соотношений справедливо равенство областей определений для компетентных алгоритмов:
К
Л®(М, N) КЛ®(М, N).
(20)
Далее, из алгоритмов А1® и А2® строятся приве-
Г-р
денные алгоритмы, соответственно, А1 и А2 . Тогда, в соответствие с Теоремой 1, справедливо:
А ® ^ А ®
и(М,N)
A9 V Л® ^ К К
л® „ А ®
Л®(м, N) КЛ®(М, N)
Л2® ^ A® ^ К
u(M,N)
2
'Л®(м,N) КЛ®(М,N).
(21)
И соотношение (18') и эквивалентное ему искомое соотношение (18) следуют непосредственно из (20) и (21).
Часть 2. Доказываем соотношение (19). Пусть А1® и А2® - компетентные алгоритмы над
множествами
{л- }
iel
A ¡L
соответственно.
Пусть также Л® ^ A® и A2® ^ Л2® .
u (m,N ) u(M, N)
Часть 2а. Докажем вначале, что
V (М,N)е К
полняются соотношения:
Л®(М ,N)
,(м, N)> uA® (М, N) . (22)
u
и
В соответствии с Теоремой 1 справедливо:
V i 6 I V (М, N)еКЛ. (M,N) uAi (M, N)> u^ (M, N),
откуда
V(M, N)б U xa. (m,n ) i6l
min uA. (M, N ) > min u -a (M, N ).
i6i 1 i6i Ai
Далее, в соответствие с выражением (17) Предложения 12, выражения, стоящие в неравенстве -это значения сложности компетентных алгоритмов с одинаковой областью определения (по первой части
доказательства) U (М,N) = XA® (М Nу' поэтомУ
V (М,N)бХ
А®(М, N) А
A®(M, N)
ua® (М,N)>ие(М,N).
Последнее неравенство и данные Л® ^ Л® и
и(М, N)
Л® ^ Л® приводят, на основании Леммы 2, к
и(М, N)
соотношению (22). Часть 2а завершена. Часть 2б. Докажем теперь, что
V (М,N)бКА0
А® (М,N) uA® (М,N)< u30 (М,N)
(23)
В соответствие с Предложением 12, для компетентного алгоритма справедливо соотношение (16'):
У (М,N)еК ®( .
у ' А® (М,N)
У Л : л е{А}л(М,N)еКл(мЛ) и,® (М, N)< иА (М, N).
Тогда, в соответствии с Леммой 2, если
Л® ^ Л® и А ^ Л, (( еI),
u(M, N) u(M, N)
V(M,N)бХ ®(
v ' А® (М,N)
V А : А б{}6I л(м,N)бХ
, имеем
Ai (М, N)
uA® (М, N)< ua (м, N),
что эквивалентно
V (М,N)бХА®
u_® (М, N)<
А® (М,N) 6??t
u¡ (М,N) = u ® (М,N),
где А2 - компетентный алгоритм над множеством приведенных алгоритмов постоянной сложности А }е1. Далее на основании сравниваемых в этом
неравенстве алгоритмов Л® и Л® формируются
приведенные
алгоритмы:
А, ^ А, , А2 ^ А2 . Тогда, в соответствие с
u(M,N) u(M,N)
Леммой 2 и подобности алгоритмов А® = А®
(предложение 10 и следствие 3), получаем продолжение в виде:
V (М,N)бХ
А® (М,N)
uA® (М,N)< uA® (М,N),
что тождественно неравенству (23).
Далее, поскольку нестрогие неравенства (23) и (22) должны выполняться совместно, следовательно, справедливо равенство:
V (М,N)бХ
А® (М,N)
uA® (М,N) = uA® (М,N),
или ему эквивалентное
V z 6XA® и (a® (z ))= и (a® (z)),
которое и требовалось доказать.
Компетентный алгоритм обладает удобным свойством, отражаемым леммой, приведенной после следующего вспомогательного определения. 1
Определение 28. Покрытием интервала О = [а, Ь] называется множество непустых дискретных интервалов {о* }=0 вида Б* = ^, df ], для которых выполняются условия:
d1 > d0, Ds с D, Ds * Dj
(24)
при s * у, 5, у = 0, £ -1; и О* = О
Очевидно, покрытие задается не однозначно.
Лемма 4. Пусть А - приведенный алгоритм
постоянной сложности со и а (М, N). Тогда для любого покрытия {о*} области О = [0,М -1] справедливо:
сложностью
Г1
s )s=0
i (м, N )<
S-1
< Xua(|,N -M + |Ds|)+(S- 1)add.
(25)
s=0
Доказательство:
Производится непосредственной проверкой справедливости неравенства (25).
■
Лемма 5. Пусть {А, }(е1 - множество алгоритмов постоянной сложности {иА( (М, N)} . Пусть А® -
Равенство и неравенство двух интервалов Ds = [d0, dS ] и Dj = [d 0, di ] определяется следующим образом
(s * j):
Ds = D} » (d0s = d0 л dj = dj),
's = Dj
Ds * Dj » (d0s * d0; v df * d/ ).
■
u
приведенный компетентный алгоритм над множест-
вом
{Ai}
со сложностью
uA ® (м, N). Пусть зада-
'ieI A
(): {}=-0 ^1
на произвольная функция /(•): ^^=0 " . Тогда для
5 ^ I
любого покрытия {05 }-0 области Б = [0, М -1] справедливо:
и, ®(М, N )<
Л S-1
<Z u
s=0 S-1
uA®((I,N -M +
(S -1)
add
(26)
<Z uA(s) (|, N)+(S - i)^add.
Доказательство:
Доказываемое соотношение (26) состоит из двух неравенств. Второе неравенство
S-1
Zu A® ((|, N -м + |Ds\)+(S - 1)|add <
s=0
S-1
<ZuMs) ((si,N)+(S -1)1
(27)
add
является непосредственным следствием свойств компетентного (16') и приведенного (15) алгоритмов:
V (М,N)е К
A®(M, N)
V A: A е{А}л(М, N^^n ) uA® (М, N) < uA® (М, N) < uA (М, N) .
Первое неравенство (26), формулируемое в виде
uA ®(М, N )<
s-1 / \
Zu-A® (|,N -М + |D\)+(S - 1)add,
(28)
является следствием Леммы 4, поскольку А является приведенным алгоритмом постоянной сложности.
Объединяя доказанные неравенства (27) и (28) в одно, получаем искомое неравенство (26). Что и требовалось доказать.
■ Доказанные леммы 4-5 устанавливают следующий замечательный факт. При решении задачи вычисления свертки с параметрами (М, N) множеством алгоритмов постоянной сложности наименьшую сложность будет иметь приведенный компетентный алгоритм, решающий именно исходную задачу с параметрами (М, N). Причем попытка построения лучшего покрытия области определения ИХ (и соответствующих - лучших - алгоритмов) из рассматриваемого множества может только увеличить эту сложность.
3. Построение замыкания множества алгоритмов. Индуцированный алгоритм и основные теоремы о его эффективности
3.1. Модель алгоритмов СЯ. Построение замыкания по модели СЯ множества алгоритмов
Пусть решается задача 2 = 2(30,{х(и)}=-01) с априорной информацией 30 = ({//(и )}М-\ N, 3(х))). Введем в рассмотрение две конечных ИХ ки (к)}Й)-1 и {Ях (к)Ь-1, отсчеты которых удовлетворяют условию:
gh (0)* 0, gh (Kh -1)* 0,
(29)
Ях (0)ф 0, Ях К - 1)Ф 0.
Считаем, что длины Кп и Кх этих ИХ-к и собственно значения их отсчетов определяются некоторым образом по априорной информации о задаче
30. В частности, ИХ {ди (к)}КИ0-1 определяется значениями ИХ {/(и )М -1, а ИХ {х (к)}}=х01 определяется априорной информацией о сигнале 3х =(N, 3(х)).
Рассмотрим далее результаты линейного преобразования исходного сигнала х(и) и ИХ И(т) с использованием введенных ИХ-к, а именно сигналы: Ки-1
h (m) = Zgh (k)h(m - k), n = 0,M + Kh - 2,(30)
k=0
Kx -1 _
~(n)= Z gx (k)x(n - k), n = 0, N -1. (31)
k=0
Введенные сигналы { (к)}}К=И01 и {Ях(к)}К=х01: исходные и преобразованные сигналы и ИХ х(и),
и(т), ~(и), И (т) очевидным образом связаны со значениями выходного сигнала у (и) задачи 2 очевидным образом:
К/ 1 К х 1
I I Яи (к)Ях М)у(и - к -1) =
к=0 I=0
М-1~ = IИ (т)х(и - т)=
т=0
М-1 (Ки-1 V Кх -1 А
= I IЯи (к)и(т - к) IЯх ()х(и -т -1)
т=0 I к=0 Л I=0
n = М -1, N -1.
Определив, для удобства, обозначение
шт(Ки -1,?)
я(()= ^лОхМ - к),
к=тах(0,?-Кх)
(32)
t = 0, Kx + Kh - 2,
s=0
s=0
s=0
и учитывая выполнение условий (29), получим следующее выражение:
Кй + Кх-2
ё(0)у(п)+ Iё()у(п -г) =
г=1
М-1 (Кк-1 V Кх -1 Л
= I Iёй (к)й(т - к) Iёх ()х(п - т - 1)
т=0
к=0
г=0
п = М -1, N -1.
В силу соотношений (29) и (32), значение ё (0) = ёй (0)ёх (0) * 0, поэтому полученное выражение может быть переписано в виде, который задает альтернативное представление для выражения (1):
Кй + Кх-2
у(п)= I~(г)у(п - г)+
г=1
М-1
( Кй-1
Л(Кх -1
I I~й (к)й(т - к) Iёх ()х(п - т - 1)
т=0 V к=0
г=0
(33)
п = 0, N -1.
Замена диапазона выходного сигнала с
М -1, N -1 на 0, N -1 вызвана сменой интерпретации получаемых соотношений. В частности, соотношение, предшествующее (33), рассматривается как равенство. А соотношение (33) рассматривается как способ вычисления значений сигнала у(п) через его предшествующие значения. В последнем случае необходимо рассчитывать и значения сигнала у(п)
на интервале 0, М - 2 .
В выражении (33) приняты обозначения:
~(() = ё!, 1 = 1 Кй + Кх - 2,
~ (к ) =
ёй
(к)
,(0)'
к = 0, Кй -1,
~х (к) = ^гг, к = 0, Кх -1.
ёх (0) х
Из этих выражений, очевидно, следует: ёй (0) = ёх (0) = 1. Таким образом, далее без ограничений общности изложения удобно положить:
ёй (0) = ёх (0)= 1.
Тогда
ёй
(к) = ёй (к), к = 0, Кй -1,
~х (к ) = ёх (к), к = 0, Кх -1.
Примем во внимание, что априорная информация 30 = ({(п)}-1, ((,3(х))) о задаче 2 доступна задолго до момента ее решения (см. п. 1.1). Тогда вычисление выражения (30), расположенного в ПЧ соотношения (33) может быть произведено заблаговременно. Таким образом, вид ИХ й (да) известен до решения задачи 2.
Для дальнейшего изложения введем ряд определений.
Определение 29. Допустимым покрытием области определения О функции й (т), заданной на дискретном интервале О = [а, Ь], называется множество непустых дискретных интервалов {О* }=0 вида Б* = ^, ds+1], для которых выполняются условия:
ds+1 > ds, О* с О, О* * В}
при * * у, у = 0,5 -1; и О* с О
*=0,5-1
и У т е О \ и О* = 0.
(34)
(35)
Очевидно, что любое покрытие области определения О, введенное ранее определением 28, является допустимым. Однако не всякое допустимое покрытие является покрытием. Так же как и покрытие, допустимое покрытие задается не однозначно. Поэтому вводятся следующие два определения.
Определение 30. Два допустимых покрытия
О }=о и О2 }=0 области определения О функции
й (т ) , заданной на дискретном интервале О = [а, Ь] , называются различными если условие:
(5 * £2) V (5 = 52 лЗ * е [0,5 -1]:
: V г е[0, £2 -1] О] * О]).
Определение 31. Множеством допустимых покрытий области определения Б функции й (т), заданной на дискретном интервале О = [а,Ь], называется объединение всех различных допустимых покрытий.
В силу конечности области определения О ИХ й (т), заданной на дискретном интервале, множество допустимых покрытий этой области определения также конечно.
Пусть, далее, для ИХ й (т), заданной выражением (30) определено некоторое допустимое покрытие {О, ^^ ее области определения. Тогда справедливо следующее представление для ИХ:
~(т )= I ~(т)
(36)
где функции {{ (т)} =^ определены таким образом, чтобы обеспечить выполнение равенства (36).
$=0,5-1
+
*=0
Например:
Vs = 0, S -1 ()
~ (m) =
h (m)
jöt: m e Dt, t = 0, S -1}
,m e Ds, (37)
~ (m) =
0, m g D5.
Другой возможный способ определения:
Vs = 0, S -1
h(m), m e Д л
5 = arg min ((:m e Dt),
t=0,S-1
0, иначе.
С учетом представления (36) разложения выражение (33) перепишется в окончательном виде:
Kh + Kx-2
Яп)= Z ~(t )y(n -1) +
t=1
S-1 ~ f Kx-1 А
+ Z Z h (m) Z ~x (l)x(n - m - /)
D5 V 1=0 /
s=0 meDs
(38)
n = 0, Ж -1.
Первое слагаемое полученного выражения при Kh = Kx = 1 полагается равным нулю:
Kh+Kx-2 0
Z ~(Mn -1)=Z ~(Mn -1)=0.
t=1 t=1
Модель алгоритма «CR»
Выражение (38) обосновывает принцип построения замыкания множества (быстрых) алгоритмов вычисления свертки (1). Для формализации понятия замыкания опишем вначале модель алгоритма CR вычисления свертки (1), порождаемую полученным выражением (38). Наименование модели «CR» возникает из принципа построения этой модели, связанным с редукцией свертки (Convolution Reduction) на свертки меньшей длинны.
Алгоритм «CR»
Шаг 1. Предобработка входного сигнала. На этом шаге производится вычисление свертки входного
x(n) и ИХ {gx (k )}=x0-1 по формуле (31):
сигнала xln I и J
~(n)= Z~x (k)x(n - k), n = 0, N -1. (31')
k=0
Шаг 2. Для каждого дискретного интервала Ds = [d,S, d1 ] из множества интервалов в выбранном
допустимом покрытии {Ds }}=0 ИХ h (m) производится вычисление S сверток по всем интервалам допустимого покрытия {Ds }}=0:
ys (n) = X hs (m) X(n- m)
(39)
(n = 0, N-1, s = 0, S-1). Шаг 3. Суммирование результатов сверток (39):
~ (n)=Z ~s (n).
(40)
Шаг 4. Постобработка результата. На последнем шаге производится рекурсивное вычисление результата решения задачи Ъ:
Ки + Кх-2
у(и) = I ~М)у(и - /) + ~ (и), и = 0, N -1. (41)
í=1
Модель алгоритма - Конец
Параметры модели алгоритма «СЯ»
Приведенная модель алгоритма «СЯ», как и выражение (38), отражает лишь принцип вычисления свертки на основании этого выражения. Конкретный алгоритм вычисления свертки (1) определен, если заданы параметры, конкретизирующие все операции в приведенной модели.
А именно, следует определить следующие параметры:
(а) размер Ки ИХ {яи (к)}К=0-1 предобработки для КИХ {и(и Е-1;
Kx-1 хучк=0
(b) размер Kx ИХ предобработки {gx (к)}
входного сигнала hn)}!-1;
(c) число S интервалов допустимого покрытия {Ds}ss:l области определения ИХ h (m);
(d) отсчеты ИХ {gh (к)}}-1 ( (0) = 1);
(e) отсчеты ИХ {gx (к)}x0-1 ((0) = 1);
(f) границы интервалов Ds = [d0, d1s ] в допустимом покрытии {Ds }s=0 области определения ИХ
h (m);
(g) способ определения множества функций {~s (m)jS=0, заданных на соответствующих интервалах допустимого покрытия {Ds £=-0, и
представляющих функцию h (m) в виде разложения (36);
A
(h) алгоритм prep, вычисляющий свертку в выражении (31'), то есть решающий задачу
Zprep = Z (^0 e , {x(n)}и=0 x )
с начальной
=fex (k )ЖХ0-1, ((Kx, 3(x)))
(42)
информацией
0 \1&х^/>к=0 1 (х)// (входной сигнал дополняется нулями до длины N + Кх);
(1) набор из алгоритмов Д }=0, вычисляющих
сверток в выражении (39), то есть решающих 5 задач
2Х , 2(30,{~(иЖ+Кх-1) (^ = 05-1) (43)
s=0
K, -1
с различными начальными информациями вида:
{ fa} , (( + Kx, ))! .
Очевидно, что множество параметров может быть разделено на две принципиально различные группы:
• числовые параметры (a)-(g) и
• параметры - алгоритмы (h)-(i). Ограничения на числовые параметры (a)-(g) возникают только из условий вывода алгоритма. Например, необходимо выполнение условий (29), также существуют ограничения на допустимое покрытие {Ds Ifjo области определения ИХ h (да) в виде
соотношений (34)-(35). Наконец, выбор множества функций в разложении (36) также не произволен.
Определение 32. Подмножество числовых значений, которые могут принимать числовые параметры (a)-(g) в рамках модели CR, называются
допустимыми значениями числовых параметров модели CR.
В отличие от ограничений на числовые параметры, ограничения на параметры - алгоритмы (h)-(i) определяются внешними условиями, то есть способностью человека или машины (ПЭВМ) предоставить в распоряжение алгоритма модели CR конкретные алгоритмы вычисления сверток (31') и (32).
Определение 33. Порядком модели CR называется тройка положительных целых чисел
((h, Kx, S).
В дальнейшем считаем, что для порядков модели CR, то есть для троек чисел ((, Kx, S), введено упорядочивание. Упорядочивание производится по значениям числового вектора (Kh, Kx, S) в лексикографическом смысле. Например: (2,7,6)^ (8,1,6), (4,1,1) >- (3,7,7).
Сложность алгоритмов модели CR Относительно явного выражения для сложности следует отметить, что приведенное выше описание модели однозначно определяет сложность любого алгоритма Acr модели CR, используемого для вычисления свертки (1) с использованием выражения (38).
А именно, первый шаг алгоритма модели, на котором производится вычисление свертки по выражению (31'), имеет сложность
Uadd iACtep _1 ) = Uadd ((Aprep (z prep )),
TJ (ACR )=U (A ( ))
mulX^Step _1 / mulx^prepx^ prep Jp
определяемую как сложность решения задачи 7prep (42) с начальной информацией
({x (k^ (( + Kx , 3(x))) выбранным
алго-
Второй шаг алгоритма модели, на котором производится вычисление 5 сверток вида (39), имеет сложность
Uadd (ACR 2 )=IUadd (As (7S )),
s=0
Umul ((AStep _ 2 ) = I Umul ((s (7s II
определяемую как сложность решения S задач с начальными
{2* }£=0 с начальными информациями
30 = ({~ ^^еО* , (N + Кх, %})) выбранными алгоритмами Л* (* = 0,5 -1).
Третий шаг алгоритма, на котором производится вычисление выражения (40), очевидно, имеет сложность
Ua
iACtep _3 )= S 1 Umul iACtep _3 )
= o,
поскольку требует только операций сложения.
Наконец, четвертый шаг, на котором производится рекурсивное вычисление результата решения задачи 2 на основании выражения (34), имеет сложность
Uadd (ЛСгер _4 ) = ити1 (лСгер _4 ) = Кй + Кх - 2 .
Суммирую соответствующие выражения сложности, получаем итоговое выражение для сложности произвольного алгоритма модели СЯ
Uadd (Л'СК ) = иШ (Лргер ((ргер )) +
add \prep \
+ I Uadd ( (7s))+Kh + Kx - 2 + (( -1),
s=0
TJ (Acr ) = TJ (A (7 ))+
mul^J mulY^prepY'' prep //
S-1
+ IUmul(As(7s)) + Kh + Kx -2.
S-1
(44)
*=0
С учетом относительной сложности реализаций операций сложения и умножения, получаем выражение:
U
S-1
I
s=0
(acr )
^addUadd ((Aprep ((prep ^ + + + ^mulUmul ((Aprep ((prep ^
+ I[addUadd (As (7s )) + ImuUmul ( ((J)] +
+=( + Kx - 2)( add
Поскольку в первых двух строках этой формулы расположены выражения для сложностей алгоритмов Л и {А*, получаем окончательно:
U(acr )= U(Aprep (7prep )) + "S-1
IU ( (7s ))+^dd (S - 1)
s=0
(45)
ритмом A
prep
-(Kh + Kx -2)
s=0
Очевидно, выражения для сложности (44)- (45) определены также с точностью до числовых параметров модели и параметров-алгоритмов Aprep и
{As If- . Только после указания всех этих параметров и алгоритм модели CR, и выражения для его сложности приобретают окончательный вид.
Пусть, далее, задано некоторое множество {a} алгоритмов решения различных задач из множества {7} задач вычисления сверток вида (1).
Определение 34. Замыканием по модели CR порядка ((,Kx,S) множества алгоритмов {а} на задаче 7 (далее - просто замыканием CR ((, Kx, S)) называется множество алгоритмов модели CR, обозначаемое [{A}]cr ((h Kx S), с заданными Kh, Kx, S и допустимыми значениями других числовых параметров и алгоритмами из {а} на первом и втором шагах модели CR, для
которых задачи 7prep (42) и 7s (s = 0, S -1) из
(43) попадают в область определения соответствующих алгоритмов:
Aprep 6 ¡A(7prep )}E {aA},
As 6{A(7s)}c{} (s = )
Определение 35. Замыканием по модели CR множества алгоритмов {а} на задаче 7 (далее -просто замыканием) называется множество алгоритмов модели CR, обозначаемое [{а}] , следующего вида:
[{A}]= [{A}]cR((h
Kx ,S )
Кй =1,М-1 Кх =\,Ы-1 С=1,2,...
Предложение 13. Для алгоритмов из замыкания [{А Ист (111) область допустимых покрытий удовлетворяет условию О0 = О = [0,М -1].
Доказательство: следует непосредственно из определения допустимого покрытия (34)-(35) и условия (2) на ИХ {й(п: й(0)* 0, й(М -1)* 0.
■
Предложение 14.
Пусть Л}с {А}. Тогда [{лЦс [{л}].
Доказательство: производится очевидным образом, путем указания для каждого конкретного алгоритма из замыкания тождественного
ему алгоритма из [{А}] с теми же числовыми параметрами и теми же алгоритмами из {л}с {А} для расчета сверток.
Предложение 15. Пусть дано множество алгоритмов {а} и для конкретной задачи 7 построено замыкание этого множества по модели CR [{а}]cr(1,1,1). Тогда:
VA 6 {A} 3 Acr 6 [{A}]cr(1,1,1) : ACR = A л
VAcr 6 [{a}]cr(1,1,1) 3 A 6 {A}: A = ACR л min U (A (7 ))= min U (acr (7))
A6{A(7)}C{A} V V " ACR 6[{A}] V П
Доказательство: производится очевидным образом, путем указания для каждого конкретного алгоритма из {а} подобного ему алгоритма из
[{a}]cr(1,1,1). и наоборот.
■
Следствие 4. (Предложения 15) Между множествами {а} и [{A}]CR(1 j j) существует взаимнооднозначное соответствие.
3.2. Замыкание по модели CR основных классов алгоритмов. Подклассы алгоритмов модели CR Замыкание по модели CR может быть построено для произвольного множества алгоритмов. Однако, учитывая, что для решения задачи вычисления свертки существуют три основных класса алгоритмов вычисления свертки (п.1.5), особый интерес представляют замыкания множеств алгоритмов именно этих классов. Следует особо отметить, что алгоритмы из замыкания в общем случае отличаются от алгоритмов основных классов. Таким образом, алгоритмы замыкания формируют другие классы алгоритмов вычисления свертки, которые могут не попадать ни в один из основных классов. Для удобства будем именовать эти новые классы как подклассы алгоритмов модели CR. Все множество подклассов алгоритмов модели CR сведено в таблицу 1.
Следует также отметить, что некоторые подклассы алгоритмов можно считать известными в ЦОС, поскольку в литературе существуют эвристически построенные одиночные алгоритмы или множества алгоритмов с вычислительной структурой, подобной структуре алгоритмов из некоторого подкласса. Однако другие подклассы алгоритмов являются действительно новыми и в литературе ранее не рассматривались. Ниже даны комментарии относительно того, какие подклассы алгоритмов могут считаться относительно известными (выделены в таблице серым цветом), а какие - действительно новыми.
Разбор подклассов алгоритмов начнем с первой колонки таблицы 1.3.1, то есть с алгоритмов из замыкания порядка (Kh, Kx, S): Kh = Kx = S = 1. Алгоритмы этих подклассов, в соответствие с предложением 15 и следствием 4, подобны алгоритмам из основных подклассов алгоритмов вычисления свертки. То есть являются известными.
■
Таблица 1. Подклассы алгоритмов модели СЯ [{А}]ся(ай К 5)
Ки, Ки, 5 )
{А}
Ки = Кх = 5 = 1
Ки = Кх = 1, 5 > 1
Ки = 5 = 1,
Кх > 1 Кх = 1, Ки > 1, 5 > Ки > 1, Кх > 1, 5 > 1
алгоритмы прямого вычисления свертки:
{дбс }
алгоритмы вычисления свертки на основе ДОП:
Ас }
алгоритмы рекурсивного вычисления свертки:
К, }
основные классы алгоритмов вычисления свертки постоянной сложности:
{дбс }и {а,с }
основные классы алгоритмов вычисления свертки:
{Дбс }и {а,с }и {а,с }
алгоритмы прямого вычисления свертки:
{Дбс }
алгоритмы вычисления свертки на основе ДОП:
{А,С }
алгоритмы рекурсивного вычисления свертки:
К, }
основные классы алгоритмов вычисления свертки постоянной сложности:
{абс }и {А,С }
основные классы алгоритмов вычисления свертки:
{абс }и {А,С }и {А,С }
алгоритмы прямого вычисления свертки с пространственной декомпозицией ИХ
алгоритмы вычисления свертки на основе ДОП с пространственной декомпозицией ИХ
алгоритмы параллельно -рекурсивного вычисления свертки
основные классы алгоритмов вычисления свертки постоянной
сложности с пространственной декомпозицией ИХ
параллельные алгоритмы вычисления свертки
алгоритмы прямого вычисления свертки с пред-и постобработкой данных {Ая, }
алгоритмы вычисления свертки на основе ДОП
с пред-и постобработкой данных
алгоритм последовательного
рекурсивного вычисления свертки
основные классы алгоритмов вычисления свертки постоянной сложности с пред- и постобработкой данных
основные классы алгоритмов вычисления
свертки с пред- и постобработкой данных
алгоритмы параллельно-рекурсивного вычисления
свертки алгоритмы спектрально-рекурсивного вычисления
свертки алгоритмы итеративно-рекурсивного вычисления
свертки алгоритмы обобщенно-спектрально-рекурсивного вычисления
свертки обобщенные рекурсивные алгоритмы вычисления свертки
алгоритмы рекурсивного вычисления свертки с предобработкой
алгоритмы спектрально-рекурсивного вычисления свертки с
предобработкой алгоритмы итеративно-
рекурсивного вычисления свертки с предобработкой
алгоритмы обобщенно-спектрально-рекурсивного вычисления свертки с предобработкой
обобщенные рекурсивные алгоритмы вычисления свертки с предобработкой
Алгоритмы из замыкания порядка (Ки, Кх, 5): Кк = Кх =1, 5 > 1 отличаются от алгоритмов модели СЯ(1,1,1) только тем, что ИХ {и(и)} представлена в виде разложения (36).
Подобное разложение может производиться по одной из двух причин. Во-первых, по причине наличия большого количества «нулевых» отсчетов в ИХ. Такая модификация алгоритмов свертки известна и используется в работах по ЦОС [9, 17, 31, 39, 62] для снижения сложности, она не требует каких-либо более серьезных обоснований. Второй причиной, которая служит объяснением такого способа вычисления свертки, является возможность распараллеливания процесса вычислений. Здесь особо хочется отметить подкласс алгоритмов параллельно-рекурсивного вычисления свертки. В этих алгоритмах ИХ представляется в виде набора рекурсивно реализуемых звеньев.
Публикации по тематике построения и использования таких алгоритмов имеются у различных авторов, включая автора настоящей работы [24-26, 33, 38, 40, 41, 43-47, 52, 55-62]: Л.П. Ярославский, В.В. Сергеев, Н.И. Глумов, В.В. Мясников, А.В. Чернов, М. Иа1ат1ап, М.Б. Ъакапа и др.. Таким образом, поскольку и первая, и вторая причины и соответствующие им алгоритмы рассматривались в литературе, считаем эти подклассы алгоритмов вычисления свертки также известными.
Алгоритмы из замыкания порядка (Ми, Кх, 5), где Ки = 5 = 1, Кх > 1, встречаются в литературе значительно реже, чем их рассмотренные предшественники. А именно, некоторые частные эвристические алгоритмы, которые соответствуют подклассам, выделенным в соответствующем столбце таблицы серым цветом, и именование которых включает оборот «с пред- и постобработкой данных», были рассмотрены в нескольких работах Ярославского Л.П. и Кобера В .И [9,17,53,54,62]. Алгоритмы указанных авторов использовали предварительное дифференцирование входных сигналов для установки в «0» большого числа значений обрабатываемого сигнала. Такая предобработка позволяла использовать ускоренные алгоритмы БПФ, которые были адаптированы к сигналам с редкими «полезными» значениями, рассмотренными, например, в работе [31] В.М. Чернова и П.В. Раудина. Автору данной работы не известны работы других авторов с примерами использования такого же подхода для рекурсивных фильтров, поэтому два подкласса алгоритмов в рассматриваемой колонке таблицы остались не выделенными.
Алгоритмы из замыкания порядков (Ми, Кх, 5), где Кх = 1, Ки > 1, 5 > 1 или Ки > 1, Кх > 1, 5 > 1, соответствующие последним двум столбцам таблицы 1.3.1, в явном виде в литературе не встречались. Из этих алгоритмов хотелось бы особо отметить подкласс алгоритмов спектрально- рекурсивного вычисления свертки. Указанное название не только
отражает способ вычисления свертки в алгоритмах этого подкласса, но также специально ассоциировано с названием «спектрально-рекуррентный», которые был введен для алгоритма фильтрации двумерного сигнала разделимой ИХ В.А. Сойфером и А.Г. Храмовым в работе [33], изложенной также в монографии [8].
В заключение настоящего раздела следует отметить, что, несмотря на конструктивный характер введенного понятия «замыкания алгоритмов», приведенная таблица используется в настоящей работе в основном для классификационных целей, давая определения для подклассов алгоритмов из соответствующих замыканий.
3.3. Основные теоремы об эффективности алгоритма, индуцированного априорной информацией задачи 2
Пусть решается задача Ъ с априорной информа-
цией 30:
2 = 2 (30,{х(и Г01)
({и(и )}М=-1, (А, 3(х)))
(46)
30 =
Определение 36 Алгоритм А3 (2 )е[{А}] называется алгоритмом, индуцированным априорной информацией 30 задачи (46) Ъ (далее - индуцированным алгоритмом), если алгоритм А3 (2) является наилучшим алгоритмом для задачи Ъ в замыкании [{а}] по модели СЯ и, кроме того, в замыкании [{а}] нет другого алгоритма меньше -го порядка со сложностью, равной сложности алгоритма А3 (2):
и (д3(2 ))=ш]7 (А(2»
„Кх ,5)
Л
Л
л А3(2)е[{4}]ся(Аи _ (А~и, Кх, (Аи, Кх, 5)
А(2иыГА ~ ~)и(А(2))> и((3(2^
А(2 М{А}]ся(Аи ,Кх ,5)
(47)
Теорема 2 Индуцированный алгоритм д3 е [{а}]ся(аи,Кх,5)Е[{а}] является строго эффективным над множеством {а} для задачи Ъ тогда и только тогда, когда (Ки > 1) V (Ки > 1) V (5 > 1).
Доказательство:
Достаточность: доказывается отдельно по каждому из неравенств в условии теоремы.
Вариант 1. Пусть А3 (2 )е[{А}] - индуцированный алгоритм (аргумент задачи Ъ ниже в доказательстве опускаем для краткости изложения), и выполняются неравенства: Ки > 1 и Кх > 1,5 > 1. Тогда, по определению индуцированного алгоритма:
U(а3)= min U(a(z)) = min U(a) =
^ ' A£[{A}] a^a^M^s)
Kh =J,2,■■■
K x =1,2,... S=1,2,...
= min U(A).
A~£[iA}]CR((h ,Kx,S) K~x=1,2,... S=1,2,...
В силу минимальности вектора (Kh, Kx, S) для индуцированного алгоритма, справедливо неравенство:
VKx, S U (а3)= min U (а)< Г ' A£[[A}}cR(Kh,~x,S) 7
Kx =1,2,... S =1,2,...
< min U (А) < min U (a).
-S£[ MIR, ks x ,S) A£ [ {a ^cr (1,1,1) Kx =1,2,...
S =1,2,...
В силу предложения 13, D0 = D и справедливо:
min U (A(Z )) =
AeUAf]CR(1,U)
= min U(A(Z)) = U(a*)'
Ae{A(Z)} V V '
(48)
где А - наилучший алгоритм в множестве алгоритмов решения задачи Z: А* £ {a(z)}с {а}.
Окончательно U (aj )< U{а* ), и по определению 19 алгоритм АJ £ [{а}] - строго эффективный над множеством {a{z)}с {а} для задачи Z.
Вариант 2. Пусть АJ £ [{а}] - индуцированный алгоритм, и выполняются неравенства: Kh = 1 и Kx > 1, S > 1.
Тогда по определению индуцированного алгоритма:
U(а3) = min U(А) = min U(а) =
v ' А£[{А}] w a£[{a}]cr((Kh,j~x,S) Kh=1,2,...
K x =1.2,. 5=1,2,...
min U(A).
ae[iA}CR(x5 )
В силу минимальности вектора (Kh, Kx, S) для
индуцированного алгоритма справедливо неравенство:
VS U (Aa)= min U (A)<
S=1,2,...
< min U (A) < min U (A)'
A^[{A}]CR(,,,,S) AE[{A}]CR(1JJ)
S=1,2,...
Используя Предложение 15, получаем окончательно требуемое неравенство U(а^)< U(А) для строго эффективного алгоритма над множеством {a{z)}с {а} для задачи Z.
Вариант 3. Пусть AJ e [{a}] - индуцированный алгоритм, и выполняются неравенства: Kh = Kx = 1 и S > 1. Доказательство полностью аналогично вариантам 1 и 2.
Итак, достаточность доказана. Необходимость: докажем от противного.
Пусть A^(Z)e [{a}] - индуцированный алгоритм и он строго эффективен, то есть для него выполняется неравенство
u(aj (Z))< U(a*(Z)), A(Z)e {A}. (49)
Допустим, что при этих условиях соотношения (Kh > 1V Kx > 1 v S> 1) не выполняются, то есть выполняется (Kh = 1 л Kx = 1 л S = 1). Тогда для сложности индуцированного алгоритма справедливо равенство
U (а3) = min U (A).
V ' Ae[{A}b(1,1,1) V 7
С учетом Предложения 15, гарантирующего существование для алгоритма из замыкания по модели ,1,1) алгоритма из множества {а} с той же сложностью, получаем:
UИ= u(acr(z))=
ACRe[{A(Z)}] (50)
= min U(a(z))= U¿A*)
Ae{A(Z)} V ^ >
Неравенства (49) и (50) несовместны, следовательно, посылка (Kh = l)л(Kx = 1)л(5 = 1) неверна,
а верно обратное неравенство. Что и требовалось доказать.
■
Приводимое ниже следствие данной теоремы выделяет достаточные условия того, что индуцированный алгоритм является строго эффективным, а формулировка этого следствия удобна для проверки индуцированного алгоритма на то, что он строго эффективен.
Следствие 5. Если A^(Z )e[{A}] - индуцированный алгоритм для задачи Z и выполняется одно из следующих условий:
• Kh > 1,
• Kx > 1,
• S > 1,
тогда A^(Z) - строго эффективный алгоритм над множеством {а} для задачи Z.
Следующая теорема обобщает формулировку Теоремы 2, указывая на (не строгую) эффективность любого индуцированного алгоритма.
Теорема 3. Индуцированный алгоритм A^(Z )e[{A}] для задачи Z является эффективным алгоритмом над множеством алгоритмов {A} для задачи Z.
Доказательство:
Для доказательства достаточно показать, что для индуцированного алгоритма выполняется условие
эффективного алгоритма: и(а3)< и(д* ). Здесь А - наилучший алгоритм множества алгоритмов решения задачи Ъ: А* е {а(2)}с {а}, а множество {А} -есть множество алгоритмов, над котором строится замыкание в модели СЯ и, соответственно, выбор индуцированного алгоритма. Для этого рассмотрим две взаимоисключающие ситуации.
Ситуация 1: д3 е [{а}]ся(аи ,Кх,5) при Ки > 1 или Кх > 1 или 5 > 1.
Условия этой ситуации удовлетворяют условиям Теоремы 2. Следовательно, алгоритм А3 е [{а}] является строго эффективным и, следовательно, эффективным алгоритмом для задачи Ъ.
Ситуация-2: д3 е [{А}]СЯ(ми,Кх,5) пРи
Ки = Кх = 5 = 1.
В соответствие с определением индуцированного алгоритма А 3 , он является наилучшим алгоритмом в замыкании А3 е [{А}]СЯ(111). Для замыкания этого порядка выражение сложности (35) имеют вид:
и(А3 (2))= ся -п и(АСЯ (2)) .
дСЯе[{А}]ся(1,1,1)
С учетом Предложения 15, гарантирующего существование для алгоритма из замыкания по модели СЯ(1 ,1,1) алгоритма из множества {а} с той же сложностью, получаем продолжение равенства:
и(А3(2))= А Щм }(4(20)) =
А0е{А(20)} = т1п и (А(2 )) = и (а* (2))
Ае{А(2)} У У " \ У >!
Таким образом, и ситуация 1, и ситуация 2 удовлетворяют неравенству
и (а3(2))< и (а* (2 )).
Что и требовалось доказать.
■
3.4. Об эффективности индуцированного алгоритма из замыкания по модели СЯ приведенных алгоритмов постоянной сложности
Следующие леммы и теорема касаются частного случая, когда работа производится с приведенными алгоритмами постоянной сложности или одним из них.
Лемма 6. Пусть КИХ {(и^^Т-1 в задаче Ъ (46) удовлетворяет условию: V т £ [0,М — 1] и (и) Ф 0 . Пусть А3 (а) е [{а}] - индуцированный алгоритм задачи Ъ над множеством Д}, которое состоит из одного при-
веденного алгоритма постоянной сложности А . Тогда V 5 > 1 А3 (2) [{а}]ся(1,1,5).
Доказательство.
Пусть А3 (2 )е[{А}] - индуцированный алгоритм задачи Ъ над множеством Д}, где А - некоторый приведенный алгоритм постоянной сложности. Допустим, что Ки = Кх = 1, 5 > 1. Тогда сложность (45) для индуцированного алгоритма, с учетом выражения (47), имеет вид:
и (Д3(2 ))= Ае[{П и (А(2 )] =
5-1
(1,1,5)
= т1п
{Б,
5-1
.}=0
^ (А. (2. ))+^ (А -1)
V.=0
(51)
5-1
т1п
. }=0
{Б }5-1
I ид (А. |, N (5 - 1)
V.=0
Поскольку по условиям теоремы {(и)}М=01 удовлетворяет ограничению
V т е[0, М -1] и (и )* 0,
то для допустимого покрытия {Б. }=0 области определения ИХ Б = [0, М -1], по условиям его опре-
5-1
деления (34)-(35), справедливо: У Б. = Б . Тогда,
.=0
учитывая что А - приведенный алгоритм постоянной сложности, на основании Леммы 4 получим продолжение выражения (51):
( 5-1
т1п
{б. }5-0
Цид (А. |, N(5 - 1)
> иА (а |, N )= иА (М, N
V .=0
и итоговое неравенство:
и(Д3(2))> ид(М,N). (52)
С другой стороны, по Теореме 3 индуцированный алгоритм А3 (2 )е[ДЦ является эффективным
алгоритмом над множеством Д} для задачи Ъ, следовательно:
и(А3(2))< иД(М,N). (53)
Объединяя (52) и (53), получим окончательно равенство:
и(А3(2))= иД (М, N) . (54)
В то же время, для наилучшего алгоритма модели СЯ(1 ,1,1) справедливо:
тш и (А (2)) = и (А (2)) = и-А (М, N) .(55)
^ ^СЯ0,и)
А =А
.
Полученные равенства (54) и (55), с учетом минимальности порядка индуцированного алгоритма,
означают, что A^(Z)£ [{AjfcR{m). Однако, по предположению Kh = Kx = 1, S > 1. Следовательно, предположение неверно, и S = 1. Что и требовалось доказать.
■
Теорема 4. Пусть КИХ {h{n)}- в задаче Z (46) удовлетворяет условию:
Vm £ [0,M -1] h(n) Ф 0 . Индуцированный алгоритм A3{Z)£[^}]CR{Kh,kx,s)Е[{а}] задачи Z над
множеством {а}, состоящего из одного приведенного алгоритма постоянной сложности A , является строго эффективным тогда и только тогда, когда (Kh > 1) v ((x > 1).
Доказательство:
Достаточность: Является следствием Теоремы 2 и ее Следствия 5.
Необходимость. Пусть A^(Z)£[{а}] - индуцированный алгоритм задачи Z над множеством {а}, где
А - некоторый приведенный алгоритм постоянной сложности. Покажем, что если выполняется
A3(Z)£ [{A}|cR{Jд,s) (для любого S), тогда индуцированный алгоритм не является строго эффективным алгоритмом. Для этого рассмотрим две ситуации: S=1 и S>1.
Ситуация 1 (S=1). Индуцированный алгоритм A^(Z) £ [{а}] не является строго эффективным в соответствие с более общей Теоремой 2.
Ситуация 2 (S>1). Такая ситуация для индуцированного алгоритма над множеством из одного приведенного алгоритма постоянной сложности, в соответствии с только что доказанной Леммой 6, не возможна. Как следует из доказательства указанной Леммы: S=1 и, следовательно, индуцированный алгоритм A^(Z) £ [{а}] не является строго эффективным. Что и требовалось доказать.
■
Лемма 7. Пусть решается задача Z (46). Пусть {А} - множество алгоритмов постоянной сложности, А - приведенный компетентный алгоритм над множеством алгоритмов {а}. Пусть
ACR £ [{A}]CR(Kh Kx S) - некоторый алгоритм из
замыкания по модели CR множества алгоритмов {а} на задаче Z с набором допустимых числовых
тршетр^ A©r £ [{4© jfcR((h,kx,s) - алгоритм из замыкания по модели CR множества (из одного элемента) алгоритмов {А© } на задаче Z с тем же
набором допустимых числовых параметров. Тогда справедливо:
и(С (2))< и(Л^ (2)). (56)
Доказательство:
Пусть лСК е[{A}]сЯ(лй,Кх,с) - некоторый алгоритм из замыкания по модели СЯ множества алгоритмов {а} на задаче 2 с набором допустимых числовых параметров. Тогда его сложность определяется выражением (45):
V
U (ACR (z ))= U (Aprep (zprep ))
"s-1 "
^u (4S (zs ))+^add (К -1)
.s=0
+ ((h + Kx - 2) где алгоритмы А и {As выбираются для ре
задач
множества алгоритмов {4}: = 0, S -1). В соответствие со
шения соответствующих
Zs (s = 0, S -1) из
Aprep £ {4}, As £ {4} (s = ÖS-T).
свойством компетентного алгоритма
v z £ U^A V a{z) £ {a(z)}u {4©}
A£{A}
u (4© (z ))< U (A{Z )).
Zp
Тогда
U {4CR {Z ))= U {Aprep (Zprep )) +
S-1
ZU (Ks Z ))+ladd (K -1)
.s=0
+ ((h + Kx - 2) >
> U(4© (Zprep )) + "S-1
(57)
ZU (©(Zs ))+^dd (S - 1)
+ (Ай + Кх - 2). Кроме того, если Л ^ Л , тогда справедливо
и (М, N)
соотношение (15') в виде:
У 2 еКА и (Л (2 ))< и (Л(2 )).
Следовательно, выражение (57) можно продолжить:
, _ , ^ / . / ч\ +
U (ACR (Z)) — U (А-(Zprep )) + [2 U (A*(Zt )) add (S-1)
_ s=0
+ (Kh + Kx - 2)(
add + § mul ) — * U (Zprep )) +
2 и (A *(zs )dd (S -1)
_ s=0
+ (Kh + Kx - 2) = U ((R (Z ))
+
+
и
+
s=0
Откуда и получаем искомое неравенство при условии, что ни порядок модели (Ми, Кх, 5), ни задачи
Аргер е {а}, А. е {а} = 0,5 -1) не меняются. Последнее происходит, если все числовые параметры (порядок модели, границы допустимого покрытия,
отсчеты вспомогательных сигналов { (к)}и01 и {х (к )}}=0-1 и т.д.) не изменились.
Теорема 5. Пусть решается задача Ъ (46). Пусть {а} - множество алгоритмов постоянной сложности, А® - приведенный компетентный алгоритм над множеством алгоритмов {а}. Пусть
А3(2)е [{а}] , 433(2)е [{А®} - индуцированные алгоритмы задачи Ъ над множествами алгоритмов, соответственно, {а} и Д®}. Тогда справедливо:
и (А® (2 ))< и (А3(2 )). (58)
Доказательство:
Пусть индуцированный алгоритм А3 (2 )е[{д}] принадлежит замыканию порядка (Ми, Кх, 5), а также имеет некоторый набор допустимых числовых параметров. Рассмотрим алгоритм
А® е [{А3 ]СЯ(Аи Кх 5) из замыкания по модели СЯ
{4 ®} (с
порядка (Ми, Кх, 5) множества алгоритмов одним элементом А3 ) с теми же числовыми параметрами, что и у алгоритма А3 (2 )е[{А}]. Тогда, в
соответствие с только что доказанной Леммой 7 выполняется неравенство:
и(А®я (2))< и(А3(2)). (59)
Кроме того, поскольку А® (2)е[{А3Ц - индуцированный алгоритм задачи Ъ, он имеет минимальную сложность (47) среди всех алгоритмов из замыкания. В частности:
и (А® (2 ))= А(2 ЩП ® } и (4(2 ^ < и (А®Я (2 )). (60)
Объединяя неравенства (59) и (60) получим окончательно:
и (a®(z ))< и (a3(z )),
что и требовалось доказать.
Последняя теорема фиксирует очень важный факт, который формулирует приведенные ниже следствия.
Следствие 6. (Теоремы 5) Для любой задачи Ъ индуцированный алгоритм над приведенным
компетентным алгоритмом, построенным над множеством {а} алгоритмов постоянной сложности, не хуже, чем индуцированный алгоритм, над тем же множеством алгоритмов.
Теперь можно сформулировать конструктивное правило, которое следует использовать при построении эффективного алгоритма для задачи Ъ над множеством алгоритмов постоянной сложности.
Следствие 7 (Теоремы 5) Для построения алгоритма, эффективного для задачи Ъ над множеством {А} алгоритмов постоянной сложности, достаточно построить индуцированный алгоритм над приведенным компетентным алгоритмом, построенным в свою очередь над этим же множеством {А} алгоритмов постоянной сложности.
4. Об эффективном алгоритме над множеством алгоритмов из основных классов алгоритмов решения задачи Z
Полученные выше леммы и теоремы не дают ответа, какие именно подмножества основных классов алгоритмов и/или алгоритмы следует использовать при построении эффективного алгоритма. Приведенные ниже леммы и теоремы отвечают на этот вопрос.
Определение 37. Множество алгоритмов {А} является полным относительно множества алгоритмов Д}, если:
V А еД} 3 А е {а}: А = А.
Предложение 16. Пусть множество алгоритмов {А} является полным относительно множества
алгоритмов Д}. Тогда:
V А еД} VZ еКД
u(a(Z ))> min u(a(z)).
V V " Ae{A(Z )}с{А} V V "
Доказательство: Очевидным образом следует из Определения 37 полного множества алгоритмов и Предложения 1 о равенстве сложностей подобных алгоритмов.
■
Это предложение имеет очевидное
Следствие 8. (Предложения 16) Пусть множество алгоритмов {А} является полным относительно множества алгоритмов {4}. Тогда:
VZ е I К
Ае,
,min ( и((Z ))> min U(a(z )).
Ae{(z )}{} " Ae{A(Z )}{a} V V "
(61)
■
■
Лемма 8. Пусть {ЛОС} множество, содержащее единственный алгоритм АОс прямого вычисления свертки, аналитическое представление которого задается формулой (1). Пусть {Лкр} - множество алгоритмов рекурсивного вычисления свертки, каждый из которых имеет аналитическое представление в виде формулы.
y(w)=£ aky{n - к)+ ^ bmx(n - m). (62)
к=1 meD
Тогда замыкание [{ADC }] является полным относительно множества {Arf }.
Доказательство :
Пусть Arf e {Arf } - некоторый произвольный алгоритм рекурсивного вычисления свертки (рекурсивный фильтр) с порядком фильтра K, произвольным множеством (различных) индексов D и некоторыми значения коэффициентов {ak }}= и {bm }meD (a0 ^ о). Формула вычисления свертки алгоритмом рекурсивного вычисления свертки задается выражением (62) [11, 12, 29, 30, 34, 35, 39].
Для доказательства достаточно показать, что для этого алгоритма рекурсивного вычисления свертки найдется подобный ему алгоритм из замыкания [{Adc }]. То есть алгоритм из замыкания [{Adc }], для которого формула вычисления свертки (38) будет тождественна с точностью до обозначений формуле (62).
Вначале проведем дополнительное построение и определим для множества индексов D функцию
m(s) (s = 0,|D| -1), которая по номеру элемента в
(неупорядоченном) множестве индексов D выдает значение индекса в упорядоченном множестве тех же индексов из D:
.. ( m e D л ^
m(s) = m : к *
^ { : n e D лn < m} = s - 1J . (63)
(s = ^И^1 )
Очевидно, множества неупорядоченных индексов D и множество индексов {m(s)}sD'01 совпадают.
Теперь построим алгоритм из замыкания [{ADC }] со следующими параметрами:
(a) Kh = K +1,
(b) Kx =1,
(c) S = |D|,
(d) gh (t) =
1, t = 0,
- at, t = 1, Kh -1.
(e) gx (0)= 1;
(f) границы интервалов
Ds = [m (s ), m (s )] (s = 0, S -1), где m (s) определена в (63);
покрытия
(g) his (m) = bm(s) (s = 0, S -1)
= 0, С -1; (И) алгоритм Лргер - отсутствует;
(1) алгоритмы = АОС ( = 0, С -1). Подставим приведенные параметры в формулу расчета свертки в алгоритме модели СЯ (38). Получим промежуточный результат:
КЬ +Кх-2
у (п) = Е )у(" - 0+
t=1
с-1 ~ (Кх-1 Л
+ Е Е Ь(т) ЕЯх( )х(я - т -I)
О К
s=0 meDs
l=0
Kh-J S-j
= £ ~AM" - t)+£ K(s)xK - m(s)). (64)
i=J s=0
Для дальнейших преобразований требуется определить выражение для последовательности g(t )=- g (t)/ g (0) и, соответственно для последовательности g (t), задаваемой соотношением (32):
min(Kh -J,t)
g(()= £ gh ()gx A-k)=
к=max(0,t - Kx)
Z gh (k)=gh (t) (t = 0, Kh - 2)
k=t
С учетом того, что gh (о) = 1 (параметр (d)) име-
ем:
~(t)=gh (t) (t = 1, Kh -1).
~(( ) =
1, t = 0,
- gh (()gh (0) = at, t = 1, Kh - 2.
Тогда формула вычисления свертки в алгоритме модели СЯ из замыкания [{АОС }] примет вид:
Кь-1 С-1
у(п) = ЕЧу(п - 0 + ЕЬт(Ах{П -т()) .
t=1 в=0
Подставляя значение параметра Кь = К +1, С = |О| и заменяя индекс t на к, получим выражение
k-1
ID-1
y(n) = Zaky(n - k)+ Zbm(s)x(n - m(s))
k=1
которое отличается от соотношения (62) только второй суммой в правой части. Делаем эквивалентные преобразования этой суммы:
О-1
X Ьт(.) х (П - т X Ьт(.) х (П - т (5)) =
*=0 ^МЙ-
= 2 Ьтх (П - т)=2 Ьтх (П - т).
Тогда получаем окончательную формулу вычисления свертки в алгоритме модели СЯ из замыкания [{Аос }]
s=0
У (и) = X акУ (и — к)+ X Ьтх (и — т) ,
к=1 т£Б
которая абсолютно эквивалентна формуле вычисления свертки для рекурсивного алгоритма (62).
Единственным принципиальным реализационным отличием полученного выражения от выражения (62) является то, что в алгоритме из замыкания [{Абс }] вычисление |б| вырожденных сверток (39)
вида
{У, (n)= bm(s)x(A - m(s
=0,| D\-1
выполняет ал-
горитм Абс , действие которого заключается в непосредственном вычислении |б| соответствующих произведений Ьтх(и - т) для вырожденных сверток. На полученную формулу вычисления искомой свертки этот реализационный факт, как очевидно из представленных выражений, не оказывает влияния.
Таким образом показано, что для произвольного алгоритма рекурсивного вычисления свертки из множества {АЯР} найдется подобный ему алгоритм из замыкания [{Абс }]. А следовательно, по определению 37, замыкание [{Абс }] является полным относительно множества алгоритмов {ДЯР}. Что и требовалось доказать.
■
Теорема 6 Пусть {Абс } - множество, содержащее единственный алгоритм АБС прямого вычисления свертки; {АРС} - множество алгоритмов вычисления свертки на основе ДОП; {АЯР } -множество алгоритмов рекурсивного вычисления свертки. Пусть А3 -приведенный компетентный алгоритм над множеством алгоритмов постоянной сложности {Абс }и {АРС }. Тогда для
любой задачи 2 е У КА индуци-
Ае{АБС }иАс МДЯР}
рованный алгоритм А® (2 )е[{А3Ц является эффективным над множеством алгоритмов
{абс }и {
РС }и {Аря }.
Доказательство:
Рассмотрим индуцированный алгоритм А3 (2) е [{Абс }и {А РС}] задачи Ъ над множеством алгоритмов постоянной сложности {Абс }и {АРС}. Тогда, в соответствие с Теоремой 5 для этой задачи Ъ справедливо выражение (58):
и (А® (2 ))< и(А3(2 )). (65)
В то же время, по Теореме 3, индуцированный алгоритм А3 (2) является эффективным алгоритмом
для задачи Ъ над множеством {Абс }и {АРС }, то есть по определению эффективного алгоритма:
и (a3(z ))< min и (a(z )). (66)
V V " Ae{A(Z)}c{Adc }U{fC } V У "
Неравенства (65) и (66) приводят к соотношению:
и (a®(z ))< и (a* (Z ))=
min U(A(Z)).
Ae{A(Z )}c{Adc }U{AfC} V V "
(67)
С другой стороны, в соответствие с Леммой 8, за-
мыкание
[{adc }U {Д
FC 1
является полным относи-
тельно множества алгоритмов {АЯР} и поэтому выполняется следствие 8 и, соответственно, неравенство (61). Тогда для данной задачи Ъ справедливо (если задача не попадает в область определения рекурсивных алгоритмов, тогда эти алгоритмы ее в принципе не решают и говорить о сложности решения такой задачи рекурсивными алгоритмами бессмысленно):
если 2 е У^ДЯР
Аяре{дяр!
А ерД^ 2}(Аяр(2и(А(2)).
АЯРе{{ЯР (2)} Ае{{(2)} 1П
С{ДЯР } Е[ИбС }]
В соответствии с Предложением 14, справедливо:
{adc }e{adc }U {Afc }
DC fi— LV^DC }U ¡Afc }]
Тогда получаем:
если Z е UKarf
ARF e{ARF1
min U (Arf (Z ))> min
ARF e{ARF (Z)} V RF^J A[(Z)1 }
{arf } c[{{dc !U{{fc }]
U (A(Z )) =
l< min U (A(Z))
Ae{A(Z )}c{Adc }U{AFC} V V "
= и (a3(z ))> и (a®(z ))
Объединяя это неравенство с (67), имеем u (a®(z )):
U (3(Z ^ ц \rf Uarfapf-
Откуда окончательно.
u (a®(z ))
<
<
min U (A(Z )) =
Ae{A(Z)}c{Adc }U{AFC }U{Arf }
= U (4* (Z))
где A* (Z) - наилучший алгоритм для задачи Z из множества {Adc }U {AFC }U {Arf }.
Последнее неравенство, в соответствие с определением 18, означает, что алгоритм A®(Z)е[Д®} -эффективный алгоритмом для задачи Z над множеством алгоритмов {Adc }U {Afc }U {Afr }.
■
Доказанная теорема позволяет сформулировать важное конструктивное следствие, которое указывает метод построения эффективного алгоритма.
Следствие 9 (Теоремы 6) Для построения эффективного алгоритма для задачи 2 над множеством алгоритмов {АОС }и {АРС }и {Ат } достаточно:
• построить приведенный компетентный алгоритм А над множеством алгоритмов
{Аос }и {Арс },
построить
А® (2 )е[{А 9
индуцированный алгоритм задачи 2 над множеством {,49 } из одного приведенного компетентного алгоритма А®. Приведенное следствие будет использовано в следующем разделе при синтезе метода построения эффективного алгоритма.
Замечание. Ниже предполагается, что алгоритмы постоянной сложности, участвующие в построении эффективного алгоритма, распространены на всю требуемую область определения. Поэтому этап построения распространения соответствующих алгоритмов в рассматриваемом методе не используется.
5. Описание метода синтеза эффективного алгоритма над множеством алгоритмов решения задачи Z
Для формализации метода представим его описание в виде двух частей: исходных данных и реализации.
5.1. Формализованное описание метода синтеза эффективного алгоритма
Исходные данные
Исходная информация метода
• допустимые максимальный размер КИХ Мтах и максимальный размер обрабатываемого сигнала Nmax;
• множество (приведенных и «неприведен-ных») алгоритмов постоянной сложности
{а }-1-
Н=0 • информация
об области определения ХА. ( = 0,1 -1) каждого из алгоритмов, задаваемая перечислением пар (М, N), которые входят в эту область определения; информация о сложности каждого алгоритма из множества {А }Г01 ритма матрицей
|иЛ, (М , N )||м = .,Мта
N=1,
заданная для каждого алго-
(м , N )е я+ и М.
Априорная информация 30 для задачи 2
отсчеты
ИХ {(т}1 (М < Мтах),
• априорная информация о входном сигнале 3 х = N, 3(х)), которая включает в себя:
- информацию о размере обрабатываемого сигнала N N < ^ах),
- априорную информацию о свойствах сигнала 3(х) (см. п.1.2).
Реализация метода
Предварительный этап
• построение (синтез) приведенного компе-
1 ®
тентного алгоритма А над множеством алгоритмов постоянной сложности {А )[=(1.
Подготовительный этап (решения задачи 2)
• построение (ниже - синтез) индуцированного алгоритма Л® (2 )е[{А ®} задачи 2 над множеством {А® } из алгоритма А® .
5.2. Комментарии относительно метода синтеза эффективного алгоритма
Как видно из представленного формализованного описания, исходные данные метода разделены на две категории:
• исходная информация метода и
• априорная информация 30 для задачи 2.
Подобное разделение обусловлено различными этапами использования различных частей исходных данных в реализации метода. А именно, исходная информация метода, куда относится исходное множество алгоритмов решения задачи 2 и информация об их сложности и области определения, требуется для предварительного этапа, на котором производится построение приведенного компетентного алгоритма А® . Причем момент построения алгоритма А® не связан с моментом решения какой-либо конкретной задачи 2, а выполняется предварительно, например, в момент инициализации программы или устройства, реализующего рассматриваемый метод синтеза эффективного алгоритма. При (алгоритмической, программной, аппаратной) реализации ме-
~Л ®
тода параметры построенного алгоритма А сохраняются и в неизменном виде используются в рамках каждого подготовительного этапа, выполняемого при смене априорной информации
30 =({ь(п Г=0\ 3х) задачи 2.
Вторая категория исходных данных метода - априорная информации 30 = ({(п)}=-0\ 3х) для задачи 2 - используется уже на подготовительном этапе решения задачи 2 совместно с построенным приве-
~л ®
денным компетентным алгоритмом А .
Представленное формализованное описание метода синтеза эффективного алгоритма определяет принцип работы метода. Однако для построения алгоритма синтеза, реализующего данный метод, требуется указание конкретного способа синтеза при-
л®
веденного компетентного алгоритма А на предварительном этап и определенного способа синтеза индуцированного алгоритма А®3 (2) е [{А на подготовительном этапе решения задачи Ъ.
Синтез приведенного компетентного алгоритма А® рассматривается в разделе 2.2.
Синтез алгоритма А® (2 )е[Д®]|, индуцированного априорной информацией задачи Ъ, рассматривается в разделе 2.3.
6. Синтез приведенного компетентного алгоритма над множеством алгоритмов постоянной сложности
6.1. Формализованное описание синтеза приведенного компетентного алгоритма над множеством алгоритмов постоянной сложности
Данные
M „
1 допустимые максимальный размер КИХ ""max и максимальный размер обрабатываемого сигнала
N
max •
1 множество (приведенных и «неприведенных»)
алгоритмов постоянной сложности 0;
1 информация об области определения
Ка. (i = 0,1 -1)
1 каждого из алгоритмов, зада-
(М, N )
ваемая перечислением пар v ', которые входят в эту область определения; информация о сложности каждого алгоритма из
{д У-1
1,1 0, заданная для каждого алго-
матрицей
imax "A. M, N)£ R+ U Ы
множества ритма
u
1A.
(M, N )
"л
Реализация
л®
синтез компетентного алгоритма A над множеством алгоритмов постоянной сложности {А. у1--1 , определенного на области определения вида
1 < M < Mmax
К
a® (m,n
= {(M, N): 11
< N < N m
• синтез приведенного компетентного алгоритма А® , определенного на той же области определения К _ = К ., на основе компетент-
А3(M,N) А3(M,N)
ного алгоритма А® : А® ^ А® .
6.2. Комментарии относительно синтеза приведенного компетентного алгоритма над множеством алгоритмов постоянной сложности Как видно из формализованного описания процесса синтеза приведенного компетентного алгоритма над множеством алгоритмов постоянной
сложности, его реализация выполнятся в два шага. На первом шаге производится построение компетентного алгоритма над множеством алгоритмов постоянной сложности, а на втором шаге на основе полученного компетентного алгоритма формируется приведенный компетентный алгоритм.
Обоснованием именно такой структуры метода, а также приведенных ниже детализаций его реализации являются:
• Определение 27 компетентного алгоритма, которое фактически указывает способ его построения,
• Теорема 1, которая, с одной стороны, доказывает собственно возможность построения приведенного алгоритма для любого алгоритма постоянной сложности и, с другой стороны, доказательство которой практически в явной форме содержит способ синтеза приведенного алгоритма на основании конкретного алгоритма постоянной сложности.
• Лемма 3, которая доказывает, что сложности приведенного компетентного алгоритма (построенного над множеством алгоритмов постоянной сложности) и приведенного компетентного алгоритма (построенного над множеством тех же приведенных алгоритмов постоянной сложности) совпадают. Эта лемма позволяет исключить этап построения для всех алгоритмов
из множества {Д }=-01 соответствующих им приведенных алгоритмов.
Процедура синтеза компетентного алгоритма
л®
А над множеством алгоритмов постоянной сложности {д 1=0 рассматривается в разделе 6.3.
Процедура синтеза приведенного компетентного алгоритма А на основе компетентного алгоритма А® рассматривается в разделе 6.4.
6.3 Процедура синтеза компетентного алгоритма над
множеством алгоритмов постоянной сложности
Результатом работы процедуры синтеза компетентного алгоритма над множеством алгоритмов постоянной сложности является определенный своими (внутренними) параметрами компетентный алгоритм А®, заданный на области определения X = {(М, N): 1 < М < М ,1 < N < N }.
А®(М ' ' тах' тши
Внутренними параметрами компетентного алгоритма являются:
• величины Мтах , Nmax ,
• матрица сложности компетентного алгоритма
и
A
M, N )
(M ,N )[1Mmax ]x[1,Nmax]
матрица индексов компетентного алгоритма
Iя (M, N^l(M,N)E[1,Mmax ]X[1,Nmax ], ^^ Элемент ^
торой содержит либо номер наилучшего алгоритма постоянной сложности для задачи с соот-
max
ветствующими параметрами (М, N) е К,® (м ^ ^,
либо символ неопределенности «Д«, указывающий на отсутствие алгоритма решения соответствующей задачи:
а(М,N) е { : Н е [0,1 -1]} {д} .
Исходные данные процедуры синтеза
• допустимые максимальный размер КИХ Мтах и максимальный размер обрабатываемого сигнала Nmax,
• множество (приведенных и «неприведен-ных») алгоритмов постоянной сложности
{А ^
• информация об области определения
К,
(i = 0,1 -1)
каждого из алгоритмов,
задаваемая перечислением пар (М, N), которые входят в эту область определения; • информация о сложности каждого алгоритма из множества {,■ }}о0 , заданная для каждого алгоритма матрицей |к (М, N)=1,Мтах иАг (М, N) е Я+ и {со}.
N=1,^ тах
Требуемый результат процедуры Внутренние параметры компетентного алгоритма.
Реализация процедуры
Величины Мтах, Nmax берутся из исходных данных процедуры.
Матрицы сложности и индексов задаются следующим образом:
,(М, N ) =
( МО?-1] л
(М ,N А. (М:
,N
,-М, N ),
I-1
если (M, N )б UK4- (M ,N)
i=0 I-1
если (м,N)г иКАг(M,N).
i=0
a (M, N ) =
arg min
j je[0,I-1] Л (M N )esAj(M,N)
если
u,
(M, N ),
(M, N)e UКAi(M,N), i=0
^ если (M, N U К Ai (m N).
В заключение настоящего раздела приведем описание функционирования построенного компетентного алгоритма.
Функционирование компетентного алгоритма Входные данные о задаче 2 (30,{х(п )}001) компетентного алгоритма
• отсчеты входного сигнала {(п)}}-,
IF
• априорная информация 30 = ({h(n )}=/, Зх) о задаче Z, включающая:
- отсчеты ИХ Mm)}-)1 (м < М^),
- априорная информация о входном сигнале Зх = (N, 3(х)) (не используется).
Реализация компетентного алгоритма
АЛГОРИТМ А® - НАЧАЛО
(1 < M < M max )л(1 < N < N max ) л (a(M, N )* Д) THEN Выполняем алгоритм Aa(M N )Z) ELSE «Задача не решается»; АЛГОРИТМ А® - КОНЕЦ.
6.4. Процедура синтеза приведенного компетентного алгоритма
Результатом работы процедуры синтеза приве-
'а ®
денного компетентного алгоритма А на основе
®
компетентного алгоритма А является определенный своими (внутренними) параметрами приведенный компетентный алгоритм А® , заданный на области определения
К
■■К.
A®(M ,N) A®(M, N)
= {(M, N) : 1 < M < Mmax,1 < N < Nmax }.
Внутренними параметрами приведенного компетентного алгоритма являются:
величины Mmax , Nmax ,
матрица
сложности
алгоритма
u _
>(М, N)
(М ,N )[1,Мmax ]x[1,N„
матрица переадресаций алгоритма
l(M, N )
(М, N )[1,М max ]x[1,N max]
. Каждый элемент
матрицы переадресации содержит: - либо множество (перечисление)
М, N, MMs, Ns )}:(М, N )-1
саций вида
из |"(м, N) переадре-
(ms , Ns, Ms, Ns), удовлетворяющих
условию Ms < Ms л Ns < Ns л Ns - Ns > Ms - Ms,
- либо символ пустого множества «0«, указывающий на отсутствие переадресации,
- либо символ «Д», указывающий на невозможность решения соответствующей задачи. Первая пара индексов (М., Ns) в четверке
(Ms, N., М., NN.) является собственно переадресацией. Вторая пара индексов является комментарием или дополнительной информацией, указывающей на то, какое именно полезное количество отсчетов сигнала и ИХ обрабатывается при решении соответствующей задачи 2.
u
А
u
А
30
Исходные данные процедуры Исходными данными процедуры синтеза являются внутренние параметры компетентного алгоритм А® , которые включают в себя:
величины Mm
N „
матрица сложности компетентного алгоритма
A
(М, N)|
(M ,N )[1,Mmax MWmax]
• матрица индексов компетентного алгоритма
IHM' NI(M,N)[1,Mmax M[1,Nmax M
Требуемый результат процедуры
Внутренние параметры приведенного компетентного алгоритма.
Реализация процедуры
Величины Mmax, Nmax берутся из исходных данных процедуры (внутренних параметров компетентного алгоритма).
Формирование матриц сложности и переадресаций производится итерационным образом, который условно можно разделить на три этапа - этап инициализации, основной итерационный этап и завершающий этап.
Предварительный этап u^M, N ) = MAe(M, N ),
, ч 10, a (m , N Wa, , ч H(i'N)=lÄ, a(M, N)= A. M N)6N>
Основной итерационный этап WHILE ( TRUE ) BEGIN
(M, N ):= arg
(M N >Ka5®(M,N ) 'u^ (M, N) >
f
m=1,M-2
Mn-( M -m))KAi®(M N )
(m-m,N-m )KAA®(M )
u
, (m,N -(M - m))-
Л
+ uAe( - m,N - m) + ^ min
m=0,1,2... n=0,1,2,...
(M+m,N +m+n))K
A0(M ,N)
u
, (М + m,N + m + n)
(M - M + n +1) (( - M +1) min
n=1,[N/2]
(M n )КЛ0(М ,N )■
Mn -n+M -1)KAj0(M ,N ) (u A0 (M, n )(n - M +1) +
uA0(M, N - n + M - 1)(( - n)
■ A_>
N - M +1
IF S(M, N) THEN EXIT; //завершаем
// если пара (m, N) найдена
IF «Минимальное значение дает первое
выражение»
THEN
,(М, N) :=
m=1M-2
(m,N -(M-m))eKA(M ,N) (M-m,N-m)eKA(M ,N)
s(m , N ):=
Ua0 (m, N - (М - m)) +
, N - m)
+ uA0(M
+ ^add
(m b N1; M ь N1), (M o, N о, M o, N o)_
где
(Mо,No)e K^-0 л(м 1,N1 )e«A0 л
(M 0 + m1 = m ) Л
(M0 - M 0 = N - m ) Л
(M1 -m1 = N -m)Л
(u A0 (m , N)=
UA0(M 0.N 0 )+ UA0(M 1, N1 ) + ^ add
V v A A у у
IF «Минимальное значение дает второе
выражение»
THEN
min
uA0(M,N) := 012
A m=0,1,2...
n=0,1,2,...
(M +m,N+m+n))eK
, (М + m,N + m + n)
A0(M ,N)
(M - M -
1)
где
'.......7 (M-M +1)
(M, N ):= {(M 0, N 0, M, N )},
^ (M0,N0)eKAffi л(М0 >M)л
(M0 - M 0 > N - M) л (u A0 (М, N)(N-M + 1)= ^
V v
= uAffi(M0,N0)(M0 -M0 +1)
//
IF «Минимальное значение дает третье
выражение»
THEN
u (M, N) :=
=Ц)2]
"ne4A®(M ,N )•
(M ,N-n+M-1)eK
'A0(M ,N )
uA0 (М, n )(n - M +1)
V A
,(М, N - n + M - 1)(M - n)
N - M +1
i(M, N ):=
(M, N1, M, N1),
где
(M, N 0, M, N 0)
( (M, N0 )еК.0л(М, N1 )eKA0Л ^
(m0 + N1 = N + M - 1)л uA0(M, N ) =
= u^iM o, N 0 ) + u A0 (M1, N1 )+^add
u
u
л
END; // WHILE ( TRUE );.
Как видно из псевдокода, итерации повторяются до тех пор, пока происходят изменения значений функции сложности uA ф (м, N ). Факт того, что эти
итерации будут завершены, доказан в Теореме 1. Завершающий этап
На завершающем этапе производится замена «косвенных» переадресаций
(ks , Ns, M s, Ns )e3(M, N ), которые указывают на индексы (Ms, Ns), содержащие сами по себе переадресации (например,
, Ns, M s, N s )=M 0s, N0, M 0s, N0s) (mJ, Njs, M js, Nj )}), на «явные» переадресации, в которых указание производится только на те пары (м, N), где Е(М, N ) = 0 . В силу Леммы 1, существует хотя бы одна такая пара (сложность которой не поменяется). Реализацию этого этапа вначале проиллюстрируем на примере.
Пусть для некоторой пары (м, N):
Е(м,N) = {((,N0,M0,N0),(KJ,NJ,MJ,NJ)}. Тогда:
"(М 0, N 0 )={M о, N00, M 00, N 00 ) (mj0, nj0, M0, N0 )},
j, Nj )={M J, N0, Mj, Nj )}, Е Ml, N0) = {M 02, N02, M 02, N02 ) (м 2, N 2, M 2, N 2 )}
и
"(м00,N°)="(мJ,NJ)=0 ,
"(м02,N02)="(mj2,nj2)=0 . Тогда искомая (явная) переадресация имеет вид:
Е( N) = [(10, N00, M00, N00) (, N1 ,mj , nj ) 1
[(0 ,N02,M02,N02)(,N2,mj2,NJ2)
Псевдокод той части процедуры, в которой выполняется завершающий этап, выглядит следующим образом:
FOR M:=1 to Mmax DO FOR N:=1 to Nmax DO
IIldA IIldA
"(м,N):=GetRefs(M, N);
Здесь использована рекурсивная функция GetReferencies, псевдокод которой имеет вид:
FUNCTION GetRefs( M, N ): Е; // функция возвращает множество четверок
BEGIN // FUNCTION result := 0;
IF Е(м, N) =0 THEN EXIT;
S := |E(m, N) ;
FOR s := 0 TO (S-1) DO
BEGIN // анализирует (ks , Ns, Ms, Ns)
IF a(Ms, Ns ) = 0
THEN Result := Result U (ks, Ns,Ms, Ns) ELSE Result := Result U GetRe-
fs (Ms, Ns);
END; // FOR S END; // FUNCTION
В заключение настоящего раздела приведем описание функционирования построенного приведенного компетентного алгоритма.
Функционирование приведенного компетентного алгоритма
Входные данные о задаче Z(30,{x(n)}}=-0J) приведенного компетентного алгоритма
• отсчеты входного сигнала {x(n)}=-0,
• априорная информация 30 = ({h(n )}!M=-)J, 3x ) о задаче Z, включающая:
- отсчеты ИХ Мш)}=-0 ( < Mmax ),
- априорная информация о входном сигнале 3x = (n , 3(x)) (не используется).
Реализация компетентного алгоритма АЛГОРИТМ Aф - НАЧАЛО
'(l < M < M max )л(1 < N < N max )
чл(к(, N )*Д) J
THEN
IF Е(м, N) = 0
THEN A®(z ) //результат решения ->
У(п) ELSE BEGIN
S := |Е(М, N) ;
М 0 = 0;
FOR s:=1 TO (S-1) DO Mf = m0-j + Ms-J; //разбиение ИХ FOR s:= 0 TO (S-1) DO BEGIN // имеем (Ms, Ns, Ms, Ns) FOR m := 0 TO (Ms -1) DO
IF
hs (m) =
(m + Ms0),
m = 0, M„ -1,
m = Ms, Ms -1.
FOR n := 0 TO (Ns -1) DO
Г x(n + Mf), n £ [0, NVs - l]
xs (n ) =
.0, " = [[, Ns -1]
30 = ({hs (m)}M=0-1, Д); Zs = z({xs (n }-1,30 ); Выполняем алгоритм A®(zs ); //результат решения -> ys (n) END; // for s
FOR n := 0 TO (N - M - 1) DO
y(n ):= Z y*(n)'
х=0
END; // begin
ELSE «Задача не может быть решена»;
АЛГОРИТМ A® - КОНЕЦ.
7. Синтез алгоритма, индуцированного априорной информацией задачи Z
В настоящем разделе рассматриваются теоретические и алгоритмические основы построения процедуры синтеза алгоритма, индуцированного априорной информацией задачи Z, для одной из наиболее распространенных на практике ситуаций. А именно, для случая, когда априорная информация задачи Z не содержит данных о свойствах обрабатываемого сигнала: З(х) = 0 . Таким образом, параметры задачи вычисления свертки имеют вид: Z (Зо, { Ж), где Зо =(Mn ^, 0)).
Задача построения синтезированного алгоритма в ситуации, когда З(х) Ф 0, является предметом отдельного исследования и отдельной работы.
7.1. Теоретические основы синтеза индуцированного алгоритма для задач с пустой априорной информацией о свойствах сигнала
Приведем несколько определений из теории конечных разностей, которые нам понадобятся ниже [2, 10, 22, 23, 28, 42, 48, 51].
Определение 38. Пусть K - натуральное число, а {ак }}= - заданные элементы поля F. Последовательность элементов поля F, удовлетворяющая соотношению
h(m)=
b„
m = 0, K -1,
Zakh(m -k) + ф(т), m = K,M -1, k=1
(68)
называется линейной рекуррентной последовательностью (ЛРП) К-го порядка над полем Р.
Первые члены {Ьк }К-01 однозначно определяют
всю последовательность и называются ее начальными значениями. Соотношение (68) называется
линейным рекуррентным соотношением (ЛРС) К-го порядка.
Определение 39. ЛРС называется однородным, если ф(т) = 0, в противном случае ЛРС называется неоднородным. Соответствующие рекуррентные последовательности (РП) называются однородной или неоднородной ЛРП над полем Р.
Теорема 7. (необходимое условие строгой эффективности индуцированного алгоритма).
Пусть приведенный компетентный алгоритм А®
над множеством алгоритмов постоянной сложности {Ai }=0 задан на области определения
KA0MN) = {(М, N) : 1 < М < Мmax, 1 < N < Nmax } .
Пусть решается задача Z(з0, {(n) с априорной информацией 30 = ({h(n (N, 0)), где
(М, N) e Ka(m,n) и h(m) Ф 0 (m = 0,М -1) .
Индуцированный алгоритм A®(Z )e[{; ®| задачи Z над множеством {a ® } является строго эффективным, только если все отсчеты в КИХ {h(m)}M=01 удовлетворяют неоднородному ЛРС порядка K, а M 0 отсчетов удовлетворяют соответствующему однородного ЛРС, и для пары K, М0 справедливо:
(М0 > K) л (К + uA®(M - М0 + K, N)< uA®(M, N)).
Доказательство: непосредственно следует из необходимых условий Теоремы 4 и свойства функции сложности для приведенного алгоритма постоянной сложности.
Теорема 7 формулирует необходимое условие, при котором может быть построен строго эффективный алгоритм. В дополнение к ней может быть сформулирован целый ряд условий, которые являются уже достаточными. Фактически, достаточные условия перечисляют различные частные решения исходной задачи. Одна из возможных подобных теорем приведена ниже
Теорема 8.
Пусть выполняются условия Теоремы 7. Индуцированный алгоритм A®(z )e[{A ®| задачи Z над множеством {A ® } является строго эффективным тогда, когда отсчеты КИХ {(я)}-1 формируют однородную ЛРП порядка K, удовлетворяющего неравенству:
add . (69)
K < и 0 (M, N)- 2и _0 (К, N)
Доказательство:
Индуцированный алгоритм является наилучшим алгоритмом из замыкания по модели СЯ множества
{4 ® }. Построим некоторый определенный алгоритм АСК из замыкания по модели СЯ. Для него справедливо выражение (45) для сложности алгоритмов модели СЯ и соответствующее неравенство по отношению к сложности индуцированного алгоритма:
■
и (4(2 ))< и ( (2 )) = Г
= и ( (2ргер )) + X и (л. (2.)) + 1а* (5 -1)
.=0
+ (( + К - 2). Поскольку по условию задачи 3(х) = 0, следовательно, Кх = 1 и выражение сложности принимает вид:
и (А® (2 ))< и (с (2 )) =
(70)
+
JU (As (Zs ))+^dd ( - 1)
.s=0
+ Km -1.
Пусть, далее отсчеты КИХ {h(n)}M-1 формируют однородную рекуррентную последовательность некоторого порядка K. Тогда для всех элементов последовательности (кроме крайних) справедливо выражение:
к _
h(n)=£akh(n -k), n = K,M -1. k=1
Зададим Kh = K +1 и определим значения ИХ {gh (k ^q-1 следующим образом:
gh
(k ) =
k = 0,
-ak, k = 1,Kh -1
Тогда результат {h (n)}=0 h свертки КИХ
{h(n)}M=-01 и ИХ {gh (k )}}=h0-1 имеет вид:
h (m) =
Kh-1 _
Jgh (k)h(m -k), m = 0,Kh - 2,
k=0 0,
Kh-1
m = Kh -1, M -1,
Jgh (k)h(m -k), m = M,M + Kh - 2.
k=0
Очевиден способ построения допустимого покрытия:
5 = 2, Д) =[0, Кк - 2], £>0 = [,М + Кк - 2]. Тогда соотношение (70) принимает вид
и (А® (2 ))< и (АсК(2 )) =
= и (А ®(20 ))+ и ( Ф(2! ))+^ + К -1.
Задачи 2 0, 21 отличаются только значениями отсчетов в соответствующих покрытиях £0, . Тогда
и(Л®(2))< и(ЛсК(2)) = = 2иА ®(Кк -1, N + К -1.
По определению строгой эффективности, индуцированный алгоритм будет являться строго эффективным, если и (л®(2 ))< и ® (М, N). Потребуем,
чтобы это неравенство выполнялось не только для индуцированного алгоритма, но и для построенного алгоритма модели СЯ. Тогда:
и (Л®(2 ))< и (Лсд (2 )) = = 2иА®(КЙ -1, N) + ^ + К -1 <
< u
\М, N ).
Откуда, меня порядок слагаемых в двух правых выражениях, получаем:
Kh < u Аф
(м,N)-2uAeKh -1,N) +1 -I
add •
Учитывая взаимосвязь Kh = K +1, получаем искомое неравенство (69).
■
Следствие 10. (Теоремы 8) Пусть выполняются условия Теоремы 7.1. И пусть I = 1, А0 = ADC .
Тогда индуцированный алгоритм A®(Z )е[{Аф}
задачи Z над множеством {Аф } является строго эффективным, если отсчеты импульсной характеристики формируют однородную ЛРП порядка K, удовлетворяющего неравенству
K <(М -|add )/3 < М/3. (71)
Теоремы 7 и 8 позволяют сформулировать конструктивный способ синтеза строго эффективного алгоритма, который оформлен ниже в виде следствия.
Следствие 11. (Теорем 7 и 8) Для построения строго эффективного алгоритма, индуцированного априорной информацией задачи Z, над множеством из приведенного компетентного алгоритма {а ф } следует:
• перебрать возможные порядки ЛРП
K = 1,М/2 .
• для каждого возможного порядка ЛРП представить КИХ {(n)}-1 в виде ЛРП всеми возможными способами, удовлетворяющими условию Теоремы 7.
• Для каждого способа представления в виде ЛРП рассчитать значение сложности полученного алгоритма CR.
• Из полученных решений выбрать решение с минимальной сложностью. Полученный алгоритм - индуцированный.
• Если сложность индуцированного алгоритма ниже сложности приведенного компе-
'а ®
тентного алгоритма А , следовательно полученный индуцированный алгоритм является строго эффективным. Наиболее сложным этапом в приведенном способе синтеза строго эффективного алгоритма является этап представления КИХ {(n)}-1 в виде однородного или неоднородного ЛРП. В литературе описан ряд способов получения такого представле-
А
1
ния [2, 10, 13, 22, 23, 28, 32, 34, 36, 38, 42, 48-51]: метод Паде, метод 2-преобразования, аппроксимация сплайнами, аппроксимация в частотной области, аппроксимация рекуррентными функциями, в частности, экспонентами и полиномами, прямая аппроксимация рекуррентным соотношением заданного порядка и др. Эти способы условно можно подразделить на два:
• (точное) представление цифрового сигнала в виде однородного или неоднородного ЛРП заданного порядка,
• аппроксимация цифрового сигнала в виде однородного или неоднородного ЛРП заданного порядка.
Способ аппроксимации КИХ в виде ЛРП ниже не рассматривается, поскольку связан не с исходной проблемой, а с ее измененной постановкой, в которой допускается получение не точного, а приближенного выходного сигнала. Один из возможных способов нахождения представления КИХ в виде ЛРП приведен ниже, как составная часть процедуры синтеза алгоритма, индуцированного априорной информацией.
7.2. Процедура синтеза индуцированного алгоритма
Результатом работы процедуры синтеза приведенного компетентного алгоритма является определенный своими (внутренними) параметрами приведенный компетентный алгоритм А , заданный на требуемой области определения
К
A ®(М, N
= {(м, N): 1 < М < Mmax,1 < N < Nmax }.
Внутренними параметрами алгоритма, индуцированного априорной информацией задачи Z являются:
• величины Mmax , Nmax ,
• числовые параметры алгоритма модели CR, которые включают в себя (см. п.3.1):
- величину Kh и отсчеты КИХ
{ (k )}-1 (((0) = 1);
- Kx = 1, gx (0) = 1 (см. ремарку начала п.7);
- величину S и параметры допустимого покрытия
{0, <
1
к=0
Исходные данные процедуры синтеза Исходными данными процедуры синтеза являются:
• внутренние параметры приведенного компетентного алгоритм А®, включающие в себя:
- величины Мтах , Nmax ,
- матрица сложности алгоритма
,(М, N )
(М ,N )[1,Мmax Mt-Nnax ]
- матрица переадресаций алгоритма
N)(M,N)e[1,Mmax max ] (Ш! использу-
ется) ;
• информация о задаче Z, включающая в себя: - значения отсчетов КИХ {h(n Г- длину обрабатываемого сигнала N.
Требуемый результат процедуры Внутренние параметры индуцированного алгоритма.
Реализация процедуры
Величины Mmax, Nmax берутся из исходных данных процедуры.
Umin := UĮiM>N)
+Kh -2 0
K (k s ,{[0, dk ]],{~(m)}M
:=(1,{1}0=0,1,{[0,M - fc*))1);
FOR K:=1 TO [M/2] DO BEGIN FOR m:=0 TO M-K+1 DO BEGIN
fa. \ (
h(m) ••• h(m + K -1С h(m + K)
h(m + K -1) ••• h(m + 2K -2)
h(m + 2K)
Kh := K +1; gh(k):=|
1, k = 0,
- ak, k = 1, K.
h(n )* gh (n (n
=0
M+K-1 \
M0 := ZI (h(n) = 0)
t=0
IF not
(М 0 > K) л
' K + u; ® (M - M 0 + K, N) < < u;®(M, N)
THEN CONTINUE; //GoTo FOR m // ELSE - ищем возможное решение S := 1; WHILE (S <> 0)
// Перебор покрытий для заданного S
WHILE (з{[^, d1 К )
// расчет сложности для данного покр-я
S-1
U :=Z u;®dk - d0 +1, N)
s=0
IF ( U < Umin ) THEN BEGIN
U min- U;
Kh,{gh(kи}-1,s,{0,ds]}rnr+K2у
:=( Kh, {gh (k )}K=01, s, {[, dk ]} {~(m)}
+Kh-2 0
END; // IF END; // WHILE S := S+1; END; // WHILE S
a
K
+K-1
u
END; // FOR m END; // FOR K
// дополнительные присвоения
~(к ):=
1, к = 0,
- gh (к), к = 1, Kh -1.
ч ih(m), m £ Ds, / -ч
hs(mH0 * D (s = 0,S-1)
[0, m * Ds.
В заключение настоящего раздела приведем описание функционирования построенного индуцированного алгоритма.
Функционирование индуцированного алгоритма
Входные данные
Отсчеты входного сигнала {x(n )}"n=-01 ,
Реализация индуцированного алгоритма АЛГОРИТМ Аф - НАЧАЛО
IF not (1 < М < М max )л(1 < N < N max ) THEN «Задача не решается»; ELSE
FOR s=0 TO S-1 DO
Аф :Z(({hs(m)},3x),Mn)}=-0(n} ; FOR n=0 TO N-1 DO
Kh -l S-1 / ч
y(n) = Z g()y(n -1)+ Z ys <n - d0);
t=1
s=0
АЛГОРИТМ А® - КОНЕЦ.
8 О частных решениях задачи синтеза эффективного алгоритма Рассмотренный метод синтеза эффективного алгоритма учитывает все аспекты рассматриваемой проблемы: и ограничения задачи, и информацию об обрабатываемом сигнале, и эффективность работы алгоритмов исходного множества. Применение этого метода, как показывает теоретическая часть работы, дает гарантированный результат - эффективный алгоритм - для любой задачи. В то же время, как любой общий подход, предложенный метод дает ряд достаточно простых частных решений, которые были и/или могут быть получены независимо, эвристически или из других соображений. Естественно, алгоритмы, подобные алгоритмам основных классов, как одно из частных решений задачи синтеза эффективного алгоритма, интерес в данном случае не вызывают. Относительно существования других частных решений в виде уже известных алгоритмов некоторые замечания были даны в п.3.2, в котором рассматривались подклассы алгоритмов модели СЯ. Индуцированный алгоритм, как любой другой алгоритм модели СЯ, также принадлежит одному из указанных подклассов. И если в литературе рассматривались некоторые алгоритмы соответствующего подкласса, следовательно, и конкретный алгоритм, подобный индуцированному алгоритму, мог быть
рассмотрен. Обзору именно таких результатов посвящен этот раздел.
Первой группой алгоритмов, которая относится к частным решениям задачи синтеза индуцированного алгоритма, и которая рассматривалась в литературе по ЦОС и ЦОИ ранее, являются рекурсивные и параллельно-рекурсивные алгоритмы с КИХ, задаваемой в виде рекуррентного соотношения [24-26, 32, 38, 40, 43-47, 52, 55-61, 63]. Одной из первых работ, которая указывала на существование КИХ с хорошей «рекурсивной» реализацией была работа Л.П. Ярославского [40]. В ней указанный автор рассматривал простой в вычислительном плане алгоритм рекурсивного расчета свертки с экспоненциальной и показательной КИХ. Следом за этой работой появилась работа В.В. Сергеева [32], где уже указывался целый класс КИХ-к, которые позволяют получить простой рекурсивный алгоритм расчета свертки: показательные, синусоидальные, косинусные, полиномиальные. В этой же работе впервые указан общий (показательно-степенной) вид «элементарной» КИХ, которая позволяет строить вычислительно простой рекурсивный алгоритм. Однако следует отметить, что автор, фактически, ограничился рассмотрением КИХ, которая удовлетворяет РС второго порядка. Аналогичные работы по рекурсивной реализации свертки для КИХ синусного и косинусного вида есть и у других авторов [45, 47, 52,]. Кроме того, подобные работы до сих пор появляются в печати, открывая заново уже известные результаты.
Несколько позднее появилось сразу несколько работ, среди которых следует выделить работы М. Иа1ат1аи [46], М.Б. гакапа [63] и Н.И. Глумова [43], по синтезу вычислительно эффективных алгоритмов с КИХ полиномиального вида. Фактически, все работы неявно использовали возможность представления полиномиальной функции К-го порядка в виде рекуррентного соотношения (К+^-го порядка. Этот факт явно был указан в работе А.В. Чернова [38], в которой был получен рекурсивный алгоритм, аналогичный рассмотренным в [43, 46, 63]. Следует, однако, отметить еще один результат, который был получен Н.И. Глумовым, В.В. Сергеевым и автором настоящей работы. Он связан с построением полиномиальных функций (КИХ-фильтров), которые допусками предельно низкое число арифметических операций в рекурсивной реализации и позволяли организовывать обработку в параллельно-рекурсивном режиме. В работах [43, 44] были указаны условия построения таких функций, приведен их явный вид. Как, однако, было позднее показано в [58] автором настоящей работы, построенные в [43, 44] полиномы имеют богатую историю и хорошо известны в теории конечных разностей под термином «обобщенные степени» или «факториальные полиномы» [2, 10, 42, 48, 51]. Несмотря на это, нестандартное использование полиномиальных функций, связанных явным образом с их рекуррентным представле-
нием, позволило получить ряд численно простых алгоритмов вычисления сверток в одномерном и двумерном случаях [24-26, 56-60].
Наконец, следует еще раз вернуться к работе
A.В. Чернова [38]. В ней впервые была явно указана связь между однородным ЛРС, которое описывает КИХ, и быстрым рекурсивным алгоритмом. Обобщение этого результата на случай синтеза параллельно-рекурсивного алгоритма было сделано автором настоящей работы в [57].
Все указанные алгоритмы этой (первой) группы оказываются частными решениями задачи синтеза эффективного алгоритма, при следующих исходных
данных: 2 (30, {(и}1). 30 = ({(и)}-1, N, 0)), импульсная характеристика представима в виде однородного ЛРС некоторого порядка:
• экспоненциальная КИХ - 1-го порядка,
• синусная и косинусная КИХ - 2-го порядка,
• полиномиальная КИХ - (К+1)-го порядка,
• произвольная функция с РС К-го порядка.
В этом частном решении, которое задает индуцированный алгоритм, 5=2. Кроме того, в качества базового множества алгоритмов постоянной сложности, над которым строится индуцированный алгоритм, выступает множество из единственного алгоритма прямого вычисления свертки: {Аос }.
Второй группой алгоритмов, которая относится к частным решениям задачи синтеза индуцированного алгоритма, и которая рассматривалась в литературе по ЦОС и ЦОИ ранее, являются алгоритмы, использующие информационную избыточность сигнала. Работы по разработке таких алгоритмов велись совместно Л.П. Ярославским, И.А. Овсиевичем и
B.И. Кобером [17, 39, 53, 54, 62]. В основном, авторы ограничивались использованием операций численного дифференцирования и/или простейшего (линейного) предсказания входного сигнала. Реализация свертки выполнялась при этом с помощью алгоритмов типа БПФ, которые корректировались под «разреженный» вид исходных данных.
Алгоритмы этой (второй) группы оказываются частными решениями задачи синтеза эффективного алгоритма, при следующих исходных данных:
• 3(х) - содержит информацию о том, что сигнал
является кусочно-постоянным и/или линейно-постоянным.
- содержит значения «подобные шуму», которые не могут быть представлены компактно посредством ОРП или НРП. В качества базового множества алгоритмов постоянной сложности, над которым строится индуцированный алгоритм, выступает множество алгоритмов типа БПФ {Лрс}, включающее в себя алгоритмы БПФ, ориентированные на работу с разреженными данными [31, 39].
Следует особо отметить, что автору настоящей работы не известны примеры построения эффективных (быстрых) алгоритмов, в которых неоднородные ЛРП использовались бы как базовый математический аппарат, подходящий для синтеза соответствующих алгоритмов. В то же время, Теоремы 7 указывает на эту возможность как на одно из очевидных частных решений задачи синтеза эффективного алгоритма.
Благодарности Работа выполнена при поддержке:
• Российского фонда фундаментальных исследований (РФФИ), проект № 06-01-00616-а;
• Фонда содействия отечественной науке;
• Министерства образования и науки РФ, Правительства Самарской области и Американского фонда гражданских исследований и развития (CRDF Project SA-014-02) в рамках российско-американской программы «Фундаментальные исследования и высшее образование» (BRHE).
Литература
1. Агаян С.С. Успехи и проблемы быстрых ортогональных преобразований // Распознавание, классификация, прогноз. - М.: Наука, 1990. В.3. С. 146-214.
2. Андерсон Дж.А. Дискретная математика и комбинаторика: Пер. с англ. // М.: ИД »Вильямс», 2004. -960 с.
3. Ахмед Н., Рао К. Р. Ортогональные преобразования при обработке цифровых сигналов // М.: Связь, 1980. 248 с.
4. Баранов С. Н., Домарацкий А. Н., Ласточкин Н. К., Морозов В. П. Процесс разработки программных изделий // М.: Наука. Физматлит, 2000. 176 с.
5. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов // М.: Мир, 1989. - 448 с.
6. Быстрые алгоритмы в цифровой обработке изображений. Под ред. Т.С. Хуанга // М.: Радио и связь, 1984. 224 с.
7. Вариченко Л.В., Лабунец В.Г., Раков М.А. Абстрактные алгебраические системы и цифровая обработка сигналов // Киев: Наукова думка, 1986. 248 с.
8. Виттих В.А., Сергеев В.В., Сойфер В.А. Обработка изображений в автоматизированных системах научных исследований // М.: Наука, 1982. 214 с.
9. Власенко В.А., Лапа Ю.М., Ярославский Л.П. Методы синтеза быстрых алгоритмов свёртки и спектрального анализа сигналов // М.: Наука, 1990. 180 с.
10. Гельфонд А.О. Исчисление конечных разностей. Изд. 3-е, испр // М.: Наука, 1967. 375 с.
11. Голд Б., Рэйдер Ч. Цифровая обработка сигналов // М.: Советское Радио, 1973. 367 с.
12. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Справочник. Цифровая обработка сигналов // М.: Радио и связь, 1985. 312 с.
13. Грэхем Р., Кнут Д., Паташник О. Конкретная математика. Основание информатики: Пер. с англ. // М.: Мир, 1998. 703 с.
14. Журавлев Ю.И. Непараметрические задачи распознавания образов // Кибернетика, №6, 1976.
15. Журавлев Ю. И. Корректные алгебры над множествами некорректных (эвристических) алгоритмов. Часть I // Кибернетика, 1977. No. 4. С. 5-17.
16. Журавлев Ю.И. Об алгебраическом подходе к решению задач распознавания или классификации // Проблемы кибернетики. М.: Наука, 1978. № 33. С. 5-68.
17. Кобер В.И., Овсеевич И.А. Использование информационной избыточности сигналов для снижения вычислительных затрат на их обработку // Радиотехника, 1999. № 5. С. 13-16.
18. Лабунец В.Г. Алгебраическая теория сигналов и систем: Быстрое многомерное преобразование Фурье. -Свердловск: Изд-во Урал. ун-та, 1989. 196 с.
19. Лабунец В.Г. Единый подход к алгоритмам быстрых преобразований // Применение ортогональных методов при обработке сигналов и анализе систем. Свердловск: УПИ, 1980. С. 4-14.
20. Марков А.А., Нагорный Н.М. Теория алгоритмов. -М.: Наука, 1984. 432 с.
21. Математическая энциклопедия: под редакцией Виноградова И.М. // Т. 1-5, 1977.
22. Миролюбов А.А., Солдатов М.А. Линейные однородные разностные уравнения // М.: Наука, 1981. 208 с.
23. Миролюбов А.А., Солдатов М.А. Линейные неоднородные разностные уравнения // М.: Наука, 1986. 127 с.
24. Мясников В.В. Четные полиномиальные базисы для обработки изображений фильтрами с осесимметрич-ными импульсными характеристиками // Автометрия, N0 1, 1996. С. 80-87.
25. Мясников В.В. Рекурсивный алгоритм вычисления свертки изображения с неразделимым двумерным полиномиальным КИХ-фильтром // Компьютерная оптика, В.26, 2004. С. 80-82.
26. Мясников В.В. О рекурсивном вычислении свертки изображения и двумерного неразделимого КИХ-фильтра // Компьютерная оптика, 2005. Выпуск 27. С. 117-122.
27. Никольский С.М. Курс математического анализа. Т.1. 3-е изд., перераб. и доп. // М.: Наука, 1989. 464 с.
28. Нуссбаумер Г. Быстрое преобразование Фурье и алгоритмы вычисления свёрток // М.: Радио и связь, 1985. 248 с.
29. Оппенгеймер А.В., Шафер Р.В. Цифровая обработка сигналов: Пер. с англ. // М.: Связь, 1979. 416 с.
30. Рабинер Л, Гоулд Б. Теория и применение цифровой обработки сигналов: Пер. с англ. // М.: Мир, 1978. 848 стр.
31. Раудин П.В. Быстрые алгоритмы ДПФ для разреженных входных или выходных данных // 3-я ИКсийская конф. по распознаванию образов и анализу изображений (РОАИ-97). Н.Новгород, 1997. Ч.1. С. 243-247.
32. Сергеев В.В. Параллельно-рекурсивные КИХ-фильтры для обработки изображений // Компьютерная оптика. 1992. N0.10-11. С.186-201.
33. Сойфер В.А., Храмов А.В. Класс спектрально-рекуррентных алгоритмов оценивания полей // Тезисы доклада 5-го Международного симпозиума по теории информации. Москва; Тбилиси, 1979. Ч.2. С. 136-138.
34. Трахтман А.М., Трахтман В.А. Основы теории дискретных сигналов на конечных интервалах // М.: Советское радио, 1975. 208 с.
35. Хемминг Р.В. Цифровые фильтры: Пер. с англ. // М.: Советское радио, 1980. 224 с.
36. Холл М. Комбинаторика: Пер. с англ. // М.: Мир, 1970, 424 с.
37. Чернов В.М. Арифметические методы синтеза быстрых алгоритмов дискретных преобразований // Дис-
сертация на соискание ученой степени доктора физико-математических наук по специальности 05.13.17 «Теоретические основы информатики». Самара: Институт систем обработки изображений РАН, 1998. 277 с.
38. Чернов А.В. Быстрое рекурсивное вычисление значений одномерных и двумерных конечных сверток // Компьютерная оптика. 2002. № 25. С.190-197.
39. Ярославский Л.П. Введение в цифровую обработку изображений // М.: Сов. радио, 1979. 312 с.
40. Ярославский Л.П. О возможности параллельной и рекурсивной организации цифровых фильтров // Радиотехника, 1984. N 3. С.87-91.
41. Ярославский Л.П. Цифровая обработка сигналов в оптике и голографии. Введение в цифровую оптику // М.: Радио и связь, 1987. 296 с.
42. Agarwal R.P. Difference Equations and Inequality: Theory, Methods, and Applications, 2nd ed., rev. exp. // New York: Marcel Dekker, 2000. 998 p.
43. Glumov N.I., Myasnikov V.V., Sergeyev V.V. Application of polynomial bases for image processing using sliding window // SPIE. Image Processing and Computer Optics, 1994. Vol.2363. P. 40-49.
44. Glumov N.I., Myasnikov V.V., Sergeyev V.V. Parallel-Recursive Local Image Processing and Polynomial Bases // Proceedings of the Third IEEE Inrernational Conference on Electronics, Circuits, and Systems ICECS'96. Rodos, Greece, 1996. Vol.2. P.696-699.
45. Gupta A., Rao K.R. A fast recursive algorithm for the discrete sine transform // IEEE Transactions on Acoustic, Speech and Signal Processing, 1990. Vol. ASSP-38, No.3. P. 553-557.
46. Hatamian M. A real-time two-dimensional moment generating algorithm and its single chip implementation // IEEE Trans. on Acoustic, Speech and Signal Processing, 1986. Vol. ASSP-34. No.3. P.546-553.
47. Hou H.S. A fast recursive algorithm for computing the discrete cosine transform // IEEE Transactions on Acoustic, Speech and Signal Processing, 1987. Vol. ASSP-35. No.10. pp.1455-1461.
48. Jagerman D. Difference Equations with Applications to Queues // New York: Marcel Dekker, 2000. 246 p.
49. Jain A.K., Jain J.R. Partial differential equations and finite difference methods in image processing. Рай II - Image restoration // IEEE Transactions on Automatic Control. Vol.AC-23, 1978. P.817-834.
50. Jain A.K. Partial differential equations and finite difference methods in image processing. Рай I - Image representation // J. Optimiz. Theory and Appl. 1977. Vol. 23. P. 65-91.
51. Jordan Ch. Calculus of finite differences, 2nd ed. // New York: Chelsea Publ. Co., 1950. 652 p.
52. Kober V. A fast recursive algorithm for sliding sine transform // Electronics Letter, 2002. Vol. 38. No.25. Р. 1747-1748.
53. Kober V., Yaroslavsky L.P. Use of signal redundancy for reduction of signal processing computational time // Proceedings of Seminar on Digital Image Processing in Medicine, Remote Sensing and Visualization of Information. Riga, 1992. P. 7-9.
54. Kober V., Ovseyevich I.A., Yaroslavsky L.P. Information redundancy of signals: a way to save processing time // Pattern Recognition and Image Analysis, 1993. Vol.3, No. 1. P.15-18.
55. Li B. High-Order Moment Computation of Grey-Level Images // IEEE Trans. on Image Processing, 1995. Vol. 4. No. 4. P.502-505.
56. Myasnikov V.V. A Recursive Algorithm for Computing the Convolution of an Image with a Two-Dimensional Indecomposable Polynomial FIR Filter // Pattern Recognition and Image Analysis, 2005. Vol. 15, No. 1. P. 260-263.
57. Myasnikov V.V. Methods for Designing Recursive FIR Filters // Proceedings of International Conference "Computer Vision and Graphics" (ICCVG 2004). Warsaw, Poland, 2004. Springer. P. 845-850.
58. Myasnikov V.V. Construction of Integer-Value Polynomials for Recursive Calculation of the Convolution with FIR-Filter // Тезисы 7-й Международной конференции «International Conference on Pattern Recognition and Image Analysis». Санкт-Петербург, 2004. P. 331-334.
59. Myasnikov V.V. Recursive Algorithm of Calculation the Convolution of Image and Inseparable 2-D Polynomial FIR-Filter // Тезисы 7-й Международной конференции
«International Conference on Pattern Recognition and Image Analysis», CaHKT-nerep6ypr, 2004. P. 327-330.
60. Myasnikov V.V. On Recursive Computation of the Convolution of Image and 2-D Inseparable FIR-Filter // The 9th World Multi-Conference on Systemics, Cybernetics and Informatics. Orlando, Florida (USA), 2005. P.268-272.
61. Vitkus R.Y., Yaroslavsky L.P. Recursive algorithms for local adaptive linear filtration // in: Mathematical Research., Eds.: Yaroslavsky L.P., Rosenfeld A. and Wil-helmi W. Academy Verlag, Berlin, 1987. P.34-39.
62. Yaroslavsky L.P., Kober V. Redundancy of signals and transformations and computational complexity of signal processing // Proceedings of IEEE Conference on Pattern Recognition. Jerusalem, 1994. P.164-166.
63. Zakaria M.F. et al. Fast algorithm for the computation of moment invariants // Pattern Recognition, 1987. Vol.20, No.6, P. 634-643.