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

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

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

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

Данная РАМ допускает (воспринимает) язык в следующем смысле. Пусть на входной ленте находится цепочка з=а,а,... а„, причем символ а, расположен в первой клетке, а,— во второй и т. д., а в (и+!)-й клетке расположен Π— символ, который будет использоваться в качестве концевого маркера, т.

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

Легко показать, что язык Ьея)п геап г1; И г1(О 1Ьеп тег11е О е!зе Ьед!п г2 — г1; гЗ г1 — 1; тгЬ!1е гЗ > О бо Ьея)п г2 — г2 и г1; гЗ вЂ” гЗ вЂ” 1 епб; итИе г2 епб епб Рнщ 1.6. Программа лля л" на Упрощенном Алголе. ГЛ.

С МОДЕЛИ ВЫЧИСЛЕНИИ Соответствующие операторы на Упрощенном Алголе РАМ-программа геаг! г! !! г!(О !пеп вг!1е О полож г2 -г! ' гз — г1 — 1 пока вЫ!е гз) О г!о г2 — г2 а г! гз гз — ! пока 2 ит!!е г2 Ряс. 1.7. РАМ-программа для и". допускается некоторой РАМ тогда н только тогда, когда он рекурсивно перечислим. Язык допускается РАМ, останавливающейся на всех входах, тогда и только тогда, когда он рекурсивен (о рекурсивных и рекурсивио перечислимых языках см. Хопкрофт, Ульман [1969!). Рассмотрим две программы для РАМ.

Первая определяет функцию, вторая допускает язык. Пример !.1. Пусть !' и" для всех целых и) 1, '( О для п = О. 20 КЕАР ЕОАР ЗОТЕ %К!ТЕ Д Ь'МР 1.0АР ВТОКЕ 1.0АР ЯЗВ ВТОК Е 1.0АР ЛОТЕ д (!МР продолж: 1.0АР М(! Т ЬТОК Е 1.0АР Я!В ВТОКЕ Л1МР конецпока: %1!1ТЕ конецесли: НА1.Т 1 1 полож =О конецесли 2 ) 3 продолж конецпока Ьед1п 1-О; ген х; чгЬ11е хФО Г!о Ьеи!п !1 хчв! 1Ьеп с! — |! — 1 е!ае |! !1+1; геае! х еп|1; !! !!=0 1Ьеп хгг!1е 1 еп|! Рнс. |,8. Распознавание пеночек с одинаковыми числами вхождений | н 2.

Соответствующие операторы на Упрощенном Алголе РАМ-программа =О 2 с! О геае! х АРЬ!1е х~:О е!о 1 1 конецпока пока: 1 =1 конецесли И х~! 1Ьеп д — с! — 1 один: е1ае Г! -с!+! геае! х конецесли: пока 2 коиецпока: выход !! |!= О 1Ьеп мт!1е 1 выход: Рнс. 1.9. РАМ-программа, соответствующая алгорнтму на рнс. |.8. 81 1.0АР ВТОЙ Е НЕАР 1.0АР дЕЕКО 1.0АР ь!1в ЗХЕКО 1.0АР ЯЗВ ВТОРОЕ димр 1.ОАР АРР ВТОР Е БЕАР ,1!ЗМР ЕОАР ЗУЕВО НА!.Т %К! ТЕ НА!.Т !.3. ВЪ|ЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ РАМ ПРОГРАММ гл.

ь моднли вычислвиии Программа на Упрощенном Алголе, вычисляющая 1(п) путем (и — 1)-кратиого умножения на п, приведена на рис. 1.6'). Соответствующая программа для РАМ дана на рис. 1.7. Переменные г1, г2 и гЗ хранятся в регистрах 1, 2 и 3 соответственно. Мы специально не сделали очевидных улучшений программы, чтобы яснее было видно соответствие между рис. 1.6 и 1.7. Пример 1.2. Рассмотрим РАМ-программу, которая допускает язык во входном алфавите (1, 2), состоящий нз всех цепочек с одинаковым числом вхождений 1 и 2. Эта программа считывает каждый входной символ в регистр 1, а в регистре 2 оставляет разность с( между количеством символов 1 и 2, поступивших до текущего момента. Встретив концевой маркер О, программа сравнивает й с нулем и в случае совпадения печатает 1 и останавливается.

Мы считаем О, 1 и 2 единственно возможными входными символами. Основные детали алгоритма приведены в программе на рис. 1.8, Эквивалентная программа для РАМ дана на рис. 1.9; х хранится в регистре 1, а й — в регистре 2. ( ) 1.3. ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ РАМ-ПРОГРАММ Двумя важными мерами сложности алгоритма являются временная и емкостная сложности, рассматриваемые как функции размера входа. Если при данном размере в качестве меры сложности берется наибольшая из сложностей (по всем входам этого размера), то она называется сложностью в худшем случае.

Если в качестве меры сложности берется "средняя" сложность по всем входам данного размера, то она называется средней (или усредненной) сложностью. Обычно среднюю сложность найти труднее, чем сложность в худшем случае. Нужно еще принять некоторое предположение о распределении входов, а реалистичные допущения часто бывает трудно сформулировать математически. Мы будем уделять основное внимание худшему случаю, поскольку его легче исследовать и он имеет универсальную приложимость.

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

Временная сложность в среднем— это средине, взятое по всем входам размера п, тех же самых сумм. Такие же понятия определяются для емкости памяти, только вместо "времен, затраченных на каждую сработавшую команду" надо подставить "емкосгей всех регистров, к которым было обращение". '! Описание упрощенного Алгола сн. в рввд. !.З. ьа. вычислительная сложность иам-программ Чтобы точно определить временную и емкостную сложности, надо указать время, необходимое для выполнения каждой РАМ- команды, и объем памяти, используемый каждым регистром.

Мы ассмотрим два таких весовых критерия для наших программ. ри равномерном весовом критерии каждая РАМ-команда затрачивает одну единицу времени и каждый регистр использует одну единицу памяти. Если не оговорено противное, то сложность РАМ- программы будет измеряться в соответствии с равномерным весовым критерием.

Второе определение, иногда более реалистичное, принимает во внимание ограниченность размера реальной ячейки памяти и называется логарифмическим весовым критерием. Пусть 1(1) — логарифмическая функция на целых числах, заданная равенствами ( 1оа111./ +1, 1ФО, 1 (1) = 1, 1=0. Таблица на рис. 1.10 дает логарифмические веса 1(а) для всех трех возможных видов операнда а. На рис. 1.11 приведены веса РАМ-команд. Здесь учитывается, что для представления целого числа а в регистре требуется ( 1оя и ~+1 битов. Регистры же, напомним, могут содержать произвольно большие целые числа. Логарифмический весовой критерий основан на грубом допущении, что цена выполнении команды (ее вес) пропорциональна длине ее операндов. Например, рассмотрим вес команды АИЭе1.

Сначала мы должны определить трудность декодирования операнда, представленного адресом. Просмотр целого числа 1 занимает время 1(1). Затем, чтобы прочитать содержимое с (1) регистра 1 и определить его местоположение, понадобится время 1(с(1)). Наконец, считывание содержимого с(1) требует время 1(с(с(1))). Так как команда АОО «1 прибавляет целое число с(с(1)) к целому числу с(0) в сумма- Вес 1(а) Операнд а 1(1) 1(1) +1(с(1)) 1(!) + 1(с(1)) + 1(с(с(1))) 'ис. 1ЛО. Логарифмические веса операидов.

гл, к модели вычислении Команда Вес Рис. !.11. Логарифмические веса команд РАМ, где Е(а) — иес операида а, а а обозначает метку. торе, то ясно, что разумным весом, который следует придать команде АО!) «Е, является Е(с(0))+Е(Е)+Е(с(Е))+Е(с(с(Е))). Определим логарифмическую емкостную сложность РАМ-программы как сумму по всем работавшим регистрам, включая сумматор, величин Е(х~), где х1 — наибольшее по абсолютной величине целое число, содержавшееся в Е-м регистре за все время вычислений.

Само собой разумеется, данная программа может иметь радикально различные временные сложности в зависимости от того, какой используется весовой критерий — равномерный или логарифмический. Если разумно предположить, что каждое число, встречающееся в задаче, можно хранить в виде одного машинного слова, то годится равномерная весовая функция. В иной ситуации для реалистического анализа сложности более подходящим может оказаться логарифмический вес. Оценим временную и емкостную сложности РАМ-программы из примера 1.1, вычисляющей и".

При подсчете временной сложности будет доминировать цикл с командой М(ЕЬТ. Когда зта команда выполняется Е-й раз, сумматор содержит а', а регистр 2 содержнтп. Всего команда М1)ЬТ выполняется и — ! раз. При равномерном весовом критерии каждая команда М(ЕЬТ требует одну единицу вре- 24 1. ЬОАО а 2. ИСТОКЕ г ВТОКЕ еЕ 3. АОО а 4. Я)В а 5. М(.ЕЬТ а б.

111Ч а 7. КЕАЕ) Е КЕА1) мЕ 8. %К!ТЕ а 9. ЖМР Ь !0.,)ЙТХ Ь 11. )ЕЕКО Ь 12. НАЬТ Е(а) Е(с(0)) + Е(Е) Е(с(0)) + Е(Е) + Е(с(Е)) Е(с(0)) + Е(а) Е(с(0)) + Е(а) Е(с(0)) + Е(а) Е(с(0)) + Е(а) Е(вход) + Е(Е) Е(вход) + Е(Е) + Е(с(Е)) Е(а) 1 Е(с(0)) Е(с(0)) 1 !.В. ВЫЧИСЛИТИЛЬНЛЯ СЛОЖНОСТЬ РАМ-ПРОГРАММ Равномерный вес Логарифмический вес Для этой программы равномерный вес реалистичен только в ситуации, когда столь большое целое, как а", записывается в виде одного машинного слова. Если и превышает то, что можно представить одним машинным словом, то даже логарифмическая временная сложность до некоторой степени нереалистична, поскольку она предполагает, что два целых числа ( и 1 перемиожаются за время 0 (1 (!)+1(!)), а возможность этого неизвестна. Для программы из примера 1.2 в предположении, что п — длина входного слова, временные и емкостные сложности таковы: Равномерный вес ~ Логарифмический еес Временная сложность Емкостиая сложность О (а) О (!) О (л' )од а) О (л )од М) Для этой программы в ситуации, когда и больше того, что можно запомнить в одном машинном слове, логарифмический вес оказыва- ется вполне реалистичным.

мени, и поэтому на выполнение всех команд МП).Т тратится время 0(п). При логарнфмическом весовом критерии гся команда М(Д.Т занимает время 1(п!)+1(п) ж(!+1) !Он а, так что время выполнения всех команд М(.Д.Т равно а-! ~ (!+1)!Они, 1=! что составляет 0(ла 1оя а). Емкостная сложность определяется числами, которые хранились в регистрах от 0 до 3. При равномерном весовом критерии емкостная сложность составляет 0(1), а при логарифмическом— 0(п 1ои л), поскольку наибольшее целое число среди содержавшихся в этих регистрах есть и", а 1(ла)жп 1оя л. Таким образом, сложности для программы из примера 1.1 таковы: гл. ь модели вычисления 1.4.

МОДЕЛЬ С ХРАНИМОЙ ЛРОГРАММОЙ Поскольку РАМ-программа не хранится в памяти РАМ, она не может изменять себя. Сейчас мы рассмотрим другую модель вычислительной машины, называемую машиной с произвольным доступом н памяти и хранимой программой (или, иначе, рагнодоступной адресной машиной с хранимой программой — сокращенно РАСП), которая отличается от РАМ лишь тем, что ее программа находится в памяти и может изменять себя. Набор команд для РАСП совпадает с соответствующим набором для РАМ во всем, кроме косвенной адресации, которая исключена, ибо она не нужна. Мы увидим, что РАСП может моделировать косвенную адресацию путем изменения команд в процессе выполнения программы.

Общая структура РАСП также подобна структуре РАМ, но только предполагается, что РАСП-программа находится в регистрах памяти. Каждая РАСП-команда занимает два последовательных регистра памяти. Первый регистр содержит код операции, второй — адрес. Если адрес имеет вид =1, то первый регистр будет содержать (в закодированном виде) указание на то, что операнд является литералом, а второй регистр будет содержать А Для кодирования команд берутся целые числа. На рис. 1,12 представлено одно возможное кодирование.

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

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

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

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