Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подготовка Сиакод.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.95 Mб
Скачать
  1. Полиномиальные алгоритмы и труднорешаемые задачи. Два аспекта труднорешаемости задач. Недетерминированное вычисление и класс np.

пОЛИНОМИАЛЬНЫЕ АЛГОРИТМЫ И ТРУДНОРЕШАЕМЫЕ ЗАДАЧИ: Первые результаты о трудно-решаемости задач, а именно классические результаты о неразрешимости (существует некоторый класс задач, которые не разрешимы) были получены Тьюрингом. Он доказал, что некоторые задачи неразрешимы в том смысле, что вообще не существует алгоритма их решения. Доказано, что для некоторых задач не существует решения. К примеру, Тьюринг доказал, что невозможно указать алгоритм, который по произвольной программе определял бы: остановится ли программа на произвольно-заданном ходе или нет («проблема остановки»). Также известно большое число других неразрешимых задач; к ним относятся десятая проблема Гилберта ((не?)-разрешимость диофантовых уравнений в целых числах), несколько задач о покрытии плоскости равными частями.

Поскольку эти задачи не могут быть решены никаким алгоритмом, а тем более полиномиальным, то, значит, они трудно-решаемы в самом сильном смысле. Было также показано, что некоторые задачи не могут быть решены за полиномиальное время даже с помощью недетерминированного вычислительного устройства – вычислительного устройства, обладающего способностью параллельно выполнять неограниченное количество независимых вычислений.

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

Два оспектА ТРУДНОРЕШАЕМОСТИ ЗАДАЧ:Первый аспект трудно-решаемости состоит в том, что для отыскания решения требуется экспоненциальное время. Второй аспект заключается в том, что искомое решение настолько велико, что не может быть представлено в виде выражения, длина которого была бы ограничена полиномом от длины входа.

Трудно-решаемостью этого вида нельзя пренебрегать и очень важно её своевременно обнаружить – в большинстве случаев её наличие ясно из постановки задачи. Этот аспект трудно-решаемости можно рассматривать как указание на то, что постановка задачи не реалистична, поскольку мы запрашиваем информации больше, чем когда-либо сможем использовать.

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

  1. Теория np-полных задач. Структура класса np.

Теория NP-полных задач: Основу теории NP-полных задач заложил С. Кук в своей работе опубликованной в 1971 году – из этой теории выделяем 4 основных положения:

- Кук подчеркнул важность понятия сводимость за полиномиальное время – то есть сводимость, которая выполняется с помощью алгоритма с полиномиальной временной сложностью – если одна задача сводится за полиномиальное время к другой, то любой полиномиальный алгоритм решения второй задачи может быть превращен в полиномиальный алгоритм решения первой задачи;

- Кук обратил внимание на класс задач распознавания свойств – это класс NP, которые могут быть решены за полиномиальное время недетерминированным вычислительным устройством. К классу задач распознавания свойств относятся задачи, решение которых можно дать в виде ответа – «да» или «нет». Задачей распознавания свойств есть задача, решением которой могут быть либо ответ «да», либо ответ «нет». Большинство неподдающихся решению задач, которые встречаются на практике, после переформулировки их в виде задач распознавания свойств попадают в этот класс. Класс NP – это класс всех задач распознавания свойств, которые при разумном кодировании могут быть решены недетерминированными алгоритмами за полиномиальное время, а точнее недетерминированный алгоритм проверяет за полиномиальное время экспоненциальное число вариантов;

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

- Кук предположил, что и другие задачи из класса NP могут быть самыми трудными представителями класса NP. Позднее, для относительно широкого круга задач было доказано, что они эквивалентны задаче о выполнимости. Этот класс получил название класса NP-C (Nondeterministic-Polynomial Complete – недетерминированное полиномиальное время NP) полных задач. Класс задач NP – полноты (NP-C), определяется задачами с полным недетерминированным полиномом временем решения. Класс задач NP-C таков, что ни для одной из его задач не удалось найти алгоритм полиномиальной сложности. Класс NP обладает свойством, что построение эффективного алгоритма решения хотя бы для одной из NP-C задач будет означать построение эффективного алгоритма решения всех задач класса NP.