Курсовая работа: Труднорешаемые задачи Последовательный анализ вариантов
|
Название: Труднорешаемые задачи Последовательный анализ вариантов Раздел: Рефераты по информатике Тип: курсовая работа |
Курсовая работа по дисциплине «Алгоритмы с оценками» На тему «Труднорешаемые задачи. Последовательный анализ вариантов» Содержание Введение 1. Задачи, NP-трудные в сильном смысле 1.1. Обслуживание требований без задержек 2.Алгоритм 2.1 Последовательный анализ вариантов 3. Псевдополиномиальное сведение задач и NP-трудные в сильном смысле задачи4.Использование NP-трудных задачЗаключение Библиографический список Введение Большинство задач, интересных с практической точки зрения, имеют полиномиальные (работающие за полиномиальное время) алгоритмы решения. То есть время работы алгоритма на входе длины n составляет не более O(nk) для некоторой константы k (не зависящей от длины входа). Разумеется, не каждая задача имеет алгоритм решения, удовлетворяющий этому свойству. Некоторые задачи вообще не могут быть решены никаким алгоритмом. Классический пример такой задачи — «проблема остановки» (выяснить останавливается ли данная программа на данном входе). Кроме того, бывают задачи, для которых существует решающий их алгоритм, но любой такой алгоритм работает «долго» — время его работы не есть O(nk) ни для какого фиксированного числа k. Если мы хотим провести пусть грубую, но формальную границу между «практическими» алгоритмами и алгоритмами, представляющими лишь теоретический интерес, то класс алгоритмов, работающих за полиномиальное время, является разумным первым приближением. Мы рассмотрим, руководствуясь [1], класс задач, называемых NP-полными. Для этих задач не найдены полиномиальные алгоритмы, однако и не доказано, что таких алгоритмов не существует. Изучение NP-полных задач связано с так называемым вопросом «P = NP». Этот вопрос был поставлен в 1971 году и является сейчас одной из наиболее сложных проблем теории вычислений. Зачем программисту знать о NP-полных задачах? Если для некоторой задачи удается доказать ее NP-полноту, есть основания считать ее практически неразрешимой. В этом случае лучше потратить время на построение приближенного алгоритма, чем продолжать искать быстрый алгоритм, решающий ее точно. 1. Задачи, NP-трудные в сильном смысле Приводятся примеры доказательств NP-трудности в сильном смысле ряда задач теории расписаний. Техника доказательства результатов такого рода во многом напоминает приемы которые использовались при установлении NP трудности (в обычном смысле) экстремальных задач теории расписаний. Для доказательства NP-трудности в сильном смысле тон или иной экстремальной задачи будем доказывать №" трудность в сильном смысле соответствующей задачи распознавания. Для этого достаточно показать, что к ней сводится некоторая известная NP –полная в сильном смысле задача. В качестве такой задачи в данном параграфе выбрана задача о 3-разбиении,
которая заключается в следующем. Имеется множество Существует ли такое разбиение мужества .V0
на трехэлементные подмножества N
°,
N
*
.....N°
такие, что Отметим, что условие Чтобы обеспечить псевдополиномиальное сведение задачи с 3-раэбнении к некоторой задаче распознавания, необходимо преобразовать входную информацию задачи о 3-разбиении во входную информацию некоторой ее индивидуальной задачи распознавания. Число выполняемых при этом действий должно полиномиально зависеть от длины входа задачи о 3 разбиении, представленного в унарной системе счисления, другими словами, от величины 1.1 Обслуживание требований без задержек Установим NP трудность в
сильном смысле Другими — словами, задачи Теорема 1.1.
Задача Доказательство.
Сформулируем соответствующую задачу распознавания: определить, существует ли расписание s
°,
при котором Положим Положим 1.
Пусть задача о 3-разбиении имеет решение и 2. Пусть существует расписание s
°
. Так как
Рис.(1.1) Прибор 1 завершает обслуживание всех требований не раньше момента времени у - Е.
С учетом того, что задержки запрещены, последним требованием, которое обслуживает прибор 2, будет некоторое v-требование, а прибор 1 должен функционировать без простоев в интервале Теорема 2
. Задача Теорема 3.
Задача Доказательство. Сформулируем соответствующую задачу распознавания. В обслуживающую систему, состоящую из двух приборов А и В, в момент времени d =0 поступает частично упорядоченное множество требований N
{1,2...., л}.
. Каждая компонента связности графа редукции отношения -, заданного на N
,
является цепью. Длительность выполнения каждой операции равна единице. Требуется определить, существует ли расписание S
°
, при котором Построим псевдополнномиальное сведение задачи о 3-разбиении к сформулированной задаче распознавания. Положим:
На множестве N заладим отношение -, полагай / -
I
тогда и только тогда, когда Пусть процесс обслуживания каждого требования
Для требования из множества
Рис(1.2) Таким образом, обслуживание требований множества Покажем, что расписание S
0
можно построить тогда и только тогда, когда имеет решение задача о 3-раэбиении. Пусть существует разбиение множества № на n0
трехэлементных подмножеств Пусть существует расписание S
°
, при котором Учитывая, что в построенном при доказательстве теоремы 3 примере процесс обслуживания каждого требования 2. Алгоритм Этап 1.
Построить бесконтурный граф Пусть после выполнения Шаг 1 + 1.
Отметить вершину i
и в случае, если в графе G(1)
есть ребра, инцидентные этой вершине, то заменить их исходящими из нее дугами. Полученный в результате граф обозначить G(J+1)
= (Q,
U
(
l
+1),
V(
l
+1)
).
Если V(
l
+1)
= Этап 2
. В соответствии с алгоритмом 3.1 построить которое допустимо относительно ориентированного графа Нетрудно убедиться в корректности описанного алгоритма, что и завершает доказательство теоремы . Очевидно, трудоемкость этапа 1
алгоритма не превосходит Если для каждого графа G(1)
в алгоритме рассматривать все возможные варианты выбора вершины i, то получим все множество P(G) = {G1
G2
, ..., G} бесконтурных графов, порождаемых смешанным графом G. Следовательно, все множество допустимых относительно G активных расписаний можно построить за Пример 1. В условиях примера 3.1 (см. рис. 1) воспользуемся алгоритмом 2 для построения допустимого относительно С = (Q, V, V) расписания. На этапе 1 алгоритма строим бесконтурный ориентированный граф из множества P{G). Положим G0
= G и выберем на шаг 1 вершину 1, в которую не заходит ни одна дуга. Отметим вершину 1 и заменим дугами инцидентные ей ребра. Получим смешанный граф На шаге 2 аналогичные преобразования проделаем для вершины 3, на шаге 3 — для вершины 4, на шаге 4 - для вершины 2, на шаге 5 - для вершины 9. Полученный в результате граф
Рис (2.1) На этапе 2 воспользуемся алгоритмом 1 для построения активного расписания, допустимого относительно ориентированного графа 2.1 Последовательный анализ вариантов Выше рассматривались вопросы построения активного расписания, допустимого относительно ориентированного или смешанного графа. Было Сказано, что не более чем за Если на каждом шаге алгоритма 2 рассматривать все возможные варианты выбора вершины i
, в которую не заходит ни одна исходящая из: неотмеченной вершины дуги, то можно получить все множество P(G={G1
,G2
….G} бесконтурных графов порождаемых графом G = (Q, U, V). Задачу можно решить в результате построения активных расписаний, допустимых относительно графов К сожалению, мощность множества P
(
G
)
растет в обшей случае экспоненциально с ростом параметров задачи n и М. Например, для задачи Таблица 1.
Сокращение числа перебираемых расписании можно обеспечить методом последовательного анализа вариантов. Для организации целенаправленного перебора графов множества P(G)будем использовать процедуру последовательного разбиения множества P ( G ) на подмножества. При этом подмножествоP
(
G
)
сначала разбивается va
подмножества P(G1
), P(G2
)…… P(Gk
),
где Gk
,
k
=1,
h- графы, получаемые из Этот процесс удобно представлять „растущим" выходящим деревом Множество всех конечных вершин дерева (Zm, Wm) будем обозначать через Zm. При выполнении условия а) получаем точное значение f(C'). Нетрудно видеть, что из условия б) следует соотношение 3. Псевдополиномиальное сведение задач и NP -трудные в сильном смысле задачи Наряду с разделением задач на NP-трудные и полиномиально разрешимые, NP-трудные задачи, в свою очередь, подразделяются на NP-трудные в сильном смысле задачи и задачи, имеющие псевдополиномиальные алгоритмы решения. Алгоритм решения задачи Π называется псевдополиномиальным, если его временная сложность не превосходит некоторого полинома от двух переменных Lengthn [ I ] и M ax ц[I] для любого примера I задачи Π. Соответствующая задача называется псевдополиномиалъно разрешимой. Нетрудно заметить, что любой полиномиальный алгоритм является одновременно и псевдополиномиальным.
Кроме того, ни одна из NP-трудных задач, не имеющая числовых параметров, не может иметь псевдополиномиального алгоритма решения, если В противном случае такая задача имела бы полиномиальный алгоритм решения, поскольку Таким образом, существуют NP-трудные задачи, которые не могут иметь даже псевдополиномиальных алгоритмов решения. Такие задачи образуют множество так называемых NP-трудных в сильном смысле задач. Для формализации понятия NP-трудной в сильном смысле задачи введем определение псевдополиномиальной сво димости задач распознавания. Пусть пары функций ( Lengthn , M ax ц) и ( Lengthu ', M ax ц>) сопоставлены задачам Π и Π' соответственно. Говорят, что задача распознавания Π псевдополиномиалъно сводится к задаче распознавания Π', если существует словарная функция Φ, переводящая задачу Π в задачу Π' и удовлетворяющая следующим условиям: (а) для любого примера (б) временная сложность вычисления функции Φ не превосходит некоторого полинома q от двух переменных Lengthn [ I ] и Max п [ I ] ; (в) существуют такие полиномы q iи qi , что для любого I
Задача распознавания Π называется NP
-трудной в сильном смысле,
если существует NP-трудная задача распознавания Π,
которая псевдополиномиально сводится к Π и для любого Поскольку любая задача псевдополиномиально сводится к себе, то любая
NP
-трудная задача, удовлетворяющая условию
(1.3), является
NP
-трудной в сильном смысле.
Кроме того, любая NP-трудная в сильном смысле задача является NP-трудной, и ни одна из NP-трудных в сильном смысле задач не может иметь псевдополиномиального алгоритма решения, если Понятие псевдполиномиальной сводимости транзитивно. Поэтому для доказательства NP-трудности в сильном смысле некоторой задачи достаточно псевдополиномиально свести к ней некоторую NP-трудную задачу. Задача распознавания Π называется NP
-полной в сильном смысле,
если Π Экстремальная комбинаторная задача называется NP-трудной в сильном смысле, если сопоставленная ей задача распознавания NP-трудна в сильном смысле. Примеры NP -трудных задач Ниже приведены формулировки NP-трудных задач, которые в дальнейшем используются при доказательстве NP-трудности задач оптимального планирования. Разбиение: Заданы целые положительные числа a л, a о,..., a г и A такие,
Требуется определить, существует ли множество 4. Использование NP-трудных задачВ настоящее время большое распространение получили криптосистемы с открытыми ключами, характерным свойством которых является то, что знание алгоритма не даёт дополнительных преимуществ при взломе, в отличие от симметричных систем, которые легко взламываются, если знать, по какому базовому правилу они работают. Типичным и самым популярным на данный момент примером системы с открытым ключом является RSA (алгоритм был опубликован в 1977 Ривестом, Шамиром, Эдлманом в MIT). Эта система проста в использовании, и, что более важно, сложна во взломе. Однако до сих пор остаётся открытым вопрос – относится ли задача факторизации, на которой базируется алгоритм RSA, к классу полиномиально разрешимых P или же к классу NP-трудных задач. Задача Р versus NP частично обязана своей значимостью пользующейся успехом теории завершенности NP и частично теории криптографии. Алгоритм удовлетворимости, будучи истинно эффективным алгоритмом по отношению к задаче завершенности NP, с одной стороны, мог бы вызвать к жизни целый ряд полезных алгоритмов для решения многих практических вычислительных задач в промышленности, однако, с другой стороны, такой алгоритм разрушил бы безопасность финансовых и иных сделок, широко использующих Интернет. Не сегодня-завтра может оказаться, что задача факторизации не является NP-трудной и более того, может найтись полиномиальный алгоритм её решения. В этом случае понадобятся совершенно другие методы криптографии. В данной работе я покажу некоторые криптографические методы, основанные на сложности широко известной NP-трудной задачи, задачи о рюкзаке(Knapsack problem) ЗаключениеИтак, какой же практический смысл имеет изучение теории сложности и классификация задач с точки зрения NP-полноты? Ответ очевиден — зачастую гораздо разумнее и эффективнее найти доказательство того, что рассматриваемая задача принадлежит к классу NP-полных, и в соответствие с этим заняться поиском достаточно точных приближенных алгоритмов, нежели безрезультатно тратить время на отыскание полиномиальных алгоритмов ее решения. Ясно, что именно NP-полные задачи играют здесь центральную роль — дело в том, что полиномиальное время является, хоть и первым, но достаточно хорошим приближением понятия «практической разрешимости задачи». Однако существует немало других интересных книг по данной тематике, заслуживающих пристального внимания со стороны читателя. Среди них хотелось бы выделить, где можно найти большое разнообразие NP-полных задач из самых различных областей. Читателям, желающим подробнее ознакомиться с теорией сложности, на мой взгляд, будет интересен подробный курс лекций, глубоко освещающий данную тематику Библиографический список 1. Гэри М., Джонсон Д. «Вычислительные машины и труднорешаемые задачи» М.: Мир 1982-466 стр. 2. Иванова А.П. «Введение в прикладное программирование. Модели и вычислительные алгоритмы» М.: Физматлит 2002 г. 3. Перепелица В.А. «Асимптотически подход и решение некоторых экстремальных задач на графах. Проблемы кибернетики » М.: Наука, 1973 г. 4. А.В. Яковлев, А.А. Безбогов, В.В. Родин, В.Н.Шамкин, КРИПТОГРАФИЧЕСКАЯЗАЩИТА ИНФОРМАЦИИ 5. Еремеев А.В., Романова А.А., Сервах В.В., Чаухан С.С. Приближенное решение одной задачи управления поставками // Дискретн. анализ и исслед. операций. Серия 2. 2006. Т. 13, № 1. С. 27–39. |






