Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Держіспит Матеріали.doc
Скачиваний:
1
Добавлен:
24.08.2019
Размер:
324.1 Кб
Скачать

19. Обчислювальна складність задач. Класи задач p та np.

Сложности задачи характеризуют сложностью наилучшего алгоритма, решающего задачу с самым трудным значением входа.

Сводимость задач

Пусть имеем задачи Z1 и Z2 . Пусть имеем также алгоритм S, позволяющий получить решение задачи Z1 из решения задачи Z2. Таким образом, получить решение задачи Z1 мы можем, решив задачу Z2 (с соответствующими входными данными) и преобразовав это решение в искомое решение задачи Z1 с помощью алгоритма S.

Говорят, что задача Z1 полиномиально сводится к задаче Z2, если существует алгоритм S полиномиальной сложности, позволяющий получить решение задачи Z1 из решения соответствующей задачи Z2.

Теорема 1

Если задача Z1 полиномиально сводится к задаче Z2, тогда:

 если задача Z2 имеет полиномиальную сложность, то и задача Z1 также имеет полиномиальную сложность;

 если задача Z2 имеет сложность выше полиномиальной, то сложность задачи Z1 соответствует сложности задачи Z2.

Отметим, что если задача Z2 имеет полиномиальную сложность и полиномиальная сводимость задачи Z1 к задаче Z2 доказана, то тем самым доказана полиномиальная сложность задачи Z1.

Различают 3 основных класса сложности задач:

1) задачи, для которых известны алгоритмы полиномиальной сложности;

2) задачи, для которых не известны алгоритмы полиномиальной сложности, но для которых и не доказано несуществование таких алгоритмов;

3) задачи, для которых установлено, что они не могут быть решены алгоритмом полиномиальной сложности.

Задачи, которые не принадлежат первому классу называют труднорешаемыми.

Второй класс задач является самым загадочным. Для большинства задач этого класса справедливо следующее: существование полиномиального алгоритма для одной из них означает существование полиномиального алгоритма для всех остальных.

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

Класс P представляет собой множество задач, для каждой из которых существует детерминированный алгоритм с полиномиальной функцией сложности.

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

Очевидно, что PNP .

NP-трудные и NP-полные задачи

Задача называется NP-трудной , если любая задача из NP полиномиально сводится к ней.

Задача называется NP-полной , если она является NP-трудной и в то же время принадлежит к классу NP.

Таким образом, имеют место следующие соотношения:

{NP-полные}  {NP-трудные}

сложность(NP-полная)  сложность(NP-трудная) .

Примеры задач разной сложности

Полиномиальная сложность:

- задачи о кратчайших путях и маршрутах на графах;

- задача о максимальном потоке транспортной сети;

- задачи о паросочетаниях, о назначениях (двудольные графы).

Экспоненциальная сложность:

- задача установления изоморфности графов.

NP-трудные задачи:

- поиск максимальной клики и определение плотности графа;

- определить, является ли заданный граф гамильтоновым;

- задача коммивояжера;

- задача о набольшем общем подграфе;

- задача о взломе шифра.

Задача определения изоморфности графов

О задаче определения изоморфности двух графов известно, что она принадлежит NP , но не известно, принадлежит ли она классу P и является ли она NP-полной [3-460, 4-78]. В то же время более сложная задача: определить, изоморфен ли граф G1 какому либо подграфу графа G2, является NP-полной [4-74]. Задача о выделении максимального множества независимых вершин является NP-полной даже для класса планарных графов [4-74].