Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура и ПО.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
195.09 Кб
Скачать

Сложностные классы р и np

Полиномиальная сложность – задачи класса P (x^const)

Задачи класса NP – остальные. Сложность выше ( e^x, 1000^x)

Классы P и NP называются классами сложности

Опр. Сложностный класс алгоритмов определяет алгоритмы, которые имеют некоторую заданную меру сложности.

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

Опр. Сложностный класс NP – это множество всех задач, которые можно решить за полиномиальное время недетерминированным алгоритмом(напр. Дерево поиска, рекурсия). (которые можно решить >> чем полиномиальное время)

Так же класс NP – это класс задач, если решение известно, но неизвестно, правильно оно или нет, то это решение можно проверить за полиномиальное время.

Обобщение:

Для класса P решение можно получить за полиномиальное время, а в классе NP – только проверить за полиномиальное время.

Можно сказать, что алгоритм записан на некоем языке. Говорят, что язык L1 сводится за полиномиальное время к языку L2, если существует некая функция (вычислимая за полиномиальное время) такая, что если x ͼ L1  f(x) ͼ L2

Задачи на языке L2 более сложная, чем задача на языке L1. Это значит, что решение любой задачи на языке L2 мы можем приспособить для решения задачи языке L1.

Опр. Задача из класса NP называется NP-полная (NPC – NPcomplete), если к ней может быть сведена за полиномиальное время любая задача из класса NP

NPC входит в NP – это наиболее сложные задачи в классе NP

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

Свойства классов.

  1. Если (L1<=p L2) ^ (L2 ͼ P ) => L1 ͼ P

  2. Если (L1<=p L2) ^ (L2 <=p L3 ) => L1 <=p L3 (транзитивность)

  3. Если некая задача из класса NPC вдруг разрешима за полиномиальное время , то P = NP.

  4. Если для некой задачи L1 из класса NP существует задача L2 из класса NPC такая, что она сводится к задаче из класса NP, то L1 ͼ NPC

Задача, с которой связано начало теории сложностных классов.

Есть какая-то ДНФ или КНФ. Надо определить, если такой набор значений булевых переменных, при котором на выходе - 0 или 1

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

Предположим, что задача имеет такую размерность и специфику, что их невозможно решить.

1 способ: Разобьем исходное множество по какому-либо признаку на m множеств так, чтобы m<<n и работаем с отдельными, меньшими множествами.

2 способ: Ищется не точное решение, а приближенное.

3 способ: Решение находится с некой вероятностью.

Конкретные алгоритмы

Примеры – численные методы, интернет, экономика, алгоритмы машинной графики.

Алгоритмы поиска, сортировки, решение задач на графах.

Алгоритмы поиска