Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » (см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010)

(см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010) ((см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010).pdf), страница 7

PDF-файл (см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010) ((см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010).pdf), страница 7 Теория игр и исследование операций (64278): Книга - 11 семестр (3 семестр магистратуры)(см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010) ((см. сложность) Элементы теории сложности алгоритмов и вычислений. Х2020-08-25СтудИзба

Описание файла

PDF-файл из архива "(см. сложность) Элементы теории сложности алгоритмов и вычислений. Хахаян (2010).pdf", который расположен в категории "". Всё это находится в предмете "теория игр и исследование операций" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 7 страницы из PDF

Однако алгоритм, приведённый ниже и имеющийсложность такую же, как алгоритм Прима, решает задачуКРАТЧАЙШИЙ ПУТЬ В ГРАФЕ (докажите корректностьэтого алгоритма, см., например, (2 ), стр. 1 1 ).Алгоритм-5 Алгоритм КРАТЧАЙШИЙ ПУТЬ В ГРАФЕ в одну вершину______Вход: п > 0, dtj > 0, Vi j € (1,.... п)Выход: Кратчайший путь из любой вершиныо, вvn.for all г £ l..n doPi ={Nvll, +oo) {сбрасываем начальные оценки}end forfor all j € {j.: djtn < Too} doPj s (n, dJn) {устанавливаем оценки для соседей}end forfor all iteration e l..n do {достаточно, чтобы процесс сошелся}for all i £ l..n do {по всем узлам}for all j e (j : d,j < +oo} do {по всем соседямif Д > Dj + <%then {j-й сосед предлагает нам лучший путь}А +- Dj + dy {улучшаем оценку}Pi = (Т А) {направляем путь к .?'-му соседу}end ifend forend forend forreturn Vi (/';!).

Ррцщ!), РщщщО)-.. •, n) {Or всех узлов прокладываем путь к№»}Теперь мы обратимся к описанию известных методовполучения полиномиальных алгоритмов и к примерам задач,на которых эти методы хорошо иллюстрируются.ПОИСК В УПОРЯДОЧЕННОМ МАССИВЕ.УСЛОВИЕ. Имеется упорядоченный линейно массив чисел«1 < а2<...< ап и элемент а, совпадающий с одним из а\.ВОПРОС. Чему равен номер элемента, с которым совпадает а?Замечание.

Сформулируйте также и эту задачу как задачураспознавания.Конечно, есть простой алгоритм, решающий эту задачу заполиномиальное время (какой?). Однако имеет местоследующаяТеорема 2.1. Существует алгоритм Л, для которогомаксимальное число сравнений равно Гlog2n \ .Предъявите нужный алгоритм и докажите, что онправильно работает (для справки см. (4), стр. 5;соответствующий алгоритм называется «поиск в бинарномдереве» и определяется с помощью рекурсии).Доказать утверждение типа «для любого алгоритма»обычно существенно труднее, чем утверждение типа«существует алгоритм».

В первом случае нужно чёткоописать весь класс рассматриваемых алгоритмов. Вышебыло указано, что любой алгоритм поиска в упорядоченноммассиве из п элементов можно представить в виде бинарногодерева. Поэтому далее мы рассмотрим некоторые свойствабинарных деревьев.Определение. Глубиной h(x) листа х в корневом деревеD будем называть число ребер в (единственном) пути изкорня дерева в лист х. Высотой h(D) дерева D будемназывать тах{/г(х)}, где максимум берется по всем листьямдерева D. Средней высотой hcp(D) дерева D будем называтьсреднее арифметическое величин h (х) по всем листьямдерева D.Лемма 2.2.

Для любого бинарного дерева с п листьямивыполнены неравенства:1) h(D)>riog2n 1;2) hcp(D)>log2n.Докажите эту лемму самостоятельно (для справки см. (4),стр. 6 )Следствие. Для всякого алгоритма А поиска вупорядоченном массиве сложность А >Tlog^n](длядоказательства достаточно представить А в виде бинарногодерева, в котором не менее п листьев).СОРТИРОВКАВОПРОС. Дана последовательность различных элементовнекоторого линейно упорядоченного множестваУСЛОВИЕ.

Выстроить элементы в порядке возрастания.Соответствующий алгоритм А упорядочения можнопредставить в виде бинарного корневого дерева, каждойвершине которого приписана пара сравниваемых элементов, алистьям приписаны ответы в виде перестановок. Обозначимчерез L(ri)=min LA(n). где min берётся по всем алгоритмам А, аЬА(п) есть сложность алгоритма сортировки А и равнамаксимальному числу сравнений от начала работы до ответа.Теорема 2.3.

LA(n) >log2n!.Для доказательства достаточно представить А в видебинарного дерева и заметить, что любая последовательностьэлементов м.б. ответом и в силу этого должна быть приписанахотя бы одному листу, а тогда в дереве не менее п! листьев иего высота не меньше log2n! (отсюда немедленно следует, чтосложность алгоритма сортировки (любого!) не менее log2n!. Всилу формулы Стирлинга имеем, Up) > (1 -0(п)) log2n.Рассмотрим теперь алгоритм «сортировка слиянием», чьяоценка окажется близка сверху к полученной. Алгоритм«СОРТ» будет работать следующим рекурсивным образом:последовательность элементов делится на две почти равныечасти А и В и каждую часть упорядочиваем, а затем сливаемотсортированные последовательности вместе в С (для деталейсм.

(4), стр.9). На каждом шаге слияния сравниваем первыеэлементыизполученныхотсортированныхподпоследовательностей А я В я меньший из них переносимочередным элементом в С (если А или В уже пусто, тооставшиеся элементы переносим в С по порядку). Если Ьа(п)- число сравнений, то£с,( 1)=0, a Lc„(ri)=Lc,$_n/2J)+ Д,(Гп/2~\)+п- 1 при п> 2 .Лемма 2.4.

LCJ(n)=nlog2 n-n+l для п=2к.Доказательство проводится индукцией по к (докажите сами!).В качестве следствия получаем, что La,,(n) < 2nlog2n+\(докажите следствие сами: используйте индукцию или см. длясправки (4), стр.9). Обратимся теперь к общим методамполучения быстрых алгоритмов.РЕКУРРЕНТНЫЕ МЕТОДЫ ПОСТРОЕНИЯАЛГОРИТМОВОдно из важных направлений в построении быстрыхалгоритмов - это рекуррентные методы. При этом решениезадачи сводится к решению более простых подзадач такого жетипа, которые, в свою очередь, сводятся к еще более простымподзадачам и т.д. Естественно, при этом должен бытьнекоторый базисный уровень, задачи которого решаются уже нерекуррентно, а непосредственно. Можно выделить два основныхрекуррентных метода, которые используются для построениябыстрых алгоритмов: метод динамического программированияи метод «разделяй и властвуй».

Для этих основных методовможно привести очень простые и наглядные примеры,которые будут понятны любому читателю: задача обоптимальном порядке умножения матриц и алгоритмКарацубы для умножения чисел1. Метод динамического программированияВсамомширокомвидеидеядинамическогопрограммирования состоит в выделении в данной задаче спараметром п (характеризующим длину входа) подзадач сменьшими параметрами и решении подзадач в соответствии сувеличением параметра, начиная с самого меньшего (обычно Оили 1). При этом задача с параметром к решается, когда ужерешены все подзадачи с параметром к - 1 и меньше (иногда не к 1, а к - с, где с - константа).

При этом большого числа подзадачудается часто избежать за счет того, что решение разныхподзадач сводится к решению одних и тех же подзадач.Рассмотрим пример.Задача об оптимальном порядке умножения матрицМы будем рассматривать здесь только обычный способумножения двух матриц («строчка на столбец») и будемучитывать только число умножений элементов.

При этом , еслиматрицы А и В имеют размеры т х п и п х р , т о для вычисленияА • В требуется, тпр умножений элементов. Известно, что длялюбых трех матриц (АВ)С - А(ВС), то есть произведениематриц не зависит от расстановки скобок. Однако числоопераций умножения элементов может при этом оказатьсяразным.Рассмотрим вычисление произведения п матрицЛ) = А4,хА/гХ .

. , хМ тгде М{ - матрица с г\А строками и г; столбцами. Порядок, вкотором эти матрицы перемножаются, может существенносказаться на общем числе операции, требуемых длявычисления М, независимо от алгоритма, применяемого дляумножения матриц.Пример Рассмотрим произведениеМ=> М, У М, X М, ХМ,[10x20] [20 x 50] [50x1 J [1x100]где размеры каждой матрицы М\ указаны в скобках. Есливычислять М в порядкеМ, X(M.t х (М, х М,)), хо потребуется125 000 операций, тогда как вычисление М в порядке(Mj X(М%XЩ)) X М, занимает лишь 2 2 0 0 операций.Процесс перебора всех порядков, в которых можновычислить рассматриваемое произведение п матриц с цельюминимизировать число операций, имеет экспоненциальнуюсложность, что при больших « практически неприемлемо.Однако динамическое программирование приводит калгоритму сложности О(п3). Пусть т-у - минимальнаясложность вычисления произведенияl < i < j < n .

Очевидно, чтоX^[ О,1+1е слиX * * *XAfy,I = /,тч “ \MIN (»Чк+тш , + г,...,г / Л , если / > {,<< * < /Здесьmik -минимальнаясложностьaвычисления- минимальнаяСЛОЖНОСТЬ вычисления^+Третье слагаемое равно сложности умножения М' на М".Заметим, что М’ — матрица размера r,_,x rh а М" - матрицаразмера гкх г.При динамическом программировании т,у вычисляются впорядке возрастания разностей нижних индексов.

Начинают свычисления ти для всех /, затем m,k+i для всех /, потом т,л+2 ит. д. При этом т,к и тМ} будут уже вычислены, когда мыприступим к вычислению ту . Это следует из того, что при i <к < j, разность j-i должна быть больше k-i, а также и j-(k+ 1).Соответствующий алгоритм приведён на рис 2.4.1.2.3.4.5.6.beginlor (я—1 until п do0;for /'■*— 1 until л—1 dofor ( ‘—1 u n t il /; —1 dobeginJ1+ ('>in,,*- M I N (W/ft+ Щ+,‘ K-kiiwrite tnlneitdРис. 2.4 Алгоритм динамического программирования для определенияпорядка умножения матриц.0%=>04 -io o o ffIDjj ** 100Q% *»ш о% *3000даи«50002200Рис.

2.5 Сложности вычисления произведений M i х М ;+1 х ... х М j.Для оценки сложности тривиального (переборного)алгоритма и приведённого выше см. (4), стр. 10-12, однако нетрудно сообразить, что сложность алгоритма динамическогопрограммирования не более чем полиномиальна (для другогопримера см. (4), стр. 13, задача о кратчайших путях вориентированном графе).2. Метод «разделяй и властвуй».

Теорема орекуррентном неравенствеДругой рекуррентный метод построения быстрыхалгоритмов - это метод, который называют «разделяй ивластвуй». В нем также решение задачи сводится крешению подзадач, но, в отличие от метода динамическогопрограммирования, размерность подзадач отличается отразмерности задачи не на константу, а в константу раз иподзадачи решаются независимо друг от друга. Дляполученияоценоксложноститакихалгоритмовиспользуется следующая теорема:Теорема 2.5.

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