Главная » Просмотр файлов » В.Б. Алексеев - Введение в теорию сложности алгоритмов

В.Б. Алексеев - Введение в теорию сложности алгоритмов (1114530), страница 4

Файл №1114530 В.Б. Алексеев - Введение в теорию сложности алгоритмов (В.Б. Алексеев - Введение в теорию сложности алгоритмов) 4 страницаВ.Б. Алексеев - Введение в теорию сложности алгоритмов (1114530) страница 42019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

При этом О можно предварительно получить подсхемой с 2 эпементами, реализующей хохо = О. Так как сложность каждого сумматора можно сделать не более 0(и), то сложность подученной схемы будет пе больше чсм Ь(М„) +0(71). Пусть теперь нужно перемножить два 2и-разрядвых числа Х и У. Разобъем их на части, содержащие по и разрядов. Тогда получим Х = Х12" + Хо, У = У12" + 12. Отсюда ХУ = Х1112 + (Х112+ Х211)2" + Х212 = = Х,У2'"+ [(Х1+ Х,)(1;+ 1;) — Х,1; — Х,У]2" + Х,У,. Так как Х112 + Х21"1 > О, то при вычитании в квадратной скобке ие возникает отрицательных чисел. Таким образом, умножение ХУ двух 2и-разрядных чисеп сводится к двум умножениям и-разрядных чисел Х1У1 и Х212, умножению и + 1-разрядных чисел (Х1 + Хз)(11 + 12) и нескольким сложениям и вычитаниям чисел с числом разрядов не более 4и (так как ХУ < 21").

Умножение и+1-разрядных чисел (Х1+Хз)(У1+ Уз) можно (как указано выше) свести к умножению и-разрядных чисел. Таким образом, умножение двух 2и-разрядных чисел сводится к трем умножениям и-разрядных чисел и 0(и) дополнительных операцвй. В резулътате дпя сложности Ьк(и) алгоритма Карапубы имеем Ьк(2и) < ЗЬк(и) + О(и). Ппя и = 1 применяем обычный алгоритм (одна конъюнкция), длк и = 2" (й = 1, 2, 3,... ) применяем описанную рекурсию, для 21 1 < и < 2~ дописываем в перемвожаемые числа спереди нули, делая длину равной 21, и применяем рекурсивный алгоритм дпя 21-разрядных чисел. В результате по теореме 2.4 о рекуррентном неравенстве дпя описанного алгоритма Карацубы получаем 1, (и) = 0(иьэ!2) Теорема джаэана. 2.4. Алгоритм Тоома для умножения чисел Здесь мы рассмотрим еще более быстрый алгоритм для умножения чисел, который предложил А.

Л. Тоом [15]. Нам потребуется сведующей известный факт о многочпенгх. з твержденне (ивтерпопяционная формула Лагранжа). Пусть Р(х) = спх" +с„-»х" ~+...+с»х+со — произвольныс полипом степени и,. значения. когпорого Р(д ) известны в и + 1 различных точках дм да,..., дп+ь Тогда существуют такие констпанты а~„зависящие тоько о1ид»,да,...,д„+ь что со — — ~~~ с»епР(д„,), д = О, 1,..., п. (2.4) ем »в При этом, если все 4„рациональньь, то и все а~ рациональны. Теорема 2.6.

Юля любогв фиксированного г ) О выполняется М(и) = О(иые), где М(п) — минимальная битовая сложность умноохвния двух п-разрядных двоичных чисел. Показательство. Зафиксируем натуральное Л > 2 и рассмотрим спепующий алгоритм Тоома [15] дпя умножения и-разрядных двоичных чисел А и В. Если Л"' » < и < Л, то увеличим разрядность до Й~, приписывая спереди нули. Дпя и = Й~ поступаем следующим образом. Режем А и В на Л кусков длины ~к"' ». Пусть А = (А» »А» г...А»Ао)г и В = (В» »В» г... В»Во)г, Рассмотрим многочпены Дх) = А»»х»» + А» гх» г + + А»х + Ао и д(х) В»-»х ~+В»-ах~ г+...+ В|х+Во. Тогда А = Д2» ), В = д(2» ) иискомоеС = А В =1(2 ).д(2» ) = Л(2» ),гдеЛ(х) = Дх) д(х).

Заметим, что Л(х) — миогочлен степени 2Л вЂ” 2. Алгоритм состоит из спгцуюших шагов. 1. Вычисляем Ддн) и д(д ), где дмйг,..., дм 1 — любые фиксированные целые точки (например, д = О, х1, х2,..., х(Й вЂ” 1)). 2. Вычисляем Л(д ) = ДЫ )д(д ) тем же алгоритмом для и = Л"' (мы уточним это виже). 3. По формуле (2.4) вычиспяем коэффициенты с (д = О, 1,..., 2Й— 2) многочпена Л(х). 4. Вычисляем Л(2»" ) = С = АВ. Оценим теперь сложность каждого шага. Отметим, что х = и, к~ ~ = ~~ и й — константа.

Шаг 1. На этом шаге вычисляем 3'(с~ ) и д(13,„) непосредственно по формулам многочленов, выполюся все операции "в столбик". При этом, так как все о — константы и 3с — константа, вычисление всшс 11' (т = 1, 2,,, 2Й вЂ” 1; 1 = 2, 3,..., Й вЂ” 1) требует константного числа битовых операпий и ллины всех получаемых чисел ограничены константой (зависящей от Ь, но не зависящей от и). Поэтому вычисление всех одночленов Асс' требует 0(п) битовых операций и длины получаемых чисел не превосходят "- + солей Аналогично для В113,'„. Складывая эти одночлены (Ь вЂ” константа), получаем, что вычисление всех значений 1 (И ) и д(Н ) требует 0(п) битовых операций и длина всех этих значений не превосходит т + сопзс. Шаг 2.

На этом тоаге нам надо 21с — 1 раз перемножить числа длвны не более "-+ солей Пусть С и Р— 2 таких числа, и С = (С1Со) з, Р = (Р1Ро)9, где длина чисел Со и Ро равна ~. Тогда С Р = (С1 . 2Г+ Со) (Р1. 29 + Ро) = С1.01 2т + (С1Ро+ СоР1) 2с + СоРо Будем вьгчислять С1Р1, 01Ро, СоР1 "в столбик", а СоРо рекурсивно тем же алгоритмом, если длина Со и Ро, равная 39 ', больше 1. Если же Ь~ 1 = 1, то СоРо также вычисляем "в столбик". Пусть 1т(п)— битовая сложность алгоритма Тоома (в худшем случае) для умножения чисел длины и. Тогда число операций на шаге 2 ие превосходит (2Ь— 1)Ьт(а) + 0(п), и получающиеся числа имеют длину 0(п). Шаг 3. Так как все д,„— целые, то все сс в формуле (2.4) рациональные.

Пусть 33 — их общий знаменатель и сс = -Яв. Тогда все 33 — целые и сс = ~2 ', Д„,Ь(И ). Так как 1с — константа, все )3 „— константы и длина всех чисел Ь(4„) есть 0(п), то для вычисления всех сумм 2":, 33т Ь(с3 ), д = О, 1,...,239 — 1, требуется 0(п) битовых операций и при этом получаются числа длины 0(п). Так как 33 — константа, то вычисление всех с (которые заведомо должны быть целыми, как козффидиенты многочлена Ь(х) = т" (х)д(х)) требует 0(п) битовых операпий (делим "в столбик"), и все сс имеют длину 0(п). Шаг 4. Вычисление Ь(2~ ) сводится к сложению чисел сс, сдвинутых влево не более, чем на и разрядов.

Так как чисел сс константное количество, то вычисление Ь(2" ') = С = АВ требует 0(п) битовых операций. Для общего числа йт(п) битовых операций в описанном алгоритме (при и = Ь"') имеем Рт(п) ( (2Ь вЂ” 1)Рт( — ) + 0(п). 19 Тогда по теореме 2.4 о рекуррентном неравенстве для всех и получаем 1 (и) = 0(пиз (ь-О) С ростом !т имеем 1 !ось(2!с — 1) = 1+ !оеь(2 — -) — т 1. к Поэтому для любого е ) О можно выбрать к так, что !обе(2Й вЂ” 1) ( 1+ с и Ьг(п) = 0(п~+т).

Теорема доказана. Замечание. Еше более быстрым является алгоритм умножения чисел Шенхаге и Штрассена, битовая сложность которого равна 0(п!ояп!оя!ояп) [16]. 2.5. Алгоритм Штрассена для умножения матриц Рассмотрим задачу умножения двух квадратных матриц А = []ау[] и В = ]]Ьм[[ порядка п. Пусть А В = С = ][с„т[]. Тогда по определению с„= 2 " т атэбр,. В хачестве входа мы бУдем РассматРивать все значения а;,.

и ум, считал их "неделимыми", то есть мы воспринимаем их как единое целое и не можем работать с какими-либо их чэстюли. В качестве операций будем рассматривать 4 арифметические операции, которые могут применяться как к исходным переменным ау, ум, так и к уже построенным выражениям. Наша задача состоит в получении всех выражений для с„,. Сложностью алгоритма будет считаться число арифметических операций. Обычный алгоритм умножения матриц ("строчха на столбец" ) требует пз умножений и пз(п — 1) сложений, то есть порядка пз операпий. Более быстрый по порядку алгоритм типа "разделяй и властвуй" предложил Штрассен [17]. Теорема 2.7 (В.

Штрассеи). Юля умножения двух матриц порядка и сутцестеуетп алеоритм с числом арифметпических операций 0(п"нт т) Воказатпельстпео. Опишем такой алгоритм. Если и — не степень двойки и ближайшая к и сверху степень двойки есть 2ь, то расширим данные матрицы А и В до матриц А' и В' порядка 2ь так, чтобы в левых верхних углах матрид А' и В' стоюти, соответственно, А и В, а остальные элементы были равны О. Тогда, если А' ° В' = С', то легко видеть, что в С' в левом верхнем углу стоит матрица С = А ° В, а остальные элементы равны О. Поэтому для вычисления С = А В достаточно перемножить матрицы А' и В' порядка 2". Пусть далее в = 2" — степень двойки и А,  — матрицы порядка и = 2ь. Разрежем каждую из матриц А и В, а также искомую матрицу С = А .

В, на 4 квадратных блока размера - "х "-: Ап Аьз ( Вп Вьз ~ Сп Сьз Ам Азз ' ( Вд Взз ' ~ Сзз Сзз Иэ алгебры известно, что в этом случае Сп = АцВц+АыВм, Сы = АцВи+ АгзВзз, Сзз = АззВп+АюВзь Сзз = АззВы+АззВзз. Таким образом, вычиспение матрацы С сводится к 8 умножениям матриц порддка -" (н нескольким сложениям).

Идея Штрассена состоит в замене 8 умножений на 7 (сравните с алгоритмом Карацубы). Рассмотрим следующие 7 произведений; Р~ = (Ап + Азз)(Вп + Взз), Рз = (Ап + Аы)Взз, Рз = ( — Азз+Ам)(Вы+ Вьз), Рз = Азз(-Вы+ Взз), Рз = (Аы — Аю)(Вм+ Вю), Рг = (Ам+ Агз)Вп- Р4 = Ап(Вы — Взз), Раскрывая скобки и приводя подобные члены, можно проверить, что Сп = Рз + Рз — Рз + Рз Си = Р4+ Рз, См — — Ра+ Рп Сю = Рг+ Рг+ Р4 — Рг.

Таким образом, умножение матриц порядка п сводится к 7 умножениям матриц порядка "- и нескольким сложениям матриц порядка "-..Если о = 2", то этот пропесс можно продолжить рекурсивно. Если же н = 1, то для умножения матриц порядка 1 требуется всего 1 умножение элементов. Пусть 1 (а) — число арифметических операций в описанном алгоритме. Так как сложение двух матриц порядка "- требует 0(из) операций, то для о = 2" (й = 1, 2, 3,...

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

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

Список файлов книги

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