Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений

Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений, страница 119

DJVU-файл Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений, страница 119 Теория автоматов (2156): Книга - 4 семестрХопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений: Теория автоматов - DJVU, страница 119 (22018-01-11СтудИзба

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

DJVU-файл из архива "Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - Введение в теорию автоматов, языков и вычислений", который расположен в категории "". Всё это находится в предмете "теория автоматов" из 4 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "теория автоматов" в общих файлах.

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

Распознанный текст из DJVU-файла, 119 - страница

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

Если все 50 проверок не могут сказать, что оно составное, то вероятность того, что оно действительно составное, не больше 2 '~. Таким образом, можно довольно уверенно сказать, что число простое, и этим обосновать безопасность наших операций. Полный алгоритм здесь не приводится, но обсуждается идея, имеющая очень мало исключений. Напомним, что теорема Ферма гласит: если р — простое, то х' ' шодп!ар для любого х равно ! . Верно и то, что если р — составное, и существует х, для которого х' ' шог!п1о р не равно 1, то не менее половины чисел у от 1 до р — 1 имеют у' ' и 1.

Таким образом, используем следующий алгоритм типа Монте-Карло для составных чисел. 1. Выберем случайно х из диапазона от 1 до р — 1. 11.5. СЛОЖНОСТЬ ПРОВЕРКИ ПРОСТОТЫ 515 2, Вычислим х' щодц!ор. Заметим, что если р есть и-битовое число, то это вычислер-1 ние занимает время О(п') (см. конец раздела 11.5.3). 3. Если х' и 1 щодц!о р, то допустим вход, т.е.

х — составное. В противном случае ос- 1 тановимся без допускання. Если р является простым, то х1 ' = 1, так что мы всегда останавливаемся без допускания; это одна часть условий типа Монте-Карло — если вход не принадлежит языку, то никогда не допускается. Почти для всех составных чисел не менее половины х будут иметь х'" м 1, поэтому у нас есть не менее 50ОА шансов допускания при любом запуске р-1 этого алгоритма, т,е. верно другое условие, налагаемое на алгоритмы типа Монте-Карло. Представленные рассуждения были бы демонстрацией того, что проблема составных чисел принадлежит РР, если бы не существование небольшого количества составных чисел с, дающих х' ' = 1 щодц1о с для большинства х от 1 до с — 1, в частности, для к, взаимно простых с с.

Эти числа, называемые числами Кармайкла (Сагт1сйае7), требуют проведения еще одной, более сложной, проверки (она здесь не описывается), чтобы убедиться, что они составные. Наименьшим числом Кармайкла является 561, т.е. можно показать, что х"~= 1 шодц1о 561 для всех х, которые не делятся на 3, 11 или 17, хотя 561 = 3 х 11 х 17, очевидно, составное. Итак, утверждается, но без полного доказательст- ва, следующее.

Теорема 11.24. Множество составных чисел принадлежит ЯР. Е) Можно ли разложить на множители за случайное полиномиальное время7 Отметим, что алгоритм из раздела 11.5.4 может сказать, что число является составным, но не говорит, как составное число разложить на множители. Есть основания 11олагать, что не существует способа разложения, даже с использованием рандомизации, которому было бы достаточно полиномиального или хотя бы ожидаемого полиномиального времени. Если бы это предположение было неправильным, то приложения, описанные в разделе ! 1.5.1, были бы небезопасными и их нельзя было использовать. 11.5.5. Недетерминированные проверки простоты Здесь обсуждается еще один важный и интересный результат, связанный с проверкой простоты, — язык простых чисел находится в Л'Р П со-ЛР.

Следовательно, язык составных чисел, представляющий собой дополнение языка простых, также принадлежит Л'РП со-ЛР. Отсюда следует, что вероятность ХР-полноты языков простых и составных чисел ничтожна, поскольку, если бы это было так, истинным стало бы совершенно невероятное равенство ЛР = со-ЛР. 61б ГЛАВА 11. ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ ПРОБЛЕМ Одна часть указанного утверждения проста — язык составных чисел принадлежит гу T, поэтому язык простых чисел находится в со-Л"Р. Докажем это утверждение.

Теорема 11.25. Множество составных чисел принадлежит ЛФ. Доказательство. Недетерминированный полиномиальный алгоритм распознавания составных чисел имеет следующий вид. 1. Имея данное н-битовое число р, угадаем сомножитель); состоящий не более, чем из н битов (г = 1 илиу'= р, естественно, не рассматриваются).

2. Разделим р на7 и проверим, что остаток равен О. Допускаем, если так. Данная часть детерминирована и может быть выполнена за время 0(п ) на многоленточной МТ. Если р — составное, то оно должно иметь хотя бы один сомножительу, не равный 1 и р. НМТ„угадывающая все возможные числа, содержание не более и битов, по одной из веток угадает 1: Эта ветка ведет к допусканию. Наоборот, допускание НМТ означает, что найден делитель числа р, не равный ! и р.

Таким образом, язык описанной НМТ содержит все составные числа, и ничего более. С) Распознавание простых чисел с помощью НМТ сложнее. Можно было угадать причину (делитель) того, что число не является простым, но как проверить корректность предположения, что число действительно является простым? Недетерминнрованный полиномиальный алгоритм основан на том факте (утверждаемом, но не доказанном), что, если р — простое, то сушествует число х между 1 и р — 1, имеющее порядок р — 1.

В частности, в примере 11.23 отмечалось, что при простом р = 7 числа 3 и 5 имеют порядок 6. Можно легко угадать число х, используя недетерминированность МТ, но совершенно неясно, как проверить, что х имеет порядок р — 1. Причина в том, что, если определение порядка применяется непосредственно, то нужно проверить, что ни одно из г р-г чисел х, х, ..., хв не равно 1. Но такая проверка требует времени не менее 2", если р — л-битовое число.

Лучшая стратегия — использовать еше один факт, который утверждался, но не был доказан, а именно: порядок х по модулю простого р является делителем р — 1. Таким образом, если бы нам были известны простые делители р — 1'о, было бы достаточно проверить, что х м 1 для каждого простого сомножителя г? числа р — 1. Если бы ни одна из (г-шч этих степеней х не равнялась 1, то порядком х было бы р — !. Число таких проверок есть 0(н), поэтому все их можно выполнить с помошью полиномиального алгоритма. Конечно, разложить р — 1 на простые сомножители нелегко, на можно угадангь их, и проверить, что а) их произведение действительно равно р — 1; и Заметим, что, если р — простое, то р — ! не может быль простым, кроме как в тривиальном случае р = 3.

Причина в том, что все простые, кроме 2, нечетны. 11.5. СЛОЖНОСТЬ ПРОВЕРКИ ПРОСТОТЫ б) каждый нз них является простым, используя данный недетерминированный полиномиальный алгоритм рекурсивно. Детали алгоритма и доказательство того, что он является недетерминированным полиномиальным, приводятся в следующей теореме. Теорема 11.26. Множество простых чисел принадлежит ЛР. Доказательство. Пусть р — и-битовое число. Если и не больше 2 (т.е.

р — это 1, 2 или 3), то отвечаем сразу: 2 и 3 — простые, 1 — нет. В противном случае выполним следующее. 1. Угадаем список сомножителей (д~, дь ..., д~), двоичные представления которых вместе занимают не более 2п битов, и ни одно из ннх не имеет более и — 1 битов, Одно и то же простое число может появляться несколько раз, поскольку р — 1 может иметь сомножитель, возводимый в степень больше 1. Например, если р =!3, то простые сомножители р — 1 = 12 образуют список (2, 2, 3). Данная часть алгоритма недетерминирована, но каждая ветвь требует времени 0(и).

2. Перемножим все сомножители д, и проверим, равно ли их произведение р — 1. Эта часть требует времени не более 0(и') и является детерминированной, Если произведение сомножителей равно р — 1, то рекурсивно проверим, является ли каждый из них простым, используя данный алгоритм.

Если не все д просты, угадаем значение х и проверим неравенство хе"'~' ~ 1 для каждого из ц. Эта проверка обеспечивает, что х имеет порядок р — 1 тог(п1ор, поскольку, если бы это было не так, то его порядок должен был бы делиться хотя бы на одно из (р — 1)/ц, но мы только что установили, что он не делится. В подтверждение заметим, что любое х при возведении в степень его порядка должно равняться 1. Возведения в степень можно выполнить эффективным методом, описанным в разделе 11.5.3.

Таким образом, нужно выполнить не более А возведений в степень, что не больше и, и каждое можно выполнить за время 0(п'), что дает общее время О(п') для каждого шага. Наконец, нужно проверить, что приведенный недетерминированный алгоритм полиномиален. Каждый шаг, за исключением рекурсивного шага 3, требует времени 0(и) вдоль любой недетерминированной ветви. Поскольку рекурсия нелинейна, рекурсивные вызовы можно изобразить в виде дерева (рис. 11.11). В корне находится и-битовое р, проверяемое на простоту. Сыновьями корня являются ц, — угадываемые сомножители р — 1, которые также нужно проверить на простоту. Под каждым д, находятся угадываемые сомножители гу, — 1, которые также нужно проверить, и так далее, пока не дойдем до чисел, состоящих не более, чем нз 2 бит — листьев дерева. Произведение сыновей любого узла меньше значения в самом этом узле, поэтому произведение значений в узлах любого уровня не более р.

Время работы, выполняемой для узла со значением 1, исключая работу в рекурсивных вызовах, оценивается 818 ГЛАВА 11. ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ ПРОБЛЕМ как а(!ойзз) длЯ некотоРой константы а, посколькУ это вРемЯ пРЯмо пРопоРционально четвертой степени количества битов, необходимых для двоичного представ- ления значения з, Уровень корня Уровень 1 Я Л Уровень 2 Л Рис. ! !.

! !. Рекурсивные вызовы, совершаемые алгоритмом из теоремы ! !2б, образуют дерево высотой и шириной не более п Таким образом, чтобы получить верхнюю оценку времени работы на любом уровне, ограничим сверху сумму,"~ а(1о8,(! ))', учитывая, что произведение !нз... не превосхо- 3 дит р. Если з, = р, и других з, нет, то сумма равна а(!озер)', т.е. не превосходит али, поскольку л — число битов двоичного представления р, а !ойзр не более ж Итак, время работы на каждом уровне глубины не превышает 0(л'). Так как у дерева не более л уровней, для любой ветви недетерминированной проверки, является ли р простым, достаточно 0(и ).

С3 Теперь ясно, что языки и простых, и составных чисел находятся в ЯР. Если бы один из них был )9р-полным, то по теореме ! 1.2 это доказывало бы, что )з!Р = со-,Л!Р. 11.5.6. Упражнения к разделу 11.5 115.1. Вычислите следуюшие значения по модулю 13: а) 1 ! + 9; 6) (е) 9 — !1; в) 5х8; г) (к) 5 18; д) 5. 11.5.2. В разделе 1!.5.4 утверждалось, что х'в' = 1 шобп!о 561 лля большинства значений х между 1 и 560.

Выберите какие-нибудь значения х и проверьте это равенство. Конечно, сначала выразите 560 в двоичном виде, а затем вычислите х для соответствуюших значений ), избегая 559 умножений (см. раздел ! 1.5.3). 11.6. СЛОЖНОСТЬ ПРОВЕРКИ ПРОСТОТЫ 619 11.5.3. Целое число х между 1 и р — 1 называется квадратичным вычетом по модулю р, если сушествует целое у между 1 и р — 1, для которого у = х. а) (в) Укажите квадратичные вычеты по модулю 7.

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