Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
99
Добавлен:
09.02.2015
Размер:
58.8 Кб
Скачать

Сложностная классификация переборных задач Понятие о np-полных задачах

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

Формальным изучением отмеченного феномена занимается теория NР-полных задач. Класс NP-полных задач обладает следующими свойствами.

  1. Никакую NP-полную задачу нельзя решить никаким известным алгоритмом полиномиальной сложности;

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

Основываясь на этих двух фактах, многие исследователи высказывают гипотезу, что ни для какой NP-полной задачи не может существовать полиномиального алгоритма. Однако никому пока не удалось доказать это.

Практическое значение классификации некоторой задачи как NР-полной задачи заключается в том, что если задача отнесена к NР-полной, то она по существу труднорешаема с вычислительной точки зрения. Эффективные (полиномиальные) алгоритмы для данной задачи целесообразно искать для некоторых более узких множеств входных параметров задачи.

Таким образом, исследователь, который сталкивается с новой задачей и не может найти для нее эффективного алгоритма, может попытаться доказать, что задача NP-полна. Если о задаче станет известно, что она NP-полна, то обычно дальнейшее ее изучение исходит из менее амбициозных целей, чем построение алгоритма, который всегда находит точное (оптимальное) решение и время работы которого никогда не превышает некоторой полиномиальной оценки.

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

Задача коммивояжера (ЗК)

Условие. Задано конечное множество городов, которые должен посетить торговец по одному разу.

Вопрос. Существует ли маршрут, проходящий через все города из множества С, длина которого не превосходит b?

Для решения данной задачи требуется найти цикл, называемый Гамильтоновым циклом. Одним из методов изучения сложности алгоритма является его сравнение с задачей коммивояжера. Если исследуемая задача сводится к нахождению Гамильтонова цикла, то практически её нельзя решить точно. Однако в этом случае используют приближенные методы решения.

Сложностные классы задач

В начале 1960-х годов, в связи с началом широкого использования вычислительной техники для решения практических задач, возник вопрос о границах практической применимости данного алгоритма решения задачи в смысле ограничений на ее размерность. Какие задачи могут быть решены на ЭВМ за реальное время? Ответ на этот вопрос был дан в работах Кобмена (1964), и Эдмнодса (1965), где были введены сложностные классы задач.

1. Класс p (задачи с полиномиальной сложностью)

Задача называется полиномиальной, т.е. относится к классу P, если существует константа k и алгоритм, решающий задачу cFa(n)=O(nk), где n – длина входа алгоритма в битах. Задачи класса P – это интуитивно, задачи, решаемые за реальное время. Отметим следующие преимущества алгоритмов из этого класса:

  • для большинства задач из класса P константа k меньше 6;

  • класс P инвариантен по модели вычислений (для широкого класса моделей);

  • класс P обладает свойством естественной замкнутости (сумма или произведение полиномов есть полином).

Таким образом, задачи класса P есть уточнение определения «практически разрешимой» задачи.

Соседние файлы в папке Мат. логика все лекции