Главная » Просмотр файлов » Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.)

Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (1123758), страница 225

Файл №1123758 Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.)) 225 страницаТ. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн - Алгоритмы - Построение и анализ (2 изд.) (1123758) страница 2252019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Однако методология аналогична в том отношении, что доказательство ХР-полноты задачи В основывается на предположении о ХР-полноте задачи А. Первая ХР-полная задача Поскольку метод приведения базируется на том, что для какой-то задачи заранее известна ее ХР-полнота, то для доказательства ХР-полноты различных задач нам понадобится "первая" ХР-полная задача. В качестве таковой мы воспользуемся задачей, в которой задана булева комбинационная схема, состоящая из логических элементов И, ИЛИ и НЕ. В задаче спрашивается, существует ли для этой схемы такой набор входных булевых величин, для которого будет выдано значение 1.

Доказательство ХР-полноты этой первой задачи будет представлено в разделе 34.3. Краткое содержание главы В этой главе изучаются аспекты ХР-полноты, которые непосредственно основываются на анализе алгоритмов. В разделе 34.1 формализуется понятие "задачи" и определяется класс сложности Р как класс задач принятия решения, разрешимых в течение полиномиального времени. Также станет понятно, как эти понятия укладываются в рамки теории формальных языков. В разделе 34.2 определяется класс ХР, к которому относятся задачи принятия решения, правильность решения которых можно проверить в течение полиномиального времени. Здесь также формально ставится вопрос Р ф ХР. В разделе 34.3 показано, как с помощью приведения с полиномиальным временем работы изучаются взаимоотношения между задачами.

Здесь дано определение ХР-полноты и представлен набросок доказательства того, что задача о выполнимости схемы является ХР-полной. Имея одну ХР-полную задачу, в разделе 34.4 мы увидим, как можно существенно проще доказать ХР-полноту других задач с помощью приведения. Эта методология проиллюстрирована на примере двух задач на выполнимость формул, для которых доказывается ХР-полнота. В разделе 34.5 ХР-полнота демонстрируется для широкого крута других задач. 34.1 Полиномиальное время Начнем исследование ХР-полноты с формализации понятия задач, разрешимых в течение полиномиального времени. Эти задачи считаются легко разрешимыми, Часть Ч[!.

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

Даже если самый лучший из известных на сегодняшний день алгоритмов решения задачи характеризуется временем О [гьгоо), достаточно велика вероятность того, что скоро будет разработан алгоритм с намного лучшим временем работы. Во-вторых, для многих приемлемых вычислительных моделей задача, которая решается в течение полиномиального времени в одной модели, может быть решена в течение полиномиального времени и в другой. Например, в большей части книги рассматривается класс задач, разрешимых в течение полиномиального времени с помощью последовательных машин с произвольной выборкой.

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

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

Определим абсгпракгпную задачу (аЬз(гас( ргоЫеш) Я как бинарное отношение между множеством экземпляров [гпз1апсез) задач 1 и множеством решений [зо!ийопз) задач Я. Например, экземпляр задачи Бноктезт РАтн состоит из трех элементов: графа и двух вершин. Решением этой задачи является последовательность 'Подробное рассмотрение модели Тьюринга можно найти а книгах Хопкрофта (Норсгой) н Ульмана ((Л!гпап) [156), а также Льюиса (1еипа) и Пападимитриу (Рарайгп)ггюп) [204).

Глава 34. ИР-полнота 1093 вершин графа; при этом пустая последовательность может означать, что искомого пути не существует. Сама задача Яноктбзт Рдтн представляет собой отношение, сопоставляющее каждому экземпляру графа и двум его вершинам кратчайший путь по графу, соединяющий эти две вершины. Поскольку кратчайший путь может быть не единственным, юнкретный экземпляр задачи может иметь несколько решений. Представленная выше формулировка абстрактной задачи носит более широкий характер, чем требуется для наших целей. Как мы уже убедились, теория НР-полноты ограничивается рассмотрением задач принятия решения (бесгз(оп ргоЫешз), требующих решения вида "да-нет".

В этом случае абстрактную задачу принятия решения можно рассматривать как функцию, отображающую экземпляр множества 1 на множество решений (О, 1). Например, задача принятия решения, соответствующая задаче Зноктвзт РАтн, — рассмотренная выше задача РАтн. Если з = (О, и,гг, гс) — экземпляр задачи принятия решения РАтн, то равенство РАтн (з) = 1 (да) выполняется, если количество ребер в кратчайшем пути из вершины и в вершину гг не превышает Й; в противном случае РАтн(з) = 0 (нет).

Многие абстрактные задачи являются не задачами принятия решения, а задачами олшимизации (орйппгайоп ргоЫешз), в которых некоторое значение подлежит минимизации или максимизации. Однако ранее мы убедились, что обычно не составляет труда сформулировать задачу оптимизации как задачу принятия решения, которая не сложнее исходной. Кодирование Если абстрактная задача решается с помощью компьютерной программы, экземпляры задач необходимо представить в виде, понятном этой программе. Кгздированые (епсосйпй) множества Я абстрактных объектов — это отображение е множества Я на множество бинарных строкз. Например, всем известно, что натуральные числа 1ь( = (1, 2,...) кодируются строками (1, 10, 11,...).

В этой кодировке е (17) = 10001. Каждый, кто интересовался, как в компьютере представляются символы клавиатуры, знаком с кодами АБСП или кодами ЕВС131С. В кодировке АБСП представление символа А выглядит как 1000001. В виде бинарной строки можно закодировать даже составной объект. Для этого юнструируется комбинация, состоящая из представлений элементов, которые содержит в себе этот объект. Многоугольники, графы, функции, ориентированные пары, программы — все это можно заюдировать бинарными строками. Таким образом, компьютерный алгоритм, который "решает"' некоторую абстрактную задачу принятия решения, фактически принимает в качестве входных данных закодированный экземпляр задачи. Назовем задачу, множество зОбласть значений отображения е — не обязательно бяяаряме строки; подойдет любое множество строк, состоящих из символов конечного алфавита, содержащего не менее двух символов.

1094 Часть Ч!1. Избранные темы экземпляров которой является множеством бинарных строк, кон«ретной (сопсге(е ргоЫеш). Говорят, что алгоритм решает (зо1чез) конкретную задачу в течение времени 0 (Т (гз)), если для заданного экземпляра задачи з длиной п = ~з~ с его помощью можно получить решение в течение времени 0 (Т (п))~. Поэтому конкретная задача разрешима в течение нолинаниального времени (ро1упоппа1мппе зо1уаЫе), если существует алгоритм, позволяющий решить ее за время О (гз~), где lс — некоторая ыэнстаита.

Теперь класс сложности Р (сошр!ех(гу с1азз Р) можно формально определить как множество конкретных задач принятия решения, разрешимых в течение полиномиального времени. С помощью кодирования абстрактные задачи можно отображать на конкретные. Данную абстрактную задачу принятия решения Я, отображающую множество экземпляров на множество (О, Ц, с помощью кодирования е: Х -+ (О, Ц можно свести к связанной с ней конкретной задаче принятия решения, которая будет обозначаться как е (Я)4.

Если Я (з) Е (О, Ц вЂ” решение экземпляра абстрактной задачи з б 1, то оно же является и решением экземпляра конкретной задачи е(з) Е (О, Ц'. Заметим, что некоторые бинарные строки могут не представлять осмысленного экземпляра абстрактной задачи. Для удобства мы будем предполагать, что любая такая строка произвольным образом отображается на О. Таким образом, конкретная задача имеет те же решения, что и абстрактная, если ее экземпляры в виде бинарных строк представляют закодированные экземпляры абстрактной задачи.

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

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

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

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