Главная » Просмотр файлов » С.А. Абрамов - Лекции о сложности алгоритмов (pdf)

С.А. Абрамов - Лекции о сложности алгоритмов (pdf) (1123764), страница 22

Файл №1123764 С.А. Абрамов - Лекции о сложности алгоритмов (pdf) (С.А. Абрамов - Лекции о сложности алгоритмов (pdf)) 22 страницаС.А. Абрамов - Лекции о сложности алгоритмов (pdf) (1123764) страница 222019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 22)

Известный нам алгоритм поиска наименьшего элемента и алгоритм бинарного поиска места элемента в упорядоченном массиве имеет каждыйсложность, совпадающую с найденной нижней границей. Эти алгоритмы являются оптимальными в смысле следующего определения.Определение .. Пусть A — класс алгоритмов решения некоторой задачи. Пусть принято соглашение о том, в чем измеряютсязатраты алгоритмов и что считается размером входа, и пусть n — обозначение размера входа.

Алгоритм A ∈ A называется оптимальнымв A , если TA (n) является нижней границей сложности алгоритмовиз A .Пример .. При получении нижней границы сложности и доказательстве оптимальности иногда бывает полезным привлечениефункций на наборах тех величин, которые возникают в процессе выполнения алгоритма, например, на наборах значений переменных,используемых алгоритмом.l m3n− 2 является нижнейПредложение .. Функция f (n) =2границей сложности алгоритмов одновременного выбора наибольшегои наименьшего элементов массива длины n c помощью сравнений.Доказательство.

Каждый этап выполнения произвольного алгоритма V, основанного на сравнениях и предназначенного для поисканаибольшего и наименьшего элементов массива, может быть охарактеризован четверкой (A, B, C, D) подмножеств множества исходныхэлементов {x1 , x2 , ..., xn }, где• A состоит из всех тех элементов, которые вообще не сравнивались;• B состоит из всех тех элементов, которые участвовали в некоторыхсравнениях и всегда оказывались бо́льшими;• C состоит из всех тех элементов, которые участвовали в некоторых сравнениях и всегда оказывались меньшими;• D состоит из всех тех элементов, которые участвовали в некоторых сравнениях, иногда оказываясь бо́льшими, а иногда — меньшими.Пусть a, b, c, d — количества элементов множеств A, B, C, D соответственно.

Исходная ситуация характеризуется равенствами a = n, b == c = d = 0. После завершения алгоритма должны выполняться равен-§ . Оптимальные алгоритмыства a = 0, b = c = 1, d = n − 2. После первого сравнения на протяжении всего выполнения алгоритма постоянно будут иметь место неравенства b ¾ 1, c ¾ 1.Все сравнения, совершаемые при выполнении алгоритма V , можно разбить на типы, обозначаемые AA, AB, AC, AD, BB, BC, BD, CC,CD, DD, например: сравнение принадлежит типу AB, если один изсравниваемых элементов берется из A, другой — из B, и т. д. Исходя изэтого, можно выписать все возможные изменения четверки (a, b, c, d)под действием сравнений разных типов:AA : (a − 2, b + 1, c + 1, d),AB : (a − 1, b, c + 1, d) | (a − 1, b, c, d + 1),AC : (a − 1, b + 1, c, d) | (a − 1, b, c, d + 1),AD : (a − 1, b + 1, c, d) | (a − 1, b, c + 1, d),BB: (a, b − 1, c, d + 1),BC : (a, b − 1, c − 1, d + 2) | (a, b, c, d),BD : (a, b − 1, c, d + 1) | (a, b, c, d),CC : (a, b, c − 1, d + 1),CD : (a, b, c − 1, d + 1) | (a, b, c, d),DD : (a, b, c, d)(вертикальная черточка здесь означает «или»).

Рассмотрим функцию3L(a, b, c, d) = a + b + c − 2. Для начальной и конечной стадий имеем23L(n, 0, 0, 0) = n − 2 и L(0, 1, 1, n − 2) = 0 соответственно.2Каждое сравнение типов AA, BB, CC понижает значение L на 1,т. е. дает ∆ L = −1. Выпишем все возможные значения ∆ L при выполнении сравнений различных типов:AA, BB, CC :BD, CD :−1,−1 | 0,3212AB, AC :− |− ,BC :−2 | 0,AD :− ,DD :0.12Сравнения, относящиеся к типам AB, AC, BC, могут приводитьк ∆ L < −1, но это не может быть гарантировано никаким специальным выбором элементов из соответствующих множеств четверки Глава .

Нижняя граница сложности. Оптимальные алгоритмы(A, B, C, D), даже если принимать во внимание результаты всех сравнений, в которые были вовлечены конкретные элементы этих множеств. Например, сравнение типа AB в том случае, когда выбранныйэлемент из A оказывается больше выбранного элемента из B, преобразует (a, b, c, d) в (a − 1, b, c, d + 1), что дает ∆ L < −1.

Но результатыпредшествующих сравнений не дают оснований для отметания возможности того, что выбранный элемент из B равен max{x1 , x2 , ..., xn }(ибо этот элемент оказался бо́льшим во всех сравнениях, в которые1он был вовлечен). Но тогда будет выполнено ∆ L = − . Аналогичным2образом дело обстоит для сравнений, принадлежащих типам AC, BC.Поэтому, рассматривая поведение алгоритма V в худшем случае, надо считать, что на всех этапах ∆ L ¾ −1. Но тогда для достижения равенства L(a, b, c, d) = 0 потребуется не менее ⌈ L(n, 0, 0, 0)⌉ сравнений.Это значит,l m что общее число сравнений в худшем случае не меньше,3nчем− 2.2Представленный в приложении A алгоритм одновременного поисканаибольшего и наименьшегоэлементов массива, требующий в худшемl m3nслучае не более− 2 сравнений, является оптимальным  .2Наряду с алгоритмами поиска наименьшего элемента, бинарного поиска места элемента в упорядоченном массиве и алгоритма одновременного поиска наибольшего и наименьшего элементов массива примером оптимального алгоритма может служить алгоритм(«схема») Горнера вычисления значения полинома в данной точке(см.

приложение D).Для произвольного класса A оптимальный алгоритм может и несуществовать: если, например, A содержит ровно два алгоритма,A1 , A2 , и при этом A1 имеет низкую сложность при четных значениях целочисленного размера входа n и высокую — при нечетных,а A2 — наоборот, то, очевидно, ни A1 , ни A2 не будут оптимальными в A . Ясно, что если оптимальные алгоритмы в классе A существуют, то их сложности совпадают: из неравенств TA1 (n) ¾ TA2 (n)и TA2 (n) ¾ TA1 (n) следует, что TA1 (n) = TA2 (n). Несколько более содержательный пример можно найти в задаче .В отличие от поиска наименьшего элемента, поиска места в упорядоченном массиве и одновременного поиска наибольшего и наиЭтот алгоритм и идея использования четверок (A, B, C, D) в доказательстве его оптимальности были предложены И.

Полом в [], но при этом убывающие функции в егодоказательстве не привлекались, из-за чего потребовались дополнительные словесныемотивации.§ . Оптимальные алгоритмыменьшего элементов, задача сортировки не столь проста: те алгоритмы, которыми пользуются на практике для ее решения, не являются,строго говоря, оптимальными (см. приложение F).Заметим при этом, что для каждого конкретного n за конечноечисло шагов может быть найдено наименьшее число сравнений, достаточное в худшем случае для сортировки n элементов, а вместес ним и алгоритм сортировки с такой сложностью. Это следует из того, что при каждом конкретном n алгоритм сортировки может бытьпредставлен бинарным деревом. Можно порождать одно за другимвсе бинарные деревья с высотой, не превосходящей ⌈log2 n!⌉, в вершинах каждого такого дерева различными способами расставлять выражения вида xi < x j , где i, j ¶ n, а в листьях — различные перестановки длины n. Для каждого размеченного таким способом дереванужно проверить, действительно ли каждая ветвь приводит именнок тому порядку, который указан в листе, и что все возможные порядки охвачены.

Из всех «правильных» деревьев выбирается имеющеенаименьшую высоту. Оно определяет оптимальный алгоритм для заданного n.Таким образом, мы имеем алгоритм, который, исходя из n > 0,строит оптимальный по числу сравнений алгоритм сортировки массивов из n элементов (алгоритм строит алгоритм). Этот алгоритмпостроения оптимального алгоритма сортировки требует огромнойработы, даже если применить все средства экономии перебора.

Этотпример еще раз показывает, что понятие алгебраической сложноститребует осторожного обращения, — объем неучитываемых операцийможет превзойти разумные пределы.Бинарный алгоритм возведения в степень n также не являетсяоптимальным по числу умножений при использовании n в качестверазмера входа (см. задачу ), хотя и легко показать, что для случая n = 2k при рассмотрении k в качестве размера входа оптимальность имеет место: из предложения . следует, что возведение в степень n = 2k не может быть выполнено с затратами меньшими, чемk умножений, а бинарный алгоритм обходится в точности этим числом умножений.В общем же случае, как и многие известные алгоритмы сортировки, бинарный алгоритм возведения в степень оптимален лишьв некотором асимптотическом смысле, о чем пойдет речь в следующем параграфе.Если затраты для каждого входа являются целыми числами (например, они являются количеством выполненных операций), то дляфиксированного размера n0 входа в рассматриваемом классе A ал- Глава .

Нижняя граница сложности. Оптимальные алгоритмыгоритмов решения некоторой задачи P существует такой, сложностькоторого при n = n0 есть минимум сложностей всех алгоритмов из A .Можно определить такой минимум для любого значения n, получаемую таким способом функцию от n иногда называют сложностьюзадачи P по отношению к классу алгоритмов A . Важно, что при разных n минимумы могут доставляться разными алгоритмами из A(см. задачу ). В дальнейшем мы не будем касаться этих вопросов.§ . Асимптотические нижние границы.

Алгоритм,оптимальный по порядку сложностиИзвестно не очень много алгоритмов, оптимальных в смысле определения .. Рассмотрим дополнительно понятие алгоритма, оптимального по порядку сложности.Определение .. Пусть A — класс алгоритмов решения некоторой задачи. Пусть принято соглашение о том, в чем измеряютсязатраты алгоритмов и что считается размером входа, и пусть n — обозначение размера входа. Функция f (n) называется асимптотическойнижней границей сложности принадлежащих A алгоритмов, еслидля сложности TA (n) любого A ∈ A мы имеем TA (n) = Ω( f (n)). (Если используются несколько параметров n1 , n2 , ..., nk размера входа, тоасимптотическая нижняя граница — это, соответственно, функция аргументов n1 , n2 , ..., nk .) Алгоритм A ∈ A называется оптимальным попорядку сложности в A , если TA (n) является асимптотической нижней границей сложности алгоритмов из A .Очевидно, что любая неотрицательная нижняя граница сложности является и асимптотической нижней границей, и что любой оптимальный алгоритм является оптимальным по порядку сложности.Ниже в примере . мы увидим, что может существовать несколькооптимальных по порядку сложности в A алгоритмов.

Однако сложности таких алгоритмов оказываются величинами одного порядка.Теорема .. Пусть A, B ∈ A оптимальны по порядку сложностив A . Тогда TA (n) = Θ(TB (n)).Доказательство. Так как алгоритм A оптимален по порядку сложности, имеем TB (n) = Ω(TA (n)) или, что то же самое, TA (n) = O(TB (n)),что вместе с TA (n) = Ω(TB (n)) (алгоритм B оптимален по порядкусложности) дает TA (n) = Θ(TB (n)).§ . Асимптотические нижние границыУкажем достаточное условие оптимальности алгоритма по порядку сложности.Теорема .. Если функция f (n) является асимптотической нижней границей сложности принадлежащих классу A алгоритмов и еслиалгоритм A ∈ A таков, что TA (n) = O( f (n)), то этот алгоритм оптимален в A по порядку сложности и TA (n) = Θ( f (n)).Доказательство. Для произвольного B ∈ A имеем TB (n) = Ω( f (n));учитывая, что TA (n) = O( f (n)), получаем TB (n) = Ω(TA (n)), т.

Характеристики

Тип файла
PDF-файл
Размер
1,58 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее