Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

классы P и NP

Читайте также:
  1. Биологически важные классы органичеких соединений
  2. Классы NP и co-NP
  3. Классы P и NP.
  4. КЛАССЫ МАТЕРИНСКИХ ПЛАТ
  5. Классы сервиса
  6. Классы сложности P-SPACE и NP-SPACE

 

Вещественная неотрицательная функция f (m), определенная для целых положительных значений аргумента, называется полиномиально ограниченной, если существует полином P (m) с вещественными коэффициентами такой, что f (m)≤ P (m) для всех mN +. Задачи, для которых существуют алгоритмы с "полиномиальным" временем работы принадлежат классу P (эти задачи в основном решаются быстро и без каких-либо проблем).

Формальное определение. Язык L принадлежит классу P, тогда и только тогда, когда существует детерминированная машина Тьюринга M, такая, что:

- при любых входных данных M заканчивает свою работу за полиномиальное время,
- для всех xL M выдает результат 1,
- для всех x, не принадлежащих L, M выдает результат 0.

Задачи класса NP - задачи, удовлетворяющие условию: если имеется ответ (возможное решение), то его легко верифицировать - проверить, является оно решением или нет.

Рассмотрим пример задачи из класса NP. Пусть дано множество целых чисел, например, {-7,-3, -2, 5, 8}. Требуется узнать, есть ли среди этих чисел 3 числа, которые в сумме дают 0. В данном случае ответ "да" (например, такой тройкой являются числа {-3,-2,5}. При возрастании размера множеств целых чисел количество подмножеств, состоящих из 3 элементов, экспоненциально возрастает. Между тем, если нам дают одно такое подмножество (его еще называют сертификатом), то мы легко можем проверить, равна ли 0 сумма его элементов.


Формальное определение:

Язык L принадлежит классу NP, тогда и только тогда, когда существуют такие полиномы p и q и детерминированная машина Тьюринга M, такие, что:

- для любых x, y машина M на входных данных (x, y) выполняется за время p (| x |),
- для любого xL существует строка y длины q (| x |), такая что M (x, y)=1,
- для любого x не из L и всех строк длины q (| x |) M (x, y)=0.

 

Полиномиальная сводимость или сводимость по Карпу. Функция f 1 сводится к функции f 2, если существует функция fP, такая, что для любого x f 1(x)= f 2(f (x)).


Задача T называется NP-полной, если она принадлежит классу NP и любая другая задача из NP сводится к ней за полиномиальное время. Пожалуй, наиболее известным примером NP-полной задачи является задача SAT(от слова satisfiability). Пусть дана формула, содержащая булевы переменные, операторы "И", "ИЛИ", "НЕ" и скобки. Задача заключается в следующем: можно ли назначить всем переменным, встречающимся в формуле, значения ложь и истина так, чтобы формула приняла значение " истина ".

Задача T называется NP-трудной, если для нее существует такая NP-полная задача, которая сводится к T за полиномиальное время. Здесь имеется в виду сводимость по Куку. Сведение задачи R 1 к R 2 по Куку - это полиномиальный по времени алгоритм, решающий задачу R 1 при условии, что функция, находящая решение задачи R 2, ему дана в качестве оракула, то есть обращение к ней занимает всего один шаг.

Вот возможные соотношения между вышеупомянутыми классами задач (ученые до сих пор не уверены, совпадает ли P и NP):

 


Вот еще 2 примера NP-полных задач.

Задача о рюкзаке. Даны объемы w 1,..., wnN и стоимости v 1,..., vnN набора из N предметов. Также даны общий объем W и число g. Необходимо найти множество предметов из набора, общий объем которых не превышает W, а общая стоимость не превышает g.

Задача о коммивояжере. Дано n вершин с номерами 1,..., n и все n (n −1)/2 попарных расстояний между ними, а также число b. Найти цикл, проходящий через все вершины ровно по одному разу и имеющий длину не более b, или же сообщить, что такого цикла нет. Другими словами, необходимо найти перестановку τ (1),..., τ (n) вершин такую, что (1) +... + (n)≤ b.

Для нахождения решений NP-трудных задач в худшем случае требуется осуществить полный перебор всех вариантов, при этом часто нужно генерировать все возможные перестановки и проверять их на удовлетворение некоторого свойства.
Время выполнения задач, решение которых связано с перестановками, быстро выходит из-под контроля потому, что число всех возможных перестановок сильно растет с возрастанием количества элементов перестановки. Например, для множества из 5 элементов можно сгенерировать 5!=5*4*3*2*1=120 перестановок, а для множества из 6 элементов перестановок сгенерируется уже в 6 раз больше, и т.д.

Во многих случаях для решения таких задач используются эвристические подходы, которые гарантируют не оптимальное, но рациональное решение.

Информационные источники:
O большое и o малое (википедия), Complexity and Big-O notations notes, Algorithmic Complexity, Об использовании символов o и O, Логарифм (википедия), Coursera course on Algorithms and Data structures, Part1 (презентация), Algolist. Оценки времени выполнения, форум RSDN, Алгоритмы для NP-трудных задач (презентация), P_(complexity) (wikipedia), NP_(complexity) (wikipedia), Полиномиальная сводимость, Задача выполнимости булевых формул (википедия), Сведение по Куку (википедия), Доклад "Переборные задачи", форум ixbt, Абрамов. Лекции о сложности алгоритмов

Автор: Natalia Smirnova на 17:46

Отправить по электронной почте

 


Дата добавления: 2015-07-11; просмотров: 109 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Оценки времени выполнения для разных алгоритмов| ЛЕКСИЧЕСКИЙ МИНИМУМ № 1.2

mybiblioteka.su - 2015-2024 год. (0.006 сек.)