КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Асимптотические нижние границы. Алгоритм, оптимальный по порядку сложности
Известно не очень много алгоритмов, оптимальных в смысле определения 15.1. Рассмотрим дополнительно понятие алгоритма, оптимального по порядку сложности. Определение 16.1. Пусть .s4 — класс алгоритмов решения некоторой задачи. Пусть принято соглашение о том, в чем измеряются затраты алгоритмов и что считается размером входа, и пусть n —обозначение размера входа. Функция f (n) называется асимптотической нижней границей сложности принадлежащих .s4 алгоритмов, если для сложности TA(n) любого A е^мы имеем TA (n) = П(f (n)). (Если используются несколько параметров n 1, n2,..., nk размера входа, то асимптотическая нижняя граница—это, соответственно, функция аргументов n 1, n2,..., nk.) Алгоритм A е .s4 называется оптимальным по порядку сложности в .s4, если TA(n) является асимптотической нижней границей сложности алгоритмов из .s4. Очевидно, что любая неотрицательная нижняя граница сложности является и асимптотической нижней границей, и что любой оптимальный алгоритм является оптимальным по порядку сложности. Ниже в примере 16.4 мы увидим, что может существовать несколько оптимальных по порядку сложности в .s4 алгоритмов. Однако сложности таких алгоритмов оказываются величинами одного порядка. Теорема 16.1. Пусть A,B&.s4 оптимальны по порядку сложности в.s4. Тогда TA (n)=е(TB (n)). Доказательство. Так как алгоритм A оптимален по порядку слож § 16. Асимптотические нижние границы Укажем достаточное условие оптимальности алгоритма по порядку сложности. Теорема 16.2. Если функция f (n) является асимптотической нижней границей сложности принадлежащих классу.s4 алгоритмов и если алгоритм A&.s4 таков, что TA(n) = O{f(n)), то этот алгоритм оптимален в.s4 по порядку сложности и TA (n) = 6(f (n)).
Доказательство. Для произвольного B ел? имеем TB{n) = П(f (n)); учитывая, что TA{n) = O{f{n)), получаем TB{n) = П{TA{n)), т.е. алгоритм A оптимален по порядку сложности. Из TA (n)=П(f (n)) и TA{n) = O{f{n)) получаем TA{n) =в(f (n)). □ Пример 16.1. Из предложения 14.5 следует, что функция f (n) = = log2 n является асимптотической нижней границей сложности алгоритмов вычисления an с помощью умножений (эта функция даже является нижней границей в смысле определения 14.1). Для сложности бинарного алгоритма вычисления an мы имеем T RS(n) = O (log n) (см. пример 4.2). Из теоремы 16.2 теперь получаем: Бинарный алгоритм возведения в степень является оптимальным по порядку сложности в классе алгоритмов вычисления an с помощью умножений. Иногда, хотя не часто, из совершенно элементарных соображений удается найти такую нижнюю границу сложности, что далее по теореме 16.2 оказывается возможным обосновать оптимальность некоторого известного алгоритма по порядку сложности. Рассмотрим два примера из теории графов. Пример 16.2. Вопрос о существовании и построении эйлерова цикла данного ориентированного графа сформулирован в задаче 16. Остановимся на случае связного графа. Очевидно, что если избрать число ребер | E | в качестве размера входа, то | E | является нижней границей сложности класса всех алгоритмов построения эйлеровых циклов, так как, во-первых, любой эйлеров цикл содержит по определению все ребра графа и на любое ребро уйдет по крайней мере одна операция, и, во-вторых, для любого натурального n существует граф с \E\ = n, содержащий эйлеров цикл. Поэтому тот алгоритм со сложностью O (| E |), который требуется дать в задаче 16, будет оптимальным по порядку сложности. Пример 16.3. Рассмотрим задачу построения минимального остов-ного (покрывающего) дерева данного связного графа, каждое ребро
116 Глава 4. Нижняя граница сложности. Оптимальные алгоритмы которого имеет некоторый неотрицательный вес. Имеется в виду дерево: (a) которое охватывает все вершины данного графа, (b) все ребра которого являются ребрами данного графа, (c) которое среди всех деревьев, обладающих свойствами (a), (b), имеет минимальный суммарный вес ребер Ч Будем считать, что граф не содержит кратных ребер. Пример графа с соответствующим остовным деревом дан на рис. 19. Для построения минимального остовного дерева известны остроумные алгоритмы, например, алгоритм Р.Прима2 с оценкой сложности O (| E | + | V |log| V |). (16.1)
В этой оценке | V | и | E | рассматриваются как два параметра размера входа. Не обсуждая вопрос, является или нет алгоритм Прима оптимальным по порядку сложности при таком выборе параметров размера входа и не рассматривая детали алгоритма Прима, мы покажем, что этот алгоритм оптимален по порядку сложности при использовании | V | как размера (единственного параметра размера) входа. Так как среди всех графов без кратных ребер, имеющих | V | вершин, наибольшее число ребер | V |(| V |-1) |(| V имеет полный граф, то оценка (16.1) имеет следствием оценку O (| V |2). С другой стороны, асимптотическая нижняя граница Г2(| V |2) для алгоритмов такого рода получается тривиально: эту оценку допускает число ребер полного графа, а на каждое ребро графа алгоритм затрачивает по крайней мере одну операцию (он не может не принять в расчет вес какого-либо ребра). Если использовать для входов алгоритмов построения остовного дерева размер \V\, то \V\2 даст асимптотическую нижнюю границу сложности этих алгоритмов, и алгоритм Прима будет оптимальным по порядку сложности (его сложность, соответствующая этому размеру входа, есть 6(| V |2)). :См. [21, гл. 24]. 2 Этот алгоритм описан, например, в [21, разд. 24.2]. § 16. Асимптотические нижние границы Из этого примера видно, что само свойство оптимальности находится в зависимости от выбора размера входа г. В следующем примере, касающемся сортировки массивов, рассматривается сложность в худшем случае по числу сравнений.
Пример 16.4. Аналогично тому, как это сделано в примере 16.1, мы получаем, что любая сортировка, сложность которой допускает оценку О (log п!), является оптимальной по порядку сложности. В силу формулы Стирлинга мы имеем п log2 п = 0(log п!), откуда следует, что любая сортировка, сложность которой по числу сравнений допускает оценку 0(n log п), является оптимальной по порядку сложности. Сортировка бинарными вставками и сортировка фон Неймана являются оптимальными по порядку сложности по числу сравнений. (Позднее мы установим оценку O (n log n) и для сложности рекурсивной сортировки слияниями.) Эти сортировки имеют разные сложности как функции от п: например, T vN(5) = 9, Гв(5) = 8. Но, повторим, их сложности являются величинами одного порядка при п—> <х>. Резюмируем наши наблюдения. Предложение 16.1. Необходимым и достаточным условием оптимальности сортировки по порядку сложности является справедливость оценки O (n log n) для сложности этой сортировки. Если для некоторой сортировки справедлива оценка O (n log n), то справедлива и оценка G(n log n). Доказательство. Достаточность уже установлена выше. Оставша Заметим при этом, что для сортировок бинарными вставками и фон Неймана справедливо значительно более сильное утверждение, чем утверждение об их оптимальности по порядку сложности. Для их сложностей и сложности T opt(n) оптимального алгоритма имеет место асимптотическая эквивалентность: Тв(п) ~ TvN(n) ~ T opt(n) ~ п log2 п ~ log2 п\. Коснемся нижних границ пространственной сложности алгоритмов сортировки. Если из всех этих алгоритмов выделить класс таких, которые используют для перемещения элементов обмены (<—>), а не присва- 1 Этот пример сообщил автору Е. В. Зима. 118 Глава 4. Нижняя граница сложности. Оптимальные алгоритмы ивания (:=), то для этого класса единственной нижней границей, если говорить о функциях, принимающих неотрицательные значения, будет тождественно равная нулю функция, так как существуют, например, пузырьковая сортировка, сортировки простыми и бинарными вставками, не использующие дополнительных переменных того типа, к которому относятся элементы сортируемого массива. (То, что требуются переменные для хранения значений индексов элементов, несущественно при изучении алгебраической сложности сортировки.) Алгоритмы, использующие присваивания для перемещения сортируемых элементов, не могут, естественно, обойтись без дополнительного места для хранения хотя бы одной величины того же типа, что и элементы сортируемого массива, и одной из нижних границ будет функция, тождественно равная единице. Если рассматривать все алгоритмы сортировки вместе, то вновь единственная неотрицательная целочисленная граница— это 0. В соответствии с этим определяются как оптимальные, так и оптимальные по порядку сложности алгоритмы.
Для произвольного класса .s4 оптимальный по порядку сложности алгоритм может и не существовать: если .s4 содержит всего два алгоритма Aг,A2 и при этом Aг имеет низкую сложность при четных значениях целочисленного размера входа n и высокую — при нечетных, а A2 — наоборот, то, очевидно, ни Aъ ни A2 не будут оптимальными в .s4 по порядку сложности (представим себе, что TA = = (1 + (-1) n) n, TA 2 = (1 - (-1) n) n). В то же время, если допустить, что TA =(2+(-1) nn, TA =(2-(-1) n) n, то TA (n) = е(TA (n)) (обе функ-ции имеют порядок n), и это говорит о возможности существования оптимального по порядку сложности алгоритма при отсутствии оптимального.
Дата добавления: 2014-01-11; Просмотров: 1224; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |