Главная » Просмотр файлов » 1626435697-9d9ede204f9baad60159c2d6531787c7

1626435697-9d9ede204f9baad60159c2d6531787c7 (844297), страница 97

Файл №844297 1626435697-9d9ede204f9baad60159c2d6531787c7 (Хопкрофт, Ульман 1979 - Построение и анализ вычислительных алгоритмов) 97 страница1626435697-9d9ede204f9baad60159c2d6531787c7 (844297) страница 972021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

11.7, 11.6, заимствованы у Хеппи, Стирнза [1966). Что касается иерархий для ИМТ, то упр. 11.5 (память) взято у Ибврры [!972), а 11.6 (время) — у Кука [1973). Иерархия для РАМ в упр. 11.11 принадлежит Куку Рекхау [19731, упр. 11.14— Хопк офту, упр. 11.19 — Мейеру, Стокмейеру [19731. У становление зкспоненциальных нижних оценок для «естественных» задач началось с работ Мейера [1972] и Мейера, Стокмейера [1972].

Теорема 11.2 о полурасшнренных регулярных выражениях взята у Ханта [19736], теорема 11.3 о расширенных регулярных выражениях — у Мейера, Стокмейера [!973]. Другие результаты о трудно разрешимых задачах приводят Бук [1972], Хант [1973а, 1974], Стокмейер. Мейер [1973), Мейер [1972], Хааг, Розенкранц [!974], Раундз [1973] н Констейбл, Хант, Салин [1974]. НИЖНИЕ ОЦЕНКИ | у~ ЧИСЛА АРИФМЕТИЧЕСКИХ йй ОПЕРАЦИЙ При разработке алгоритма для решения данной задачи основной вопрос, ответ на который нам хотелось бы знать,— это "Какова ее подлинная вычислительная сложность?". Зная теоретическую нижнюю границу для эффективности алгоритма, можно лучше оценить имеющиеся алгоритмы и определить, сколь много усилий следует тратить на поиск лучшего решения. Например, если известно, что задача трудно разрешима, можно довольствоваться эвристическими способами нахождения приближенных решений.

К сожалению, выяснить подлинную вычислительную сложность данной задачи обычно очень трудно. Для большинства практических задач, чтобы судить о качестве алгоритма, приходится полагаться на опыт. Однако иногда можно довольно точно оценить снизу число арифметических операций, требуемых для выполнения вычислений. В этой главе мы изложим некоторые важные результаты этого рода.

Например, покажем, что умножение (пХр)-матрицы на р-вектор требует ар умножений, а вычисление значения полинома л-й степени требует и умножений. Много дополнительных результатов о нижних оценках содержится в упражнениях. Читателю, интересующемуся нижними оценками, советуем рассматривать эти упражнения как неотьемлемую часть данной главы. 12Л. ПОЛЯ Чтобы получить точные нижние границы, надо определить, какие операции считать основными. Для определенности будем предполагать, что все вычисления ведутся в некотором поле, таком, как поле вещественных чисел, где основные операции — сложение и умножение элементов поля. Определение. Полем называется такая алгебраическая система (А, +,, (), 1), что 1) она — кольцо с единицей 1 относительно умножения, 2) умножение коммутативно, Гл.

Рх нижние Оценки числА АРНФметических ОпеРАций 3) каждый элемент а из А — (О) обладает Обратным а-' относительно умножения, т. е. аа-"=а-'а=1'). Пример 12.1. Вещественные числа с обычными операциями сложения и умножения образуют поле. Целые числа образуют кольцо, но не поле, поскольку целые числа, отличные от ь-1, не имеют обратных, являющихся целыми числами.

Но для простого числа р целые числа по модулю р образуют (конечное) поле. (З Рассмотрим задачу вычисления произвольного полинома р(х)= ~а,х' в некоторой точкех. Мы хотим найти алгоритм, который по 7 о значениям а, и х в качестве входов строит соответствующее значение р(х) в качестве выхода. Этот алгоритм должен работать на всех возможных значениях своих входов, принадлежащих некоторому полю. Максимальное число сложений, вычитаний и умножений, выполняемых алгоритмом, где максимум берется по всем допустимым входам, называется арифметической сложностью этого алгоритма.

Заметим, что одни полиномы и-й степени вычислить оказывается проще, чем другие. Например, на вычисление х"+2 тратится порядка 1оя п операций, тогда как интуитивно мы чувствуем, что на вычисление "произвольного" полинома и-й степени должно расходоваться линейное число операций. Поэтому алгоритм для вычисления значений, пригодный только для конкретного полинома, может работать много быстрее, чем алгоритм, применимый ко всем поли номам. Чтобы сформулировать понятие алгоритма, пригодного для целого класса задач, введем для представления входных переменных формальные переменные. Определение. Формальной переменной над алгебраической системой называется символ, не принадлежащий множеству элементов этой системы.

Пусть Р=(А, +, -, О, 1) — поле и х„..., х„— формальные переменные иад Г. Расширением Яхн..., х„! поля Р этими переменными хн..., х„называется такое наименьшее коммутативное ') кольцо (В, +,, О, 1), что В содержит А (! (х„... ° ~ хя). Заметим, что эти формальные переменные не связаны никакими тождествами. Всякий полинам с коэффициентами из Р и "неизвестными" х„..., х„представляет некоторый элемент из Р(хь..., х„1. Два полинома обозначают один и тот же элемент из Р(х,,..., х„), если один из них можно превратить в другой с помощью аксиом коммутативного кольца. Единица в Р будет также единицей в Р(хн..., х„). >~ Как обычно, знак ° опускается, еслн ато не прнводнт к недоразумениям. ) Кольпо с номмутатнвным умножением. ° уз 12.2. ЕЩЕ РАЗ 0 НЕВЕТЕЯЩИХСЯ ПРОГРАММАА Пример 12.2.

Пусть Р— поле вещественных чисел. Тогда кольцо Р[х, у1 включает в себя х, у и все вещественные числа. Так как оио замкнуто относительно сложения, то х+у к х+4 принадлежат Р[х, у1. Так как оно замкнуто относительно умножения, то оно содержит элемент (х+у)(х+4), эквивалентный х'+ху+4х+4у в силу закона дистрибутивиости для кольца. П 42.2. ЕЩЕ РАЗ О НЕВЕТВЯЩИХСЯ ПРОГРАММАХ Зададим снова вопрос. "Сколько арифметических операций требуется для вычисления значений произвольного полинома?» На самом деле вопрос касается числа операций + и, необходимых для построения выражения Да,х' (или эквивалентного ему) от формальных переменных а„..., а„н х. Это мотивирует следующую модель вычислений, которая, по существу, есть модель неветвящейся программы, введенной в равд.

1.5. Определение. Пусть Р— поле. Вычисление относительно Р состоит из !) множества формальных переменных, называемых входами, 2) множества имен переменных, 3) последовательности ии2гов вида а «-Ьйс, где Π— один из знаков +, — или», а — переменная, не участвующая на предыдущих шагах, Ь и с — либо входы, либо элементы из Р, либо имена переменных, появившиеся слева от стрелки иа одном из предыдущих шагов. Краткости ради будем писать а «- Ь вместо а «- Ь+О и а «- — Ь вместо а -Π— Ь. Элемент поля Р, входящий в вычисление, называется постоянной.

Для определения результата вычисления нам нужно понятие значения переменной в вычислении, Говоря неформально, мы считаем, что вычисление производится шаг за шагом; на каждом шаге новой переменной присваивается элемент из Р[х„ ..., х„1, где х„ ..., х„ — входы, Значение о(а) переменной или входа а определяется следующим образом. Если а — вход нли элемент из Р, топ(а)=а. Если а — переменная и а «-Ьйс — шаг, в котором а стоит слева, то о(а)=о(Ь)йо(с). Данное вычисление вычисляеп2 множество Е выражений из Р[хь..., х„1 относительно поля Р, если для каждого выражения еЕЕ найдется вэтом вычислении такая переменная г, что оЯ=е. Заметим, что вычисление рассматривается относительно данного основного поля. Например, чтобы вычислить х'+у' относительно поля Р вещественных чисел, требуются два умножения, даже если Атт ГЛ.

1К НИЖНИЕ ОЦЕНКИ ЧИСЛА АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ не считать умножений на постоянную. Но если г — поле комплекс- ных чисел, достаточно одного умножения (не считая умножений на постоянные), а именно (к+1у) (к — (у). В качестве основного поля обычно берется поле вещественных чисел, хотя можно было бы взять и поле комплексных или рациональных чисел или какое-нибудь ко- нечное поле. Какое поле взять, зависит от того, какие операции счи- тать основными. Если предполагается, что мы умеем представлять вещественные числа и выполнять сложение и умножение их как ос- новные операции, то в качестве г" берется поле вещественных чисел.

Пример 12.3. Вспомним, что вычисление произведения двух комплексных чисел а+(Ь и с+И относительно поля вещественных чисел можно рассматривать как вычисление выражений ас — Ы и ас(+Ьс. Очевидное вычисление выглядит так: аРС 1',-ь. ( 11-11 — 1, ааа — ЬРС 1в 1а+11 Значением 1, является ас. Аналогично п(11)=Ы и о(1,)=ас — Ы.

Таким образом, значение 1, равно первому выражению. Значение 1, равно ас(+Ьс, т. е. второму выражению. Следовательно, это вы- числение вычисляет произведение двух комплексных чисел. Другое вычисление для комплексного умножения использует только три вещественных умножения: 11 — а+ ь 11ас 1( — С 1,'-"1.

11 1.+1. — 1(+ С 1,'-ь»1, 1~ 1,— 1. Легко показать, что п(1,)=а1(+Ьс и п(1,)=ас — Ы. П Должно быть ясно, что данное вычисление вычисляет некоторое выражение тогда и только тогда, когда, подставляя вместо входов произвольные значения из поля Р, получаем вычисление того частного случая выражения, который получается, если подставить эти входные значения вместо формальных переменных рассматриваемого выражения.

В оставшейся части главы нас будут интересовать прежде всего нижние оценки числа умножений, необходимых для вычисления данного множества выражений, поскольку в некоторых ситуациях 4УВ РХЗ МАТРИЧНАЯ ФОРМУЛИРОВКА ЗАДАЧ умножения имеют гораздо большую сложность, чем сложения илн вычитания.

Например, в гл. 6 мы видели, что умножение двух (2 х 2)-матриц за 7 арифметических умножений дает алгоритм умножения произвольных матриц за время ОА(пьч'). Использование же 18 сложений в алгоритме Штрассена не влияет иа асимптотику. На первом уровне рекурсии для алгоритма Штрассена 7 умножений ((п/2)х(п/2))- матриц по мере роста п становятся гораздо сложнее, чем 18 (или любое другое число) сложений и вычитаний матриц того же размера. На самом деле если бы можно было умножать две (2 с 2)-матрицы с помощью только шести умножений в некоммутативном кольце, то у нас мог бы быть алгоритм умножения матриц со сложностью ОА(пьз')=ОА(пп'") независимо от того, сколько тратится на умножение (2х2)-матриц сложений и вычитаний.

(Можно, однако, показать, что для того, чтобы такой алгоритм работал для произвольного кольца, для умножения (2Х2)-матриц необходимы 7 умножений; см. Хопкрофт, Керр (197Н.) Вот другой пример. В равд. 2.6 мы видели, что можно умножить два п-разрядных двоичных целых числа за ОВ(ам™) шагав, потому что достаточно трех умножений, чтобы вычислить выражения ас, Ьп' и ап+Ьс.

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

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

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

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